RevoluteJoint

Gorgool

15-12-2010 23:06:00


mPhysBody = mMeshManager->load("ogre://General//Tank//PhysBody.nxs","Body");
Critter::BodyDescription BodyDesc;
BodyDesc.mMass = 400.0f;
mRenderSystem->createBody(NxOgre::ConvexDescription(mPhysBody), NxOgre::Vec3(0,3,0), "Body.mesh", BodyDesc);

mPhysTurret = mMeshManager->load("ogre://General//Tank//PhysTurret.nxs","Turret");
Critter::BodyDescription TurretDesc;
TurretDesc.mMass = 200.0f;
mRenderSystem->createBody(NxOgre::ConvexDescription(mPhysTurret), NxOgre::Vec3(0,3,0), "Turret.mesh", TurretDesc);

NxOgre::RevoluteJointDescription* BodyTurretRJDesc = new NxOgre::RevoluteJointDescription();
NxOgre::MotorDescription *BodyTurretMotorDesc = new NxOgre::MotorDescription(NxOgre::Real(0), NxOgre::Real(1000), false);
BodyTurretRJDesc->mMotor = *BodyTurretMotorDesc;
BodyTurretRJDesc->mLocalAnchor[0] = NxOgre::Vec3(0,0,0);
BodyTurretRJDesc->mLocalAnchor[1] = NxOgre::Vec3(0,1,0);
BodyTurretRJDesc->mLocalAxis[0] = NxOgre::Vec3(0,0,1);
BodyTurretRJDesc->mLocalAxis[1] = NxOgre::Vec3(0,0,1);
BodyTurretRJDesc->mMaxForce = 1000;
BodyTurretRJDesc->mMaxTorque = 1000;
BodyTurretRJDesc->mJointFlags |= NxOgre::Enums::JointFlag::JointFlag_CollisionEnabled;
BodyTurretRJDesc->mProjectionMode = NxOgre::Enums::JointProjectionMode::JointProjectionMode_Point_MiniumDistance;
NxOgre::RevoluteJoint* BodyTurretRJ = mScene->createRevoluteJoint((NxOgre::RigidBody*)mPhysBody, (NxOgre::RigidBody*)mPhysTurret,*BodyTurretRJDesc);


Crashes during the execution with NxOgre::DescriptionInvalidException exeption.
Where is error?

Gorgool

19-12-2010 15:01:53

Ok...
Whould somebody give me a hint how i can create RevoluteJoint?
I dont undestand why descriptor is invalid.