MCPcopy Create free account
hub / github.com/carbonengine/trinity / GetBoneWorldTransform

Method GetBoneWorldTransform

trinity/Tr2GrannyAnimation.cpp:475–509  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

473}
474
475bool Tr2GrannyAnimation::GetBoneWorldTransform( const char* boneName, Matrix& transform ) const
476{
477 if( IsUsingCMF() )
478 {
479 const cmf::Skeleton* skeleton = GetSkeleton();
480 if( !m_worldTransforms.empty() && skeleton )
481 {
482 CCP_ASSERT( m_worldTransforms.size() == skeleton->bones.size() );
483
484 for( int32_t bone = 0; bone < skeleton->bones.size(); bone++ )
485 {
486 if( cmf::ToStdStringView( skeleton->bones[bone] ) == boneName )
487 {
488 transform = m_worldTransforms[bone];
489 return true;
490 }
491 }
492 }
493 }
494#if WITH_GRANNY
495 else
496 {
497 if( m_worldPose && m_skeleton )
498 {
499 granny_int32x bone;
500 if( GrannyFindBoneByName( m_skeleton, boneName, &bone ) )
501 {
502 transform = *reinterpret_cast<const Matrix*>( GrannyGetWorldPose4x4( m_worldPose, bone ) );
503 return true;
504 }
505 }
506 }
507#endif
508 return false;
509}
510
511void Tr2GrannyAnimation::RebuildCachedData( BlueAsyncRes* p )
512{

Callers 2

RenderDebugInfoMethod · 0.80

Calls 4

IsUsingCMFFunction · 0.85
emptyMethod · 0.80
sizeMethod · 0.80
ifFunction · 0.50

Tested by

no test coverage detected