13 #ifndef _FBXSDK_FILEIO_FBX_WRITER_FBX6_H_ 
   14 #define _FBXSDK_FILEIO_FBX_WRITER_FBX6_H_ 
   20 class Fbx6TypeDefinition;
 
   21 class Fbx6TypeWriteReferences;
 
   22 class Fbx6TypeObjectHierarchy;
 
   53     void            ConvertShapePropertyToOldStyle(
FbxScene& pScene);
 
   54     void            ConvertShapePropertyToNewStyle(
FbxScene& pScene);
 
   55     void            BuildObjectDefinition(
FbxDocument* pDocument, Fbx6TypeDefinition& pDefinitions);
 
   56     void            SetObjectWriteSupport(
const Fbx6TypeDefinition& pDefinitions);
 
   57     bool            WriteDescriptionSection(
FbxDocument* pDocument);
 
   58     bool            WriteReferenceSection(
FbxDocument* pDocument, Fbx6TypeWriteReferences& pReferences);
 
   59     void            WriteObjectDefinition(
FbxDocument* pDocument, Fbx6TypeDefinition& pDefinitions);
 
   60     void            WriteObjectProperties(
FbxDocument* pDocument, Fbx6TypeDefinition& pDefinitions);
 
   62     void            FlattenDocument(
FbxDocument* pDocument, Fbx6TypeObjectHierarchy& pDocHierarchy, 
bool pFirstCall=
true);
 
   63     void            UnFlattenDocument(
FbxDocument* pDocument, Fbx6TypeObjectHierarchy& pDocHierarchy);
 
   64     bool            WriteObjectHeaderAndReferenceIfAny(
FbxObject& pObj, 
const char* pObjectType) 
const;
 
   67     void            WriteObjectConnections(
FbxDocument* pDocument);
 
   68     void            WriteTakesAndAnimation(
FbxDocument* pDocument);
 
   70     void            WriteConstraints(
FbxScene& pScene);
 
   74     void            WriteNodeAttributes(
const FbxDocument& pDocument);
 
   75     void            WriteAllGeometries(
FbxScene& pScene);
 
   77     void            WriteAllGeometryWeightedMaps(
FbxScene& pScene);
 
   79     int             WriteCharacterPose(
FbxScene& pScene);
 
   86     void            WriteControlSetPlug(
FbxScene& pScene);
 
   89     bool            WriteNodes(
FbxScene& pScene, 
bool pIncludeRoot);
 
   93     bool            WriteObjectProperties(
FbxObject* pObject);
 
   94     bool            WriteObjectPropertiesAndFlags(
FbxObject* pObject);
 
   96     bool            WriteContainers(
FbxScene& pScene);
 
   99     bool            WriteNodeBegin(
FbxNode& pNode);
 
  100     bool            WriteNodeEnd(
FbxNode& pNode);
 
  101     bool            WriteNodeParameters(
FbxNode& pNode);
 
  102     bool            WriteNodeVersion(
FbxNode& pNode);
 
  103     bool            WriteNodeAnimationSettings(
FbxNode& pNode);
 
  104     bool            WriteNodeShading(
FbxNode& pNode);
 
  105     bool            WriteNodeCullingType(
FbxNode& pNode);
 
  107     bool            WriteNodeProperties(
FbxNode& pNode);
 
  109     bool            WriteNodeType(
FbxNode& pNode);
 
  110     bool            WriteNull(
FbxNull* pNull);
 
  111     bool            WriteMarker(
FbxNode& pNode);
 
  115     bool            WriteSkeletonLimbNode(
FbxSkeleton& pSkeleton);
 
  116     bool            WriteSkeletonEffector(
FbxSkeleton& pSkeleton);
 
  117     bool            WriteGenericNodes(
FbxScene& pScene);
 
  120     bool            WriteMesh(
FbxMesh& pMesh);
 
  121     bool            WriteMeshSmoothness(
FbxMesh& pMesh);
 
  122     bool            WriteMeshVertices(
FbxMesh& pMesh);
 
  123     bool            WriteMeshPolyVertexIndex(
FbxMesh& pMesh);
 
  124     bool            WriteMeshEdges(
FbxMesh& pMesh);
 
  130     bool            WriteSubdiv(FbxSubDiv& pSubdiv);
 
  133     bool            WritePatchType(
FbxPatch& pPatch, 
int pType);
 
  135     bool            WriteDeformers(
FbxScene& pScene);
 
  136     bool            WriteSkin(
FbxSkin& pSkin);
 
  161     int             MapLayeredTextureIndexToConnectionIndex(
FbxNode* pNode, 
void* pLET, 
int pIndex);
 
  180     bool            WriteCameraSwitcher(
FbxScene& pScene);                   
 
  196     bool            WriteBindingOperators(
FbxDocument* pDocument);
 
  212     void            WriteGoboSection(
FbxScene& pScene);
 
  213     void            WriteGobo(
FbxGobo& pGobo);
 
  221     bool            WriteFCurves(
FbxObject& pObject, 
FbxAnimLayer* pAnimLayer, 
const char* pBlockName, 
bool pKeepBlockOpen=
false, 
bool pRescaleShininess=
false);
 
  223     void            WritePose(
FbxPose& pPose);
 
  225     bool            WriteSelectionNode(
FbxScene& pScene);
 
  228     bool            WriteSelectionSet(
FbxScene& pScene);
 
  236     bool            WriteExtensionSection(
FbxScene& pScene, 
int pMediaCount);
 
  241     void            WriteGlobalLightSettings(
FbxScene& pScene);
 
  242     void            WriteShadowPlane(
FbxScene& pScene);
 
  243     void            WriteShadowPlaneSection(
FbxScene& pScene);
 
  244     void            WriteAmbientColor(
FbxScene& pScene);
 
  245     void            WriteFogOption(
FbxScene& pScene);
 
  247     void            WriteGlobalCameraSettings(
FbxScene& pScene);
 
  248     void            WriteGlobalTimeSettings(
FbxScene& pScene);
 
  251     void            WritePassword();
 
  253     void            WriteLayeredAnimation(
FbxScene& pScene);
 
  257     void            WriteProperty(
FbxProperty& pProperty, 
bool lSetNodeAttributeFlag);
 
  258     void            ConnectTimeWarp(
FbxAnimCurveNode* pCurveNode, KFCurveNode* pFCurveNode);
 
  265     Fbx6TypeObjectHierarchy*    mDocumentHierarchy;
 
  266     Fbx6TypeWriteReferences*    mDocumentReferences;
 
  268     bool                        mWriteNonDefaultPropertiesOnly;
 
  269     bool                        mWriteEnhancedProperties;
 
  276     struct TextureAnimatedChannels
 
  284     struct SurfaceMaterialAnimatedChannels
 
  299     void ReplaceUnsupportedProperties(
FbxScene* pScene, 
bool pPreprocessPass, 
int pFormatV);
 
  301     bool IsLeafRoll(
const FbxString& pNameWithoutNameSpacePrefix);
 
