Home | History | Annotate | Download | only in BulletFileLoader
      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 USER MAKE_ID('U','S','E','R')
    104 
    105 
    106 // ------------------------------------------------------------
    107 #define DNA1 MAKE_ID('D','N','A','1')
    108 #define REND MAKE_ID('R','E','N','D')
    109 #define ENDB MAKE_ID('E','N','D','B')
    110 #define NAME MAKE_ID('N','A','M','E')
    111 #define SDNA MAKE_ID('S','D','N','A')
    112 #define TYPE MAKE_ID('T','Y','P','E')
    113 #define TLEN MAKE_ID('T','L','E','N')
    114 #define STRC MAKE_ID('S','T','R','C')
    115 
    116 
    117 // ------------------------------------------------------------
    118 #define SWITCH_INT(a) { \
    119     char s_i, *p_i; \
    120     p_i= (char *)&(a); \
    121     s_i=p_i[0]; p_i[0]=p_i[3]; p_i[3]=s_i; \
    122     s_i=p_i[1]; p_i[1]=p_i[2]; p_i[2]=s_i; }
    123 
    124 // ------------------------------------------------------------
    125 #define SWITCH_SHORT(a)	{ \
    126     char s_i, *p_i; \
    127 	p_i= (char *)&(a); \
    128 	s_i=p_i[0]; p_i[0]=p_i[1]; p_i[1]=s_i; }
    129 
    130 // ------------------------------------------------------------
    131 #define SWITCH_LONGINT(a) { \
    132     char s_i, *p_i; \
    133     p_i= (char *)&(a);  \
    134     s_i=p_i[0]; p_i[0]=p_i[7]; p_i[7]=s_i; \
    135     s_i=p_i[1]; p_i[1]=p_i[6]; p_i[6]=s_i; \
    136     s_i=p_i[2]; p_i[2]=p_i[5]; p_i[5]=s_i; \
    137     s_i=p_i[3]; p_i[3]=p_i[4]; p_i[4]=s_i; }
    138 
    139 #endif//__B_DEFINES_H__
    140