Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008 #ifndef __SP_PHYSICS_NEWTON_JOINT_H__
00009 #define __SP_PHYSICS_NEWTON_JOINT_H__
00010
00011
00012 #include "Base/spStandard.hpp"
00013
00014 #ifdef SP_COMPILE_WITH_NEWTON
00015
00016
00017 #include "Framework/Physics/spPhysicsJoint.hpp"
00018
00019
00020 struct NewtonJoint;
00021
00022 namespace sp
00023 {
00024 namespace physics
00025 {
00026
00027
00028 class SP_EXPORT NewtonDynamicsJoint : public PhysicsJoint
00029 {
00030
00031 public:
00032
00033 NewtonDynamicsJoint(
00034 const EPhysicsJoints Type, PhysicsBaseObject* ObjectA,
00035 PhysicsBaseObject* ObjectB, const SPhysicsJointConstruct &Construct
00036 );
00037 virtual ~NewtonDynamicsJoint();
00038
00039
00040
00041 void setPosition(const dim::vector3df &Position);
00042 dim::vector3df getPosition() const;
00043
00044 void setLimit(bool Enable);
00045 bool getLimit() const;
00046
00047 void setLimit(f32 Min, f32 Max, bool Enable = true);
00048 void getLimit(f32 &Min, f32 &Max) const;
00049
00050 void setMotor(bool Enable, f32 MotorPower = 100.0f);
00051 bool getMotor() const;
00052
00053 void runMotor(f32 Velocity);
00054
00055 f32 getLinearValue() const;
00056
00057 protected:
00058
00059
00060
00061 NewtonJoint* NtJoint_;
00062
00063 };
00064
00065
00066 }
00067
00068 }
00069
00070
00071 #endif
00072
00073 #endif
00074
00075
00076
00077