00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015 #ifndef __SIM_ForceReferenceFrame_h__
00016 #define __SIM_ForceReferenceFrame_h__
00017
00018 #include "SIM_API.h"
00019 #include "SIM_Force.h"
00020 #include "SIM_OptionsUser.h"
00021
00022
00023
00024
00025
00026 class SIM_API SIM_ForceReferenceFrame : public SIM_Force,
00027 public SIM_OptionsUser
00028 {
00029 public:
00030
00031 GET_DATA_FUNC_S("newframeobject", NewFrameName);
00032
00033 GETSET_DATA_FUNCS_I(SIM_NAME_SAMPLEMODE, SampleMode);
00034
00035 protected:
00036 explicit SIM_ForceReferenceFrame(const SIM_DataFactory *factory);
00037 virtual ~SIM_ForceReferenceFrame();
00038
00039
00040
00041
00042 virtual void getForceSubclass(const SIM_Object &object,
00043 const UT_Vector3 &position,
00044 const UT_Vector3 &velocity,
00045 const UT_Vector3 &angvel,
00046 const fpreal mass,
00047 UT_Vector3 &force,
00048 UT_Vector3 &torque) const;
00049
00050 virtual SIM_ForceSample getOptimalForceSamplingSubclass() const;
00051
00052 private:
00053 static const SIM_DopDescription *getForceReferenceFrameDopDescription();
00054
00055 DECLARE_STANDARD_GETCASTTOTYPE();
00056 DECLARE_DATAFACTORY(SIM_ForceReferenceFrame,
00057 SIM_Force,
00058 "Reference Frame Force",
00059 getForceReferenceFrameDopDescription());
00060 };
00061
00062 #endif
00063