Public Types | Public Member Functions | Static Public Member Functions

ISkinPose Class Reference

Search for all occurrences

Detailed Description

Description:
Interface class for setting and getting a special,

non-animated, transformation pose, SkinPose.

#include <iSkinPose.h>

Inheritance diagram for ISkinPose:
Inheritance graph
[legend]

List of all members.

Public Types

enum   FuncID {
  kSkinPosGet, kSkinPosSet, kSkinRotGet, kSkinRotSet,
  kSkinScaleGet, kSkinScaleSet, kSkinScaleOrientGet, kSkinScaleOrientSet,
  kSkinPosEnabledGet, kSkinPosEnabledSet, kSkinRotEnabledGet, kSkinRotEnabledSet,
  kSkinScaleEnabledGet, kSkinScaleEnabledSet, kSkinPoseModeGet, kSkinPoseModeSet,
  kSetSkinPose, kAssumeSkinPose
}

Public Member Functions

virtual Point3  SkinPos () const =0
virtual RotationValue  SkinRot () const =0
virtual ScaleValue  SkinScale () const =0
virtual void  SetSkinPos (const Point3 &)=0
virtual void  SetSkinRot (const RotationValue &)=0
virtual void  SetSkinRot (const Point3 &)=0
virtual void  SetSkinScaleFactors (const Point3 &)=0
virtual void  SetSkinScaleOrient (const Quat &)=0
virtual bool  IsSkinPosEnabled () const =0
virtual bool  IsSkinRotEnabled () const =0
virtual bool  IsSkinScaleEnabled () const =0
virtual bool  SkinPoseMode () const =0
virtual void  EnableSkinPos (bool)=0
virtual void  EnableSkinRot (bool)=0
virtual void  EnableSkinScale (bool)=0
virtual void  SetSkinPoseMode (bool)=0
virtual void  SetSkinPose (TimeValue)=0
virtual void  AssumeSkinPose (TimeValue)=0
virtual void  TMSetValue (TimeValue, SetXFormPacket &)=0
Point3  SkinRotAngles () const
Point3  SkinScaleFactors () const
Quat  SkinScaleOrient () const
void  SetSkinScale (const ScaleValue &sv)
void  SetSkinRotAngles (const Point3 &)
bool  ShowSkinPos () const
bool  ShowSkinRot () const
bool  ShowSkinScale () const
bool  IsACompEnabled () const
virtual bool  NeedToSave () const =0
virtual IOResult  Save (ISave *) const =0
virtual IOResult  Load (ILoad *)=0
virtual void  Copy (const ISkinPose &)=0
virtual const void *  ObjectOf (void *) const =0
virtual void *  ObjectOf (void *)=0
FPInterfaceDesc GetDesc ()

Static Public Member Functions

static ISkinPose GetISkinPose (INode &n)

Member Enumeration Documentation

enum FuncID
Enumerator:
kSkinPosGet 
kSkinPosSet 
kSkinRotGet 
kSkinRotSet 
kSkinScaleGet 
kSkinScaleSet 
kSkinScaleOrientGet 
kSkinScaleOrientSet 
kSkinPosEnabledGet 
kSkinPosEnabledSet 
kSkinRotEnabledGet 
kSkinRotEnabledSet 
kSkinScaleEnabledGet 
kSkinScaleEnabledSet 
kSkinPoseModeGet 
kSkinPoseModeSet 
kSetSkinPose 
kAssumeSkinPose 
                {
        kSkinPosGet, kSkinPosSet,
        kSkinRotGet, kSkinRotSet,
        kSkinScaleGet, kSkinScaleSet,
        kSkinScaleOrientGet, kSkinScaleOrientSet,
        // When SkinPosEnabled is false, SkinPoseMode, SetSkinPose, and
        // AssumeSkinPose will disregard the position component.
        // Similar to SkinRotEnabled and SkinScaleEnabled.
        kSkinPosEnabledGet, kSkinPosEnabledSet,
        kSkinRotEnabledGet, kSkinRotEnabledSet,
        kSkinScaleEnabledGet, kSkinScaleEnabledSet,
        kSkinPoseModeGet, kSkinPoseModeSet,
        kSetSkinPose,
        kAssumeSkinPose
    };

Member Function Documentation

static ISkinPose* GetISkinPose ( INode n ) [inline, static]
Remarks:
Method to obtain the interface pointer for a given INode.

Parameters:
INode& n

The node having the transformation pose.

Returns:
ISkinPose*

A pointer to this interface class.

                                             {
        return static_cast<ISkinPose*>(n.GetInterface(SKINPOSE_INTERFACE)); }
virtual Point3 SkinPos ( ) const [pure virtual]
Remarks:
Method to obtain the position part of the transformation pose.

Returns:
Point3

The position of the pose expressed as 3-vector (Point3).

virtual RotationValue SkinRot ( ) const [pure virtual]
Remarks:
Method to obtain the rotation part of the transformation pose.

Returns:
RotationValue

The rotation of the pose expressed as an RotationValue, which can be quaternion or Euler angle type.

virtual ScaleValue SkinScale ( ) const [pure virtual]
Remarks:
Method to obtain the scale part of the transformation pose.

Returns:
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.

virtual void SetSkinPos ( const Point3 ) [pure virtual]
Remarks:
Method to set the pose position to a given point.

Parameters:
Point3

The desired point for the pose.

virtual void SetSkinRot ( const RotationValue ) [pure virtual]
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.

virtual void SetSkinRot ( const Point3 ) [pure virtual]
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.

