36 #include <Inventor/C/basic.h>
38 #include <Inventor/C/errors/debugerror.h>
46 #error You are not compiling C++ - maybe your source file is named <file>.c
67 template <
typename Type>
68 inline Type SbAbs( Type Val ) {
69 return (Val < 0) ? 0 - Val : Val;
72 template <
typename Type>
73 inline Type SbMax(
const Type A,
const Type B ) {
74 return (A < B) ? B : A;
77 template <
typename Type>
78 inline Type SbMin(
const Type A,
const Type B ) {
79 return (A < B) ? A : B;
82 template <
typename Type>
83 inline Type SbClamp(
const Type Val,
const Type Min,
const Type Max ) {
84 return (Val < Min) ? Min : (Val > Max) ? Max : Val;
87 template <
typename Type>
88 inline void SbSwap( Type & A, Type & B ) {
89 Type T; T = A; A = B; B = T;
92 template <
typename Type>
93 inline Type SbSqr(
const Type val) {
104 template <
typename Type>
105 inline void SbDividerChk(
const char * funcname, Type divider) {
106 if (!(divider != static_cast<Type>(0)))
107 cc_debugerror_post(funcname,
"divide by zero error.", divider);
110 template <
typename Type>
111 inline void SbDividerChk(
const char *, Type) {}
154 #define SUN_CC_4_0_SOTYPE_INIT_BUG 0
156 #if SUN_CC_4_0_SOTYPE_INIT_BUG
157 #define STATIC_SOTYPE_INIT
159 #define STATIC_SOTYPE_INIT = SoType::badType()
170 #ifdef _MSC_VER // Microsoft Visual C++
172 __pragma(warning(push)) \
173 __pragma(warning(disable:4127)) \
175 __pragma(warning(pop))
177 #define WHILE_0 while (0)