Imported Upstream version 2.81
[platform/upstream/libbullet.git] / Extras / Serialize / BulletFileLoader / bDefines.h
1 /* Copyright (C) 2006-2009 Charlie C & Erwin Coumans http://gamekit.googlecode.com
2 *
3 * This software is provided 'as-is', without any express or implied
4 * warranty.  In no event will the authors be held liable for any damages
5 * arising from the use of this software.
6 *
7 * Permission is granted to anyone to use this software for any purpose,
8 * including commercial applications, and to alter it and redistribute it
9 * freely, subject to the following restrictions:
10 *
11 * 1. The origin of this software must not be misrepresented; you must not
12 *    claim that you wrote the original software. If you use this software
13 *    in a product, an acknowledgment in the product documentation would be
14 *    appreciated but is not required.
15 * 2. Altered source versions must be plainly marked as such, and must not be
16 *    misrepresented as being the original software.
17 * 3. This notice may not be removed or altered from any source distribution.
18 */
19 #ifndef __B_DEFINES_H__
20 #define __B_DEFINES_H__
21
22
23 // MISC defines, see BKE_global.h, BKE_utildefines.h
24 #define SIZEOFBLENDERHEADER 12
25
26
27 // ------------------------------------------------------------
28 #if defined(__sgi) || defined (__sparc) || defined (__sparc__) || defined (__PPC__) || defined (__ppc__) || defined (__BIG_ENDIAN__)
29 #       define MAKE_ID(a,b,c,d) ( (int)(a)<<24 | (int)(b)<<16 | (c)<<8 | (d) )
30 #else
31 #       define MAKE_ID(a,b,c,d) ( (int)(d)<<24 | (int)(c)<<16 | (b)<<8 | (a) )
32 #endif
33
34
35 // ------------------------------------------------------------
36 #if defined(__sgi) || defined(__sparc) || defined(__sparc__) || defined (__PPC__) || defined (__ppc__) || defined (__BIG_ENDIAN__)
37 #       define MAKE_ID2(c, d) ( (c)<<8 | (d) )
38 #       define MOST_SIG_BYTE   0
39 #       define BBIG_ENDIAN
40 #else
41 #       define MAKE_ID2(c, d) ( (d)<<8 | (c) )
42 #       define MOST_SIG_BYTE  1
43 #       define BLITTLE_ENDIAN
44 #endif
45
46 // ------------------------------------------------------------
47 #define ID_SCE          MAKE_ID2('S', 'C')
48 #define ID_LI           MAKE_ID2('L', 'I')
49 #define ID_OB           MAKE_ID2('O', 'B')
50 #define ID_ME           MAKE_ID2('M', 'E')
51 #define ID_CU           MAKE_ID2('C', 'U')
52 #define ID_MB           MAKE_ID2('M', 'B')
53 #define ID_MA           MAKE_ID2('M', 'A')
54 #define ID_TE           MAKE_ID2('T', 'E')
55 #define ID_IM           MAKE_ID2('I', 'M')
56 #define ID_IK           MAKE_ID2('I', 'K')
57 #define ID_WV           MAKE_ID2('W', 'V')
58 #define ID_LT           MAKE_ID2('L', 'T')
59 #define ID_SE           MAKE_ID2('S', 'E')
60 #define ID_LF           MAKE_ID2('L', 'F')
61 #define ID_LA           MAKE_ID2('L', 'A')
62 #define ID_CA           MAKE_ID2('C', 'A')
63 #define ID_IP           MAKE_ID2('I', 'P')
64 #define ID_KE           MAKE_ID2('K', 'E')
65 #define ID_WO           MAKE_ID2('W', 'O')
66 #define ID_SCR          MAKE_ID2('S', 'R')
67 #define ID_VF           MAKE_ID2('V', 'F')
68 #define ID_TXT          MAKE_ID2('T', 'X')
69 #define ID_SO           MAKE_ID2('S', 'O')
70 #define ID_SAMPLE       MAKE_ID2('S', 'A')
71 #define ID_GR           MAKE_ID2('G', 'R')
72 #define ID_ID           MAKE_ID2('I', 'D')
73 #define ID_AR           MAKE_ID2('A', 'R')
74 #define ID_AC           MAKE_ID2('A', 'C')
75 #define ID_SCRIPT       MAKE_ID2('P', 'Y')
76 #define ID_FLUIDSIM     MAKE_ID2('F', 'S')
77 #define ID_NT           MAKE_ID2('N', 'T')
78 #define ID_BR           MAKE_ID2('B', 'R')
79
80
81 #define ID_SEQ          MAKE_ID2('S', 'Q')
82 #define ID_CO           MAKE_ID2('C', 'O')
83 #define ID_PO           MAKE_ID2('A', 'C')
84 #define ID_NLA          MAKE_ID2('N', 'L')
85
86 #define ID_VS           MAKE_ID2('V', 'S')
87 #define ID_VN           MAKE_ID2('V', 'N')
88
89
90 // ------------------------------------------------------------
91 #define FORM MAKE_ID('F','O','R','M')
92 #define DDG1 MAKE_ID('3','D','G','1')
93 #define DDG2 MAKE_ID('3','D','G','2')
94 #define DDG3 MAKE_ID('3','D','G','3')
95 #define DDG4 MAKE_ID('3','D','G','4')
96 #define GOUR MAKE_ID('G','O','U','R')
97 #define BLEN MAKE_ID('B','L','E','N')
98 #define DER_ MAKE_ID('D','E','R','_')
99 #define V100 MAKE_ID('V','1','0','0')
100 #define DATA MAKE_ID('D','A','T','A')
101 #define GLOB MAKE_ID('G','L','O','B')
102 #define IMAG MAKE_ID('I','M','A','G')
103 #define TEST MAKE_ID('T','E','S','T')
104 #define USER MAKE_ID('U','S','E','R')
105
106
107 // ------------------------------------------------------------
108 #define DNA1 MAKE_ID('D','N','A','1')
109 #define REND MAKE_ID('R','E','N','D')
110 #define ENDB MAKE_ID('E','N','D','B')
111 #define NAME MAKE_ID('N','A','M','E')
112 #define SDNA MAKE_ID('S','D','N','A')
113 #define TYPE MAKE_ID('T','Y','P','E')
114 #define TLEN MAKE_ID('T','L','E','N')
115 #define STRC MAKE_ID('S','T','R','C')
116
117
118 // ------------------------------------------------------------
119 #define SWITCH_INT(a) { \
120     char s_i, *p_i; \
121     p_i= (char *)&(a); \
122     s_i=p_i[0]; p_i[0]=p_i[3]; p_i[3]=s_i; \
123     s_i=p_i[1]; p_i[1]=p_i[2]; p_i[2]=s_i; }
124
125 // ------------------------------------------------------------
126 #define SWITCH_SHORT(a) { \
127     char s_i, *p_i; \
128         p_i= (char *)&(a); \
129         s_i=p_i[0]; p_i[0]=p_i[1]; p_i[1]=s_i; }
130
131 // ------------------------------------------------------------
132 #define SWITCH_LONGINT(a) { \
133     char s_i, *p_i; \
134     p_i= (char *)&(a);  \
135     s_i=p_i[0]; p_i[0]=p_i[7]; p_i[7]=s_i; \
136     s_i=p_i[1]; p_i[1]=p_i[6]; p_i[6]=s_i; \
137     s_i=p_i[2]; p_i[2]=p_i[5]; p_i[5]=s_i; \
138     s_i=p_i[3]; p_i[3]=p_i[4]; p_i[4]=s_i; }
139
140 #endif//__B_DEFINES_H__