FbxNode Class Reference
 
 
 
FbxNode Class Reference

#include <fbxnode.h>


Class Description

Represents an element in the scene graph.

A scene graph is a tree of FbxNode objects. The tree management services are self contained in this class.

Note:
The FBX SDK does not test the validity of the constructed scene graph. It is the responsibility of the caller to make sure that it does not generate cyclic graphs in a node hierarchy.

Besides the tree management, this class defines all the properties required to describe the position of the object in the scene. This information include the basic Translation, Rotation and Scaling properties and the more advanced options for pivots, limits, and IK joints attributes such the stiffness and dampening.

When it is first created, the FbxNode object is "empty" (i.e: it is an object without any graphical representation that only contains the position information). In this state, it can be used to represent parents in the node tree structure but not much more. The normal use of this type of objects is to add them an attribute that will specialize the node (see the "Node Attribute Management" section).

The node attribute is an object in itself and is connected to the the FbxNode. This also means that the same node attribute can be shared among multiple nodes. FbxCamera, FbxLight, FbxMesh, etc... are all node attributes and they all derive from the base class FbxNodeAttribute.

Examples:

Camera/main.cxx, Common/GeometryUtility.cxx, Common/GeometryUtility.h, ExportDocument/main.cxx, ExportScene01/main.cxx, ExportScene02/main.cxx, ExportScene03/main.cxx, ExportScene04/main.cxx, ExportScene05/main.cxx, ExportShader/main.cxx, ImportScene/DisplayAnimation.cxx, ImportScene/DisplayAnimation.h, ImportScene/DisplayCamera.cxx, ImportScene/DisplayCamera.h, ImportScene/DisplayGenericInfo.cxx, ImportScene/DisplayHierarchy.cxx, ImportScene/DisplayHierarchy.h, ImportScene/DisplayLight.cxx, ImportScene/DisplayLight.h, ImportScene/DisplayLodGroup.cxx, ImportScene/DisplayLodGroup.h, ImportScene/DisplayMarker.cxx, ImportScene/DisplayMarker.h, ImportScene/DisplayMaterial.cxx, ImportScene/DisplayMesh.cxx, ImportScene/DisplayMesh.h, ImportScene/DisplayNurb.cxx, ImportScene/DisplayNurb.h, ImportScene/DisplayPatch.cxx, ImportScene/DisplayPatch.h, ImportScene/DisplayPivotsAndLimits.cxx, ImportScene/DisplayPivotsAndLimits.h, ImportScene/DisplaySkeleton.cxx, ImportScene/DisplaySkeleton.h, ImportScene/main.cxx, Instances/main.cxx, Layers/main.cxx, MyOwnWriterReader/MyOwnReader.cxx, MyOwnWriterReader/MyOwnWriter.cxx, MyOwnWriterReader/MyOwnWriter.h, Normals/main.cxx, Pivot/main.cxx, ProceduralTexture/main.cxx, StereoCamera/main.cxx, Transformations/main.cxx, UI_Examples/CubeCreator/SDK_Utility.cxx, UI_Examples/CubeCreator/SDK_Utility.h, UI_Examples/CubeCreator/UI.cxx, UI_Examples/SceneTreeView/SDK_Utility.cxx, UI_Examples/SceneTreeView/SDK_Utility.h, UI_Examples/SceneTreeView/UI.cxx, UserProperties/main.cxx, UVSample/main.cxx, ViewScene/DrawScene.cxx, ViewScene/DrawScene.h, ViewScene/GetPosition.cxx, ViewScene/GetPosition.h, ViewScene/SceneContext.cxx, ViewScene/SceneContext.h, and ViewScene/SetCamera.cxx.

Definition at line 72 of file fbxnode.h.

Inheritance diagram for FbxNode:
FbxObject FbxEmitter

List of all members.

Public Member Functions

bool  GetAnimationInterval (FbxTimeSpan &pInterval, FbxAnimStack *pAnimStack=NULL, int pAnimLayerId=0)
  Find out start and end time of the animation curves for this node (and its children).
Node Tree Management
FbxNode GetParent ()
  Get the parent node.
const FbxNode GetParent () const
bool  AddChild (FbxNode *pNode)
  Add a child node and its underlying node tree.
FbxNode RemoveChild (FbxNode *pNode)
  Remove the child node.
int  GetChildCount (bool pRecursive=false) const
  Get the number of children nodes.
FbxNode GetChild (int pIndex)
  Get child by index.
const FbxNode GetChild (int pIndex) const
  Get child by index.
FbxNode FindChild (const char *pName, bool pRecursive=true, bool pInitial=false)
  Finds a child node by name.
Node Target Management

The FbxNode class allows the client to set a "follow" target node.

This target forces the node to re-align itself so it points to the target. By default, the node uses its X axis as the aiming constraint. A rotation offset can be added to change this behavior. While the default relative orientation to the target (the X axis) is sufficient for the FBX cameras (with a (0,0,0) rotation vector, they are aiming along the X axis), this rotation offset becomes particularly useful with the lights objects because their default orientation (when they have a 0,0,0 rotation vector) is to point along the -Y axis and they need to be adjusted with a 90-degree offset on the Z axis.

The FbxNode class also permits the use of node to define an Up-vector. By default, the node's up vector points towards the Up node. If the Up node is not specified, then the node's Up vector points towards the Y axis. Here too, a rotation offset can be added to change the default behavior.

Of course, these offsets can be applied to anything, not only the cameras and lights.

Note:
Objects in the FBX SDK are always created in the right handed, Y-Up system and need to be adjusted for any other axis system by explicitly convert them (the class FbxAxisSystem can help in that process).
void  SetTarget (FbxNode *pNode)
  The target must be part of the same scene and it cannot be itself.
FbxNode GetTarget () const
  Get the target for this node.
void  SetPostTargetRotation (FbxVector4 pVector)
  Set rotation offset from default relative orientation to target.
FbxVector4  GetPostTargetRotation () const
  Get rotation offset from default relative orientation to target.
void  SetTargetUp (FbxNode *pNode)
  The target up node must be part of the same scene and it cannot be itself.
FbxNode GetTargetUp () const
  Get the target up node.
void  SetTargetUpVector (FbxVector4 pVector)
  Set up vector offset from default relative target up vector.
FbxVector4  GetTargetUpVector () const
  Get up vector offset from default relative target up vector.
Node Attribute Management
FbxNodeAttribute SetNodeAttribute (FbxNodeAttribute *pNodeAttribute)
  Set the node attribute.
FbxNodeAttribute GetNodeAttribute ()
  Get the default node attribute.
const FbxNodeAttribute GetNodeAttribute () const
  Get the default node attribute.
int  GetNodeAttributeCount () const
  Get the number of node attribute(s) connected to this node.
int  GetDefaultNodeAttributeIndex () const
  Get the index, in the list of connected node attributes, of the node attribute that is set to be the default one.
bool  SetDefaultNodeAttributeIndex (int pIndex, FbxStatus *pStatus=NULL)
  Set index of the default node attribute.
FbxNodeAttribute GetNodeAttributeByIndex (int pIndex)
  Get the connected node attribute by specifying its index in the connection list.
const FbxNodeAttribute GetNodeAttributeByIndex (int pIndex) const
  Get the connected node attribute by specifying its index in the connection list.
int  GetNodeAttributeIndex (FbxNodeAttribute *pNodeAttribute, FbxStatus *pStatus=NULL) const
  Get the connection index of the specified node attribute.
bool  AddNodeAttribute (FbxNodeAttribute *pNodeAttribute, FbxStatus *pStatus=NULL)
  Add the new node attribute to this node.
FbxNodeAttribute RemoveNodeAttribute (FbxNodeAttribute *pNodeAttribute)
  Remove the node attribute from the connection list of this node.
FbxNodeAttribute RemoveNodeAttributeByIndex (int pIndex)
  Remove the node attribute, specified by the connection index, from the connection list of this node.
FbxCachedEffect GetCachedEffect ()
  Get the default node attribute casted to a FbxCachedEffect pointer.
FbxLODGroup GetLodGroup ()
  Get the default node attribute casted to a FbxLODGroup pointer.
FbxNull GetNull ()
  Get the default node attribute casted to a FbxNull pointer.
FbxMarker GetMarker ()
  Get the node attribute casted to a FbxMarker pointer.
FbxSkeleton GetSkeleton ()
  Get the node attribute casted to a FbxSkeleton pointer.
FbxGeometry GetGeometry ()
  Get the node attribute casted to a FbxGeometry pointer.
FbxMesh GetMesh ()
  Get the node attribute casted to a FbxMesh pointer.
FbxNurbs GetNurbs ()
  Get the node attribute casted to a FbxNurbs pointer.
FbxNurbsSurface GetNurbsSurface ()
  Get the node attribute casted to a FbxNurbsSurface pointer.
FbxNurbsCurve GetNurbsCurve ()
  Get the node attribute casted to a FbxNurbsCurve pointer.
FbxLine GetLine ()
  Get the node attribute casted to a FbxLine pointer.
FbxTrimNurbsSurface GetTrimNurbsSurface ()
  Get the node attribute casted to a FbxTrimNurbsSurface pointer.
FbxSubDiv *  GetSubdiv ()
  Get the node attribute casted to a FbxSubDiv pointer.
FbxPatch GetPatch ()
  Get the node attribute casted to a FbxPatch pointer.
FbxCamera GetCamera ()
  Get the node attribute casted to a FbxCamera pointer.
const FbxCamera GetCamera () const
FbxCameraStereo GetCameraStereo ()
  Get the node attribute casted to a FbxCameraStereo pointer.
FbxCameraSwitcher GetCameraSwitcher ()
  Get the node attribute casted to a FbxCameraSwitcher pointer.
FbxLight GetLight ()
  Get the node attribute casted to a FbxLight pointer.
const FbxLight GetLight () const
FbxOpticalReference GetOpticalReference ()
  Get the node attribute casted to a FbxOpticalReference pointer.
Transformation propagation

This set of functions provides direct access to the transformation propagations settings of the FbxNode.

These settings determine how transformations must be applied when evaluating a node's transformation matrix. The possible values are:

  • eInheritRrSs : Scaling of parent is applied in the child world after the local child rotation.
  • eInheritRSrs : Scaling of parent is applied in the parent world.
  • eInheritRrs : Scaling of parent does not affect the scaling of children.
void  SetTransformationInheritType (FbxTransform::EInheritType pInheritType)
  Sets how child transforms are inherited from parent transforms.
void  GetTransformationInheritType (FbxTransform::EInheritType &pInheritType) const
  Get transformation inherit type.
Node Transform Evaluation
FbxAMatrix EvaluateGlobalTransform (FbxTime pTime=FBXSDK_TIME_INFINITE, FbxNode::EPivotSet pPivotSet=FbxNode::eSourcePivot, bool pApplyTarget=false, bool pForceEval=false)
  Returns this node's global transformation matrix at the specified time.
FbxAMatrix EvaluateLocalTransform (FbxTime pTime=FBXSDK_TIME_INFINITE, FbxNode::EPivotSet pPivotSet=FbxNode::eSourcePivot, bool pApplyTarget=false, bool pForceEval=false)
  Returns this node's local transformation matrix at the specified time.
FbxVector4 EvaluateLocalTranslation (FbxTime pTime=FBXSDK_TIME_INFINITE, FbxNode::EPivotSet pPivotSet=FbxNode::eSourcePivot, bool pApplyTarget=false, bool pForceEval=false)
  Returns this node's LclTranslation property at the specified time.
FbxVector4 EvaluateLocalRotation (FbxTime pTime=FBXSDK_TIME_INFINITE, FbxNode::EPivotSet pPivotSet=FbxNode::eSourcePivot, bool pApplyTarget=false, bool pForceEval=false)
  Returns this node's LclRotation property at the specified time.
FbxVector4 EvaluateLocalScaling (FbxTime pTime=FBXSDK_TIME_INFINITE, FbxNode::EPivotSet pPivotSet=FbxNode::eSourcePivot, bool pApplyTarget=false, bool pForceEval=false)
  Returns this node's LclScaling property at the specified time.
Character Link
int  GetCharacterLinkCount () const
  Get number of character links.
bool  GetCharacterLink (int pIndex, FbxCharacter **pCharacter, int *pCharacterLinkType, int *pNodeId, int *pNodeSubId)
  Get character link at given index.
int  FindCharacterLink (FbxCharacter *pCharacter, int pCharacterLinkType, int pNodeId, int pNodeSubId) const
  Looks if the given character link exists on this node.
