This document is for a version of USD that is under development. See this page for the current release.
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
Joint Transform Utilities

Utilities for working with vectorized joint transforms. More...

+ Collaboration diagram for Joint Transform Utilities:

Functions

USDSKEL_API bool UsdSkelComputeJointLocalTransforms (const UsdSkelTopology &topology, TfSpan< const GfMatrix4d > xforms, TfSpan< const GfMatrix4d > inverseXforms, TfSpan< GfMatrix4d > jointLocalXforms, const GfMatrix4d *rootInverseXform=nullptr)
 Compute joint transforms in joint-local space.
 
USDSKEL_API bool UsdSkelComputeJointLocalTransforms (const UsdSkelTopology &topology, TfSpan< const GfMatrix4f > xforms, TfSpan< const GfMatrix4f > inverseXforms, TfSpan< GfMatrix4f > jointLocalXforms, const GfMatrix4f *rootInverseXform=nullptr)
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
 
USDSKEL_API bool UsdSkelComputeJointLocalTransforms (const UsdSkelTopology &topology, TfSpan< const GfMatrix4d > xforms, TfSpan< GfMatrix4d > jointLocalXforms, const GfMatrix4d *rootInverseXform=nullptr)
 Compute joint transforms in joint-local space.
 
USDSKEL_API bool UsdSkelComputeJointLocalTransforms (const UsdSkelTopology &topology, TfSpan< const GfMatrix4f > xforms, TfSpan< GfMatrix4f > jointLocalXforms, const GfMatrix4f *rootInverseXform=nullptr)
 
USDSKEL_API bool UsdSkelComputeJointLocalTransforms (const UsdSkelTopology &topology, const VtMatrix4dArray &xforms, const VtMatrix4dArray &inverseXforms, VtMatrix4dArray *jointLocalXforms, const GfMatrix4d *rootInverseXform=nullptr)
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
 
USDSKEL_API bool UsdSkelComputeJointLocalTransforms (const UsdSkelTopology &topology, const VtMatrix4dArray &xforms, VtMatrix4dArray *jointLocalXforms, const GfMatrix4d *rootInverseXform=nullptr)
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
 
USDSKEL_API bool UsdSkelComputeJointLocalTransforms (const UsdSkelTopology &topology, const GfMatrix4d *xforms, const GfMatrix4d *inverseXforms, GfMatrix4d *jointLocalXforms, const GfMatrix4d *rootInverseXform=nullptr)
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
 
USDSKEL_API bool UsdSkelConcatJointTransforms (const UsdSkelTopology &topology, TfSpan< const GfMatrix4d > jointLocalXforms, TfSpan< GfMatrix4d > xforms, const GfMatrix4d *rootXform=nullptr)
 Compute concatenated joint transforms.
 
USDSKEL_API bool UsdSkelConcatJointTransforms (const UsdSkelTopology &topology, TfSpan< const GfMatrix4f > jointLocalXforms, TfSpan< GfMatrix4f > xforms, const GfMatrix4f *rootXform=nullptr)
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
 
USDSKEL_API bool UsdSkelConcatJointTransforms (const UsdSkelTopology &topology, const VtMatrix4dArray &jointLocalXforms, VtMatrix4dArray *xforms, const GfMatrix4d *rootXform=nullptr)
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
 
USDSKEL_API bool UsdSkelConcatJointTransforms (const UsdSkelTopology &topology, const GfMatrix4d *jointLocalXforms, GfMatrix4d *xforms, const GfMatrix4d *rootXform=nullptr)
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
 
template<typename Matrix4 >
USDSKEL_API bool UsdSkelComputeJointsExtent (TfSpan< const Matrix4 > joints, GfRange3f *extent, float pad=0.0f, const Matrix4 *rootXform=nullptr)
 Compute an extent from a set of skel-space joint transform.
 
USDSKEL_API bool UsdSkelComputeJointsExtent (const VtMatrix4dArray &joints, VtVec3fArray *extent, float pad=0.0f, const GfMatrix4d *rootXform=nullptr)
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
 
USDSKEL_API bool UsdSkelComputeJointsExtent (const GfMatrix4d *xforms, size_t numXforms, VtVec3fArray *extent, float pad=0.0f, const GfMatrix4d *rootXform=nullptr)
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
 

Detailed Description

Utilities for working with vectorized joint transforms.

Function Documentation

◆ UsdSkelComputeJointLocalTransforms() [1/6]

USDSKEL_API bool UsdSkelComputeJointLocalTransforms ( const UsdSkelTopology topology,
const GfMatrix4d xforms,
const GfMatrix4d inverseXforms,
GfMatrix4d jointLocalXforms,
const GfMatrix4d rootInverseXform = nullptr 
)

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Deprecated:
Use form that takes TfSpan arguments.

◆ UsdSkelComputeJointLocalTransforms() [2/6]

USDSKEL_API bool UsdSkelComputeJointLocalTransforms ( const UsdSkelTopology topology,
const VtMatrix4dArray &  xforms,
const VtMatrix4dArray &  inverseXforms,
VtMatrix4dArray *  jointLocalXforms,
const GfMatrix4d rootInverseXform = nullptr 
)

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Deprecated:
Use form that takes TfSpan arguments.

