13 #ifndef _FBXSDK_FILEIO_COLLADA_READER_H_
14 #define _FBXSDK_FILEIO_COLLADA_READER_H_
82 bool FileOpen(
char* pFileName)
override;
130 #ifndef DOXYGEN_SHOULD_SKIP_THIS
142 bool ReadCollada(
FbxScene &pScene, xmlNode* pXmlNode);
149 bool ImportVisualScene(xmlNode* pXmlNode,
FbxScene * pScene);
156 bool ImportVisualSceneMax3DExtension(xmlNode * pTechniqueElement,
FbxScene * pScene);
163 bool ImportVisualSceneFCOLLADAExtension(xmlNode * pTechniqueElement,
FbxScene * pScene);
170 bool ImportVisualSceneMayaExtension(xmlNode * pTechniqueElement,
FbxScene * pScene);
189 FbxNode * ImportNode(xmlNode* pXmlNode);
196 bool ImportNodeFCOLLADAExtension(xmlNode* pTechniqueElement,
FbxNode * pNode);
203 bool ImportNodeXSIExtension(xmlNode* pTechniqueElement,
FbxNode * pNode);
210 bool ImportNodeFBXExtension(xmlNode* pTechniqueElement,
FbxNode * pNode);
224 bool ImportSkin(xmlNode* pSkinElement);
245 FbxCamera * ImportCamera(xmlNode* pXmlNode);
252 FbxLight * ImportLight(xmlNode* pXmlNode);
303 bool ImportVertices(xmlNode* pVerticesElement,
FbxGeometry * pGeometry);
320 bool ImportTransforms(xmlNode* pXmlNode,
FbxNode* pNode);
327 int ImportRotationElement(xmlNode* pXmlNode,
FbxVector4& pRotationVector);
344 bool ImportLookAt(xmlNode* pXmlNode,
FbxVector4& lCameraPosition,
368 bool CheckColladaVersion(
const FbxString & pVersionString);
381 void AddNotificationError(
FbxString pError );
386 void AddNotificationWarning(
FbxString pWarning );
394 bool ImportScene(xmlNode * pColladaNode);
399 void Preprocess(xmlNode * pColladaElement);
403 void BuildUpLibraryMap();
409 void BuildUpLibraryMap(xmlNode * pElement,
const FbxString & pElementTag);
425 bool ImportTransparent(xmlNode * pElement,
FbxSurfaceLambert * pSurfaceMaterial);
428 struct LibraryTypeTraits
440 FbxObject * GetLibrary(
const LibraryTypeTraits & pTypeTraits, xmlNode * pElement);
447 bool ImportMatrixAnimation(
FbxNode * pNode,
const FbxString & pAnimationChannelID);
455 bool ImportPropertyAnimation(
FbxProperty & pProperty,
const FbxString & pAnimationChannelID,
const char * pChannelName =
NULL);
467 double GetLocalUnitConversion(xmlNode * pElement);
473 void SetProperty(xmlNode* pPropertyElement,
FbxProperty & pProperty);
480 void ImportPropertyValue(
FbxObject * pObject,
const char * pPropertyName,
481 xmlNode * pPropertyValueElement);
497 xmlNode * mColladaElement;
499 struct ColladaElementData
501 explicit ColladaElementData(xmlNode * pElement =
NULL)
502 : mColladaElement(pElement), mFBXObject(
NULL) {}
503 xmlNode * mColladaElement;
508 ColladaElementMapType mColladaElements;
510 LibraryTypeTraits mEffectTypeTraits;
511 LibraryTypeTraits mMaterialTypeTraits;
512 LibraryTypeTraits mImageTypeTraits;
513 LibraryTypeTraits mGeometryTypeTraits;
514 LibraryTypeTraits mControllerTypeTraits;
515 LibraryTypeTraits mLightTypeTraits;
516 LibraryTypeTraits mCameraTypeTraits;
517 LibraryTypeTraits mNodeTypeTraits;
518 LibraryTypeTraits mAnimationTypeTraits;
521 AnimationMapType mAnimationElements;
525 struct AnimationClipData
527 AnimationClipData(
const FbxString & pID) : mID(pID), mAnimLayer(
NULL) {}
528 AnimationClipData(
const AnimationClipData& pOther){ *
this = pOther; }
529 AnimationClipData& operator=(
const AnimationClipData& pOther){ mID = pOther.mID; mAnimationElementIDs = pOther.mAnimationElementIDs; mAnimLayer = pOther.mAnimLayer;
return *
this; }
543 NodeMapType mIDNamespaceNodes;
544 NodeMapType mSIDNamespaceNodes;
549 TargetIDMapType mTargetIDs;
The animation layer is a collection of animation curve nodes.
This class describes image mapping on top of geometry.
bool Read(FbxDocument *pDocument) override
Read from Collada file and import it to the FBX document, according to the given options settings...
bool FileOpen(char *pFileName) override
Open file with the given name.
virtual ~FbxReaderCollada()
Destructor.
This class represents the coordinate system of the scene and can convert scenes to other coordinate s...
This class contains material settings.
Utility class to manipulate strings.
Class to read a Collada file and import it to a FBX scene.
FbxDocument is a base class for FbxScene and FbxLibrary classes.
Base class of other readers used internally.
This class facilitates the testing/reporting of errors.
This class contains scene thumbnails and user-defined summary data.
This class contains functions for accessing global settings.
This class implements an efficient map based on key comparison, which stores key-value pairs...
The base class of most FBX objects.
Represents an element in the scene graph.
This node attribute contains methods for accessing the properties of a light.
This class contains settings for Lambert Materials.
This class contains the description of a 3D scene.
This class implements an efficient set based on value comparison, which stores values.
bool FileClose() override
Close file.
bool GetAxisInfo(FbxAxisSystem *pAxisSystem, FbxSystemUnit *pSystemUnits) override
Get axis system information from file.
Containing the valid parameter definition and modification in local scope.
Template class for dynamic array holding objects.
Class to hold user properties.
A four double mathematic vector class.
FBX SDK affine matrix class.
This class describes the units of measurement used within a particular scene.
This node attribute contains methods for accessing the properties of a camera.
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. ...
FbxArray< FbxTakeInfo * > * GetTakeInfo() override
Returns the list of take infos from the file.
FbxReaderCollada(FbxManager &pManager, int pID, FbxStatus &pStatus)
Constructor.
bool GetReadOptions(bool pParseFileAsNeeded=true) override
Get Collada import options settings.
bool IsFileOpen() override
Check if current file is open.
A mesh is a geometry made of polygons.