Material Management
int  AddMaterial (FbxSurfaceMaterial *pMaterial)
  Add a material to this node.
bool  RemoveMaterial (FbxSurfaceMaterial *pMaterial)
  Remove a material from this node.
int  GetMaterialCount () const
FbxSurfaceMaterial GetMaterial (int pIndex) const
  Access a material on this node.
void  RemoveAllMaterials ()
  Remove all materials applied to this node.
int  GetMaterialIndex (const char *pName) const
  Find an applied material with the given name.

Public Attributes

Public and fast access Properties
FbxPropertyT< FbxDouble3 LclTranslation
  This property contains the translation information of the node.
FbxPropertyT< FbxDouble3 LclRotation
  This property contains the rotation information of the node.
FbxPropertyT< FbxDouble3 LclScaling
  This property contains the scaling information of the node.
FbxPropertyT< FbxDouble Visibility
  This property contains the visibility information of the node.
FbxPropertyT< FbxBool VisibilityInheritance
  This property contains the visibility inheritance flag that allow applications to modify the Visibility property interpretation.
FbxPropertyT< EFbxQuatInterpMode QuaternionInterpolate
  This property contains the quaternion interpolate flag of the node.
FbxPropertyT< FbxDouble3 RotationOffset
  This property contains the rotation offset information of the node.
FbxPropertyT< FbxDouble3 RotationPivot
  This property contains the rotation pivot information of the node.
FbxPropertyT< FbxDouble3 ScalingOffset
  This property contains the scaling offset information of the node.
FbxPropertyT< FbxDouble3 ScalingPivot
  This property contains the scaling pivot information of the node.
FbxPropertyT< FbxBool TranslationActive
  This property enables or disables the limit on translation.
FbxPropertyT< FbxDouble3 TranslationMin
  This property sets the minimum translation values the object can occupy on each individual axis.
FbxPropertyT< FbxDouble3 TranslationMax
  This property sets the maximum translation values the object can occupy on each individual axis.
FbxPropertyT< FbxBool TranslationMinX
  This property enables or disables the limit on translation X.
FbxPropertyT< FbxBool TranslationMinY
  This property enables or disables the limit on translation Y.
FbxPropertyT< FbxBool TranslationMinZ
  This property enables or disables the limit on translation Z.
FbxPropertyT< FbxBool TranslationMaxX
  This property enables or disables the limit on translation X.
FbxPropertyT< FbxBool TranslationMaxY
  This property enables or disables the limit on translation Y.
FbxPropertyT< FbxBool TranslationMaxZ
  This property enables or disables the limit on translation Z.
FbxPropertyT< EFbxRotationOrder RotationOrder
  This property contains the rotation order information of the node.
FbxPropertyT< FbxBool RotationSpaceForLimitOnly
  This property contains the rotation space for limit only flag of the node.
FbxPropertyT< FbxDouble RotationStiffnessX
  This property contains the x value of the rotation stiffness of the node.
FbxPropertyT< FbxDouble RotationStiffnessY
  This property contains the y value of the rotation stiffness of the node.
FbxPropertyT< FbxDouble RotationStiffnessZ
  This property contains the z value of the rotation stiffness of the node.
FbxPropertyT< FbxDouble AxisLen
  This property contains axis length information of the node.
FbxPropertyT< FbxDouble3 PreRotation
  This property contains pre-rotation information of the node.
FbxPropertyT< FbxDouble3 PostRotation
  This property contains post-rotation information of the node.
FbxPropertyT< FbxBool RotationActive
  This property enables or disables the limit on rotation.
FbxPropertyT< FbxDouble3 RotationMin
  This property sets the minimum rotation values the object can occupy on each individual axis.
FbxPropertyT< FbxDouble3 RotationMax
  This property sets the maximum rotation values the object can occupy on each individual axis.
FbxPropertyT< FbxBool RotationMinX
  This property enables or disables the limit on rotation X.
FbxPropertyT< FbxBool RotationMinY
  This property enables or disables the limit on rotation Y.
FbxPropertyT< FbxBool RotationMinZ
  This property enables or disables the limit on rotation Z.
FbxPropertyT< FbxBool RotationMaxX
  This property enables or disables the limit on rotation X.
FbxPropertyT< FbxBool RotationMaxY
  This property enables or disables the limit on rotation Y.
FbxPropertyT< FbxBool RotationMaxZ
  This property enables or disables the limit on rotation Z.
FbxPropertyT
< FbxTransform::EInheritType
InheritType
  This property contains inherit type information of the node.
FbxPropertyT< FbxBool ScalingActive
  This property enables or disables the limit on scaling.
FbxPropertyT< FbxDouble3 ScalingMin
  This property sets the minimum scaling values the object can occupy on each individual axis.
FbxPropertyT< FbxDouble3 ScalingMax
  This property sets the maximum scaling values the object can occupy on each individual axis.
FbxPropertyT< FbxBool ScalingMinX
  This property activates or disables the limit on scaling X.
FbxPropertyT< FbxBool ScalingMinY
  This property enables or disables the limit on scaling Y.
FbxPropertyT< FbxBool ScalingMinZ
  This property enables or disables the limit on scaling Z.
FbxPropertyT< FbxBool ScalingMaxX
  This property enables or disables the limit on scaling X.
FbxPropertyT< FbxBool ScalingMaxY
  This property enables or disables the limit on scaling Y.
FbxPropertyT< FbxBool ScalingMaxZ
  This property enables or disables the limit on scaling Z.
FbxPropertyT< FbxDouble3 GeometricTranslation
  This property contains geometric translation information of the node.
FbxPropertyT< FbxDouble3 GeometricRotation
  This property contains geometric rotation information of the node.
FbxPropertyT< FbxDouble3 GeometricScaling
  This property contains geometric scaling information of the node.
FbxPropertyT< FbxDouble MinDampRangeX
  This property contains the x component of the minimum damp range angles of the node.
FbxPropertyT< FbxDouble MinDampRangeY
  This property contains the y component of the minimum damp range angles of the node.
FbxPropertyT< FbxDouble MinDampRangeZ
  This property contains the z component of the minimum damp range angles of the node.
FbxPropertyT< FbxDouble MaxDampRangeX
  This property contains the x component of the maximum damp range angles of the node.
FbxPropertyT< FbxDouble MaxDampRangeY
  This property contains the y component of the maximum damp range angles of the node.
FbxPropertyT< FbxDouble MaxDampRangeZ
  This property contains the z component of the maximum damp range angles of the node.
FbxPropertyT< FbxDouble MinDampStrengthX
  This property contains the x component of the minimum damp strength of the node.
FbxPropertyT< FbxDouble MinDampStrengthY
  This property contains the y component of the minimum damp strength of the node.
FbxPropertyT< FbxDouble MinDampStrengthZ
  This property contains the z component of the minimum damp strength of the node.
FbxPropertyT< FbxDouble MaxDampStrengthX
  This property contains the x component of the maximum damp strength of the node.
FbxPropertyT< FbxDouble MaxDampStrengthY
  This property contains the y component of the maximum damp strength of the node.
FbxPropertyT< FbxDouble MaxDampStrengthZ
  This property contains the z component of the maximum damp strength of the node.
FbxPropertyT< FbxDouble PreferedAngleX
  This property contains the x component of the preferred angle of the node.
FbxPropertyT< FbxDouble PreferedAngleY
  This property contains the y component of the preferred angle of the node.
FbxPropertyT< FbxDouble PreferedAngleZ
  This property contains the z component of the preferred angle of the node.
FbxPropertyT< FbxReference LookAtProperty
  This property contains lookat property of the node.
FbxPropertyT< FbxReference UpVectorProperty
  This property contains the up vector property of the node.
FbxPropertyT< FbxBool Show
  This property contains the show information of the node.
FbxPropertyT< FbxBool NegativePercentShapeSupport
  This property contains negative percent shape support information of the node.
FbxPropertyT< FbxInt DefaultAttributeIndex
  This property contains default attribute index information of the node.
FbxPropertyT< FbxBool Freeze
  This property contains manipulation state information of the node.
FbxPropertyT< FbxBool LODBox
  This property contains level of detail mode information of the node.

Node Display Parameters

enum   EShadingMode {
  eHardShading, eWireFrame, eFlatShading, eLightShading,
  eTextureShading, eFullShading
}
  Shading modes. More...
void  SetVisibility (bool pIsVisible)
  Set the node Visibility value from the boolean parameter.
bool  GetVisibility () const
  Get the current value of the Visibility property.
void  SetShadingMode (EShadingMode pShadingMode)
  Set the shading mode.
EShadingMode  GetShadingMode () const
  Get the shading mode.

Pivot Management

Pivots are used to specify translation, rotation and scaling centers in coordinates relative to a node's origin.

A node has two pivot contexts defined by the EPivotSet enumeration. The node's animation data can be converted from one pivot context to the other. Each context can be set to be either active or passive (reference). By default the two pivot contexts are passive. They need to be active to be processed during the evaluation of the node final transformation matrix. In its passive state, a pivot context can still be accessed to retrieve its content for any other required purpose. Each pivot context stores values (as FbxVector4) for:

     - Rotation offset (Roff)
     - Rotation pivot (Rp)
     - Pre-rotation (Rpre)
     - Post-rotation (Rpost)
     - Scaling offset (Soff)
     - Scaling pivot (Sp)
     - Geometric translation (Gt)
     - Geometric rotation (Gr)
     - Geometric scaling (Gs)
 
 These values combine in the matrix form to compute the World transform of the node 
 using the formula:

        World = ParentWorld * T * Roff * Rp * Rpre * R * Rpost * Rp-1 * Soff * Sp * S * Sp-1

The geometric transformation (Gt * Gr * Gs) is applied only to the node attribute and after the node transformations. This transformation is not inherited across the node hierarchy.

Note:
Please refer to the FBX SDK programmers guide for more details.

The application of the pivots is performed by calling the method ConvertPivotAnimation(). Typically, you set-up the eDestinationPivot context to match what your system can directly support and leave at (0,0,0) the attributes that are not supported by your system. When the values of a specific attribute in the two contexts (source and destination) are identical, the system considers that no adjustment is required because the attribute is directly supported in the destination world.

Below is an example of code that shows how the pivot information could be setup before calling ConvertPivotAnimation().

 FbxVector4 lZero(0,0,0);
 FbxVector4 lOne(1,1,1);
 pNode->SetPivotState(FbxNode::eSourcePivot, FbxNode::ePivotActive);
 pNode->SetPivotState(FbxNode::eDestinationPivot, FbxNode::ePivotActive);
        
 EFbxRotationOrder lRotationOrder;
 pNode->GetRotationOrder(FbxNode::eSourcePivot , lRotationOrder);
 pNode->SetRotationOrder(FbxNode::eDestinationPivot , lRotationOrder);

 //For cameras and lights (without targets) let's compensate the postrotation.
 if( pNode->GetCamera() || pNode->GetLight() )
 {
    if( !pNode->GetTarget() )
    {
        FbxVector4 lRV(90, 0, 0);
        if( pNode->GetCamera() )
           lRV.Set(0, 90, 0);

        FbxVector4 prV = pNode->GetPostRotation(FbxNode::eSourcePivot);
        FbxAMatrix lSourceR;
        FbxAMatrix lR(lZero, lRV, lOne);
        FbxVector4 res = prV;

        // Rotation order don't affect post rotation, so just use the default XYZ order
        FbxRotationOrder rOrder;
        rOrder.V2M(lSourceR, res);

        lR = lSourceR * lR;
        rOrder.M2V(res, lR);
        prV = res;
        pNode->SetPostRotation(FbxNode::eSourcePivot, prV);
        pNode->SetRotationActive(true);
    }

    // Point light do not need to be adjusted (since they radiate in all the directions).
    if( pNode->GetLight() && pNode->GetLight()->LightType.Get() == FbxLight::ePoint )
    {
        pNode->SetPostRotation(FbxNode::eSourcePivot, FbxVector4(0,0,0,0));
    }
 }
 // apply Pre rotations only on bones / end of chains
 if( pNode->GetNodeAttribute() && pNode->GetNodeAttribute()->GetAttributeType() == FbxNodeAttribute::eSkeleton
    || (pNode->GetMarker() && pNode->GetMarker()->GetType() == FbxMarker::eEffectorFK)
    || (pNode->GetMarker() && pNode->GetMarker()->GetType() == FbxMarker::eEffectorIK) )
 {
    if( pNode->GetRotationActive() )
    {
       pNode->SetPreRotation(FbxNode::eDestinationPivot, pNode->GetPreRotation(FbxNode::eSourcePivot));
    }
                                    
    // No pivots on bones
    pNode->SetRotationPivot(FbxNode::eDestinationPivot, lZero);    
    pNode->SetScalingPivot(FbxNode::eDestinationPivot, lZero);    
    pNode->SetRotationOffset(FbxNode::eDestinationPivot,lZero);    
    pNode->SetScalingOffset(FbxNode::eDestinationPivot, lZero);
 }
 else
 {
    // any other type: no pre-rotation support but...
    pNode->SetPreRotation(FbxNode::eDestinationPivot, lZero);
       
    // support for rotation and scaling pivots.
    pNode->SetRotationPivot(FbxNode::eDestinationPivot, pNode->GetRotationPivot(FbxNode::eSourcePivot));    
    pNode->SetScalingPivot(FbxNode::eDestinationPivot, pNode->GetScalingPivot(FbxNode::eSourcePivot));    
    // Rotation and scaling offset are supported
    pNode->SetRotationOffset(FbxNode::eDestinationPivot, pNode->GetRotationOffset(FbxNode::eSourcePivot));    
    pNode->SetScalingOffset(FbxNode::eDestinationPivot, pNode->GetScalingOffset(FbxNode::eSourcePivot));
    //
    // If we don't "support" scaling pivots, we can simply do:
    // pNode->SetRotationPivot(FbxNode::eDestinationPivot, lZero);
    // pNode->SetScalingPivot(FbxNode::eDestinationPivot, lZero);
 }
