13 #ifndef _FBXSDK_FILEIO_FBX_READER_FBX6_H_
14 #define _FBXSDK_FILEIO_FBX_READER_FBX6_H_
22 class Fbx6ObjectTypeInfo;
23 class Fbx6TypeReadReferences;
110 bool FileOpen(
char* pFileName)
override;
152 void GetVersion(
int& pMajor,
int& pMinor,
int& pRevision)
override;
203 #ifndef FBXSDK_ENV_WINSTORE
280 bool ReadReferenceSection(
FbxDocument *pDocument, Fbx6TypeReadReferences& pDocReferences);
313 bool ReadConnectionSection(
FbxDocument *pDocument );
325 bool ReadDocumentAnimation(
FbxDocument *pDocument);
394 void ReadCameraSwitcher(
FbxScene& pScene);
404 void ReorderCameraSwitcherIndices(
FbxScene& pScene);
415 void ReadGlobalLightSettings(
FbxScene& pScene);
420 void ReadGlobalTimeSettings(
FbxScene& pScene);
425 void ReadGlobalCameraSettings(
FbxScene& pScene);
430 void ReadShadowPlane(
FbxScene& pScene);
435 void ReadAmbientColor(
FbxScene& pScene);
440 void ReadFogOption(
FbxScene& pScene);
453 void ReadCharacter(
FbxCharacter& pCharacter,
int& pInputType,
int& pInputIndex);
459 void ReadCharacterLinkGroup(
FbxCharacter& pCharacter,
int pCharacterGroupId);
465 void ReadCharacterLink(
FbxCharacter& pCharacter,
int pCharacterNodeId);
496 bool ReadMedia(
FbxDocument *pDocument,
const char* pEmbeddedMediaDirectory =
"");
516 bool ReadNode (
FbxNode& pNode,
FbxString& pObjectSubType, Fbx6TypeReadReferences& pDocReferences );
534 bool ReadNodeShading (
FbxNode& pNode );
540 bool ReadNodeCullingType (
FbxNode& pNode );
546 bool ReadNodeTarget (
FbxNode& pNode );
555 bool ReadNodeAttribute (
FbxNode& pNode ,
FbxString& pObjectSubType,
bool& pCreatedAttribute, Fbx6TypeReadReferences& pDocReferences);
572 bool ReadNodeProperties (
FbxNode& pNode,
bool pReadNodeAttributeProperties );
590 bool ReadGeometryShapes (
FbxGeometry& pGeometry );
596 bool ReadNull (
FbxNull& pNull );
626 bool ReadLight (
FbxLight& pLight );
645 bool ReadMesh (
FbxMesh& pMesh );
651 bool ReadMeshSmoothness (
FbxMesh& pMesh );
657 bool ReadMeshVertices (
FbxMesh& pMesh );
663 bool ReadMeshPolygonIndex (
FbxMesh& pMesh );
669 bool ReadMeshEdges (
FbxMesh& pMesh );
683 bool ReadSubdiv( FbxSubDiv& pSubdiv);
721 bool ReadPatch (
FbxPatch& pPatch );
727 int ReadPatchType (
FbxPatch& pPatch );
967 bool ResolveCameraBackgrounds(
FbxScene& pScene);
972 void RemoveDuplicateTextures(
FbxScene& pScene);
987 void RemoveDuplicateMaterials(
FbxScene& pScene);
1011 void PublishProperties(
FbxObject& pObject);
1018 bool ReadProperties(
FbxObject *pFbxObject,
FbxIO *pFbxFileObject,
bool pReadNodeAttributeProperties=
true);
1027 bool ReadPropertiesAndFlags(
FbxObject *pFbxObject,
FbxIO *pFbxFileObject,
bool pReadNodeAttributeProperties=
true);
1039 void RebuildTrimRegions(
FbxScene& pScene)
const;
1044 void SetSubdivision(
FbxScene& pScene)
const;
1049 void ConvertShapeDeformProperty(
FbxScene& pScene)
const;
1054 void RebuildLayeredTextureAlphas(
FbxScene& pScene)
const;
1057 void ReadOptionsInMainSection();
1058 void ReadTakeOptions();
1059 bool ReadOptionsInExtensionSection(
int& pSectionIndex);
1060 bool WriteOptionsInExtensionSection(
bool pOverwriteLastExtensionSection=
false);
1066 void ReadGlobalSettingsInMainSection();
1071 void ReadDefinitionSectionForStats();
1083 bool mParseGlobalSettings;
1088 bool mRetrieveStats;
1098 bool mProgressPause;
1106 struct CachedIOS_REF
1108 bool mImportAnimation;
1112 bool mImportBinormal;
1113 bool mImportTangent;
1114 bool mImportVertexColor;
1115 bool mImportPolyGroup;
1116 bool mImportSmoothing;
1117 bool mImportUserData;
1118 bool mImportVisibility;
1119 bool mImportEdgeCrease;
1120 bool mImportVertexCrease;
1122 bool mImportCalcLegacyShapeNormal;
1124 bool mImportConstraint;
1125 bool mExtractEmbedded;
1127 CachedIOS_REF mDocFlags;
1129 inline void TriggerProgress(
const char* label)
1131 if (mProgress && !mProgressPause)
1133 mProgress->
Update(1.0f, label);
The animation layer is a collection of animation curve nodes.
This class describes image mapping on top of geometry.
EFileOpenSpecialFlags
Flags for reading parts of file.
Callback to operate on the embedded data while it is processed.
void Clear()
Delete all FbxObject in template map.
bool SupportsStreams() const override
Returns true if this reader supports FbxStream I/O.
Fbx6ClassTemplateMap()
Constructor.
virtual ~FbxReaderFbx6()
Destructor.
The Animation stack is a collection of animation layers.
bool GetStatistics(FbxStatistics *pStats) override
Get the statistics from file.
bool IsFileOpen() override
Check whether the file stream is open.
void Update(float pDelta, const char *pStatus=((void *) 0))
Update current progress with recent workload.
EFlags
Property flags that affect their behaviors.
This class represents the coordinate system of the scene and can convert scenes to other coordinate s...
Abstract class for implementing I/O operations through a stream of data.
void SetEmbeddedFileCallback(FbxEmbeddedFileCallback *pCallback) override
This class contains material settings.
Utility class to manipulate strings.
FbxDocument is a base class for FbxScene and FbxLibrary classes.
Generic container for object grouping and encapsulation.
A class that maps strings to objects with a basic string comparator.
void SetEmbeddingExtractionFolder(const char *pExtractFolder) override
bool MergeWithTemplate(FbxObject *pObject) const
Merge the properties of FbxObject with the object with the same class id.
Class for clusters (links).
This class is a basic class to get the quantity of items.
Base class of other readers used internally.
This node attribute contains methods for accessing the properties of a camera switcher.
This class facilitates the testing/reporting of errors.
FbxDocumentInfo * GetSceneInfo() override
Returns the scene info from the file.
This object represents the shading node implementation.
This class contains scene thumbnails and user-defined summary data.
This class contains functions for accessing global settings.
This node attribute contains the properties of a marker.
Base class for weighted animation constraints.
bool GetAxisInfo(FbxAxisSystem *pAxisSystem, FbxSystemUnit *pSystemUnits) override
Get axis system information from file.
void PluginReadParameters(FbxObject &pParams) override
Read all the properties and flags.
bool Read(FbxDocument *pDocument) override
Read file with stream options.
Empty node containing properties.
FbxReaderFbx6(FbxManager &pManager, FbxImporter &pImporter, int pID, FbxStatus &pStatus)
Constructor.
bool AddClassId(FbxClassId pId, FbxObject *pTemplateObject)
Add the template object to template map.
void GetVersion(int &pMajor, int &pMinor, int &pRevision) override
Get file version.
A character pose is a character and an associated hierarchy of nodes.
Class to encapsulate time units.
FBX SDK selection set class.
The base class of most FBX objects.
FbxArray< FbxTakeInfo * > * GetTakeInfo() override
Returns the pointer to the list of TakeInfo from the file.
FbxTrimNurbsSurface describes a NURBS surface with regions trimmed or cut away with trimming boundari...
Represents an element in the scene graph.
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...
A NURBS surface is a type of parametric geometry.
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...
EImportMode
File import mode.
If set, object is stored in FBX file upon export.
bool GetFrameRate(FbxTime::EMode &pTimeMode) override
Get FBX file time mode read from GlobalSettings in FBX 6.n and FBX 7.n.
EImportMode GetImportMode()
Get current Import mode.
A shape describes the deformation on a set of control points, which is similar to the cluster deforme...
This class defines functions to check the received scene graph for issues.
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.
bool GetReadOptions(bool pParseFileAsNeeded=true) override
Get the file stream options.
Helper class to merge Class root property templates.
A FbxObject derived container for FbxObject.
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.
~Fbx6ClassTemplateMap()
Destructor.
bool FileOpen(char *pFileName, EFileOpenSpecialFlags pFlags) override
Open file with certain EFileOpenSpecialFlags.
This class describes the units of measurement used within a particular scene.
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.
This object represents a binding operation on a FbxObject or FbxProperty.
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.
void SetProgressHandler(FbxProgress *pProgress) override
Pass a progress handler to the reader.
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...
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. ...
EObjectFlag
Flags available to control objects.
This class is the FBX v6 reader.
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.
bool FileClose() override
Close the file stream.
Simple class to hold RGBA values of a thumbnail image.
This object contains methods for accessing point animation in a cache file.
Class to import an FBX file into SDK objects.
A mesh is a geometry made of polygons.
This node attribute contains methods for accessing the properties of a stereo camera.