22 #ifndef _FBXSDK_CORE_ARCH_DEBUG_H_ 23 #define _FBXSDK_CORE_ARCH_DEBUG_H_ 30 #define FBXSDK_ASSERT_ENVSTR "FBXSDK_ASSERT" 37 typedef void (*
FbxAssertProc)(
const char* pFileName,
const char* pFunctionName,
const unsigned int pLineNumber,
const char* pMessage);
49 #ifndef DOXYGEN_SHOULD_SKIP_THIS 51 FBXSDK_DLL void _FbxAssert(
const char* pFileName,
const char* pFunctionName,
const unsigned int pLineNumber,
bool pFormat,
const char* pMessage, ...);
52 FBXSDK_DLL void _FbxTrace(
const char* pMessage, ...);
55 template <
bool x>
struct FbxStaticAssertType;
56 template<>
struct FbxStaticAssertType<true> {
enum{value=1};};
57 template<>
struct FbxStaticAssertType<false> {
enum{value=-1};};
58 #define FBX_ASSERT(Condition) {if(!(Condition)){_FbxAssert(__FILE__,__FUNCTION__,__LINE__,false,#Condition);}} 59 #define FBX_ASSERT_MSG(Condition, Message, ...) {if(!(Condition)){_FbxAssert(__FILE__,__FUNCTION__,__LINE__,true,Message,##__VA_ARGS__);}} 60 #define FBX_ASSERT_NOW(Message, ...) _FbxAssert(__FILE__,__FUNCTION__,__LINE__,true,Message,##__VA_ARGS__); 61 #define FBX_ASSERT_RETURN(Condition) {if(!(Condition)){FBX_ASSERT_NOW(#Condition); return;}} 62 #define FBX_ASSERT_RETURN_VALUE(Condition, Value) {if(!(Condition)){FBX_ASSERT_NOW(#Condition); return Value;}} 63 #define FBX_ASSERT_STATIC(Condition) typedef char FbxBuildBreakIfFalse[FbxStaticAssertType<(bool)(Condition)>::value]; 64 #define FBX_TRACE(Message, ...) {_FbxTrace(Message,##__VA_ARGS__);} 66 #define FBX_ASSERT(Condition) ((void)0) 67 #define FBX_ASSERT_MSG(Condition, Message, ...) ((void)0) 68 #define FBX_ASSERT_NOW(Message, ...) ((void)0) 69 #define FBX_ASSERT_RETURN(Condition) if(!(Condition)){return;} 70 #define FBX_ASSERT_RETURN_VALUE(Condition, Value) if(!(Condition)){return Value;} 71 #define FBX_ASSERT_STATIC(Condition) 72 #define FBX_TRACE(Message, ...) ((void)0) 75 template<
typename T>
struct FbxIncompatibleWithArray{
enum {value = 0}; };
77 #define FBXSDK_INCOMPATIBLE_WITH_ARRAY_TEMPLATE(T)\ 78 struct FbxIncompatibleWithArray< T >{\ 84 #define FBXSDK_INCOMPATIBLE_WITH_ARRAY(T)\ 85 template<> FBXSDK_INCOMPATIBLE_WITH_ARRAY_TEMPLATE(T) 87 #define FBXSDK_IS_INCOMPATIBLE_WITH_ARRAY(T) ((bool) FbxIncompatibleWithArray<T>::value) FBX SDK environment definition.
void FbxAssertSetProc(FbxAssertProc pAssertProc)
Change the procedure used when assertion occurs.
void(* FbxAssertProc)(const char *pFileName, const char *pFunctionName, const unsigned int pLineNumber, const char *pMessage)
The assertion procedure signature.
void FbxAssertSetDefaultProc()
Change the procedure back to the default one.