enum   EPivotSet { eSourcePivot, eDestinationPivot }
  Pivot context identifier. More...
enum   EPivotState { ePivotActive, ePivotReference }
  Pivot context state. More...
void  SetPivotState (EPivotSet pPivotSet, EPivotState pPivotState)
  Change the state of the pivot context.
void  GetPivotState (EPivotSet pPivotSet, EPivotState &pPivotState) const
  Get the pivot context state.
void  SetRotationOrder (EPivotSet pPivotSet, EFbxRotationOrder pRotationOrder)
  Set rotation space Determine the rotation space (Euler or Spheric) and the rotation order.
void  GetRotationOrder (EPivotSet pPivotSet, EFbxRotationOrder &pRotationOrder) const
  Get rotation order.
void  SetUseRotationSpaceForLimitOnly (EPivotSet pPivotSet, bool pUseForLimitOnly)
  Set rotation space for limit only.
bool  GetUseRotationSpaceForLimitOnly (EPivotSet pPivotSet) const
  Get rotation space for limit only.
void  SetRotationActive (bool pVal)
  Set the RotationActive state.
bool  GetRotationActive () const
  Get the RotationActive state.
void  SetQuaternionInterpolation (EPivotSet pPivotSet, EFbxQuatInterpMode pQuatIterp)
  Specify which Quaternion interpolation mode is used on the pivot context.
EFbxQuatInterpMode  GetQuaternionInterpolation (EPivotSet pPivotSet) const
  Get the Quaternion interpolation mode of the pivot context.
void  SetRotationStiffness (FbxVector4 pRotationStiffness)
  Set the rotation stiffness.
FbxVector4  GetRotationStiffness () const
  Get the rotation stiffness.
void  SetMinDampRange (FbxVector4 pMinDampRange)
  Set the minimum damp range angles.
FbxVector4  GetMinDampRange () const
  Get the minimum damp range angles.
void  SetMaxDampRange (FbxVector4 pMaxDampRange)
  Set the maximum damp range angles.
FbxVector4  GetMaxDampRange () const
  Get the maximum damp range angles.
void  SetMinDampStrength (FbxVector4 pMinDampStrength)
  Set the minimum damp strength.
FbxVector4  GetMinDampStrength () const
  Get the minimum damp strength.
void  SetMaxDampStrength (FbxVector4 pMaxDampStrength)
  Set the maximum damp strength.
FbxVector4  GetMaxDampStrength () const
  Get the maximum damp strength.
void  SetPreferedAngle (FbxVector4 pPreferedAngle)
  Set the preferred angle.
FbxVector4  GetPreferedAngle () const
  Get the preferred angle.
void  SetRotationOffset (EPivotSet pPivotSet, FbxVector4 pVector)
  Set a translation offset for the rotation pivot.
const FbxVector4 GetRotationOffset (EPivotSet pPivotSet) const
  Get the translation offset for the rotation pivot.
void  SetRotationPivot (EPivotSet pPivotSet, FbxVector4 pVector)
  Set rotation pivot.
const FbxVector4 GetRotationPivot (EPivotSet pPivotSet) const
  Get rotation pivot.
void  SetPreRotation (EPivotSet pPivotSet, FbxVector4 pVector)
  Set pre-rotation in Euler angles.
const FbxVector4 GetPreRotation (EPivotSet pPivotSet) const
  Get pre-rotation in Euler angles.
void  SetPostRotation (EPivotSet pPivotSet, FbxVector4 pVector)
  Set post-rotation in Euler angles.
const FbxVector4 GetPostRotation (EPivotSet pPivotSet) const
  Get post-rotation in Euler angles.
void  SetScalingOffset (EPivotSet pPivotSet, FbxVector4 pVector)
  Set a translation offset for the scaling pivot.
const FbxVector4 GetScalingOffset (EPivotSet pPivotSet) const
  Get the translation offset for the scaling pivot.
void  SetScalingPivot (EPivotSet pPivotSet, FbxVector4 pVector)
  Set scaling pivot.
const FbxVector4 GetScalingPivot (EPivotSet pPivotSet) const
  Get scaling pivot.
void  SetGeometricTranslation (EPivotSet pPivotSet, FbxVector4 pVector)
  Set geometric translation The geometric translation is a local translation that is applied to a node attribute only.
FbxVector4  GetGeometricTranslation (EPivotSet pPivotSet) const
  Get geometric translation.
void  SetGeometricRotation (EPivotSet pPivotSet, FbxVector4 pVector)
  Set geometric rotation The geometric rotation is a local rotation that is applied to a node attribute only.
FbxVector4  GetGeometricRotation (EPivotSet pPivotSet) const
  Get geometric rotation.
void  SetGeometricScaling (EPivotSet pPivotSet, FbxVector4 pVector)
  Set geometric scaling The geometric scaling is a local scaling that is applied to a node attribute only.
FbxVector4  GetGeometricScaling (EPivotSet pPivotSet) const
  Get geometric scaling.
void  ResetPivotSet (FbxNode::EPivotSet pPivotSet)
  Reset a pivot set to the default pivot context.
FBX_DEPRECATED void  ConvertPivotAnimation (EPivotSet pConversionTarget, double pFrameRate, bool pKeyReduce=true)
  Recursively convert the animation data according to pivot settings.
void  ConvertPivotAnimationRecursive (const char *pAnimStackName, EPivotSet pConversionTarget, double pFrameRate, bool pKeyReduce=true)
  This version is an improved version of the ConvertPivotAnimation().
void  ResetPivotSetAndConvertAnimation (double pFrameRate=30.0, bool pKeyReduce=false, bool pToNodeCenter=true, bool pForceResetLimits=false)
  Reset all the pivot sets to the default pivot context and convert the animation.
void  SetRotationPivotAsCenterRecursive (FbxVector4 pParentGeometricOffset=FbxVector4())
  Set rotation pivot as node center recursively.

Member Enumeration Documentation

Shading modes.

These shading modes are not directly used by the FBX SDK but it is guaranteed that the information is carried to and from the FBX files. The typical context of using these modes is to affect the rendering of geometric objects (this is, of course, performed at the application level) and the possible definition for each mode is:

Enumerator:
eHardShading 

Solid geometries rendered with smooth surfaces - using the system light.

eWireFrame 

Geometries displayed in wire frame.

eFlatShading 

Solid geometries rendered faceted - using the system light.

eLightShading 

Solid geometries rendered with the scene lights.

eTextureShading 

Solid geometries rendered with smooth textured surfaces - using system light.

eFullShading 

Solid geometries rendered with smooth textured surfaces and scene lights.

Definition at line 227 of file fbxnode.h.

enum EPivotSet

Pivot context identifier.

Enumerator:
eSourcePivot 

The source pivot context.

eDestinationPivot 

The destination pivot context.

Definition at line 653 of file fbxnode.h.

Pivot context state.

Enumerator:
ePivotActive 

The pivot context with this state is affecting the node's transform computation.

ePivotReference 

The pivot context with this state is not used during the node transform computation but can be accessed for reference purposes.

Definition at line 661 of file fbxnode.h.


Member Function Documentation

FbxNode* GetParent ( )

Get the parent node.

Returns:
Pointer to parent node or NULL if the current node has no parent.
Examples:
ExportScene01/main.cxx, ExportScene05/main.cxx, Transformations/main.cxx, ViewScene/DrawScene.cxx, and ViewScene/GetPosition.cxx.
const FbxNode* GetParent ( ) const
bool AddChild ( FbxNode pNode )

Add a child node and its underlying node tree.

Parameters:
pNode Node we want to make child of this.
Returns:
true on success, false if pNode is NULL or the system is unable to make the connection.
Remarks:
If pNode already has a parent, first it is removed from current parent and then added to this one.
Examples:
Common/GeometryUtility.cxx, ExportScene01/main.cxx, ExportScene02/main.cxx, ExportScene03/main.cxx, ExportScene04/main.cxx, ExportScene05/main.cxx, ExportShader/main.cxx, Instances/main.cxx, Layers/main.cxx, MyOwnWriterReader/MyOwnReader.cxx, ProceduralTexture/main.cxx, UI_Examples/CubeCreator/SDK_Utility.cxx, and UserProperties/main.cxx.
FbxNode* RemoveChild ( FbxNode pNode )

Remove the child node.

Parameters:
pNode The child node to be removed.
Returns:
The removed child node.
const FbxNode* GetChild ( int  pIndex ) const

Get child by index.

Parameters:
pIndex The child index.
Returns:
Child node or NULL if pIndex is out of range (i.e: < 0 or > GetChildCount()).
FbxNode* FindChild ( const char *  pName,
bool  pRecursive = true,
bool  pInitial = false 
)

Finds a child node by name.

Parameters:
pName Name of the searched child node.
pRecursive Flag to request recursive calls.
pInitial If set to true, the search compares the initial name of the node (see the FbxObject class)
Returns:
Found child node or NULL if no child node with this name exists.
Examples:
MyOwnWriterReader/MyOwnReader.cxx.
void SetTarget ( FbxNode pNode )

The target must be part of the same scene and it cannot be itself.

Parameters:
pNode The target.
Examples:
ExportScene04/main.cxx, and UI_Examples/CubeCreator/SDK_Utility.cxx.
FbxNode* GetTarget ( ) const

Get the target for this node.

Returns:
NULL if target isn't set.
Examples:
ImportScene/DisplayCamera.cxx, ImportScene/main.cxx, ViewScene/DrawScene.cxx, and ViewScene/SetCamera.cxx.
void SetPostTargetRotation ( FbxVector4  pVector )

Set rotation offset from default relative orientation to target.

Parameters:
pVector The rotation offset.
FbxVector4 GetPostTargetRotation ( ) const

Get rotation offset from default relative orientation to target.

Returns:
The rotation offset.
void SetTargetUp ( FbxNode pNode )

The target up node must be part of the same scene and it cannot be itself.

Parameters:
pNode The target.
FbxNode* GetTargetUp ( ) const

Get the target up node.

Returns:
NULL if the target up model isn't set.
Examples:
ImportScene/DisplayCamera.cxx.
void SetTargetUpVector ( FbxVector4  pVector )

Set up vector offset from default relative target up vector.

Parameters:
pVector The rotation offset.
FbxVector4 GetTargetUpVector ( ) const

Get up vector offset from default relative target up vector.

Returns:
The up vector offset.
void SetVisibility ( bool  pIsVisible )

Set the node Visibility value from the boolean parameter.

Parameters:
pIsVisible Node is visible in the scene if set to true.
Remarks:
This method checks for the validity of the property before attempting to set its value. In fact, the exact same result can be achieved by the following code:
 if( Visibility.IsValid() )
 {
     Visibility.Set(FbxDouble(pIsVisible));
 }
See also:
Visibility property.
bool GetVisibility ( ) const

Get the current value of the Visibility property.

Returns:
false if the Visibility property value is 0.0 and true for any other value.
Remarks:
This method expects the Visibility property to exist and to be valid. If this condition is not met, the returned value will be false.
Examples:
UI_Examples/SceneTreeView/SDK_Utility.cxx.
EShadingMode GetShadingMode ( ) const

Get the shading mode.

