13 #ifndef _FBXSDK_FILEIO_COLLADA_READER_H_
14 #define _FBXSDK_FILEIO_COLLADA_READER_H_
82 virtual bool FileOpen(
char* pFileName);
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.
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.
virtual bool Read(FbxDocument *pDocument)
Read from Collada file and import it to the FBX document, according to the given options settings...
This class contains scene thumbnails and user-defined summary data.
This class contains functions for accessing global settings.
virtual bool FileClose()
Close file.
This class implements an efficient map based on key comparison, which stores key-value pairs...
The base class of most FBX objects.
virtual bool GetAxisInfo(FbxAxisSystem *pAxisSystem, FbxSystemUnit *pSystemUnits)
Get axis system information from file.
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.
virtual FbxArray< FbxTakeInfo * > * GetTakeInfo()
Returns the list of take infos from the 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.
virtual bool FileOpen(char *pFileName)
Open file with the given name.
virtual bool IsFileOpen()
Check if current file is open.
virtual bool GetReadOptions(bool pParseFileAsNeeded=true)
Get Collada import options settings.
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. ...
FbxReaderCollada(FbxManager &pManager, int pID, FbxStatus &pStatus)
Constructor.
A mesh is a geometry made of polygons.