NxVec3 MoveActor(NxActor* actor, const NxVec3& moveDir, const NxReal moveStrength, bool moveMode) { if (actor->readBodyFlag(NX_BF_KINEMATIC)) return ApplyVelocityToActor(actor, moveDir, moveStrength, moveMode); else return ApplyForceToActor(actor, moveDir, moveStrength, moveMode); }
//----------------------------------------------------------------------------- // ApplyForce //----------------------------------------------------------------------------- void CPhysicScene::ApplyForce (const NxVec3& forceDir, float fForce, NxForceMode eForceMode) { int nbActors = m_pScene->getNbActors(); NxActor** actors = m_pScene->getActors(); while (nbActors--) { NxActor* actor = *actors++; ApplyForceToActor (actor, forceDir, fForce, eForceMode); } }
void ProcessForceKeys() { // Process force keys for (int i = 0; i < MAX_KEYS; i++) { if (!gKeys[i]) { continue; } switch (i) { // Force controls case 'i': { gForceVec = ApplyForceToActor(gSelectedActor,NxVec3(0,0,1),gForceStrength,bForceMode); break; } case 'k': { gForceVec = ApplyForceToActor(gSelectedActor,NxVec3(0,0,-1),gForceStrength,bForceMode); break; } case 'j': { gForceVec = ApplyForceToActor(gSelectedActor,NxVec3(1,0,0),gForceStrength,bForceMode); break; } case 'l': { gForceVec = ApplyForceToActor(gSelectedActor,NxVec3(-1,0,0),gForceStrength,bForceMode); break; } case 'u': { gForceVec = ApplyForceToActor(gSelectedActor,NxVec3(0,1,0),gForceStrength,bForceMode); break; } case 'm': { gForceVec = ApplyForceToActor(gSelectedActor,NxVec3(0,-1,0),gForceStrength,bForceMode); break; } // Return focus actor to (0,5,0) case 't': { gSelectedActor->setGlobalPosition(NxVec3(0,5,0)); gScene->flushCaches(); break; } } } }
void ProcessForceKeys() { // Process force keys for (int i = 0; i < MAX_KEYS; i++) { if (!gKeys[i]) { continue; } switch (i) { // Force controls case 'i': { gForceVec = ApplyForceToActor(gSelectedActor,NxVec3(0,0,1),gForceStrength,bForceMode); break; } case 'k': { gForceVec = ApplyForceToActor(gSelectedActor,NxVec3(0,0,-1),gForceStrength,bForceMode); break; } case 'j': { gForceVec = ApplyForceToActor(gSelectedActor,NxVec3(1,0,0),gForceStrength,bForceMode); break; } case 'l': { gForceVec = ApplyForceToActor(gSelectedActor,NxVec3(-1,0,0),gForceStrength,bForceMode); break; } case 'u': { gForceVec = ApplyForceToActor(gSelectedActor,NxVec3(0,1,0),gForceStrength,bForceMode); break; } case 'm': { gForceVec = ApplyForceToActor(gSelectedActor,NxVec3(0,-1,0),gForceStrength,bForceMode); break; } } } }
void ProcessForceKeys() { if (!gSelectedActor) return; // Process force keys for (int i = 0; i < MAX_KEYS; i++) { if (!gKeys[i]) { continue; } switch (i) { // Force controls case 'i': {gForceVec = ApplyForceToActor(gSelectedActor,NxVec3(0,0,-1),gForceStrength,bForceMode); break; } case 'k': {gForceVec = ApplyForceToActor(gSelectedActor,NxVec3(0,0,1),gForceStrength,bForceMode); break; } case 'j': {gForceVec = ApplyForceToActor(gSelectedActor,NxVec3(-1,0,0),gForceStrength,bForceMode); break; } case 'l': {gForceVec = ApplyForceToActor(gSelectedActor,NxVec3(1,0,0),gForceStrength,bForceMode); break; } case 'u': {gForceVec = ApplyForceToActor(gSelectedActor,NxVec3(0,1,0),gForceStrength,bForceMode); break; } case 'm': {gForceVec = ApplyForceToActor(gSelectedActor,NxVec3(0,-1,0),gForceStrength,bForceMode); break; } case 'o':{if(fluid)fluid->setFlag(NX_FF_ENABLED,false);break;} case 'p':{if(fluid)fluid->setFlag(NX_FF_ENABLED,true);break;} } } }
void ProcessForceKeys() { // Process force keys for (int i = 0; i < MAX_KEYS; i++) { if (!gKeys[i]) { continue; } switch (i) { // Force controls case 'i': {gForceVec = ApplyForceToActor(gSelectedActor,NxVec3(0,0,1),gForceStrength,bForceMode); break; } case 'k': {gForceVec = ApplyForceToActor(gSelectedActor,NxVec3(0,0,-1),gForceStrength,bForceMode); break; } case 'j': {gForceVec = ApplyForceToActor(gSelectedActor,NxVec3(1,0,0),gForceStrength,bForceMode); break; } case 'l': {gForceVec = ApplyForceToActor(gSelectedActor,NxVec3(-1,0,0),gForceStrength,bForceMode); break; } case 'u': {gForceVec = ApplyForceToActor(gSelectedActor,NxVec3(0,1,0),gForceStrength,bForceMode); break; } case 'm': {gForceVec = ApplyForceToActor(gSelectedActor,NxVec3(0,-1,0),gForceStrength,bForceMode); break; } // Front wheel case '1': { gCurrentSteerAngle += NxPi*0.0005; bSetCurrentSteerAngle = true; break; } case '2': { gCurrentSteerAngle = 0; bSetCurrentSteerAngle = true; break; } case '3': { gCurrentSteerAngle -= NxPi*0.0005; bSetCurrentSteerAngle = true; break; } // Rear wheels case '8': { gCurrentMotorTorque += 1; gCurrentBrakeTorque = 0; bSetCurrentMotorTorque = true; bSetCurrentBrakeTorque = true; break; } case '9': { gCurrentMotorTorque = 0; gCurrentBrakeTorque = 750; bSetCurrentMotorTorque = true; bSetCurrentBrakeTorque = true; break; } case '0': { gCurrentMotorTorque -= 1; gCurrentBrakeTorque = 0; bSetCurrentMotorTorque = true; bSetCurrentBrakeTorque = true; break; } } } }