The animation layer is a collection of animation curve nodes. 
 
This class describes image mapping on top of geometry. 
 
bool IsNameUnique(FbxScene &pScene, FbxObject *pObject)
 
A gobo is a filter placed over a spot light to project light patterns through fog on a surface...
 
The Animation stack is a collection of animation layers. 
 
This class is an composite of animation curves and is called as animation curve node. 
 
virtual bool PostprocessScene(FbxScene &pScene)
Post-processes the scene. 
 
virtual bool Write(FbxDocument *pDocument)
Writes content to the specified file with given stream options. 
 
Abstract class for implementing I/O operations through a stream of data. 
 
This class contains material settings. 
 
Utility class to manipulate strings. 
 
FbxDocument is a base class for FbxScene and FbxLibrary classes. 
 
Contains a collection of FbxLayer objects. 
 
virtual void SetProgressHandler(FbxProgress *pProgress)
Pass a progress handler to the writer. 
 
Class for clusters (links). 
 
This node attribute contains methods for accessing the properties of a camera switcher. 
 
This class facilitates the testing/reporting of errors. 
 
FbxWriterFbx6(FbxManager &pManager, FbxExporter &pExporter, int pID, FbxStatus &pStatus)
 
This object represents the shading node implementation. 
 
virtual void GetWriteOptions()
Setup write options. 
 
