kaydara.h

Go to the documentation of this file.
00001 
00004 #ifndef _Kaydara_h
00005 #define _Kaydara_h
00006 
00007 /**************************************************************************************
00008 
00009  Copyright © 1999 - 2007 Autodesk, Inc. and/or its licensors.
00010  All Rights Reserved.
00011 
00012  The coded instructions, statements, computer programs, and/or related material
00013  (collectively the "Data") in these files contain unpublished information
00014  proprietary to Autodesk, Inc. and/or its licensors, which is protected by
00015  Canada and United States of America federal copyright law and by international
00016  treaties.
00017 
00018  The Data may not be disclosed or distributed to third parties, in whole or in
00019  part, without the prior written consent of Autodesk, Inc. ("Autodesk").
00020 
00021  THE DATA IS PROVIDED "AS IS" AND WITHOUT WARRANTY.
00022  ALL WARRANTIES ARE EXPRESSLY EXCLUDED AND DISCLAIMED. AUTODESK MAKES NO
00023  WARRANTY OF ANY KIND WITH RESPECT TO THE DATA, EXPRESS, IMPLIED OR ARISING
00024  BY CUSTOM OR TRADE USAGE, AND DISCLAIMS ANY IMPLIED WARRANTIES OF TITLE,
00025  NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE OR USE.
00026  WITHOUT LIMITING THE FOREGOING, AUTODESK DOES NOT WARRANT THAT THE OPERATION
00027  OF THE DATA WILL BE UNINTERRUPTED OR ERROR FREE.
00028 
00029  IN NO EVENT SHALL AUTODESK, ITS AFFILIATES, PARENT COMPANIES, LICENSORS
00030  OR SUPPLIERS ("AUTODESK GROUP") BE LIABLE FOR ANY LOSSES, DAMAGES OR EXPENSES
00031  OF ANY KIND (INCLUDING WITHOUT LIMITATION PUNITIVE OR MULTIPLE DAMAGES OR OTHER
00032  SPECIAL, DIRECT, INDIRECT, EXEMPLARY, INCIDENTAL, LOSS OF PROFITS, REVENUE
00033  OR DATA, COST OF COVER OR CONSEQUENTIAL LOSSES OR DAMAGES OF ANY KIND),
00034  HOWEVER CAUSED, AND REGARDLESS OF THE THEORY OF LIABILITY, WHETHER DERIVED
00035  FROM CONTRACT, TORT (INCLUDING, BUT NOT LIMITED TO, NEGLIGENCE), OR OTHERWISE,
00036  ARISING OUT OF OR RELATING TO THE DATA OR ITS USE OR ANY OTHER PERFORMANCE,
00037  WHETHER OR NOT AUTODESK HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH LOSS
00038  OR DAMAGE.
00039 
00040 
00041 
00042 **************************************************************************************/
00043 
00044 
00045 typedef signed char         kByte;        
00046 typedef unsigned char       kUByte;       
00047 
00048 #ifndef FALSE
00049     #define FALSE   0
00050 #endif
00051 #ifndef TRUE
00052     #define TRUE    1
00053 #endif
00054 
00055 #include <float.h>
00056 
00057 typedef bool                kBool;
00058 typedef unsigned char       kBoolean;     
00059 
00060 typedef char                kChar;      
00061 #define K_CHAR(x)           kChar(x)
00062 typedef signed char         kSChar;
00063 #define K_SCHAR(x)          kSChar(x)
00064 typedef unsigned char       kUChar;
00065 #define K_UCHAR(x)          kUChar(x##L)
00066 #define K_CHAR_MIN          K_CHAR(0)
00067 #define K_CHAR_MAX          K_CHAR(127)
00068 #define K_SCHAR_MIN         K_SCHAR(-128)
00069 #define K_SCHAR_MAX         K_SCHAR(127)
00070 #define K_UCHAR_MIN         K_UCHAR(0)
00071 #define K_UCHAR_MAX         K_UCHAR(255)
00072 #define K_SIZEOF_CHAR       1
00073 typedef kChar *             kCharPtr;
00074 typedef kChar               kTChar;
00075 typedef kChar *             kTCharPtr;
00076 
00077 #ifndef _T
00078     #define _T(a) a
00079 #endif
00080 
00081 typedef signed short        kShort;
00082 #define K_SHORT(x)          kShort(x)
00083 typedef unsigned short      kUShort;
00084 #define K_USHORT(x)         kUShort(x##U)
00085 #define K_SHORT_MIN         K_SHORT(-32768)
00086 #define K_SHORT_MAX         K_SHORT(32767)
00087 #define K_USHORT_MIN        K_USHORT(0)
00088 #define K_USHORT_MAX        K_USHORT(65535)
00089 #define K_SIZEOF_SHORT      2
00090 
00091 typedef signed int          kInt;
00092 #define K_INT(x)            (x)
00093 typedef unsigned int        kUInt;
00094 #define K_UINT(x)           (x##U)
00095 #define K_INT_MIN           K_INT(0x80000000)
00096 #define K_INT_MAX           K_INT(0x7fffffff)
00097 #define K_UINT_MIN          K_UINT(0)
00098 #define K_UINT_MAX          K_UINT(0xffffffff)
00099 #define K_SIZEOF_INT        4
00100 
00101 typedef signed long         kLong;
00102 #define K_LONG(x)           (x##L)
00103 typedef unsigned long       kULong;
00104 #define K_ULONG(x)          (x##UL)
00105 #define K_LONG_MIN          K_LONG(0x80000000)
00106 #define K_LONG_MAX          K_LONG(0x7fffffff)
00107 #define K_ULONG_MIN         K_ULONG(0)
00108 #define K_ULONG_MAX         K_ULONG(0xffffffff)
00109 #define K_SIZEOF_LONG       4
00110 
00111 #ifdef _MSC_VER
00112 typedef signed __int64      kLongLong;
00113 #define K_LONGLONG(x)       (x##i64)
00114 typedef unsigned __int64    kULongLong;
00115 #define K_ULONGLONG(x)      (x##Ui64)
00116 #else
00117 typedef signed long long    kLongLong;
00118 #define K_LONGLONG(x)       (x##LL)
00119 typedef unsigned long long  kULongLong;
00120 #define K_ULONGLONG(x)      (x##ULL)
00121 #endif
00122 #define K_LONGLONG_MIN      K_LONGLONG(0x8000000000000000)
00123 #define K_LONGLONG_MAX      K_LONGLONG(0x7fffffffffffffff)
00124 #define K_ULONGLONG_MIN     K_ULONGLONG(0)
00125 #define K_ULONGLONG_MAX     K_ULONGLONG(0xffffffffffffffff)
00126 #define K_SIZEOF_LONGLONG   8
00127 
00128 typedef float               kFloat;
00129 #define K_FLOAT(x)          (x##F)
00130 #define K_FLOAT_MIN         FLT_MIN 
00131 #define K_FLOAT_MAX         FLT_MAX 
00132 #define K_SIZEOF_FLOAT      4
00133 
00134 typedef double              kDouble;
00135 #define K_DOUBLE(x)         (x)
00136 #define K_DOUBLE_MIN        DBL_MIN 
00137 #define K_DOUBLE_MAX        DBL_MAX 
00138 #define K_SIZEOF_DOUBLE     8
00139 
00140 typedef kSChar              kInt8;
00141 typedef kUChar              kUInt8;
00142 #define K_INT8_MIN          K_SCHAR_MIN
00143 #define K_INT8_MAX          K_SCHAR_MAX
00144 #define K_UINT8_MIN         K_UCHAR_MIN
00145 #define K_UINT8_MAX         K_UCHAR_MAX
00146 #define K_SIZEOF_INT8       1
00147 
00148 typedef kShort              kInt16;
00149 typedef kUShort             kUInt16;
00150 #define K_INT16_MIN         K_SHORT_MIN
00151 #define K_INT16_MAX         K_SHORT_MAX
00152 #define K_UINT16_MIN        K_USHORT_MIN
00153 #define K_UINT16_MAX        K_USHORT_MAX
00154 #define K_SIZEOF_INT16      2
00155 
00156 typedef kInt                kInt32;
00157 typedef kUInt               kUInt32;
00158 #define K_INT32_MIN         K_INT_MIN
00159 #define K_INT32_MAX         K_INT_MAX
00160 #define K_UINT32_MIN        K_UINT_MIN
00161 #define K_UINT32_MAX        K_UINT_MAX
00162 #define K_SIZEOF_INT32      4
00163 
00164 typedef kLongLong           kInt64;
00165 typedef kULongLong          kUInt64;
00166 #define K_INT64_MIN         K_LONGLONG_MIN
00167 #define K_INT64_MAX         K_LONGLONG_MAX
00168 #define K_UINT64_MIN        K_ULONGLONG_MIN
00169 #define K_UINT64_MAX        K_ULONGLONG_MAX
00170 #define K_SIZEOF_INT64      8
00171 
00172 typedef kInt32              kInteger;
00173 typedef kUInt32             kUInteger;
00174 #define K_INTEGER_MIN       K_INT32_MIN
00175 #define K_INTEGER_MAX       K_INT32_MAX
00176 #define K_UINTEGER_MIN      K_UINT32_MIN
00177 #define K_UINTEGER_MAX      K_UINT32_MAX
00178 #define K_SIZEOF_INTEGER    4
00179 
00180 typedef kInt                kEnum;
00181 typedef void *              kPointer;
00182 
00183 #define K_SIZEOF_POINTER    4
00184 #define K_SHIFT_POINTER     2
00185 
00186 #define K_NULL              0
00187 
00188 typedef kULong              kOffset;
00189 #define K_SIZEOF_OFFSET     4
00190 #define K_SHIFT_OFFSET      2
00191 typedef kOffset             kReference;
00192 
00193 typedef enum { K_SUCCESS = 0 , K_ERROR , K_NOTIMPL } kResult;
00194 
00195 #if defined(linux) || defined(__sgi)
00196 
00197         #ifndef strcmpi
00198                 #define strcmpi strcasecmp
00199         #endif
00200         #ifndef stricmp
00201                 #define stricmp strcasecmp
00202         #endif
00203         #ifndef strncmpi
00204                 #define strncmpi strncasecmp
00205         #endif
00206         #ifndef strnicmp
00207                 #define strnicmp strncasecmp
00208         #endif
00209 #endif
00210 
00211 // Deprecated macro, to remind people to stop using certain functions
00212 
00213 #if defined(__GNUG__)       // GNU compiler
00214     #define K_DEPRECATED __attribute__((deprecated))
00215 #elif defined(__INTEL_COMPILER) // Intel compiler
00216     #if (__INTEL_COMPILER >= 810) // Maybe we could use an earlier version, we should check this some day
00217         #define K_DEPRECATED __declspec(deprecated)
00218     #else
00219         #define K_DEPRECATED
00220     #endif
00221 #elif defined(_MSC_VER)    // Microsoft compiler
00222     #if (_MSC_VER >= 1300) // 7.1
00223         #define K_DEPRECATED __declspec(deprecated)
00224     #else
00225         #define K_DEPRECATED
00226     #endif
00227 #elif defined(__sgi)      // SGI compiler
00228     #define K_DEPRECATED
00229 #elif defined(__MWERKS__) // Metrowerks compiler
00230     #define K_DEPRECATED
00231 #else // Unknown compiler
00232     #define K_DEPRECATED
00233 #endif
00234 
00235 
00236 // Compiler specific
00237 #ifdef _MSC_VER
00238    #pragma warning(disable: 4514) //unreferenced inline function has been removed (Level 4) optimizer  
00239    #pragma warning(disable: 4100) // warning C4100: '?' : unreferenced formal parameter
00240    #pragma warning(disable: 4710) // function not inlined
00241 #endif
00242 
00243 #define K_FORWARD( ClassName ) class ClassName; typedef ClassName *H##ClassName;
00244 
00245 #endif // #ifndef _Kaydara_h
00246 
00247 
00248 
00249