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);
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.