This class contains scene thumbnails and user-defined summary data. 
 
This class contains functions for accessing global settings. 
 
Base class for weighted animation constraints. 
 
virtual bool PreprocessScene(FbxScene &pScene)
Pre-processes the scene. 
 
A character pose is a character and an associated hierarchy of nodes. 
 
FBX SDK selection set class. 
 
The base class of most FBX objects. 
 
FbxTrimNurbsSurface describes a NURBS surface with regions trimmed or cut away with trimming boundari...
 
Represents an element in the scene graph. 
 
Class to export SDK objects into an FBX file. 
 
A patch is a type of node attribute with parametric surface. 
 
This node attribute contains methods for accessing the properties of a light. 
 
This class contains the description of a 3D scene. 
 
This class contains the description of a Pose and provide some methods to access Pose info in one FBX...
 
Base class of other writers used internally. 
 
A NURBS surface is a type of parametric geometry. 
 
This class represents a link between a given FBX node and the associated node in the character hierar...
 
A shape describes the deformation on a set of control points, which is similar to the cluster deforme...
 
Class for progress reporting. 
 
FbxBoundary describes a trimming boundary for a trimmed NURBS object. 
 
Internal class used to differentiate objects during run-time. 
 
EType
Layer Element type identifier. 
 
FbxSelectionNode is an auxiliary class for Selection Set. 
 
Class to hold user properties. 
 
FbxLayeredTexture is a combination of multiple textures(FbxTexture) blended sequentially. 
 
A FbxObject derived container for FbxObject. 
 
virtual bool FileClose()
Closes the file. 
 
FbxIO represents an FBX file. 
 
A binding table represents a collection of bindings from source types such as FbxObject, or FbxLayerElements to corresponding destinations, usually a third party shader parameters. 
 
FbxArray< FbxTakeInfo * > TakeInfoArray
 
This node attribute contains methods for accessing the properties of a camera. 
 
This object represents a binding operation on a FbxObject or FbxProperty. 
 
virtual bool FileCreate(char *pFileName)
Creates a new file. 
 
A NURBS surface is a type of parametric geometry. 
 
A Non-Uniform Rational B-Spline (NURBS) curve is a type of parametric geometry. 
 
This node attribute contains the properties of a null node. 
 
This class specializes a node attribute to represent the elements forming "bone" chains. 
 
A Character is a person or animal with pre-defined skeleton system. 
 
This class provides the structure to build a correspondence between 2 geometries. ...
 
The base class of geometric objects that support control point deformations (e.g. ...
 
virtual bool IsFileOpen()
Test if the file is open. 
 
This class is the base class to all types of node attributes. 
 
Class to manipulate a map that can contain multiple times the same key. 
 
void SetExportMode(EExportMode pMode)
 
virtual void PluginWriteParameters(FbxObject &pParams)
Writes extension plug-ins name, version and parameters, so that we can remember if a plug-in was used...
 
virtual bool SupportsStreams() const 
Returns true if this writer supports FbxStream I/O. 
 
Simple class to hold RGBA values of a thumbnail image. 
 
This object contains methods for accessing point animation in a cache file. 
 
A mesh is a geometry made of polygons. 
 
This node attribute contains methods for accessing the properties of a stereo camera.