24 #ifndef PXR_USD_USD_SKEL_SKINNING_QUERY_H
25 #define PXR_USD_USD_SKEL_SKINNING_QUERY_H
63 const VtTokenArray& skelJointOrder,
64 const VtTokenArray& blendShapeOrder,
74 bool IsValid()
const {
return bool(_prim); }
77 explicit operator bool()
const {
return IsValid(); }
95 return _numInfluencesPerComponent;
106 return _skinningMethodAttr;
110 return _geomBindTransformAttr;
114 return _jointIndicesPrimvar;
118 return _jointWeightsPrimvar;
126 return _blendShapeTargets;
150 return _blendShapeMapper;
176 std::vector<double>* times)
const;
184 VtFloatArray* weights,
196 VtFloatArray* weights,
207 template <
typename Matrix4>
221 template <
typename Matrix4>
224 VtVec3fArray* points,
237 template <
typename Matrix4>
249 template <
typename Matrix4>
266 void _InitializeJointInfluenceBindings(
270 void _InitializeBlendShapeBindings(
275 int _numInfluencesPerComponent = 1;
287 std::optional<VtTokenArray> _jointOrder;
288 std::optional<VtTokenArray> _blendShapeOrder;
293 #endif // PXR_USD_USD_SKEL_SKINNING_QUERY_H
GLsizei GLenum const void * indices
GLdouble GLdouble GLint GLint const GLdouble * points
static constexpr UsdTimeCode Default()
USDSKEL_API bool GetBlendShapeOrder(VtTokenArray *blendShapes) const
Get the blend shapes for this skinning site, if any.
GT_API const UT_StringHolder time
const TfToken & GetInterpolation() const
const UsdRelationship & GetBlendShapeTargetsRel() const
GLsizei const GLchar *const * string
int GetNumInfluencesPerComponent() const
USDSKEL_API float ComputeExtentsPadding(const VtArray< Matrix4 > &skelRestXforms, const UsdGeomBoundable &boundable) const
const UsdAttribute & GetBlendShapesAttr() const
bool IsValid() const
Returns true if this query is valid.
USDSKEL_API TfToken GetSkinningMethod() const
const UsdAttribute & GetGeomBindTransformAttr() const
const UsdGeomPrimvar & GetJointWeightsPrimvar() const
USDSKEL_API std::string GetDescription() const
const UsdGeomPrimvar & GetJointIndicesPrimvar() const
USDSKEL_API bool ComputeVaryingJointInfluences(size_t numPoints, VtIntArray *indices, VtFloatArray *weights, UsdTimeCode time=UsdTimeCode::Default()) const
const UsdSkelAnimMapperRefPtr & GetBlendShapeMapper() const
std::shared_ptr< class UsdSkelAnimMapper > UsdSkelAnimMapperRefPtr
USDSKEL_API bool ComputeSkinnedNormals(const VtArray< Matrix4 > &xforms, VtVec3fArray *points, UsdTimeCode time=UsdTimeCode::Default()) const
USDSKEL_API bool IsRigidlyDeformed() const
USDSKEL_API GfMatrix4d GetGeomBindTransform(UsdTimeCode time=UsdTimeCode::Default()) const
const UsdAttribute & GetSkinningMethodAttr() const
USDSKEL_API bool ComputeJointInfluences(VtIntArray *indices, VtFloatArray *weights, UsdTimeCode time=UsdTimeCode::Default()) const
USDSKEL_API bool GetTimeSamplesInInterval(const GfInterval &interval, std::vector< double > *times) const
USDSKEL_API bool ComputeSkinnedPoints(const VtArray< Matrix4 > &xforms, VtVec3fArray *points, UsdTimeCode time=UsdTimeCode::Default()) const
PXR_NAMESPACE_CLOSE_SCOPE PXR_NAMESPACE_OPEN_SCOPE
USDSKEL_API bool ComputeSkinnedTransform(const VtArray< Matrix4 > &xforms, Matrix4 *xform, UsdTimeCode time=UsdTimeCode::Default()) const
USDSKEL_API bool HasJointInfluences() const
Returns true if joint influence data is associated with this prim.
#define PXR_NAMESPACE_CLOSE_SCOPE
const UsdSkelAnimMapperRefPtr & GetJointMapper() const
USDSKEL_API bool GetTimeSamples(std::vector< double > *times) const
USDSKEL_API bool HasBlendShapes() const
Returns true if there are blend shapes associated with this prim.
const UsdPrim & GetPrim() const
const UsdSkelAnimMapperRefPtr & GetMapper() const
USDSKEL_API bool GetJointOrder(VtTokenArray *jointOrder) const
Get the custom joint order for this skinning site, if any.
USDSKEL_API UsdSkelSkinningQuery()