virtual void SetSkinScaleFactors ( const Point3 ) [pure virtual]
Remarks:
Method to set the potentially differing pose scale factors.

Parameters:
Point3

The point containing the scale factors x, y, and z.

virtual void SetSkinScaleOrient ( const Quat ) [pure virtual]
Remarks:
Method to set the orientation of the scale factor axes.

Parameters:
Quat&

The quaternion specifying the orientation of the scale factor axes.

virtual bool IsSkinPosEnabled ( ) const [pure virtual]
Remarks:
Method to determine if the pose position is enabled.

Returns:
bool

If true, the pose position is enabled.

If false, the pose position is disabled.

virtual bool IsSkinRotEnabled ( ) const [pure virtual]
Remarks:
Method to determine if the pose rotation is enabled.

Returns:
bool

If true, the pose rotation is enabled.

If false, the pose rotation is disabled.

virtual bool IsSkinScaleEnabled ( ) const [pure virtual]
Remarks:
Method to determine if the pose scale is enabled.

Returns:
bool

If true, the pose scale is enabled.

If false, the pose scale is disabled.

virtual bool SkinPoseMode ( ) const [pure virtual]
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.

Returns:
bool

If true, the node transformation is in the skin pose mode.

If false, it is in the normal mode.

virtual void EnableSkinPos ( bool  ) [pure virtual]
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.

virtual void EnableSkinRot ( bool  ) [pure virtual]
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.

virtual void EnableSkinScale ( bool  ) [pure virtual]
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.

virtual void SetSkinPoseMode ( bool  ) [pure virtual]
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.

virtual void SetSkinPose ( TimeValue  ) [pure virtual]
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.

virtual void AssumeSkinPose ( TimeValue  ) [pure virtual]
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.

virtual void TMSetValue ( TimeValue  ,
SetXFormPacket  
) [pure virtual]
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.

Point3 SkinRotAngles ( ) const [inline]
Remarks:
Method to obtaion the Euler angles of the pose rotation.

Returns:
Point3

The Euler angles about x, y, and z.

{
    return SkinRot().Euler() * RAD_TO_DEG;
}
Point3 SkinScaleFactors ( ) const [inline]
Remarks:
Method to obtain the scale factors of the pose transformation.

Returns:
Point3

The scale factors along the x, y, and z axes.

{
    return SkinScale().s;
}
Quat SkinScaleOrient ( ) const [inline]
Remarks:
Method to obtain the scale factor orientation of the pose transformation.

Returns:
Quat

The axis and angle of the scale factor orientation.

{
    return SkinScale().q;
}
void SetSkinScale ( const ScaleValue sv ) [inline]
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.
void SetSkinRotAngles ( const Point3 p ) [inline]
Remarks:
Method to set the rotation angles for the pose transform.

Parameters:
Point3&

The Euler angles of the pose rotation.

{
    SetSkinRot(p * DEG_TO_RAD);
}
bool ShowSkinPos ( ) const [inline]
Remarks:
Method to determine if the pose position component is enabled and the node is in the skin pose mode.

Returns:
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.

{
    return SkinPoseMode() && IsSkinPosEnabled();
}
bool ShowSkinRot ( ) const [inline]
Remarks:
Method to determine if the pose rotation component is enabled and the node is in the skin pose mode.

Returns:
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.

{
    return SkinPoseMode() && IsSkinRotEnabled();
}
bool ShowSkinScale ( ) const [inline]
Remarks:
Method to determine if the pose scale component is enabled and the node is in the skin pose mode.

Returns:
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.

{
    return SkinPoseMode() && IsSkinScaleEnabled();
}
bool IsACompEnabled ( ) const [inline]
Remarks:
Method to determine if one or more pose components; position, rotation, or scale are enabled.

Returns:
bool

If true, one or more components are enabled.

If false, none of the components are enabled.

virtual bool NeedToSave ( ) const [pure virtual]
Remarks:
Method to indicate that a post transform component has changed from the default and needs to be saved.

Returns:
bool

If true, a pose component has changed.

If false, no pose component has changed.

virtual IOResult Save ( ISave ) const [pure virtual]
Remarks:
Method to write pose data to a file.

Parameters:
ISave*

Pointer for use in calling write methods.

Returns:
IOResult

If IO_OK, the method succeeded.

If IO_ERROR, the method was unsuccessful.

virtual IOResult Load ( ILoad ) [pure virtual]
Remarks:
Method to read pose data from a file.

Parameters:
ILoad*

Pointer for use in calling read methods.

Returns:
IOResult

If IO_OK, the method succeeded.

If IO_ERROR, the method was unsuccessful.

virtual void Copy ( const ISkinPose ) [pure virtual]
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.

virtual const void* ObjectOf ( void *  ) const [pure virtual]
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.

Returns:
void*

Const pointer to subclass.

virtual void* ObjectOf ( void *  ) [pure virtual]
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.

Returns:
void*

Pointer to subclass.

FPInterfaceDesc* GetDesc ( ) [inline, virtual]
Remarks:
Method to obtain the function publishing interface description.

Returns:
FPInterfaceDesc *

Pointer to the interface descriptor.

Implements FPInterface.

{ return GetDescByID(SKINPOSE_INTERFACE); }

ISkinPose ISkinPose ISkinPose ISkinPose ISkinPose ISkinPose ISkinPose ISkinPose ISkinPose ISkinPose
ISkinPose ISkinPose ISkinPose ISkinPose ISkinPose ISkinPose ISkinPose ISkinPose ISkinPose ISkinPose