Returns:
The currently set shading mode.
FbxNodeAttribute* SetNodeAttribute ( FbxNodeAttribute pNodeAttribute )

Set the node attribute.

Parameters:
pNodeAttribute Node attribute object
Returns:
Pointer to previous node attribute object. NULL if the node didn't have a node attribute or if the new node attribute is equal to the one currently set.
Remarks:
A node attribute can be shared between nodes.
If this node has more than one attribute (added via the AddAttribute() method), this call will destroy all, but the default node attribute.
Examples:
Camera/main.cxx, Common/GeometryUtility.cxx, ExportDocument/main.cxx, ExportScene01/main.cxx, ExportScene02/main.cxx, ExportScene03/main.cxx, ExportScene04/main.cxx, ExportScene05/main.cxx, Instances/main.cxx, Layers/main.cxx, MyOwnWriterReader/MyOwnReader.cxx, ProceduralTexture/main.cxx, StereoCamera/main.cxx, UI_Examples/CubeCreator/SDK_Utility.cxx, and UserProperties/main.cxx.
const FbxNodeAttribute* GetNodeAttribute ( ) const

Get the default node attribute.

The default node attribute is the attribute that has been set by the call to SetNodeAttribute(...).

Returns:
Pointer to the default node attribute or NULL if the node doesn't have a node attribute.
int GetNodeAttributeCount ( ) const

Get the number of node attribute(s) connected to this node.

int GetDefaultNodeAttributeIndex ( ) const

Get the index, in the list of connected node attributes, of the node attribute that is set to be the default one.

Returns:
Index of the default node attribute or -1 if there is no default node attribute set.
bool SetDefaultNodeAttributeIndex ( int  pIndex,
FbxStatus pStatus = NULL 
)

Set index of the default node attribute.

Parameters:
pIndex Identifies which of the connected node attributes is becoming the default one. This value represent the connection number of the node.
pStatus The FbxStatus object to hold error codes.
Returns:
true if the operation succeeds or false if the passed index is invalid.
FbxNodeAttribute* GetNodeAttributeByIndex ( int  pIndex )

Get the connected node attribute by specifying its index in the connection list.

Parameters:
pIndex The connection number of the node.
Returns:
Pointer to corresponding node attribute or NULL if the index is out of range.
const FbxNodeAttribute* GetNodeAttributeByIndex ( int  pIndex ) const

Get the connected node attribute by specifying its index in the connection list.

Parameters:
pIndex The connection number of the node.
Returns:
Pointer to corresponding node attribute or NULL if the index is out of range.
int GetNodeAttributeIndex ( FbxNodeAttribute pNodeAttribute,
FbxStatus pStatus = NULL 
) const

Get the connection index of the specified node attribute.

This method will do a linear search of all the connected node attributes (from the last to the first connection) until it finds pNodeAttribue.

Parameters:
pNodeAttribute The pointer to the node attribute.
pStatus The FbxStatus object to hold error codes.
Returns:
The connection number of the node attribute or -1 if pNodeAttribute is NULL or not connected to this node.
bool AddNodeAttribute ( FbxNodeAttribute pNodeAttribute,
FbxStatus pStatus = NULL 
)

Add the new node attribute to this node.

If no other node attribute is already set as the default one, this new node attribute is automatically set as the default one.

Parameters:
pNodeAttribute The pointer to a node attribute.
pStatus The FbxStatus object to hold error codes.
Returns:
true if the operation succeeded or false if the operation failed.
Remarks:
The failing conditions for this methods are:
  • The received object pointer is NULL.
  • The received object is already connected to this node.
  • An internal error prevented the connection to successfully complete.
FbxNodeAttribute* RemoveNodeAttribute ( FbxNodeAttribute pNodeAttribute )

Remove the node attribute from the connection list of this node.

Parameters:
pNodeAttribute The pointer to a node attribute.
Returns:
Pointer to the removed node attribute or NULL if the operation failed.
FbxNodeAttribute* RemoveNodeAttributeByIndex ( int  pIndex )

Remove the node attribute, specified by the connection index, from the connection list of this node.

Parameters:
pIndex Index of the node attribute.
Returns:
Pointer to the removed node attribute or NULL if the operation failed.
Remarks:
If the specified node attribute is also the default one, its predecessor in the connection list will become the new default node attribute. And if there are no more predecessors, the node DefaultNodeAttributeIndex is reset to -1.
FbxCachedEffect* GetCachedEffect ( )

Get the default node attribute casted to a FbxCachedEffect pointer.

Returns:
Pointer to the cached effect object.
Remarks:
If the type cast failed because there is not default node attribute set or it cannot be successfully casted, this method will return NULL.
FbxLODGroup* GetLodGroup ( )

Get the default node attribute casted to a FbxLODGroup pointer.

Returns:
Pointer to the lod group object.
Remarks:
If the type cast failed because there is not default node attribute set or it cannot be successfully casted, this method will return NULL.
FbxNull* GetNull ( )

Get the default node attribute casted to a FbxNull pointer.

Returns:
Pointer to the null object.
Remarks:
If the type cast failed because there is not default node attribute set or it cannot be successfully casted, this method will return NULL.
FbxMarker* GetMarker ( )

Get the node attribute casted to a FbxMarker pointer.

Returns:
Pointer to the marker object.
Remarks:
If the type cast failed because there is not default node attribute set or it cannot be successfully casted, this method will return NULL.
FbxSkeleton* GetSkeleton ( )

Get the node attribute casted to a FbxSkeleton pointer.

Returns:
Pointer to the skeleton object.
Remarks:
If the type cast failed because there is not default node attribute set or it cannot be successfully casted, this method will return NULL.
FbxGeometry* GetGeometry ( )

Get the node attribute casted to a FbxGeometry pointer.

Returns:
Pointer to the geometry object.
Remarks:
If the type cast failed because there is not default node attribute set or it cannot be successfully casted, this method will return NULL.
For this method to succeed, the node attribute's GetAttributeType() must returns one of the following:
Examples:
ExportScene02/main.cxx, ExportScene03/main.cxx, and ViewScene/SceneContext.cxx.
FbxMesh* GetMesh ( )

Get the node attribute casted to a FbxMesh pointer.

Returns:
Pointer to the mesh object.
Remarks:
This method will try to process the default node attribute first. If it cannot find it, it will scan the list of connected node attributes and get the first object that is a FbxNodeAttribute::eMesh.
If the above search failed to get a valid pointer or it cannot be successfully casted, this method will return NULL.
Examples:
ExportScene03/main.cxx, Instances/main.cxx, Normals/main.cxx, ProceduralTexture/main.cxx, UI_Examples/CubeCreator/SDK_Utility.cxx, UVSample/main.cxx, ViewScene/DrawScene.cxx, and ViewScene/SceneContext.cxx.
FbxNurbs* GetNurbs ( )

Get the node attribute casted to a FbxNurbs pointer.

Returns:
Pointer to the nurb object.
Remarks:
This method will try to process the default node attribute first. If it cannot find it, it will scan the list of connected node attributes and get the first object that is a FbxNodeAttribute::eNurbs.
If the above search failed to get a valid pointer or it cannot be successfully casted, this method will return NULL.
Examples:
ExportScene02/main.cxx.
FbxNurbsSurface* GetNurbsSurface ( )

Get the node attribute casted to a FbxNurbsSurface pointer.

Returns:
Pointer to the nurbs surface object.
Remarks:
This method will try to process the default node attribute first. If it cannot find it, it will scan the list of connected node attributes and get the first object that is a FbxNodeAttribute::eNurbsSurface.
If the above search failed to get a valid pointer or it cannot be successfully casted, this method will return NULL.
FbxNurbsCurve* GetNurbsCurve ( )

Get the node attribute casted to a FbxNurbsCurve pointer.

Returns:
Pointer to the nurbs curve object.
Remarks:
This method will try to process the default node attribute first. If it cannot find it, it will scan the list of connected node attributes and get the first object that is a FbxNodeAttribute::eNurbsCurve.
If the above search failed to get a valid pointer or it cannot be successfully casted, this method will return NULL.
FbxLine* GetLine ( )

Get the node attribute casted to a FbxLine pointer.

Returns:
Pointer to the line object.
Remarks:
This method will try to process the default node attribute first. If it cannot find it, it will scan the list of connected node attributes and get the first object that is a FbxNodeAttribute::eLine.
If the above search failed to get a valid pointer or it cannot be successfully casted, this method will return NULL.
FbxTrimNurbsSurface* GetTrimNurbsSurface ( )

Get the node attribute casted to a FbxTrimNurbsSurface pointer.

Returns:
Pointer to the trim nurbs surface object.
Remarks:
This method will try to process the default node attribute first. If it cannot find it, it will scan the list of connected node attributes and get the first object that is a FbxNodeAttribute::eTrimNurbsSurface.
If the above search failed to get a valid pointer or it cannot be successfully casted, this method will return NULL.
FbxSubDiv* GetSubdiv ( )

Get the node attribute casted to a FbxSubDiv pointer.

Returns:
Pointer to the subdivision surface object.
Remarks:
This method will try to process the default node attribute first. If it cannot find it, it will scan the list of connected node attributes and get the first object that is a FbxNodeAttribute::eSubDiv.
If the above search failed to get a valid pointer or it cannot be successfully casted, this method will return NULL.
FbxPatch* GetPatch ( )

Get the node attribute casted to a FbxPatch pointer.

Returns:
Pointer to the patch object.
Remarks:
This method will try to process the default node attribute first. If it cannot find it, it will scan the list of connected node attributes and get the first object that is a FbxNodeAttribute::ePatch.
If the above search failed to get a valid pointer or it cannot be successfully casted, this method will return NULL.
FbxCamera* GetCamera ( )

Get the node attribute casted to a FbxCamera pointer.

Returns:
Pointer to the camera object.
Remarks:
If the type cast failed because there is not default node attribute set or it cannot be successfully casted, this method will return NULL.
Examples:
Camera/main.cxx, ExportScene04/main.cxx, ImportScene/DisplayAnimation.cxx, ViewScene/DrawScene.cxx, and ViewScene/SetCamera.cxx.
const FbxCamera* GetCamera ( ) const
FbxCameraStereo* GetCameraStereo ( )

Get the node attribute casted to a FbxCameraStereo pointer.

Returns:
Pointer to the stereo camera object.
Remarks:
If the type cast failed because there is not default node attribute set or it cannot be successfully casted, this method will return NULL.
FbxCameraSwitcher* GetCameraSwitcher ( )

Get the node attribute casted to a FbxCameraSwitcher pointer.

Returns:
Pointer to the camera switcher object.
Remarks:
If the type cast failed because there is not default node attribute set or it cannot be successfully casted, this method will return NULL.
FbxLight* GetLight ( )

Get the node attribute casted to a FbxLight pointer.

Returns:
Pointer to the light object.
Remarks:
If the type cast failed because there is not default node attribute set or it cannot be successfully casted, this method will return NULL.
Examples:
ExportScene04/main.cxx, ImportScene/DisplayAnimation.cxx, ViewScene/DrawScene.cxx, and ViewScene/SceneContext.cxx.
const FbxLight* GetLight ( ) const
FbxOpticalReference* GetOpticalReference ( )

Get the node attribute casted to a FbxOpticalReference pointer.

Returns:
Pointer to the optical reference object.
Remarks:
If the type cast failed because there is not default node attribute set or it cannot be successfully casted, this method will return NULL.
void SetTransformationInheritType ( FbxTransform::EInheritType  pInheritType )

Sets how child transforms are inherited from parent transforms.

Parameters:
pInheritType One of the following values eInheritRrSs, eInheritRSrs or eInheritRrs
void GetTransformationInheritType ( FbxTransform::EInheritType pInheritType ) const

Get transformation inherit type.

Examples:
ImportScene/main.cxx.
void SetPivotState ( EPivotSet  pPivotSet,
EPivotState  pPivotState 
)

Change the state of the pivot context.

Parameters:
pPivotSet Specify which pivot context is manipulated.
pPivotState The new state of the pivot context.
Examples:
ExportScene05/main.cxx, and Pivot/main.cxx.
void GetPivotState ( EPivotSet  pPivotSet,
EPivotState pPivotState 
) const

Get the pivot context state.

The returned value tells if this pivot context is used in the evaluation of the node transform or not.

Parameters:
pPivotSet Specify which pivot context is queried.
pPivotState The current state of the pivot set.
Examples:
ImportScene/DisplayPivotsAndLimits.cxx.
void SetRotationOrder ( EPivotSet  pPivotSet,
EFbxRotationOrder  pRotationOrder 
)

