MCPcopy Create free account
hub / github.com/NVIDIAGameWorks/PhysX / getFramePose

Method getFramePose

physx/samples/samplebase/SampleCharacterHelpers.cpp:317–347  ·  view source on GitHub ↗

//////////////////////////////////////////////////////////////////////////

Source from the content-addressed store, hash-verified

315
316///////////////////////////////////////////////////////////////////////////////
317bool
318Character::getFramePose(PxTransform &rootTransform, SampleArray<PxVec3> &positions, SampleArray<PxU32> &indexBuffers)
319{
320 if (mCurrentMotion == NULL)
321 return false;
322
323 PxU32 frameNo = PxU32(mFrameTime);
324 if (frameNo >= mCurrentMotion->mNbFrames)
325 return false;
326
327 positions.resize(mNbBones+1);
328
329 // copy precomputed bone position in local space
330 positions[0] = PxVec3(0.0f); // root position
331 for (PxU32 i = 0; i < mNbBones; i++)
332 positions[i+1] = mCurrentBoneTransform[i].p;
333
334 // copy capsule index data
335 indexBuffers.resize(mASFData->mNbBones * 2);
336 for (PxU32 i = 0; i < mASFData->mNbBones; i++)
337 {
338 Acclaim::Bone& bone = mASFData->mBones[i];
339 indexBuffers[i*2] = bone.mID;
340 indexBuffers[i*2+1] = (bone.mParent) ? bone.mParent->mID : 0;
341 }
342
343 // compute root transform
344 rootTransform = mCharacterPose.transform(mCurrentRootTransform);
345
346 return true;
347}
348
349//////////////////////////////////////////////////////////////////////////////
350bool Character::move(PxReal speed, bool jump, bool active )

Callers

nothing calls this directly

Calls 3

PxVec3Class · 0.50
resizeMethod · 0.45
transformMethod · 0.45

Tested by

no test coverage detected