Open Inventor Release 2024.1.0
 
Loading...
Searching...
No Matches
SbDataTypeMacros.h
Go to the documentation of this file.
1/*=======================================================================
2 *** THE CONTENT OF THIS WORK IS PROPRIETARY TO FEI S.A.S, (FEI S.A.S.), ***
3 *** AND IS DISTRIBUTED UNDER A LICENSE AGREEMENT. ***
4 *** ***
5 *** REPRODUCTION, DISCLOSURE, OR USE, IN WHOLE OR IN PART, OTHER THAN AS ***
6 *** SPECIFIED IN THE LICENSE ARE NOT TO BE UNDERTAKEN EXCEPT WITH PRIOR ***
7 *** WRITTEN AUTHORIZATION OF FEI S.A.S. ***
8 *** ***
9 *** RESTRICTED RIGHTS LEGEND ***
10 *** USE, DUPLICATION, OR DISCLOSURE BY THE GOVERNMENT OF THE CONTENT OF THIS ***
11 *** WORK OR RELATED DOCUMENTATION IS SUBJECT TO RESTRICTIONS AS SET FORTH IN ***
12 *** SUBPARAGRAPH (C)(1) OF THE COMMERCIAL COMPUTER SOFTWARE RESTRICTED RIGHT ***
13 *** CLAUSE AT FAR 52.227-19 OR SUBPARAGRAPH (C)(1)(II) OF THE RIGHTS IN ***
14 *** TECHNICAL DATA AND COMPUTER SOFTWARE CLAUSE AT DFARS 52.227-7013. ***
15 *** ***
16 *** COPYRIGHT (C) 1996-2014 BY FEI S.A.S, ***
17 *** BORDEAUX, FRANCE ***
18 *** ALL RIGHTS RESERVED ***
19**=======================================================================*/
20/*=======================================================================
21** Author : VSG (MMM YYYY)
22**=======================================================================*/
23#ifndef SB_DATATYPE_MACROS_H
24#define SB_DATATYPE_MACROS_H
25
26#include <Inventor/SbDataType.h>
27
28#include <Inventor/STL/cassert>
29
56#define SB_DATATYPE_CALL(Function, Params, Type) \
57 if(SbDataType::m_true) \
58 { \
59 switch((Type)) \
60 { \
61 case SbDataType::UNSIGNED_SHORT : \
62 Function<unsigned short>Params; \
63 break; \
64 case SbDataType::UNSIGNED_INT32 : \
65 Function<uint32_t>Params; \
66 break; \
67 case SbDataType::SIGNED_BYTE : \
68 Function<signed char>Params; \
69 break; \
70 case SbDataType::SIGNED_SHORT : \
71 Function<signed short>Params; \
72 break; \
73 case SbDataType::SIGNED_INT32 : \
74 Function<int32_t>Params; \
75 break; \
76 case SbDataType::FLOAT : \
77 Function<float>Params; \
78 break; \
79 case SbDataType::UNSIGNED_BYTE : \
80 Function<unsigned char>Params; \
81 break; \
82 case SbDataType::DOUBLE: \
83 Function<double>Params; \
84 break; \
85 default: \
86 assert(0); \
87 break; \
88 } \
89 } \
90 else \
91 (void)0
92
104#define SB_DATATYPE_CALL_ASSIGN(Function, Params, Dest, Type) \
105 if(SbDataType::m_true) \
106 { \
107 switch((Type)) \
108 { \
109 case SbDataType::UNSIGNED_SHORT : \
110 Dest = Function<unsigned short>Params; \
111 break; \
112 case SbDataType::UNSIGNED_INT32 : \
113 Dest = Function<uint32_t>Params; \
114 break; \
115 case SbDataType::SIGNED_BYTE : \
116 Dest = Function<signed char>Params; \
117 break; \
118 case SbDataType::SIGNED_SHORT : \
119 Dest = Function<signed short>Params; \
120 break; \
121 case SbDataType::SIGNED_INT32 : \
122 Dest = Function<int32_t>Params; \
123 break; \
124 case SbDataType::FLOAT : \
125 Dest = Function<float>Params; \
126 break; \
127 case SbDataType::UNSIGNED_BYTE : \
128 Dest = Function<unsigned char>Params; \
129 break; \
130 case SbDataType::DOUBLE: \
131 Dest = Function<double>Params; \
132 break; \
133 default: \
134 assert(0); \
135 break; \
136 } \
137 } \
138 else \
139 (void)0
140
141#endif //SB_DATATYPE_MACROS_H
142
143