Set rotation space Determine the rotation space (Euler or Spheric) and the rotation order.

Parameters:
pPivotSet Specify which pivot context is manipulated.
pRotationOrder The new value for the pivot rotation order.
Examples:
ExportScene05/main.cxx.
void GetRotationOrder ( EPivotSet  pPivotSet,
EFbxRotationOrder pRotationOrder 
) const

Get rotation order.

Parameters:
pPivotSet Specify which pivot context is queried.
pRotationOrder The current value of the pivot rotation order.
Examples:
ImportScene/main.cxx.
void SetUseRotationSpaceForLimitOnly ( EPivotSet  pPivotSet,
bool  pUseForLimitOnly 
)

Set rotation space for limit only.

Parameters:
pPivotSet Specify which pivot context is manipulated.
pUseForLimitOnly When set to true, the current rotation space (set with SetRotationOrder) define the rotation space for the limit only; leaving the rotation animation in Euler XYZ space. When set to false, the current rotation space defines the rotation space for both the limits and the rotation animation data.
Examples:
ExportScene05/main.cxx.
bool GetUseRotationSpaceForLimitOnly ( EPivotSet  pPivotSet ) const

Get rotation space for limit only.

Parameters:
pPivotSet Specify which pivot context is queried.
Returns:
The current rotation space limit flag value.
Examples:
ImportScene/main.cxx.
void SetRotationActive ( bool  pVal )

Set the RotationActive state.

Parameters:
pVal The new state of the property.
Remarks:
When this flag is set to false, the RotationOrder, the Pre/Post rotation values and the rotation limits should be ignored.
Examples:
Pivot/main.cxx.
bool GetRotationActive ( ) const

Get the RotationActive state.

Returns:
The value of the RotationActive flag.
void SetQuaternionInterpolation ( EPivotSet  pPivotSet,
EFbxQuatInterpMode  pQuatIterp 
)

Specify which Quaternion interpolation mode is used on the pivot context.

Parameters:
pPivotSet Specify which pivot context is manipulated.
pQuatIterp The new value.
Remarks:
When the pPivotSet is eSourcePivot, this method also updates the value of the QuaternionInterpolate property.
Examples:
ExportScene05/main.cxx.
EFbxQuatInterpMode GetQuaternionInterpolation ( EPivotSet  pPivotSet ) const

Get the Quaternion interpolation mode of the pivot context.

Parameters:
pPivotSet Specify which pivot context is queried.
Returns:
The current mode set on the pivot context.
void SetRotationStiffness ( FbxVector4  pRotationStiffness )

Set the rotation stiffness.

The stiffness attribute is used by IK solvers to generate a resistance to a joint motion. The higher the stiffness the less it will rotate. Stiffness works in a relative sense: it determines the willingness of this joint to rotate with respect to the other joint in the IK chain.

Parameters:
pRotationStiffness The rotation stiffness values are limited to the range [0, 100].
FbxVector4 GetRotationStiffness ( ) const

Get the rotation stiffness.

Returns:
The currently set rotation stiffness values.
void SetMinDampRange ( FbxVector4  pMinDampRange )

Set the minimum damp range angles.

This attributes apply resistance to a joint rotation as it approaches the lower boundary of its rotation limits. This functionality allows joint motion to slow down smoothly until the joint reaches its rotation limits instead of stopping abruptly. The MinDampRange specifies when the deceleration should start.

Parameters:
pMinDampRange Angle, in degrees, where deceleration should start
FbxVector4 GetMinDampRange ( ) const

Get the minimum damp range angles.

Returns:
The currently set minimum damp range angles.
void SetMaxDampRange ( FbxVector4  pMaxDampRange )

Set the maximum damp range angles.

This attributes apply resistance to a joint rotation as it approaches the upper boundary of its rotation limits. This functionality allows joint motion to slow down smoothly until the joint reaches its rotation limits instead of stopping abruptly. The MaxDampRange specifies when the deceleration should start.

Parameters:
pMaxDampRange Angle, in degrees, where deceleration should start
FbxVector4 GetMaxDampRange ( ) const

Get the maximum damp range angles.

Returns:
The currently set maximum damp range angles.
void SetMinDampStrength ( FbxVector4  pMinDampStrength )

Set the minimum damp strength.

This attributes apply resistance to a joint rotation as it approaches the lower boundary of its rotation limits. This functionality allows joint motion to slow down smoothly until the joint reaches its rotation limits instead of stopping abruptly. The MinDampStrength defines the rate of deceleration.

Parameters:
pMinDampStrength Values are limited to the range [0, 100].
FbxVector4 GetMinDampStrength ( ) const

Get the minimum damp strength.

Returns:
The currently set minimum damp strength values.
void SetMaxDampStrength ( FbxVector4  pMaxDampStrength )

Set the maximum damp strength.

This attributes apply resistance to a joint rotation as it approaches the upper boundary of its rotation limits. This functionality allows joint motion to slow down smoothly until the joint reaches its rotation limits instead of stopping abruptly. The MaxDampStrength defines the rate of deceleration.

Parameters:
pMaxDampStrength Values are limited to the range [0, 100].
FbxVector4 GetMaxDampStrength ( ) const

Get the maximum damp strength.

Returns:
The currently set maximum damp strength values.
void SetPreferedAngle ( FbxVector4  pPreferedAngle )

Set the preferred angle.

The preferredAngle attribute defines the initial joint configuration used by a single chain IK solver to calculate the inverse kinematic solution.

Parameters:
pPreferedAngle Angle in degrees
FbxVector4 GetPreferedAngle ( ) const

Get the preferred angle.

Returns:
The currently set preferred angle.
void SetRotationOffset ( EPivotSet  pPivotSet,
FbxVector4  pVector 
)

Set a translation offset for the rotation pivot.

The translation offset is in coordinates relative to the node's origin.

Parameters:
pPivotSet Specify which pivot set to modify.
pVector The X,Y and Z translation values (the 4th component of the FbxVector4 is ignored).
const FbxVector4& GetRotationOffset ( EPivotSet  pPivotSet ) const

Get the translation offset for the rotation pivot.

The translation offset is in coordinates relative to the node's origin.

Parameters:
pPivotSet Specify which pivot set to to query the value.
Returns:
The X, Y and Z translation offset values (the 4th component of the FbxVector4 is always 1).
Examples:
ImportScene/DisplayPivotsAndLimits.cxx.
void SetRotationPivot ( EPivotSet  pPivotSet,
FbxVector4  pVector 
)

Set rotation pivot.

The rotation pivot is the center of rotation in coordinates relative to the node's origin.

Parameters:
pPivotSet Specify which pivot set to modify.
pVector The new position of the rotation pivot (the 4th component of the FbxVector4 is ignored).
Examples:
ExportScene05/main.cxx, and Pivot/main.cxx.
const FbxVector4& GetRotationPivot ( EPivotSet  pPivotSet ) const

Get rotation pivot.

The rotation pivot is the center of rotation in coordinates relative to the node's origin.

Parameters:
pPivotSet Specify which pivot set to query.
Returns:
The current position of the rotation pivot (the 4th component of the FbxVector4 is always 1).
Examples:
ImportScene/DisplayPivotsAndLimits.cxx.
void SetPreRotation ( EPivotSet  pPivotSet,
FbxVector4  pVector 
)

Set pre-rotation in Euler angles.

The pre-rotation is the rotation applied to the node before rotation animation data.

Parameters:
pPivotSet Specify which pivot set to modify.
pVector The X,Y,Z rotation values to set (the 4th component of the FbxVector4 is ignored).
Examples:
ExportScene05/main.cxx.
const FbxVector4& GetPreRotation ( EPivotSet  pPivotSet ) const

Get pre-rotation in Euler angles.

The pre-rotation is the rotation applied to the node before rotation animation data.

Parameters:
pPivotSet Specify which pivot set to query.
Returns:
The X,Y and Z rotation values (the 4th component of the FbxVector4 is always 1).
Examples:
ImportScene/DisplayPivotsAndLimits.cxx.
void SetPostRotation ( EPivotSet  pPivotSet,
FbxVector4  pVector 
)

Set post-rotation in Euler angles.

The post-rotation is the rotation applied to the node after the rotation animation data.

Parameters:
pPivotSet Specify which pivot set to modify.
pVector The X,Y,Z rotation values to set (the 4th component of the FbxVector4 is ignored).
Examples:
ExportScene05/main.cxx, and Pivot/main.cxx.
const FbxVector4& GetPostRotation ( EPivotSet  pPivotSet ) const

Get post-rotation in Euler angles.

The post-rotation is the rotation applied to the node after the rotation animation data.

Parameters:
pPivotSet Specify which pivot set to query.
Returns:
The X,Y and Z rotation values (the 4th component of the FbxVector4 is always 1).
Examples:
ImportScene/DisplayPivotsAndLimits.cxx.
void SetScalingOffset ( EPivotSet  pPivotSet,
FbxVector4  pVector 
)

Set a translation offset for the scaling pivot.

The translation offset is in coordinates relative to the node's origin.

Parameters:
pPivotSet Specify which pivot set to modify.
pVector The X,Y and Z translation values (the 4th component of the FbxVector4 is ignored).
const FbxVector4& GetScalingOffset ( EPivotSet  pPivotSet ) const

Get the translation offset for the scaling pivot.

The translation offset is in coordinates relative to the node's origin.

Parameters:
pPivotSet Specify which pivot set to query the value.
Returns:
The X, Y and Z translation offset values (the 4th component of the FbxVector4 is always 1).
Examples:
ImportScene/DisplayPivotsAndLimits.cxx.
void SetScalingPivot ( EPivotSet  pPivotSet,
FbxVector4  pVector 
)

Set scaling pivot.

The scaling pivot is the center of scaling in coordinates relative to the node's origin.

Parameters:
pPivotSet Specify which pivot set to modify.
pVector The new position of the scaling pivot (the 4th component of the FbxVector4 is ignored).
const FbxVector4& GetScalingPivot ( EPivotSet  pPivotSet ) const

Get scaling pivot.

The scaling pivot is the center of scaling in coordinates relative to the node's origin.

Parameters:
pPivotSet Specify which pivot set to query.
Returns:
The current position of the rotation pivot (the 4th component of the FbxVector4 is always 1).
Examples:
ImportScene/DisplayPivotsAndLimits.cxx.
void SetGeometricTranslation ( EPivotSet  pPivotSet,
FbxVector4  pVector 
)

Set geometric translation The geometric translation is a local translation that is applied to a node attribute only.

This translation is applied to the node attribute after the node transformations. This translation is not inherited across the node hierarchy.

Parameters:
pPivotSet Specify which pivot set to modify.
pVector The X, Y, and Z translation values (the 4th component of the FbxVector4 is ignored).
FbxVector4 GetGeometricTranslation ( EPivotSet  pPivotSet ) const

Get geometric translation.

Parameters:
pPivotSet Specify which pivot set to query.
Returns:
The current geometric translation (the 4th component of the FbxVector4 is always 1).
Examples:
ImportScene/main.cxx, and ViewScene/GetPosition.cxx.
void SetGeometricRotation ( EPivotSet  pPivotSet,
FbxVector4  pVector 
)

Set geometric rotation The geometric rotation is a local rotation that is applied to a node attribute only.

This rotation is applied to the node attribute after the node transformations. This rotation is not inherited across the node hierarchy.

Parameters:
pPivotSet Specify which pivot set to modify.
pVector The X,Y and Z rotation values (the 4th component of the FbxVector4 is ignored).
FbxVector4 GetGeometricRotation ( EPivotSet  pPivotSet ) const

Get geometric rotation.

Parameters:
pPivotSet Specify which pivot set to query.
Returns:
The current geometric rotation (the 4th component of the FbxVector4 is always 1).
Examples:
ImportScene/main.cxx, and ViewScene/GetPosition.cxx.
void SetGeometricScaling ( EPivotSet  pPivotSet,
FbxVector4  pVector 
)

Set geometric scaling The geometric scaling is a local scaling that is applied to a node attribute only.

This scaling is applied to the node attribute after the node transformations. This scaling is not inherited across the node hierarchy.

Parameters:
pPivotSet Specify which pivot set to modify.
pVector The X,Y and Z scale values (the 4th component of the FbxVector4 is ignored).
FbxVector4 GetGeometricScaling ( EPivotSet  pPivotSet ) const

Get geometric scaling.

Parameters:
pPivotSet Specify which pivot set to query.
Returns:
The current geometric scaling (the 4th component of the FbxVector4 is always 1).
Examples:
ImportScene/main.cxx, and ViewScene/GetPosition.cxx.
void ResetPivotSet ( FbxNode::EPivotSet  pPivotSet )

