13 #ifndef _FBXSDK_FILEIO_COLLADA_ELEMENT_H_ 
   14 #define _FBXSDK_FILEIO_COLLADA_ELEMENT_H_ 
   80     template <
typename TYPE>
 
   86     template <
typename TYPE>
 
   88         int pSourceUnitOffset = 0, 
int pSourceUnitValidCount = 1, 
int pSourceUnitSize = 1,
 
   89         int pDestUnitOffset = 0, 
int pDestUnitValidCount = 1, 
int pDestUnitSize = 1,
 
   90         TYPE pDefaultValue = TYPE())
 
   95                 pSourceUnitOffset, pSourceUnitValidCount, pSourceUnitSize,
 
   96                 pDestUnitOffset, pDestUnitValidCount, pDestUnitSize, pDefaultValue);
 
  109 template <
typename TYPE>
 
  115         bool lReadCount = 
true;
 
  117         if (lTechniqueElement)
 
  120             FBX_ASSERT(lAccessorElement);
 
  121             if (!lAccessorElement)
 
  131             TypeToArrayTag<TYPE>());
 
  135         FBX_ASSERT(lDataArrayElement);
 
  137         if (lDataArrayElement && lReadCount)
 
  140         mContent = xmlNodeGetContent(lDataArrayElement);
 
  186     xmlNode * mXMLElement;
 
  210 template <
typename T>
 
  212                            const T * pData, 
int pCount, 
int pStride = 1)
 
  214     FBX_ASSERT(pParentElement && pData);
 
  215     if (!pParentElement || !pData)
 
  222     const int lDataCount = pCount * pStride;
 
  223     for (
int lIndex = 0; lIndex < lDataCount; ++lIndex)
 
  225         lContent += 
ToString(pData[lIndex]);
 
  226         if (lIndex != lDataCount - 1)
 
  230     xmlNode * lArrayElement = 
DAE_AddChildElement(lSourceElement, TypeToArrayTag<T>(), lContent);
 
  242     for (
int lStrideIndex = 0; lStrideIndex < pStride; ++lStrideIndex)
 
  248     return lSourceElement;
 
  266     TYPE * lArray = 
NULL;
 
  268     lSourceElementAccessor.
GetArray((
double *)lArray, 0, pSize,
 
  269         lSourceElementAccessor.
mStride, 0, pSize, 
sizeof(TYPE)/
sizeof(
double), 1.0);
 
FbxLayerElementArrayTemplate< int > & GetIndexArray() const 
Returns the index array of Layer Elements. 
 
#define COLLADA_FLOAT_ARRAY_STRUCTURE
 
void SetXMLElement(xmlNode *pElement)
Access for XML element. 
 
#define COLLADA_ACCESSOR_STRUCTURE
 
const FbxSystemUnit * GetUnit() const 
Get the unit of the element, which takes effect in this element and its children elements. 
 
void SetReferenceMode(EReferenceMode pReferenceMode)
Sets the Reference Mode. 
 
const FbxString URL(const FbxString &pID)
Convert from ID to URL, just add a prefix "#". 
 
const FbxString & GetID() const 
Get the ID of the element. 
 
const FbxString ToString(const T &pValue)
 
A struct for convenient access to the content of COLLADA source element. 
 
#define COLLADA_COUNT_PROPERTY
 
bool GetNext(TYPE *pData)
 
#define COLLADA_BOOL_TYPE
 
#define COLLADA_PARAMETER_STRUCTURE
 
bool FromString(T *pDest, const char *pSourceBegin, const char **pSourceEnd=((void *) 0))
Convert part of the source string into destination type. 
 
#define COLLADA_STRIDE_PROPERTY
 
#define COLLADA_OFFSET_PROPERTY
 
FbxLayerElementArrayTemplate< Type > & GetDirectArray() const 
Returns the direct array of Layer Elements. 
 
Utility class to manipulate strings. 
 
#define COLLADA_SOURCE_STRUCTURE
 
xmlNode * AddSourceElement(xmlNode *pParentElement, const char *pID, const T *pData, int pCount, int pStride=1)
Convert the array data to a source element under specific parent element. 
 
void SetMappingMode(EMappingMode pMappingMode)
Sets the Mapping Mode. 
 
const FbxString TypeToParameterTag< bool >()
 
#define COLLADA_ID_PROPERTY
 
int GetArray(TYPE *pArray, int pSourceUnitOffset=0, int pSourceUnitValidCount=1, int pSourceUnitSize=1, int pDestUnitOffset=0, int pDestUnitValidCount=1, int pDestUnitSize=1, TYPE pDefaultValue=TYPE())
 
const FbxString TypeToArrayTag< bool >()
 
#define COLLADA_IDREF_ARRAY_STRUCTURE
 
const FbxString TypeToParameterTag()
 
xmlNode * DAE_AddChildElement(xmlNode *pParentElement, const char *pTag, const T &pContent)
Add a child element with specific content. 
 
const FbxString TypeToArrayTag()
 
FbxLayerElementArray is the base class for FbxLayerElementArrayTemplate, it provides lock handling an...
 
This class complements the FbxLayerElement class. 
 
#define COLLADA_TYPE_PROPERTY
 
#define COLLADA_SOURCE_PROPERTY
 
ElementBase()
Constructor & Destructor. 
 
const FbxString TypeToArrayTag< FbxString >()
 
#define COLLADA_BOOL_ARRAY_STRUCTURE
 
virtual ~ElementContentAccessor()
 
#define COLLADA_FLOAT_TYPE
 
static const char * smID_PROPERTY_NAME
 
const FbxString TypeToArrayTag< int >()
 
This class describes the units of measurement used within a particular scene. 
 
#define COLLADA_NAME_ARRAY_STRUCTURE
 
const FbxString DAE_GetElementAttributeValue(xmlNode *pElement, const char *pAttributeName)
Get the value of an attribute of an element. 
 
#define COLLADA_TECHNIQUE_COMMON_ELEMENT
 
const FbxString TypeToParameterTag< FbxString >()
 
xmlNode * GetXMLElement() const 
 
int FromStringToArray(const char *pString, TYPE *pArray, int pSourceUnitOffset, int pSourceValidUnitCount, int pSourceGroupSize, int pDestUnitOffset, int pDestValidUnitCount, int pDestGroupSize, TYPE pDefaultValue=TYPE())
Parse the string into an array. 
 
A struct for convenient access to the content of common COLLADA element. 
 
Representing a common COLLADA element. 
 
#define COLLADA_INT_ARRAY_STRUCTURE
 
#define COLLADA_NAME_TYPE
 
FbxLayerElementArray * PopulateLayerElementDirectArray(FbxLayerElement *pLayerElement, xmlNode *pSourceElement, int pSize)
Populate the layer element with direct array and return index array for later use. 
 
SourceElementContentAccessor(xmlNode *pSourceElement)
 
Base class for elements of layers (FbxLayer). 
 
const FbxString TypeToParameterTag< int >()
 
xmlAttr * DAE_AddAttribute(xmlNode *pElement, const FbxString &pAttributeName, const T &pAttributeValue)
Add an attribute for a element. 
 
xmlNode * DAE_FindChildElementByTag(xmlNode *pParentElement, const char *pTag, xmlNode *pFindFrom=((void *) 0))
Find a child element with a given tag.