00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023 #ifndef SB_DATATYPE_MACROS_H
00024 #define SB_DATATYPE_MACROS_H
00025
00026 #include <Inventor/SbDataType.h>
00027
00028 #include <Inventor/STL/cassert>
00029
00056 #define SB_DATATYPE_CALL(Function, Params, Type) \
00057 if(SbDataType::m_true) \
00058 { \
00059 switch((Type)) \
00060 { \
00061 case SbDataType::UNSIGNED_SHORT : \
00062 Function<unsigned short>Params; \
00063 break; \
00064 case SbDataType::UNSIGNED_INT32 : \
00065 Function<uint32_t>Params; \
00066 break; \
00067 case SbDataType::SIGNED_BYTE : \
00068 Function<signed char>Params; \
00069 break; \
00070 case SbDataType::SIGNED_SHORT : \
00071 Function<signed short>Params; \
00072 break; \
00073 case SbDataType::SIGNED_INT32 : \
00074 Function<int32_t>Params; \
00075 break; \
00076 case SbDataType::FLOAT : \
00077 Function<float>Params; \
00078 break; \
00079 case SbDataType::UNSIGNED_BYTE : \
00080 Function<unsigned char>Params; \
00081 break; \
00082 case SbDataType::DOUBLE: \
00083 Function<double>Params; \
00084 break; \
00085 default: \
00086 assert(0); \
00087 break; \
00088 } \
00089 } \
00090 else \
00091 (void)0
00092
00104 #define SB_DATATYPE_CALL_ASSIGN(Function, Params, Dest, Type) \
00105 if(SbDataType::m_true) \
00106 { \
00107 switch((Type)) \
00108 { \
00109 case SbDataType::UNSIGNED_SHORT : \
00110 Dest = Function<unsigned short>Params; \
00111 break; \
00112 case SbDataType::UNSIGNED_INT32 : \
00113 Dest = Function<uint32_t>Params; \
00114 break; \
00115 case SbDataType::SIGNED_BYTE : \
00116 Dest = Function<signed char>Params; \
00117 break; \
00118 case SbDataType::SIGNED_SHORT : \
00119 Dest = Function<signed short>Params; \
00120 break; \
00121 case SbDataType::SIGNED_INT32 : \
00122 Dest = Function<int32_t>Params; \
00123 break; \
00124 case SbDataType::FLOAT : \
00125 Dest = Function<float>Params; \
00126 break; \
00127 case SbDataType::UNSIGNED_BYTE : \
00128 Dest = Function<unsigned char>Params; \
00129 break; \
00130 case SbDataType::DOUBLE: \
00131 Dest = Function<double>Params; \
00132 break; \
00133 default: \
00134 assert(0); \
00135 break; \
00136 } \
00137 } \
00138 else \
00139 (void)0
00140
00141 #endif //SB_DATATYPE_MACROS_H
00142
00143
00144