Reset a pivot set to the default pivot context.

If the node has a geometry, reset the geometry's pivot to the identity matrix.

Parameters:
pPivotSet Pivot set to reset.
Remarks:
The default pivot context is a context with all the vector attributes set to (0,0,0) except the GeometricScaling attribute that is reset to (1,1,1).
FBX_DEPRECATED void ConvertPivotAnimation ( EPivotSet  pConversionTarget,
double  pFrameRate,
bool  pKeyReduce = true 
)

Recursively convert the animation data according to pivot settings.

This method is still available for legacy reasons. Its use is limited to the processing of very old data coming from FBX v5 files and should not be used in any other case. Instead call the ConvertPivotAnimationRecursive().

Parameters:
pConversionTarget If set to EPivotSet::eDestinationPivot, convert animation data from the EPivotSet::eSourcePivot pivot context to the EPivotSet::eDestinationPivot pivot context. Otherwise, the conversion is computed the other way around.
pFrameRate Resampling frame rate in frames per second.
pKeyReduce Apply or skip key reducing filter.
Remarks:
Due to the intrinsic properties of the mathematical operations performed, sometimes, it is necessary to resample animation curves to maintain the accurate conversion. When this resampling is required, the method will use the pFrameRate value to specify the number of samples. To avoid a huge number of keys in the animation curves, a constant key reducer filter (FbxKFCurveFilterConstantKeyReducer) is automatically applied to all the affected curves to remove as much consecutive keys that have the same value. This filter is private and its settings cannot be changed. It is possible that, after the filtering pass, the animations curves do not contain keys anymore. This is a normal result and does not affect the overall results.
void ConvertPivotAnimationRecursive ( const char *  pAnimStackName,
EPivotSet  pConversionTarget,
double  pFrameRate,
bool  pKeyReduce = true 
)

This version is an improved version of the ConvertPivotAnimation().

It fully supports all the attributes defined in the pivot sets and can process animation data defined on different animation stack.

Parameters:
pAnimStackName The name of animation stack on which the conversion will take place. If equals an empty string, the first animation stack will be used. If equals NULL, convert the animation on all the animation stacks at once.
pConversionTarget If set to EPivotSet::eDestinationPivot, convert animation data from the EPivotSet::eSourcePivot pivot context to the EPivotSet::eDestinationPivot pivot context. Otherwise, the conversion is computed the other way around.
pFrameRate Resampling frame rate in frames per second.
pKeyReduce Apply or skip key reducing filter.
Remarks:
Due to the intrinsic properties of the mathematical operations performed, sometimes, it is necessary to resample animation curves to maintain the accurate conversion. When this resampling is required, the method will use the pFrameRate value to specify the number of samples. To avoid a huge number of keys in the animation curves, a constant key reducer filter (FbxKFCurveFilterConstantKeyReducer) is automatically applied to all the affected curves to remove as much consecutive keys that have the same value. This filter is private and its settings cannot be changed. It is possible that, after the filtering pass, the animations curves do not contain keys anymore. This is a normal result and does not affect the overall results.
Note:
Altough it is possible to call this method several times with a different AnimStack name, users must be aware that some pivot computation can irreversibly modify the geometric nodes with a cumulative effect of the GeometricTranslation, GeometricRotation and GeometricScaling which will produce undesirable results. It is recommended to call ConvertPivotAnimationRecursive with pAnimStackName = NULL and let the method convert the animation on all the Anim stacks at once. In the case when there are no geometric nodes in the scene tree, specifying the animation stack is safe and somewhat faster.
Examples:
Pivot/main.cxx.
void ResetPivotSetAndConvertAnimation ( double  pFrameRate = 30.0,
bool  pKeyReduce = false,
bool  pToNodeCenter = true,
bool  pForceResetLimits = false 
)

Reset all the pivot sets to the default pivot context and convert the animation.

Parameters:
pFrameRate Resampling frame rate in frames per second.
pKeyReduce Apply or skip key reducing filter.
pToNodeCenter,: Reset pivots to node center if true, or retain pivot places if false.
pForceResetLimits If true, this flag will reset all the Translation, Rotation and Scaling limits and clears the enabled flags.
Remarks:
The resulting animation will be visually equivalent and all the pivots will be cleared. The conversion is performed on all animation stacks.
Will recursively convert the animation of all the children nodes.
The pForceResetLimits flag has a destructive behavior and should be used only in very limited cases where the values of the limits are not required after the call to this method.
Currently, this function just works under RSrs inherit type if pToNodeCenter is set to false.
void SetRotationPivotAsCenterRecursive ( FbxVector4  pParentGeometricOffset = FbxVector4() )

Set rotation pivot as node center recursively.

Parameters:
pParentGeometricOffset Offset vector to be applied.
FbxAMatrix& EvaluateGlobalTransform ( FbxTime  pTime = FBXSDK_TIME_INFINITE,
FbxNode::EPivotSet  pPivotSet = FbxNode::eSourcePivot,
bool  pApplyTarget = false,
bool  pForceEval = false 
)

Returns this node's global transformation matrix at the specified time.

The node's translation, rotation and scaling limits are taken into consideration.

Parameters:
pTime The time used for evaluate. If FBXSDK_TIME_INFINITE is used, this returns the default value, without animation curves evaluation.
pPivotSet The pivot set to take into account
pApplyTarget Applies the necessary transform to align into the target node
pForceEval Force the evaluator to refresh the evaluation state cache even if its already up-to-date.
Returns:
The resulting global transform of the specified node at the specified time.
Remarks:
This function is the equivalent of calling Scene->GetEvaluator()->GetNodeGlobalTransform().
Examples:
ExportScene01/main.cxx, Pivot/main.cxx, and ViewScene/GetPosition.cxx.
FbxAMatrix& EvaluateLocalTransform ( FbxTime  pTime = FBXSDK_TIME_INFINITE,
FbxNode::EPivotSet  pPivotSet = FbxNode::eSourcePivot,
bool  pApplyTarget = false,
bool  pForceEval = false 
)

Returns this node's local transformation matrix at the specified time.

The node's translation, rotation and scaling limits are taken into consideration.

Parameters:
pTime The time used for evaluate. If FBXSDK_TIME_INFINITE is used, this returns the default value, without animation curves evaluation.
pPivotSet The pivot set to take into account
pApplyTarget Applies the necessary transform to align into the target node
pForceEval Force the evaluator to refresh the evaluation state cache even if its already up-to-date.
Returns:
The resulting local transform of the specified node for the specified time.
Remarks:
The local transform matrix is calculated in this way: ParentGlobal.Inverse * Global, all transforms such as pre/post rotation are taken into consideration. This will return a different value than LclTranslation, LclRotation and LclScaling at the specified time. To evaluate these properties separately without taking pre/post rotation, pivots and offsets into consideration, please use GetNodeLocalTranslation(), GetNodeLocalRotation() and GetNodeLocalScaling(). This function is the equivalent of calling Scene->GetEvaluator()->GetNodeLocalTransform().
Examples:
Pivot/main.cxx.
FbxVector4& EvaluateLocalTranslation ( FbxTime  pTime = FBXSDK_TIME_INFINITE,
FbxNode::EPivotSet  pPivotSet = FbxNode::eSourcePivot,
bool  pApplyTarget = false,
bool  pForceEval = false 
)

Returns this node's LclTranslation property at the specified time.

No pivot, offsets, or any other transform is taken into consideration. The translation limit is applied.

Parameters:
pTime The time used for evaluate. If FBXSDK_TIME_INFINITE is used, this returns the default value, without animation curves evaluation.
pPivotSet The pivot set to take into account
pApplyTarget Applies the necessary transform to align into the target node
pForceEval Force the evaluator to refresh the evaluation state cache even if its already up-to-date.
Returns:
The resulting value of LclTranslation property of the specified node at the specified time.
Remarks:
This function is the equivalent of calling Scene->GetEvaluator()->GetNodeLocalTranslation().
FbxVector4& EvaluateLocalRotation ( FbxTime  pTime = FBXSDK_TIME_INFINITE,
FbxNode::EPivotSet  pPivotSet = FbxNode::eSourcePivot,
bool  pApplyTarget = false,
bool  pForceEval = false 
)

Returns this node's LclRotation property at the specified time.

No pre/post rotation, rotation pivot, rotation offset or any other transform is taken into consideration. The rotation limit is applied.

Parameters:
pNode The transform node to evaluate.
pTime The time used for evaluate. If FBXSDK_TIME_INFINITE is used, this returns the default value, without animation curves evaluation.
pPivotSet The pivot set to take into account
pApplyTarget Applies the necessary transform to align into the target node
pForceEval Force the evaluator to refresh the evaluation state cache even if its already up-to-date.
Returns:
The resulting value of LclRotation property of the specified node at the specified time.
Remarks:
This function is the equivalent of calling Scene->GetEvaluator()->GetNodeLocalRotation().
FbxVector4& EvaluateLocalScaling ( FbxTime  pTime = FBXSDK_TIME_INFINITE,
FbxNode::EPivotSet  pPivotSet = FbxNode::eSourcePivot,
bool  pApplyTarget = false,
bool  pForceEval = false 
)

Returns this node's LclScaling property at the specified time.

No scaling pivot, scaling offset or any other transform is taken into consideration. The scaling limit is applied.

Parameters:
pTime The time used for evaluate. If FBXSDK_TIME_INFINITE is used, this returns the default value, without animation curves evaluation.
pPivotSet The pivot set to take into account
pApplyTarget Applies the necessary transform to align into the target node
pForceEval Force the evaluator to refresh the evaluation state cache even if its already up-to-date.
Returns:
The resulting value of LclScaling property of the specified node at the specified time.
Remarks:
This function is the equivalent of calling Scene->GetEvaluator()->GetNodeLocalScaling().
int GetCharacterLinkCount ( ) const

Get number of character links.

Returns:
The number of character links.
bool GetCharacterLink ( int  pIndex,
FbxCharacter **  pCharacter,
int *  pCharacterLinkType,
int *  pNodeId,
int *  pNodeSubId 
)

Get character link at given index.

Parameters:
pIndex Index of character link.
pCharacter Pointer to receive linked character if function succeeds.
pCharacterLinkType Pointer to receive character link type if function succeeds, cast to FbxCharacterLink::Type.
pNodeId Pointer to receive the node ID if function succeeds. This ID should be casted to FbxCharacter::ENodeId type when the character link type is eCharacterLink or eControlSetLink else to the FbxEffector::ENodeId type if the character link type is eControlSetEffector or eControlSetEffectorAux.
pNodeSubId For internal use.
Returns:
false if the index is out of range or any of the pointer arguments is NULL.
int FindCharacterLink ( FbxCharacter pCharacter,
int  pCharacterLinkType,
int  pNodeId,
int  pNodeSubId 
) const

Looks if the given character link exists on this node.

Parameters:
pCharacter Character searched.
pCharacterLinkType Character link type searched. Its value must be one of the FbxCharacterLink::Type symbols..
pNodeId Node ID searched. If pCharacterLinkType is eCharacterLink or eControlSetLink the pNodeId value is casted to the FbxCharacter::ENodeId type. If the pCharacterLinkType is eControlSetEffector or eControlSetEffectorAux then the pNodeId is casted to the FbxEffector::ENodeId type.
pNodeSubId For internal use.
Returns:
Index of found character link if it exists, -1 otherwise.
bool GetAnimationInterval ( FbxTimeSpan pInterval,
FbxAnimStack pAnimStack = NULL,
int  pAnimLayerId = 0 
)

Find out start and end time of the animation curves for this node (and its children).

Parameters:
pInterval This node's animation interval.
pAnimStack Animation stack where to retrieve animation curves.
pAnimLayerId Specific animation layer on the animStack to use.
Returns:
true if the node (or its children) is animated, false otherwise.
Remarks:
If pAnimStack is left NULL, the function will try to get the first AnimStack that is connected to the scene. pAnimLayerId represent the index of the connection. For example, the call:
        lNode->GetAnimationInterval(span, myStack, 3);
will scan all the animation curves of this node, and it's children, that are defined on the third animation layer of myStack.
int AddMaterial ( FbxSurfaceMaterial pMaterial )

Add a material to this node.

Parameters:
pMaterial The material to add.
Returns:
non-negative index of added material, or -1 on error.
Examples:
ExportDocument/main.cxx, ExportScene02/main.cxx, ExportScene03/main.cxx, ExportShader/main.cxx, Instances/main.cxx, Layers/main.cxx, ProceduralTexture/main.cxx, and UI_Examples/CubeCreator/SDK_Utility.cxx.
bool RemoveMaterial ( FbxSurfaceMaterial pMaterial )

