Class ISkinPose : public FPMixinInterface
Description:
Interface class for setting and getting a special,
non-animated, transformation pose, SkinPose.
Methods:
Prototype:
static ISkinPose* GetISkinPose(INode& n)
Remarks:
Method to obtain the interface pointer for a given INode.
Parameters:
INode& n
The node having the transformation pose.
Return Value:
ISkinPose*
A pointer to this interface class.
Prototype:
virtual Point3 SkinPos() const = 0;
Remarks:
Method to obtain the position part of the transformation pose.
Return Value:
Point3
The position of the pose expressed as 3-vector (Point3).
Prototype:
virtual RotationValue SkinRot() const = 0;
Remarks:
Method to obtain the rotation part of the transformation pose.
Return Value:
RotationValue
The rotation of the pose expressed as an RotationValue, which can be quaternion or Euler angle type.
Prototype:
virtual ScaleValue SkinScale() const = 0;
Remarks:
Method to obtain the scale part of the transformation pose.
Return Value:
ScaleValue
The scale of the pose expressed as possibly unequal values along the principal axes of a coordinate system whose orientation is defined by a quaternion.
Prototype:
virtual void SetSkinPos(const Point3&) = 0;
Remarks:
Method to set the pose position to a given point.
Parameters:
Point3
The desired point for the pose.
Prototype:
virtual void SetSkinRot(const RotationValue&) = 0;
Remarks:
Method to set the pose rotation to a given value.
Parameters:
RotationValue
The rotation of the pose expressed as an Euler angle or quaternion type.
Prototype:
virtual void SetSkinRot(const Point3&) = 0;
Remarks:
Method to set the pose rotation to a given Euler angle.
Parameters:
Point3
The rotation of the pose expressed as an Euler angle vector.
Prototype:
virtual void SetSkinScaleFactors(const Point3&) = 0;
Remarks:
Method to set the potentially differing pose scale factors.
Parameters:
Point3
The point containing the scale factors x, y, and z.
Prototype:
virtual void SetSkinScaleOrient(const Quat&) = 0;
Remarks:
Method to set the orientation of the scale factor axes.
Parameters:
Quat&
The quaternion specifying the orientation of the scale factor axes.
Prototype:
virtual bool IsSkinPosEnabled() const = 0;
Remarks:
Method to determine if the pose position is enabled.
Return Value:
bool
If true, the pose position is enabled.
If false, the pose position is disabled.
Prototype:
virtual bool IsSkinRotEnabled() const = 0;
Remarks:
Method to determine if the pose rotation is enabled.
Return Value:
bool
If true, the pose rotation is enabled.
If false, the pose rotation is disabled.
Prototype:
virtual bool IsSkinScaleEnabled() const = 0;
Remarks:
Method to determine if the pose scale is enabled.
Return Value:
bool
If true, the pose scale is enabled.
If false, the pose scale is disabled.
Prototype:
virtual bool SkinPoseMode() const = 0;
Remarks:
Member function yielding a Boolean whether the node is in the Skin Pose mode. In this mode, the node will assume the skin pose, subject to “enabled” flags of the three (position, rotation, and scale) parts, as its transformation, rather than from the normal channel, the transform controller.
Return Value:
bool
If true, the node transformation is in the skin pose mode.
If false, it is in the normal mode.
Prototype:
virtual void EnableSkinPos(bool) = 0;
Remarks:
Sets the state of the pose position transform.
Parameters:
bool
If true, the pose position transform is enabled.
If false, the pose position transform is disabled.
Prototype:
virtual void EnableSkinRot(bool) = 0;
Remarks:
Sets the state of the pose rotation transform.
Parameters:
bool
If true, the pose rotation transform is enabled.
If false, the pose rotation transform is disabled.
Prototype:
virtual void EnableSkinScale(bool) = 0;
Remarks:
Sets the state of the pose scale transform.
Parameters:
bool
If true, the pose scale transform is enabled.
If false, the pose scale transform is disabled.
Prototype:
virtual void SetSkinPoseMode(bool) = 0;
Remarks:
Puts the node transform in the skin pose or normal mode.
Parameters:
bool
If true, the node transform is put in the skin pose mode.
If false, the node transform resumes to the normal mode.
Prototype:
virtual void SetSkinPose(TimeValue) = 0;
Remarks:
Sets the state of all three non-animated skin pose transforms, subject to the “enabled” flags, to the animated normal pose at a particular time.
Parameters:
TimeValue
Time at which the animated normal pose is used as the target to set the skin pose transforms.
Prototype:
virtual void AssumeSkinPose(TimeValue) = 0;
Remarks:
Sets the state of all three animated normal pose transforms, subject to the “enabled” flags, at a particular time, to the non-animated skin pose transforms.
Parameters:
TimeValue
Time at which to set the normal pose transforms.
Prototype:
virtual void TMSetValue(TimeValue, SetXFormPacket&) = 0;
Remarks:
This is a utility method used to set value to the node transform. According to whether it is in the skin pose mode and the three “enabled” flags, it will set value to the TM controller or the skin pose transforms.
Parameters:
TimeValue
Time at which to set the pose transform.
SetXFormPacket&
Controller values for the transform.
Prototype:
Point3 SkinRotAngles() const;
Remarks:
Method to obtaion the Euler angles of the pose rotation.
Return Value:
Point3
The Euler angles about x, y, and z.
Prototype:
Point3 SkinScaleFactors () const;
Remarks:
Method to obtain the scale factors of the pose transformation.
Return Value:
Point3
The scale factors along the x, y, and z axes.
Prototype:
Quat SkinScaleOrient() const;
Remarks:
Method to obtain the scale factor orientation of the pose transformation.
Return Value:
Quat
The axis and angle of the scale factor orientation.
Prototype:
void SetSkinScale(const ScaleValue&);
Remarks:
Method to set the scale values for the pose transform.
Parameters:
ScaleValue&
The scale of the pose expressed as possibly unequal values along the principal axes of a coordinate system whose orientation is defined by a quaternion.
Prototype:
void SetSkinRotAngles(const Point3&);
Remarks:
Method to set the rotation angles for the pose transform.
Parameters:
Point3&
The Euler angles of the pose rotation.
Prototype:
bool ShowSkinPos() const;
Remarks:
Method to determine if the pose position component is enabled and the node is in the skin pose mode.
Return Value:
bool
If true, the position of the node transform will come from the skin pose.
If false, the position of the node transform comes from the normal TM controller.
Prototype:
bool ShowSkinRot() const;
Remarks:
Method to determine if the pose rotation component is enabled and the node is in the skin pose mode.
Return Value:
bool
If true, the rotation of the node transform will come from the skin pose.
If false, the rotation of the node transform comes from the normal TM controller.
Prototype:
bool ShowSkinScale() const;
Remarks:
Method to determine if the pose scale component is enabled and the node is in the skin pose mode.
Return Value:
bool
If true, the scale of the node transform will come from the skin pose.
If false, the scale of the node transform comes from the normal TM controller.
Prototype:
bool IsACompEnabled() const;
Remarks:
Method to determine if one or more pose components; position, rotation, or scale are enabled.
Return Value:
bool
If true, one or more components are enabled.
If false, none of the components are enabled.
Prototype:
virtual bool NeedToSave() const = 0;
Remarks:
Method to indicate that a post transform component has changed from the default and needs to be saved.
Return Value:
bool
If true, a pose component has changed.
If false, no pose component has changed.
Prototype:
virtual IOResult Save(ISave*) const = 0;
Remarks:
Method to write pose data to a file.
Parameters:
ISave*
Pointer for use in calling write methods.
Return Value:
IOResult
If IO_OK, the method succeeded.
If IO_ERROR, the method was unsuccessful.
Prototype:
virtual IOResult Load(ILoad*) = 0;
Remarks:
Method to read pose data from a file.
Parameters:
ILoad*
Pointer for use in calling read methods.
Return Value:
IOResult
If IO_OK, the method succeeded.
If IO_ERROR, the method was unsuccessful.
Prototype:
virtual void Copy(const ISkinPose&) = 0;
Remarks:
Method to copy data members from an existing ISkinPose instance to the current one.
Parameters:
ISkinPose&
Reference to instance of this class to copy from.
Prototype:
virtual const void* ObjectOf(void*) const = 0;
Remarks:
Determines whether this is a const object of a particular subclass derived from ISkinPose. It is used for the internal implementation purpose.
Parameters:
void*
Pointer to the subclass identifier to test.
Return Value:
void*
Const pointer to subclass.
Prototype:
virtual void* ObjectOf(void*) const = 0;
Remarks:
Determines whether this is an object of a particular subclass derived from ISkinPose. It is used for the internal implementation purpose.
Parameters:
void*
Pointer to the subclass identifier to test.
Return Value:
void*
Pointer to subclass.
Prototype:
FPInterfaceDesc* GetDesc();
Remarks:
Method to obtain the function publishing interface description.
Return Value:
FPInterfaceDesc *
Pointer to the interface descriptor.