13 #ifndef _FBXSDK_FILEIO_FBX_READER_FBX5_H_
14 #define _FBXSDK_FILEIO_FBX_READER_FBX5_H_
21 class Fbx5ObjectTypeInfo;
28 const char* * pExtensions,
29 const char* * pDescriptions);
37 virtual bool FileOpen(
char* pFileName,
bool pIgnoredArg);
39 bool FileOpen(
char* pFileName)
override;
56 void GetVersion(
int& pMajor,
int& pMinor,
int& pRevision)
override;
70 void ReadOptionsInMainSection();
71 void ReadTakeOptions();
72 bool ReadOptionsInExtensionSection(
int& pSectionIndex);
73 void ReadOptionsInGenericSection();
74 bool WriteOptionsInExtensionSection(
bool pOverwriteLastExtensionSection=
false);
79 void SetIsBeforeVersion6WithMainSection(
bool pOpenMainSection);
86 bool ReadAnimation(
FbxScene& pScene);
91 bool ReadHierarchy(
FbxNode& pRootNode);
92 bool ResolveHierarchy(
FbxNode& pRootNode);
94 bool ResolveTargets(
FbxNode& pRootNode);
95 bool ResolveUpNodes(
FbxNode& pRootNode);
96 bool ResolveCameraBackgrounds(
FbxScene& pScene);
97 void RemoveDuplicateTextures(
FbxScene& pScene);
98 void RemoveDuplicateMaterials(
FbxScene& pScene);
103 void ReadCameraSwitcher(
FbxScene& pScene);
104 void ReorderCameraSwitcherIndices(
FbxScene& pScene);
107 void ReadGoboSection(
FbxScene& pScene);
110 void ReadCharacter(
FbxScene& pScene);
111 void ReadCharacter(
FbxCharacter& pCharacter,
int& pInputType,
int& pInputIndex);
112 void ReadCharacterLinkGroup(
FbxCharacter& pCharacter,
int pCharacterGroupId);
113 void ReadCharacterLink(
FbxCharacter& pCharacter,
int pCharacterNodeId);
117 void ReadControlSetLinkGroup(
FbxControlSet& pControlSet,
int pCharacterGroupId);
118 void ReadControlSetLink(
FbxControlSet& pControlSet,
int pCharacterNodeId);
122 int ReadCharacterPose(
FbxScene& pScene);
125 void ReadGlobalLightSettings(
FbxScene& pScene);
126 void ReadShadowPlane(
FbxScene& pScene);
127 void ReadAmbientColor(
FbxScene& pScene);
128 void ReadFogOption(
FbxScene& pScene);
130 void ReadGlobalCameraAndTimeSettings(
FbxScene& pScene);
131 void ReadGlobalTimeSettings(
FbxScene& pScene);
133 void ReadGlobalCameraSettings(
FbxScene& pScene);
135 bool ReadMedia(
FbxScene& pScene,
const char* pEmbeddedMediaDirectory =
"");
136 FbxString ReadMediaClip(
const char* pEmbeddedMediaDirectory);
138 bool ReadNode (
FbxNode& pNode );
140 bool ReadNodeChildrenName (
FbxNode& pNode );
141 bool ReadNodeShading (
FbxNode& pNode );
142 bool ReadNodeCullingType (
FbxNode& pNode );
143 bool ReadNodeLimits (
FbxNode& pNode );
144 bool ReadNodeTarget (
FbxNode& pNode );
145 bool ReadNodeAttribute (
FbxNode& pNode );
146 bool ReadNodePivots (
FbxNode& pNode );
147 bool ReadNodeDefaultAttributes (
FbxNode& pNode );
148 bool ReadNodeProperties (
FbxNode& pNode );
150 bool ReadGeometryMaterial (
FbxGeometry& pGeometry );
151 bool ReadGeometryTexture (
FbxGeometry& pGeometry );
153 bool ReadGeometryShapes (
FbxGeometry& pGeometry );
155 bool ReadGeometryTextureLayer (
FbxGeometry& pGeometry,
int pLayerIndex );
157 bool ReadNull (
FbxNull& pNull );
164 bool ReadLight (
FbxLight& pLight );
166 bool ReadMesh (
FbxMesh& pMesh );
167 bool ReadMeshVertices (
FbxMesh& pMesh );
168 bool ReadMeshNormals (
FbxMesh& pMesh );
169 bool ReadMeshAssignation (
FbxMesh& pMesh );
170 bool ReadMeshPolygonIndex (
FbxMesh& pMesh );
171 bool ReadMeshPolyGroupIndex (
FbxMesh& pMesh );
172 bool ReadMeshMaterialsID (
FbxMesh& pMesh );
173 bool ReadMeshTexturesID (
FbxMesh& pMesh );
174 bool ReadMeshTextureType (
FbxMesh& pMesh );
175 bool ReadMeshTextureUV (
FbxMesh& pMesh );
176 bool ReadMeshTextureIndex (
FbxMesh& pMesh );
177 bool ReadMeshVertexColors (
FbxMesh& pMesh );
191 bool ReadPatch (
FbxPatch& pPatch );
192 int ReadPatchType (
FbxPatch& pPatch );
203 bool ReadUserProperties (
FbxNode& pNode);
209 bool ReadConnectionSection();
214 bool GenerateParametricGeometryLayer(
FbxGeometry& pGeometry);
215 void CorrectTextureLayers(
FbxMesh& pMesh);
217 void TransferAnimation(
void* pRootCurveNode,
FbxProperty& pRootProperty,
bool pValueOnly =
false);
218 void ReadAnimation(
FbxIO& pFileObject,
void* pCurveNode);
224 FbxNode* FindNode (
char* pName);
230 void ReadSceneGenericPersistenceSection(
FbxScene& pScene);
The animation layer is a collection of animation curve nodes.
FbxReader * CreateFBXReader(FbxManager &pManager, FbxImporter &pImporter, int pID, FbxStatus &pStatus)
This class describes image mapping on top of geometry.
EFileOpenSpecialFlags
Flags for reading parts of file.
void GetVersion(int &pMajor, int &pMinor, int &pRevision) override
Returns the file version.
Callback to operate on the embedded data while it is processed.
FbxReaderFbx5(FbxManager &pManager, FbxImporter &pImporter, int pID, FbxStatus &pStatus)
A gobo is a filter placed over a spot light to project light patterns through fog on a surface...
FbxArray< FbxTakeInfo * > * GetTakeInfo() override
Returns the list of take infos from the file.
bool GetReadOptions(bool pParseFileAsNeeded=true) override
Returns file stream options.
Abstract class for implementing I/O operations through a stream of data.
bool Read(FbxDocument *pDocument) override
Reads file with stream options.
Utility class to manipulate strings.
FbxDocument is a base class for FbxScene and FbxLibrary classes.
virtual bool FileOpen(char *pFileName, bool pIgnoredArg)
A class that maps strings to objects with a basic string comparator.
Class for clusters (links).
Base class of other readers used internally.
void GetInfoFBXReader(int *pCount, const char **pExtensions, const char **pDescriptions)
This node attribute contains methods for accessing the properties of a camera switcher.
This class facilitates the testing/reporting of errors.
This class contains scene thumbnails and user-defined summary data.
This node attribute contains the properties of a marker.
Base class for weighted animation constraints.
Empty node containing properties.
EImportMode GetImportMode()
void SetEmbeddingExtractionFolder(const char *pExtractFolder) override
A character pose is a character and an associated hierarchy of nodes.
The base class of most FBX objects.
Represents an element in the scene graph.
A patch is a type of node attribute with parametric surface.
bool FileClose() override
Closes the file stream.
This class contains settings for Phong Materials.
This node attribute contains methods for accessing the properties of a light.
FbxDocumentInfo * GetSceneInfo() override
Returns the scene info from the file.
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...
This class contains the data structure support for char pointer set.
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...
bool SupportsStreams() const override
Returns true if this reader supports FbxStream I/O.
Class to hold user properties.
FbxIO represents an FBX file.
void SetEmbeddedFileCallback(FbxEmbeddedFileCallback *pCallback) override
This class contains take information from an imported file or exported to an output file...
This node attribute contains methods for accessing the properties of a camera.
A NURBS surface is a type of parametric geometry.
virtual bool FileOpen(char *pFileName)=0
Opens the file with default flag.
This node attribute contains the properties of a null node.
This class contains all methods to either set-up an exported control rig or query information on an i...
A Character is a person or animal with pre-defined skeleton system.
Class for interfacing with files, providing a similar interface for files independant of the OS or fi...
The base class of geometric objects that support control point deformations (e.g. ...
bool IsFileOpen() override
Checks if the file stream is open.
Class to manipulate a map that can contain multiple times the same key.
Simple class to hold RGBA values of a thumbnail image.
bool FileOpen(char *pFileName, EFileOpenSpecialFlags pFlags) override
Opens the file with specific EFileOpenSpecialFlags.
Class to import an FBX file into SDK objects.
A mesh is a geometry made of polygons.