Remove a material from this node.

Parameters:
pMaterial The material to remove.
Returns:
true on success, false otherwise
int GetMaterialCount ( ) const
Returns:
The number of materials applied to this node.
Remarks:
If this node has an instanced node attribute, it is possible to have a material applied to this node more than once. The material count may not reflect the distinct material count.
Examples:
ImportScene/DisplayMaterial.cxx, ImportScene/DisplayMesh.cxx, UI_Examples/CubeCreator/SDK_Utility.cxx, and ViewScene/SceneContext.cxx.
FbxSurfaceMaterial* GetMaterial ( int  pIndex ) const

Access a material on this node.

Parameters:
pIndex Valid range is [0, GetMaterialCount() - 1]
Returns:
The pIndex-th material, or NULL if pIndex is invalid.
Examples:
ImportScene/DisplayMaterial.cxx, ImportScene/DisplayMesh.cxx, UI_Examples/CubeCreator/SDK_Utility.cxx, ViewScene/DrawScene.cxx, and ViewScene/SceneContext.cxx.
void RemoveAllMaterials ( )

Remove all materials applied to this node.

int GetMaterialIndex ( const char *  pName ) const

Find an applied material with the given name.

Parameters:
pName The requested name
Returns:
an index to a material, or -1 if no applied material has the requested name.

Member Data Documentation

This property contains the translation information of the node.

To access this property do: LclTranslation.Get(). To set this property do: LclTranslation.Set(FbxDouble3).

Default value is 0.,0.,0.

Examples:
Common/GeometryUtility.cxx, ExportDocument/main.cxx, ExportScene01/main.cxx, ExportScene03/main.cxx, ExportScene04/main.cxx, ExportScene05/main.cxx, ImportScene/DisplayAnimation.cxx, Instances/main.cxx, Transformations/main.cxx, UI_Examples/CubeCreator/SDK_Utility.cxx, UserProperties/main.cxx, and ViewScene/SetCamera.cxx.

Definition at line 1216 of file fbxnode.h.

This property contains the rotation information of the node.

To access this property do: LclRotation.Get(). To set this property do: LclRotation.Set(FbxDouble3).

Default value is 0.,0.,0.

Examples:
ExportDocument/main.cxx, ExportScene01/main.cxx, ExportScene03/main.cxx, ExportScene04/main.cxx, ExportScene05/main.cxx, ImportScene/DisplayAnimation.cxx, Instances/main.cxx, Pivot/main.cxx, Transformations/main.cxx, UI_Examples/CubeCreator/SDK_Utility.cxx, and ViewScene/SetCamera.cxx.

Definition at line 1225 of file fbxnode.h.

This property contains the scaling information of the node.

To access this property do: LclScaling.Get(). To set this property do: LclScaling.Set(FbxDouble3).

Default value is 1.,1.,1.

Examples:
ExportScene03/main.cxx, ExportScene04/main.cxx, ExportScene05/main.cxx, ImportScene/DisplayAnimation.cxx, Instances/main.cxx, Transformations/main.cxx, and UI_Examples/CubeCreator/SDK_Utility.cxx.

Definition at line 1234 of file fbxnode.h.

This property contains the visibility information of the node.

The assumed behavior of this property is to affect the visibility of the node, all the nodes attributes connected to it as well as all its descendants. This property can be animated.

To access this property do: Visibility.Get(). To set this property do: Visibility.Set(FbxDouble).

Default value is 1.

Remarks:
  • This property holds values ranging from 0.0 to 1.0 where the value 0.0 means a totally invisible object, the value 1.0, a full visible object and anything inbetween, a percentage degree of visibility.
  • Since not all the applications may support a degree of visibility, it is agreed that a value of 0.0 means invisible and anything else means visible.
See also:
Show property.

Definition at line 1254 of file fbxnode.h.

This property contains the visibility inheritance flag that allow applications to modify the Visibility property interpretation.

By default, this value is set to true because it is assumed (as explained in the Visibility property description) that the node visibility is inherited from its parent. In other words, applications should always process the Visibility property of the node and, depending on its value, decide whether or not the node has to be displayed. After this first assessment, check the node VisibilityInheritance flag. If its value is set to false then move to the next object, else use the parent's Visibility value and modify this node display state by performing the logical AND operation between this node Visibility property and its parent's.

To access this property do: VisibilityInheritance.Get(). To set this property do: VisibilityInheritance.Set(FbxBool).

Default value is true.

Remarks:
This property is non-animatable and is not used inside the FBX SDK but it is guaranteed to exist in FBX files with version 7.2 and above.
See also:
Visibility property.

Definition at line 1273 of file fbxnode.h.

This property contains the quaternion interpolate flag of the node.

To access this property do: QuaternionInterpolate.Get(). To set this property do: QuaternionInterpolate.Set(EFbxQuatInterpMode).

Default value is eQuatInterpOff.

Definition at line 1283 of file fbxnode.h.

This property contains the rotation offset information of the node.

To access this property do: RotationOffset.Get(). To set this property do: RotationOffset.Set(FbxDouble3).

Default value is 0.,0.,0.

Examples:
Transformations/main.cxx.

Definition at line 1292 of file fbxnode.h.

This property contains the rotation pivot information of the node.

To access this property do: RotationPivot.Get(). To set this property do: RotationPivot.Set(FbxDouble3).

Default value is 0.,0.,0.

Examples:
Transformations/main.cxx.

Definition at line 1301 of file fbxnode.h.

This property contains the scaling offset information of the node.

To access this property do: ScalingOffset.Get(). To set this property do: ScalingOffset.Set(FbxDouble3).

Default value is 0.,0.,0.

Examples:
Transformations/main.cxx.

Definition at line 1310 of file fbxnode.h.

This property contains the scaling pivot information of the node.

To access this property do: ScalingPivot.Get(). To set this property do: ScalingPivot.Set(FbxDouble3).

Default value is 0.,0.,0.

Examples:
Transformations/main.cxx.

Definition at line 1319 of file fbxnode.h.

This property enables or disables the limit on translation.

When set to false the object can translate in any direction without limitations. Else the TranslationMinX, TranslationMinY, TranslationMinZ, TranslationMaxX, TranslationMaxY and TranslationMaxZ flags are used to limit the translation on each individual axis.

To access this property do: TranslationActive.Get(). To set this property do: TranslationActive.Set(FbxBool).

Default value is false.

Examples:
ExportScene05/main.cxx, and ImportScene/DisplayPivotsAndLimits.cxx.

Definition at line 1333 of file fbxnode.h.

This property sets the minimum translation values the object can occupy on each individual axis.

To access this property do: TranslationMin.Get(). To set this property do: TranslationMin.Set(FbxDouble3). Default value is 0.,0.,0.

Examples:
ExportScene05/main.cxx, and ImportScene/DisplayPivotsAndLimits.cxx.

Definition at line 1342 of file fbxnode.h.

This property sets the maximum translation values the object can occupy on each individual axis.

To access this property do: TranslationMax.Get(). To set this property do: TranslationMax.Set(FbxDouble3). Default value is 0.,0.,0.

Examples:
ExportScene05/main.cxx, and ImportScene/DisplayPivotsAndLimits.cxx.

Definition at line 1351 of file fbxnode.h.

This property enables or disables the limit on translation X.

When set to true, the object translation is constrained by the value of TranslationMin.

To access this property do: TranslationMinX.Get(). To set this property do: TranslationMinX.Set(FbxBool).

Default value is false.

Examples:
ExportScene05/main.cxx, and ImportScene/DisplayPivotsAndLimits.cxx.

Definition at line 1361 of file fbxnode.h.

This property enables or disables the limit on translation Y.

When set to true, the object translation is constrained by the value of TranslationMin.

To access this property do: TranslationMinY.Get(). To set this property do: TranslationMinY.Set(FbxBool).

Default value is false.

Examples:
ExportScene05/main.cxx, and ImportScene/DisplayPivotsAndLimits.cxx.

Definition at line 1371 of file fbxnode.h.

This property enables or disables the limit on translation Z.

When set to true, the object translation is constrained by the value of TranslationMin.

To access this property do: TranslationMinZ.Get(). To set this property do: TranslationMinZ.Set(FbxBool).

Default value is false.

Examples:
ExportScene05/main.cxx, and ImportScene/DisplayPivotsAndLimits.cxx.

Definition at line 1382 of file fbxnode.h.

This property enables or disables the limit on translation X.

When set to true, the object translation is constrained by the value of TranslationMax.

To access this property do: TranslationMaxX.Get(). To set this property do: TranslationMaxX.Set(FbxBool).

Default value is false.

Examples:
ExportScene05/main.cxx, and ImportScene/DisplayPivotsAndLimits.cxx.

Definition at line 1392 of file fbxnode.h.

This property enables or disables the limit on translation Y.

When set to true, the object translation is constrained by the value of TranslationMax.

To access this property do: TranslationMaxY.Get(). To set this property do: TranslationMaxY.Set(FbxBool).

Default value is false.

Examples:
ExportScene05/main.cxx, and ImportScene/DisplayPivotsAndLimits.cxx.

Definition at line 1402 of file fbxnode.h.

This property enables or disables the limit on translation Z.

When set to true, the object translation is constrained by the value of TranslationMax.

To access this property do: TranslationMaxZ.Get(). To set this property do: TranslationMaxZ.Set(FbxBool).

Default value is false.

Examples:
ExportScene05/main.cxx, and ImportScene/DisplayPivotsAndLimits.cxx.

Definition at line 1412 of file fbxnode.h.

This property contains the rotation order information of the node.

To access this property do: RotationOrder.Get(). To set this property do: RotationOrder.Set(EFbxRotationOrder). Default value is eEulerXYZ.

Definition at line 1421 of file fbxnode.h.

This property contains the rotation space for limit only flag of the node.

When set to true, the Rotation space is applied only on the limit data (provided the RotationActive is also true).

To access this property do: RotationSpaceForLimitOnly.Get(). To set this property do: RotationSpaceForLimitOnly.Set(FbxBool).

Default value is false.

Definition at line 1432 of file fbxnode.h.

This property contains the x value of the rotation stiffness of the node.

To access this property do: RotationStiffnessX.Get(). To set this property do: RotationStiffnessX.Set(FbxDouble).

Default value is 0.

Definition at line 1441 of file fbxnode.h.

This property contains the y value of the rotation stiffness of the node.

To access this property do: RotationStiffnessY.Get(). To set this property do: RotationStiffnessY.Set(FbxDouble).

Default value is 0.

Definition at line 1450 of file fbxnode.h.

This property contains the z value of the rotation stiffness of the node.

To access this property do: RotationStiffnessZ.Get(). To set this property do: RotationStiffnessZ.Set(FbxDouble).

Default value is 0.

Definition at line 1459 of file fbxnode.h.

This property contains axis length information of the node.

To access this property do: AxisLen.Get(). To set this property do: AxisLen.Set(FbxDouble).

Default value is 10.

Definition at line 1468 of file fbxnode.h.

This property contains pre-rotation information of the node.

To access this property do: PreRotation.Get(). To set this property do: PreRotation.Set(FbxDouble3).

Default value is 0.,0.,0.

Examples:
Transformations/main.cxx.

Definition at line 1477 of file fbxnode.h.

This property contains post-rotation information of the node.

To access this property do: PostRotation.Get(). To set this property do: PostRotation.Set(FbxDouble3).

Default value is 0.,0.,0.

Examples:
Transformations/main.cxx.

Definition at line 1486 of file fbxnode.h.

This property enables or disables the limit on rotation.

When set to false the object can rotate in any direction without limitations. Else the RotationMinX, RotationMinY, RotationMinZ, RotationMaxX, RotationMaxY and RotationMaxZ flags are used to limit the rotation on each individual axis.

Remarks:
The PreRotation value is applied before the limit, while the PostRotation is applied after the limit.

To access this property do: RotationActive.Get(). To set this property do: RotationActive.Set(FbxBool).

Default value is false.

Examples:
ExportScene05/main.cxx, and ImportScene/DisplayPivotsAndLimits.cxx.

Definition at line 1502 of file fbxnode.h.

This property sets the minimum rotation values the object can occupy on each individual axis.

To access this property do: RotationMin.Get(). To set this property do: RotationMin.Set(FbxDouble3).

Default value is 0.,0.,0.

Examples:
ImportScene/DisplayPivotsAndLimits.cxx.

