VtTokenArray UsdSkelAnimQuery::GetJointOrder() const { if(TF_VERIFY(IsValid(), "invalid anim query.")) { return _impl->GetJointOrder(); } return VtTokenArray(); }
VtTokenArray UsdSkelSkeletonQuery::GetJointOrder() const { if(TF_VERIFY(IsValid(), "invalid skeleton query.")) { return _definition->GetJointOrder(); } return VtTokenArray(); }
UsdSkelSkinningQuery UsdSkel_CacheImpl::ReadScope::_FindOrCreateSkinningQuery( const UsdPrim& skinnedPrim, const SkinningQueryKey& key) { UsdSkelSkeletonQuery skelQuery = FindOrCreateSkelQuery(key.skel); // TODO: Consider some form of deduplication. return UsdSkelSkinningQuery( skinnedPrim, skelQuery ? skelQuery.GetJointOrder() : VtTokenArray(), key.jointIndicesAttr, key.jointWeightsAttr, key.geomBindTransformAttr, key.jointsAttr); }
UsdSkelSkinningQuery UsdSkel_CacheImpl::ReadScope::_FindOrCreateSkinningQuery( const UsdPrim& skinnedPrim, const SkinningQueryKey& key) { { _SkinningQueryMap::const_accessor a; if(_cache->_skinningQueryCache.find(a, key)) return a->second; } _SkinningQueryMap::accessor a; if(_cache->_skinningQueryCache.insert(a, key)) { a->second = UsdSkelSkinningQuery( skinnedPrim, key.skelQuery ? key.skelQuery.GetJointOrder() : VtTokenArray(), key.jointIndicesAttr, key.jointWeightsAttr, key.geomBindTransformAttr, key.jointOrder ? &(*key.jointOrder) : nullptr); } return a->second; }