KFbxLimits Class Reference

#include <kfbxnodelimits.h>

List of all members.


Detailed Description

KFbxLimits defines a limit range for one transform component (either translation, rotation or scaling).

One transform component limit contains two part: a min value and a max value limit, which means that each value of the corresponding transform component cannot go beyond the range set by the min and max values. KFbxLimits uses KFbxVector4 objects to store the range values. Although the members are identified as X, Y and Z (the W component is ignored) at this level, they are unitless values and will only have meaning within the context they are queried.

For each limit, there is one flag to indicate if the limit is active or not. Before accessing the limit info, the caller need to query the flag first to make sure that the retrieved values will be meaningful.

Definition at line 73 of file kfbxnodelimits.h.


Public Member Functions

  KFbxLimits (KMBTransform *pMBTransform=NULL)
  Constructor.
virtual  ~KFbxLimits ()
  Destructor.
void  SetLimitMinActive (const bool pXActive, const bool pYActive, const bool pZActive)
  Set the active state of min limit.
void  GetLimitMinActive (bool &pXActive, bool &pYActive, bool &pZActive) const
  Get the active states of the three components of the min limit.
void  SetLimitMaxActive (const bool pXActive, const bool pYActive, const bool pZActive)
  Set the active state of max limit.
void  GetLimitMaxActive (bool &pXActive, bool &pYActive, bool &pZActive) const
  Get the active states of the three components of the max limit.
bool  GetLimitSomethingActive () const
  Check if at least one of the active flags is set.
void  SetLimitMin (const KFbxVector4 &pMin)
  Set the min limit.
KFbxVector4  GetLimitMin () const
  Get the min limit.
void  SetLimitMax (const KFbxVector4 &pMax)
  Set the max limit.
KFbxVector4  GetLimitMax () const
  Get the max limit.
void  SetLimitedProperty (ELimitedProperty pProperty)
  Set the property that is limited.
ELimitedProperty  GetLimitedProperty () const
  Get the property that is limited.
KFbxLimits operator= (const KFbxLimits &pFbxLimit)
  Assignment operation.

Constructor & Destructor Documentation

KFbxLimits ( KMBTransform *  pMBTransform = NULL  ) 

Constructor.

Set the default limited property to eTRANSLATION. If pMBTransform is NULL, create one.

Parameters:
pMBTransform  The actual object that contains the limit data. KMBTransform defines three members: mRotationSpace, mTLimit and mSLimit. They are the actual limit data when the KFbxLimits object is used for rotation, translation or scale component.
So, if you define one KFbxLimits object with the following code:
 KMBTransform *pMBTransform;    //assume we have set this object correctly
 KFbxLimits lLimits(pMBTransform);
 lLimits.SetLimitedProperty(eScale);
Then we can Get/Set the scale limit in two ways:
 lLimits.SetLimitMinActive(false, false, true);
or:
 pMBTransform->mSLimit.SetXMinEnable(true);
 pMBTransform->mSLimit.SetYMinEnable(true);
 pMBTransform->mSLimit.SetZMinEnable(true);

In other words, the KFbxLimits class is simply a wrapper to the KMBTransform limit operation.

virtual ~KFbxLimits (  )  [virtual]

Destructor.


Member Function Documentation

void SetLimitMinActive ( const bool  pXActive,
const bool  pYActive,
const bool  pZActive  
)

Set the active state of min limit.

Parameters:
pXActive  Set to true, to activate the X component min limit.
pYActive  Set to true, to activate the Y component min limit.
pZActive  Set to true, to activate the Z component min limit.

void GetLimitMinActive ( bool &  pXActive,
bool &  pYActive,
bool &  pZActive  
) const

Get the active states of the three components of the min limit.

Parameters:
pXActive  true if the X component of the min limit is active.
pYActive  true if the Y component of the min limit is active.
pZActive  true if the Z component of the min limit is active.

void SetLimitMaxActive ( const bool  pXActive,
const bool  pYActive,
const bool  pZActive  
)

Set the active state of max limit.

Parameters:
pXActive  Set to true, to activate the X component max limit.
pYActive  Set to true, to activate the Y component max limit.
pZActive  Set to true, to activate the Z component max limit.

void GetLimitMaxActive ( bool &  pXActive,
bool &  pYActive,
bool &  pZActive  
) const

Get the active states of the three components of the max limit.

Parameters:
pXActive  true if the X component of the max limit is active.
pYActive  true if the Y component of the max limit is active.
pZActive  true if the Z component of the max limit is active.

bool GetLimitSomethingActive (  )  const

Check if at least one of the active flags is set.

Returns:
true if one of the six active flags is set.

void SetLimitMin ( const KFbxVector4 pMin  ) 

Set the min limit.

Parameters:
pMin  The X, Y and Z values to be set for the min limit.

KFbxVector4 GetLimitMin (  )  const

Get the min limit.

Returns:
The current X, Y and Z values for the min limit.

void SetLimitMax ( const KFbxVector4 pMax  ) 

Set the max limit.

Parameters:
pMax  The X, Y and Z values to be set for the max limit.

KFbxVector4 GetLimitMax (  )  const

Get the max limit.

Returns:
The current X, Y and Z values for the max limit.

void SetLimitedProperty ( ELimitedProperty  pProperty  )  [inline]

Set the property that is limited.

Parameters:
pProperty  The limited property: one of eTRANSLATION, eROTATION or eSCALE.

Definition at line 165 of file kfbxnodelimits.h.

ELimitedProperty GetLimitedProperty (  )  const [inline]

Get the property that is limited.

Returns:
The current limited property

Definition at line 173 of file kfbxnodelimits.h.

KFbxLimits& operator= ( const KFbxLimits pFbxLimit  ) 

Assignment operation.

Parameters:
pFbxLimit  Another KFbxLimits object to be assigned to this one.
KFbxLimits KFbxLimits KFbxLimits KFbxLimits KFbxLimits KFbxLimits KFbxLimits KFbxLimits KFbxLimits KFbxLimits
KFbxLimits KFbxLimits KFbxLimits KFbxLimits KFbxLimits KFbxLimits KFbxLimits KFbxLimits KFbxLimits KFbxLimits