Definition at line 1511 of file fbxnode.h.

This property sets the maximum rotation values the object can occupy on each individual axis.

To access this property do: RotationMax.Get(). To set this property do: RotationMax.Set(FbxDouble3).

Default value is 0.,0.,0.

Examples:
ExportScene05/main.cxx, and ImportScene/DisplayPivotsAndLimits.cxx.

Definition at line 1520 of file fbxnode.h.

This property enables or disables the limit on rotation X.

When set to true, the object rotation is constrained by the value of RotationMin.

To access this property do: RotationMinX.Get(). To set this property do: RotationMinX.Set(FbxBool).

Default value is false.

Examples:
ImportScene/DisplayPivotsAndLimits.cxx.

Definition at line 1530 of file fbxnode.h.

This property enables or disables the limit on rotation Y.

When set to true, the object rotation is constrained by the value of RotationMin.

To access this property do: RotationMinY.Get(). To set this property do: RotationMinY.Set(FbxBool).

Default value is false.

Examples:
ImportScene/DisplayPivotsAndLimits.cxx.

Definition at line 1540 of file fbxnode.h.

This property enables or disables the limit on rotation Z.

When set to true, the object rotation is constrained by the value of RotationMin.

To access this property do: RotationMinZ.Get(). To set this property do: RotationMinZ.Set(FbxBool).

Default value is false.

Examples:
ImportScene/DisplayPivotsAndLimits.cxx.

Definition at line 1550 of file fbxnode.h.

This property enables or disables the limit on rotation X.

When set to true, the object rotation is constrained by the value of RotationMax.

To access this property do: RotationMaxX.Get(). To set this property do: RotationMaxX.Set(FbxBool).

Default value is false.

Examples:
ExportScene05/main.cxx, and ImportScene/DisplayPivotsAndLimits.cxx.

Definition at line 1560 of file fbxnode.h.

This property enables or disables the limit on rotation Y.

When set to true, the object rotation is constrained by the value of RotationMax.

To access this property do: RotationMaxY.Get(). To set this property do: RotationMaxY.Set(FbxBool).

Default value is false.

Examples:
ExportScene05/main.cxx, and ImportScene/DisplayPivotsAndLimits.cxx.

Definition at line 1570 of file fbxnode.h.

This property enables or disables the limit on rotation Z.

When set to true, the object rotation is constrained by the value of RotationMax.

To access this property do: RotationMaxZ.Get(). To set this property do: RotationMaxZ.Set(FbxBool).

Default value is false.

Examples:
ExportScene05/main.cxx, and ImportScene/DisplayPivotsAndLimits.cxx.

Definition at line 1580 of file fbxnode.h.

This property contains inherit type information of the node.

To access this property do: InheritType.Get(). To set this property do: InheritType.Set(FbxTransform::EInheritType).

Default value is eInheritRrSs.

Examples:
Transformations/main.cxx.

Definition at line 1589 of file fbxnode.h.

This property enables or disables the limit on scaling.

When set to false the object can scale in any direction without limitations. Else the ScalingMinX, ScalingMinY, ScalingMinZ, ScalingMaxX, ScalingMaxY and ScalingMaxZ flags are used to limit the scaling on each individual axis.

To access this property do: ScalingActive.Get(). To set this property do: ScalingActive.Set(FbxBool).

Default value is false.

Examples:
ImportScene/DisplayPivotsAndLimits.cxx.

Definition at line 1603 of file fbxnode.h.

This property sets the minimum scaling values the object can occupy on each individual axis.

To access this property do: ScalingMin.Get(). To set this property do: ScalingMin.Set(FbxDouble3).

Default value is 0.,0.,0.

Examples:
ImportScene/DisplayPivotsAndLimits.cxx.

Definition at line 1612 of file fbxnode.h.

This property sets the maximum scaling values the object can occupy on each individual axis.

To access this property do: ScalingMax.Get(). To set this property do: ScalingMax.Set(FbxDouble3).

Default value is 1.,1.,1.

Examples:
ImportScene/DisplayPivotsAndLimits.cxx.

Definition at line 1621 of file fbxnode.h.

This property activates or disables the limit on scaling X.

When active, the object scaling is constrained by the value of ScalingMin.

To access this property do: ScalingMinX.Get(). To set this property do: ScalingMinX.Set(FbxBool).

Default value is false.

Examples:
ImportScene/DisplayPivotsAndLimits.cxx.

Definition at line 1631 of file fbxnode.h.

This property enables or disables the limit on scaling Y.

When set to true, the object scaling is constrained by the value of ScalingMin.

To access this property do: ScalingMinY.Get(). To set this property do: ScalingMinY.Set(FbxBool).

Default value is false.

Examples:
ImportScene/DisplayPivotsAndLimits.cxx.

Definition at line 1641 of file fbxnode.h.

This property enables or disables the limit on scaling Z.

When set to true, the object scaling is constrained by the value of ScalingMin.

To access this property do: ScalingMinZ.Get(). To set this property do: ScalingMinZ.Set(FbxBool).

Default value is false.

Examples:
ImportScene/DisplayPivotsAndLimits.cxx.

Definition at line 1651 of file fbxnode.h.

This property enables or disables the limit on scaling X.

When set to true, the object scaling is constrained by the value of ScalingMax.

To access this property do: ScalingMaxX.Get(). To set this property do: ScalingMaxX.Set(FbxBool).

Default value is false.

Examples:
ImportScene/DisplayPivotsAndLimits.cxx.

Definition at line 1661 of file fbxnode.h.

This property enables or disables the limit on scaling Y.

When set to true, the object scaling is constrained by the value of ScalingMax.

To access this property do: ScalingMaxY.Get(). To set this property do: ScalingMaxY.Set(FbxBool).

Default value is false.

Examples:
ImportScene/DisplayPivotsAndLimits.cxx.

Definition at line 1671 of file fbxnode.h.

This property enables or disables the limit on scaling Z.

When set to true, the object scaling is constrained by the value of ScalingMax.

To access this property do: ScalingMaxZ.Get(). To set this property do: ScalingMaxZ.Set(FbxBool).

Default value is false.

Examples:
ImportScene/DisplayPivotsAndLimits.cxx.

Definition at line 1681 of file fbxnode.h.

This property contains geometric translation information of the node.

To access this property do: GeometricTranslation.Get(). To set this property do: GeometricTranslation.Set(FbxDouble3).

Default value is 0.,0.,0.

Definition at line 1690 of file fbxnode.h.

This property contains geometric rotation information of the node.

To access this property do: GeometricRotation.Get(). To set this property do: GeometricRotation.Set(FbxDouble3).

Default value is 0.,0.,0.

Definition at line 1699 of file fbxnode.h.

This property contains geometric scaling information of the node.

To access this property do: GeometricScaling.Get(). To set this property do: GeometricScaling.Set(FbxDouble3).

Default value is 1.,1.,1.

Definition at line 1708 of file fbxnode.h.

This property contains the x component of the minimum damp range angles of the node.

To access this property do: MinDampRangeX.Get(). To set this property do: MinDampRangeX.Set(FbxDouble).

Default value is 0.

Definition at line 1720 of file fbxnode.h.

This property contains the y component of the minimum damp range angles of the node.

To access this property do: MinDampRangeY.Get(). To set this property do: MinDampRangeY.Set(FbxDouble).

Default value is 0.

Definition at line 1729 of file fbxnode.h.

This property contains the z component of the minimum damp range angles of the node.

To access this property do: MinDampRangeZ.Get(). To set this property do: MinDampRangeZ.Set(FbxDouble).

Default value is 0.

Definition at line 1738 of file fbxnode.h.

This property contains the x component of the maximum damp range angles of the node.

To access this property do: MaxDampRangeX.Get(). To set this property do: MaxDampRangeX.Set(FbxDouble).

Default value is 0.

Definition at line 1747 of file fbxnode.h.

This property contains the y component of the maximum damp range angles of the node.

To access this property do: MaxDampRangeY.Get(). To set this property do: MaxDampRangeY.Set(FbxDouble).

Default value is 0.

Definition at line 1756 of file fbxnode.h.

This property contains the z component of the maximum damp range angles of the node.

To access this property do: MaxDampRangeZ.Get(). To set this property do: MaxDampRangeZ.Set(FbxDouble).

Default value is 0.

Definition at line 1765 of file fbxnode.h.

This property contains the x component of the minimum damp strength of the node.

To access this property do: MinDampStrengthX.Get(). To set this property do: MinDampStrengthX.Set(FbxDouble).

Default value is 0.

Definition at line 1774 of file fbxnode.h.

This property contains the y component of the minimum damp strength of the node.

To access this property do: MinDampStrengthY.Get(). To set this property do: MinDampStrengthY.Set(FbxDouble).

Default value is 0.

Definition at line 1783 of file fbxnode.h.

This property contains the z component of the minimum damp strength of the node.

To access this property do: MinDampStrengthZ.Get(). To set this property do: MinDampStrengthZ.Set(FbxDouble).

Default value is 0.

Definition at line 1792 of file fbxnode.h.

This property contains the x component of the maximum damp strength of the node.

To access this property do: MaxDampStrengthX.Get(). To set this property do: MaxDampStrengthX.Set(FbxDouble).

Default value is 0.

Definition at line 1801 of file fbxnode.h.

This property contains the y component of the maximum damp strength of the node.

To access this property do: MaxDampStrengthY.Get(). To set this property do: MaxDampStrengthY.Set(FbxDouble).

Default value is 0.

Definition at line 1810 of file fbxnode.h.

This property contains the z component of the maximum damp strength of the node.

To access this property do: MaxDampStrengthZ.Get(). To set this property do: MaxDampStrengthZ.Set(FbxDouble).

Default value is 0.

Definition at line 1819 of file fbxnode.h.

This property contains the x component of the preferred angle of the node.

To access this property do: PreferedAngleX.Get(). To set this property do: PreferedAngleX.Set(FbxDouble).

Default value is 0.

Definition at line 1828 of file fbxnode.h.

This property contains the y component of the preferred angle of the node.

To access this property do: PreferedAngleY.Get(). To set this property do: PreferedAngleY.Set(FbxDouble).

Default value is 0.

Definition at line 1837 of file fbxnode.h.

This property contains the z component of the preferred angle of the node.

To access this property do: PreferedAngleZ.Get(). To set this property do: PreferedAngleZ.Set(FbxDouble).

Default value is 0.

Definition at line 1846 of file fbxnode.h.

This property contains lookat property of the node.

To access this property do: LookAtProperty.Get(). To set this property do: LookAtProperty.Set(FbxReference).

Definition at line 1856 of file fbxnode.h.

This property contains the up vector property of the node.

To access this property do: UpVectorProperty.Get(). To set this property do: UpVectorProperty.Set(FbxReference).

Definition at line 1864 of file fbxnode.h.

This property contains the show information of the node.

As opposed to the Visibility property, this one cannot be animated. The assumed behavior of this property is to represent the show/hide state of all the nodes attributes connected to this node only.

To access this property do: Show.Get(). To set this property do: Show.Set(FbxBool).

Default value is true.

Remarks:
  • Because node attributes can be shared by multiple nodes (instances), the FBX SDK provides an utility function FbxScene::SyncShowPropertyForInstance() to propagates the same Show value across all the nodes referencing the node attribute. The applied logic is that as soon as one of these nodes has the Show property set to false, all will be set to false (basically it is an AND operation on all the Show flags).
  • Depending on the support of the Show and Visibility properties that applications will implement, there may be conflicts with these two states. In this case, it is suggested that the Visibility property always overrides the Show.
See also:
Visibility property.

Definition at line 1888 of file fbxnode.h.

This property contains negative percent shape support information of the node.

To access this property do: NegativePercentShapeSupport.Get(). To set this property do: NegativePercentShapeSupport.Set(FbxBool).

Default value is true.

Definition at line 1897 of file fbxnode.h.

This property contains default attribute index information of the node.

To access this property do: DefaultAttributeIndex.Get(). To set this property do: DefaultAttributeIndex.Set(FbxInt).

Default value is -1.

Definition at line 1906 of file fbxnode.h.

This property contains manipulation state information of the node.

To access this property do: Freeze.Get(). To set this property do: Freeze.Set(FbxBool).

Default value is false.

Definition at line 1915 of file fbxnode.h.

This property contains level of detail mode information of the node.

To access this property do: LODBox.Get(). To set this property do: LODBox.Set(FbxBool).

True: Bounding box False: Geometry object is displayed. Default value is false.

Definition at line 1926 of file fbxnode.h.


The documentation for this class was generated from the following file: