vrsode/src/PhysicsJointHinge2.cpp

Go to the documentation of this file.
00001 
00002 #include "PhysicsJointHinge2.h"
00003 
00004 #include "PhysicsManager.h"
00005 
00006 namespace vrsode
00007 {
00008 
00009 PhysicsJointHinge2::PhysicsJointHinge2(VRS::SO<PhysicsBody> p_bodyOne,
00010                                        VRS::SO<PhysicsBody> p_bodyTwo,
00011                                        VRS::Vector p_position,
00012                                        VRS::Vector p_axisOne,
00013                                        VRS::Vector p_axisTwo)
00014     : PhysicsJoint(p_bodyOne, p_bodyTwo)
00015 {
00016     dBodyID bodyOne;
00017     dBodyID bodyTwo;
00018     p_bodyOne != 0 ? bodyOne = p_bodyOne->bodyId() : bodyOne = 0;
00019     p_bodyTwo != 0 ? bodyTwo = p_bodyTwo->bodyId() : bodyTwo = 0;
00020 
00021     setJointId(dJointCreateHinge2(PhysicsManager::get()->worldId(), 0));
00022     dJointAttach(jointId(), bodyOne, bodyTwo);
00023     dJointSetHinge2Axis1(
00024             jointId(), p_axisOne[0], p_axisOne[1], p_axisOne[2]);
00025     dJointSetHinge2Axis2(
00026             jointId(), p_axisTwo[0], p_axisTwo[1], p_axisTwo[2]);
00027     dJointSetHinge2Anchor(
00028             jointId(), p_position[0], p_position[1], p_position[2]);
00029 
00030     dJointSetData(jointId(), this);
00031 }
00032 
00033 PhysicsJointHinge2::~PhysicsJointHinge2()
00034 {
00035     dJointDestroy(jointId());
00036 }
00037 
00038 void
00039 PhysicsJointHinge2::setLowStop(double p_lowStop)
00040 {
00041     dJointSetHinge2Param(jointId(), dParamLoStop, p_lowStop);
00042 }
00043 
00044 void
00045 PhysicsJointHinge2::setHighStop(double p_highStop)
00046 {
00047     dJointSetHinge2Param(jointId(), dParamHiStop, p_highStop);
00048 }
00049 
00050 void
00051 PhysicsJointHinge2::setMotorVelocity(double p_velocity)
00052 {
00053     dJointSetHinge2Param(jointId(), dParamVel, p_velocity);
00054 }
00055 
00056 void
00057 PhysicsJointHinge2::setMotorMaxForce(double p_maxForce)
00058 {
00059     dJointSetHinge2Param(jointId(), dParamFMax, p_maxForce);
00060 }
00061 
00062 void
00063 PhysicsJointHinge2::setStopBounce(double p_bounce)
00064 {
00065     dJointSetHinge2Param(jointId(), dParamBounce, p_bounce);
00066 }
00067 
00068 void
00069 PhysicsJointHinge2::setCFM(double p_cfm)
00070 {
00071     dJointSetHinge2Param(jointId(), dParamCFM, p_cfm);
00072 }
00073 
00074 }

Generated on Fri May 11 21:01:58 2007 for Random Racer by  doxygen 1.5.1