fbxsdk/fileio/collada/fbxcolladaiostream.h Source File
Go to the documentation of this file.
13 #ifndef _FBXSDK_FILEIO_COLLADA_IO_STREAM_H_
14 #define _FBXSDK_FILEIO_COLLADA_IO_STREAM_H_
28 template <
typename T>
bool FromString(T * pDest,
const char * pSourceBegin,
const char ** pSourceEnd =
NULL);
29 template <>
bool FromString(
int * pDest,
const char * pSourceBegin,
const char ** pSourceEnd);
30 template <>
bool FromString(
double * pDest,
const char * pSourceBegin,
const char ** pSourceEnd);
31 template <>
bool FromString(
FbxString * pDest,
const char * pSourceBegin,
const char ** pSourceEnd);
32 template <>
bool FromString(
FbxDouble2 * pDest,
const char * pSourceBegin,
const char ** pSourceEnd);
33 template <>
bool FromString(
FbxDouble3 * pDest,
const char * pSourceBegin,
const char ** pSourceEnd);
34 template <>
bool FromString(
FbxDouble4 * pDest,
const char * pSourceBegin,
const char ** pSourceEnd);
35 template <>
bool FromString(
FbxVector4 * pDest,
const char * pSourceBegin,
const char ** pSourceEnd);
36 template <>
bool FromString(
FbxAMatrix * pDest,
const char * pSourceBegin,
const char ** pSourceEnd);
37 template <>
bool FromString(
FbxAMatrix * pDest,
const char * pSourceBegin,
const char ** pSourceEnd);
48 template <
typename TYPE>
int FromStringToArray(
const char * pString, TYPE * pArray,
int pSourceUnitOffset,
int pSourceValidUnitCount,
int pSourceGroupSize,
int pDestUnitOffset,
int pDestValidUnitCount,
int pDestGroupSize, TYPE pDefaultValue = TYPE())
50 if (pString == 0 || pArray == 0)
53 FBX_ASSERT(pSourceUnitOffset >= 0 && pSourceUnitOffset < pSourceGroupSize);
54 FBX_ASSERT(pSourceValidUnitCount >= 0 && pSourceUnitOffset + pSourceValidUnitCount <= pSourceGroupSize);
55 FBX_ASSERT(pDestUnitOffset >= 0 && pDestUnitOffset < pDestGroupSize);
56 FBX_ASSERT(pDestValidUnitCount >= 0 && pDestUnitOffset + pDestValidUnitCount <= pDestGroupSize);
57 const char * lSource = pString;
58 TYPE * lDest = pArray;
61 int lSourceCounter = 0;
63 const int lSourceUnitValidEnd = pSourceUnitOffset + pSourceValidUnitCount;
64 const int lDestUnitGap = pDestGroupSize - pDestValidUnitCount - pDestUnitOffset;
65 while (lSource && *lSource)
68 const char * lSourceStart = lSource;
69 if (
FromString(&lData, lSource, &lSource) && lSourceCounter >= pSourceUnitOffset && lSourceCounter < lSourceUnitValidEnd)
71 if (lDestCounter == 0)
73 for (
int lIndex = 0; lIndex < pDestUnitOffset; ++lIndex)
74 *(lDest++) = pDefaultValue;
80 if (lDestCounter == pDestValidUnitCount)
83 for (
int lIndex = 0; lIndex < lDestUnitGap; ++lIndex)
84 *lDest++ = pDefaultValue;
92 if (lSource == lSourceStart)
98 if (lSourceCounter == pSourceGroupSize)
106 template <
typename T>
const FbxString ToString(const T &pValue)
bool FromString(T *pDest, const char *pSourceBegin, const char **pSourceEnd=((void *) 0))
Convert part of the source string into destination type.
const FbxString DecodePercentEncoding(const FbxString &pEncodedString)
Decode percent encoded characters, returns an empty string if there's an error.
Utility class to manipulate strings.
A four double mathematic vector class.
FBX SDK affine matrix class.
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.