◆ UsdSkelComputeJointLocalTransforms() [3/6]

USDSKEL_API bool UsdSkelComputeJointLocalTransforms ( const UsdSkelTopology topology,
const VtMatrix4dArray &  xforms,
VtMatrix4dArray *  jointLocalXforms,
const GfMatrix4d rootInverseXform = nullptr 
)

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Deprecated:
Use form that takes TfSpan arguments.

◆ UsdSkelComputeJointLocalTransforms() [4/6]

USDSKEL_API bool UsdSkelComputeJointLocalTransforms ( const UsdSkelTopology topology,
TfSpan< const GfMatrix4d xforms,
TfSpan< const GfMatrix4d inverseXforms,
TfSpan< GfMatrix4d jointLocalXforms,
const GfMatrix4d rootInverseXform = nullptr 
)

Compute joint transforms in joint-local space.

Transforms are computed from xforms, holding concatenated joint transforms, and inverseXforms, providing the inverse of each of those transforms. The resulting local space transforms are written to jointLocalXforms, which must be the same size as topology. If the root joints include an additional, external transformation – eg., such as the skel local-to-world transformation – then the inverse of that transform should be passed as rootInverseXform. If no rootInverseXform is provided, then xform and inverseXforms should be based on joint transforms computed in skeleton space. Each transform array must be sized to the number of joints from topology.

◆ UsdSkelComputeJointLocalTransforms() [5/6]

USDSKEL_API bool UsdSkelComputeJointLocalTransforms ( const UsdSkelTopology topology,
TfSpan< const GfMatrix4d xforms,
TfSpan< GfMatrix4d jointLocalXforms,
const GfMatrix4d rootInverseXform = nullptr 
)

Compute joint transforms in joint-local space.

This is a convenience overload, which computes the required inverse transforms internally.

◆ UsdSkelComputeJointLocalTransforms() [6/6]

USDSKEL_API bool UsdSkelComputeJointLocalTransforms ( const UsdSkelTopology topology,
TfSpan< const GfMatrix4f xforms,
TfSpan< const GfMatrix4f inverseXforms,
TfSpan< GfMatrix4f jointLocalXforms,
const GfMatrix4f rootInverseXform = nullptr 
)

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

◆ UsdSkelComputeJointsExtent() [1/3]

USDSKEL_API bool UsdSkelComputeJointsExtent ( const GfMatrix4d xforms,
size_t  numXforms,
VtVec3fArray *  extent,
float  pad = 0.0f,
const GfMatrix4d rootXform = nullptr 
)

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Deprecated:
Use form that takes a TfSpan.

◆ UsdSkelComputeJointsExtent() [2/3]

USDSKEL_API bool UsdSkelComputeJointsExtent ( const VtMatrix4dArray &  joints,
VtVec3fArray *  extent,
float  pad = 0.0f,
const GfMatrix4d rootXform = nullptr 
)

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Deprecated:
Use form that takes a TfSpan.

◆ UsdSkelComputeJointsExtent() [3/3]

USDSKEL_API bool UsdSkelComputeJointsExtent ( TfSpan< const Matrix4 >  joints,
GfRange3f extent,
float  pad = 0.0f,
const Matrix4 *  rootXform = nullptr 
)

Compute an extent from a set of skel-space joint transform.

The rootXform may also be set to provide an additional root transformation on top of all joints, which is useful for computing extent relative to a different space.

◆ UsdSkelConcatJointTransforms() [1/4]

USDSKEL_API bool UsdSkelConcatJointTransforms ( const UsdSkelTopology topology,
const GfMatrix4d jointLocalXforms,
GfMatrix4d xforms,
const GfMatrix4d rootXform = nullptr 
)

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Deprecated:
Use the form that takes a TfSpan argument.

◆ UsdSkelConcatJointTransforms() [2/4]

USDSKEL_API bool UsdSkelConcatJointTransforms ( const UsdSkelTopology topology,
const VtMatrix4dArray &  jointLocalXforms,
VtMatrix4dArray *  xforms,
const GfMatrix4d rootXform = nullptr 
)

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Deprecated:
Use the function form that takes TfSpan arguments.

◆ UsdSkelConcatJointTransforms() [3/4]

USDSKEL_API bool UsdSkelConcatJointTransforms ( const UsdSkelTopology topology,
TfSpan< const GfMatrix4d jointLocalXforms,
TfSpan< GfMatrix4d xforms,
const GfMatrix4d rootXform = nullptr 
)

Compute concatenated joint transforms.

This concatenates transforms from jointLocalXforms, providing joint transforms in joint-local space. The resulting transforms are written to jointLocalXforms, which must be the same size as topology. If rootXform is not provided, or is the identity, the resulting joint transforms will be given in skeleton space. Any additional transformations may be provided on rootXform if an additional level of transformation – such as the skel local to world transform – are desired. Each transform array must be sized to the number of joints from topology.

◆ UsdSkelConcatJointTransforms() [4/4]

USDSKEL_API bool UsdSkelConcatJointTransforms ( const UsdSkelTopology topology,
TfSpan< const GfMatrix4f jointLocalXforms,
TfSpan< GfMatrix4f xforms,
const GfMatrix4f rootXform = nullptr 
)

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.