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