Static Public Member Functions |
static std::pair
< FnAttribute::DoubleAttribute,
bool > | CalcTransformMatrixAtTime (const FnAttribute::GroupAttribute &groupAttr, float time) |
static std::pair
< FnAttribute::DoubleAttribute,
bool > | CalcTransformMatrixAtTimes (const FnAttribute::GroupAttribute &groupAttr, const float *time, int numSamples) |
static std::pair
< FnAttribute::DoubleAttribute,
bool > | CalcTransformMatrixAtExistingTimes (const FnAttribute::GroupAttribute &groupAttr) |
| static FnAttribute::DoubleAttribute | CreateBoundsAttr (double xMin, double xMax, double yMin, double yMax, double zMin, double zMax) |
| static FnAttribute::DoubleAttribute | MergeBounds (const FnAttribute::DoubleAttribute &boundAttr1, const FnAttribute::DoubleAttribute &boundAttr2) |
| static FnAttribute::DoubleAttribute | CalcTransformedBoundsAtExistingTimes (const FnAttribute::Attribute &xform, const FnAttribute::DoubleAttribute &boundAttr) |
| static FnAttribute::DoubleAttribute | CollapseBoundsTimeSamples (const FnAttribute::DoubleAttribute &boundAttr) |
| static void | InitXForm (FnAttribute::GroupBuilder &gb) |
Provides a number of matrix transform utilities.
Matrix ordering matches the IMath convention:
FnAttribute::DoubleAttribute::array_type m = attr.getNearestSample(0.f);
Imath::M44d(m[0], m[1], m[2], m[3],
m[4], m[5], m[6], m[7],
m[8], m[9], m[10], m[11],
m[12], m[13], m[14], m[15]);
or,
Imath::M44d( (double(*)[4]) m.data());
Calculates a new bounds attribute after baking in the specified coordinate system.
The input transform can either be specified as a 4 x 4 FnAttribute::DoubleAttribute (matrix) or as an unbaked FnAttribute::GroupAttribute xform hierarchy. All other types will result in failure an invalid FnAttribute instance being returned.
The computed bounds attribute will contain time samples at the union of existing samples in the incoming xform and bound attributes.
If a user requires a non-multisampled bound attribute, this call should be followed up with a call to CollapseBoundTimeSamples()
- Parameters:
-
| xform | the coordinate system |
| boundAttr | the bound attribute to transform |
- Returns:
- the new transformed bound attribute.
This group of function accepting FnAttribute::GroupBuilder references are used to simplify the construction of xform attributes.
- Note:
- All children must be either instances of FnAttribute::DoubleAttributes or FnAttribute::GroupAttribute.
For the specified GroupBuilder, set group inherit to false (as all xforms should be) and then do a shallow update with the specified attribute, if provided.
Note that if one's command sequence utilizes only:
Init(gb, ...)
PushXXX(...)
PushXXX(...)
PushXXX(...)
etc...
It's OK to construct the group builder with the GroupBuilder::BuilderModeStrict argument.
- Parameters:
-
| gb | An instance of FnAttribute::GroupBuilder |