| [8] | 1 | |
|---|
| 2 | #ifndef INCLUDED_LIB3DS_CHUNK_H |
|---|
| 3 | #define INCLUDED_LIB3DS_CHUNK_H |
|---|
| 4 | |
|---|
| 5 | |
|---|
| 6 | |
|---|
| 7 | |
|---|
| 8 | |
|---|
| 9 | |
|---|
| 10 | |
|---|
| 11 | |
|---|
| 12 | |
|---|
| 13 | |
|---|
| 14 | |
|---|
| 15 | |
|---|
| 16 | |
|---|
| 17 | |
|---|
| 18 | |
|---|
| 19 | |
|---|
| 20 | |
|---|
| 21 | |
|---|
| 22 | |
|---|
| 23 | |
|---|
| 24 | |
|---|
| 25 | |
|---|
| 26 | #ifndef INCLUDED_LIB3DS_TYPES_H |
|---|
| [1563] | 27 | #include "types.h" |
|---|
| [8] | 28 | #endif |
|---|
| 29 | |
|---|
| [10076] | 30 | #include <iostream> |
|---|
| 31 | using namespace std; |
|---|
| 32 | |
|---|
| [8] | 33 | #ifdef __cplusplus |
|---|
| 34 | extern "C" { |
|---|
| 35 | #endif |
|---|
| 36 | |
|---|
| [10076] | 37 | |
|---|
| [8] | 38 | typedef enum _Lib3dsChunks { |
|---|
| 39 | LIB3DS_NULL_CHUNK =0x0000, |
|---|
| 40 | LIB3DS_M3DMAGIC =0x4D4D, |
|---|
| 41 | LIB3DS_SMAGIC =0x2D2D, |
|---|
| 42 | LIB3DS_LMAGIC =0x2D3D, |
|---|
| 43 | LIB3DS_MLIBMAGIC =0x3DAA, |
|---|
| 44 | LIB3DS_MATMAGIC =0x3DFF, |
|---|
| 45 | LIB3DS_CMAGIC =0xC23D, |
|---|
| 46 | LIB3DS_M3D_VERSION =0x0002, |
|---|
| 47 | LIB3DS_M3D_KFVERSION =0x0005, |
|---|
| 48 | |
|---|
| 49 | LIB3DS_COLOR_F =0x0010, |
|---|
| 50 | LIB3DS_COLOR_24 =0x0011, |
|---|
| 51 | LIB3DS_LIN_COLOR_24 =0x0012, |
|---|
| 52 | LIB3DS_LIN_COLOR_F =0x0013, |
|---|
| 53 | LIB3DS_INT_PERCENTAGE =0x0030, |
|---|
| 54 | LIB3DS_FLOAT_PERCENTAGE =0x0031, |
|---|
| 55 | |
|---|
| 56 | LIB3DS_MDATA =0x3D3D, |
|---|
| 57 | LIB3DS_MESH_VERSION =0x3D3E, |
|---|
| 58 | LIB3DS_MASTER_SCALE =0x0100, |
|---|
| 59 | LIB3DS_LO_SHADOW_BIAS =0x1400, |
|---|
| 60 | LIB3DS_HI_SHADOW_BIAS =0x1410, |
|---|
| 61 | LIB3DS_SHADOW_MAP_SIZE =0x1420, |
|---|
| 62 | LIB3DS_SHADOW_SAMPLES =0x1430, |
|---|
| 63 | LIB3DS_SHADOW_RANGE =0x1440, |
|---|
| 64 | LIB3DS_SHADOW_FILTER =0x1450, |
|---|
| 65 | LIB3DS_RAY_BIAS =0x1460, |
|---|
| 66 | LIB3DS_O_CONSTS =0x1500, |
|---|
| 67 | LIB3DS_AMBIENT_LIGHT =0x2100, |
|---|
| 68 | LIB3DS_BIT_MAP =0x1100, |
|---|
| 69 | LIB3DS_SOLID_BGND =0x1200, |
|---|
| 70 | LIB3DS_V_GRADIENT =0x1300, |
|---|
| 71 | LIB3DS_USE_BIT_MAP =0x1101, |
|---|
| 72 | LIB3DS_USE_SOLID_BGND =0x1201, |
|---|
| 73 | LIB3DS_USE_V_GRADIENT =0x1301, |
|---|
| 74 | LIB3DS_FOG =0x2200, |
|---|
| 75 | LIB3DS_FOG_BGND =0x2210, |
|---|
| 76 | LIB3DS_LAYER_FOG =0x2302, |
|---|
| 77 | LIB3DS_DISTANCE_CUE =0x2300, |
|---|
| 78 | LIB3DS_DCUE_BGND =0x2310, |
|---|
| 79 | LIB3DS_USE_FOG =0x2201, |
|---|
| 80 | LIB3DS_USE_LAYER_FOG =0x2303, |
|---|
| 81 | LIB3DS_USE_DISTANCE_CUE =0x2301, |
|---|
| 82 | |
|---|
| 83 | LIB3DS_MAT_ENTRY =0xAFFF, |
|---|
| 84 | LIB3DS_MAT_NAME =0xA000, |
|---|
| 85 | LIB3DS_MAT_AMBIENT =0xA010, |
|---|
| 86 | LIB3DS_MAT_DIFFUSE =0xA020, |
|---|
| 87 | LIB3DS_MAT_SPECULAR =0xA030, |
|---|
| 88 | LIB3DS_MAT_SHININESS =0xA040, |
|---|
| 89 | LIB3DS_MAT_SHIN2PCT =0xA041, |
|---|
| 90 | LIB3DS_MAT_TRANSPARENCY =0xA050, |
|---|
| 91 | LIB3DS_MAT_XPFALL =0xA052, |
|---|
| 92 | LIB3DS_MAT_USE_XPFALL =0xA240, |
|---|
| 93 | LIB3DS_MAT_REFBLUR =0xA053, |
|---|
| 94 | LIB3DS_MAT_SHADING =0xA100, |
|---|
| 95 | LIB3DS_MAT_USE_REFBLUR =0xA250, |
|---|
| 96 | LIB3DS_MAT_SELF_ILLUM =0xA080, |
|---|
| 97 | LIB3DS_MAT_TWO_SIDE =0xA081, |
|---|
| 98 | LIB3DS_MAT_DECAL =0xA082, |
|---|
| 99 | LIB3DS_MAT_ADDITIVE =0xA083, |
|---|
| 100 | LIB3DS_MAT_WIRE =0xA085, |
|---|
| 101 | LIB3DS_MAT_FACEMAP =0xA088, |
|---|
| 102 | LIB3DS_MAT_PHONGSOFT =0xA08C, |
|---|
| 103 | LIB3DS_MAT_WIREABS =0xA08E, |
|---|
| 104 | LIB3DS_MAT_WIRE_SIZE =0xA087, |
|---|
| 105 | LIB3DS_MAT_TEXMAP =0xA200, |
|---|
| 106 | LIB3DS_MAT_SXP_TEXT_DATA =0xA320, |
|---|
| 107 | LIB3DS_MAT_TEXMASK =0xA33E, |
|---|
| 108 | LIB3DS_MAT_SXP_TEXTMASK_DATA =0xA32A, |
|---|
| 109 | LIB3DS_MAT_TEX2MAP =0xA33A, |
|---|
| 110 | LIB3DS_MAT_SXP_TEXT2_DATA =0xA321, |
|---|
| 111 | LIB3DS_MAT_TEX2MASK =0xA340, |
|---|
| 112 | LIB3DS_MAT_SXP_TEXT2MASK_DATA =0xA32C, |
|---|
| 113 | LIB3DS_MAT_OPACMAP =0xA210, |
|---|
| 114 | LIB3DS_MAT_SXP_OPAC_DATA =0xA322, |
|---|
| 115 | LIB3DS_MAT_OPACMASK =0xA342, |
|---|
| 116 | LIB3DS_MAT_SXP_OPACMASK_DATA =0xA32E, |
|---|
| 117 | LIB3DS_MAT_BUMPMAP =0xA230, |
|---|
| 118 | LIB3DS_MAT_SXP_BUMP_DATA =0xA324, |
|---|
| 119 | LIB3DS_MAT_BUMPMASK =0xA344, |
|---|
| 120 | LIB3DS_MAT_SXP_BUMPMASK_DATA =0xA330, |
|---|
| 121 | LIB3DS_MAT_SPECMAP =0xA204, |
|---|
| 122 | LIB3DS_MAT_SXP_SPEC_DATA =0xA325, |
|---|
| 123 | LIB3DS_MAT_SPECMASK =0xA348, |
|---|
| 124 | LIB3DS_MAT_SXP_SPECMASK_DATA =0xA332, |
|---|
| 125 | LIB3DS_MAT_SHINMAP =0xA33C, |
|---|
| 126 | LIB3DS_MAT_SXP_SHIN_DATA =0xA326, |
|---|
| 127 | LIB3DS_MAT_SHINMASK =0xA346, |
|---|
| 128 | LIB3DS_MAT_SXP_SHINMASK_DATA =0xA334, |
|---|
| 129 | LIB3DS_MAT_SELFIMAP =0xA33D, |
|---|
| 130 | LIB3DS_MAT_SXP_SELFI_DATA =0xA328, |
|---|
| 131 | LIB3DS_MAT_SELFIMASK =0xA34A, |
|---|
| 132 | LIB3DS_MAT_SXP_SELFIMASK_DATA =0xA336, |
|---|
| 133 | LIB3DS_MAT_REFLMAP =0xA220, |
|---|
| 134 | LIB3DS_MAT_REFLMASK =0xA34C, |
|---|
| 135 | LIB3DS_MAT_SXP_REFLMASK_DATA =0xA338, |
|---|
| 136 | LIB3DS_MAT_ACUBIC =0xA310, |
|---|
| 137 | LIB3DS_MAT_MAPNAME =0xA300, |
|---|
| 138 | LIB3DS_MAT_MAP_TILING =0xA351, |
|---|
| 139 | LIB3DS_MAT_MAP_TEXBLUR =0xA353, |
|---|
| 140 | LIB3DS_MAT_MAP_USCALE =0xA354, |
|---|
| 141 | LIB3DS_MAT_MAP_VSCALE =0xA356, |
|---|
| 142 | LIB3DS_MAT_MAP_UOFFSET =0xA358, |
|---|
| 143 | LIB3DS_MAT_MAP_VOFFSET =0xA35A, |
|---|
| 144 | LIB3DS_MAT_MAP_ANG =0xA35C, |
|---|
| 145 | LIB3DS_MAT_MAP_COL1 =0xA360, |
|---|
| 146 | LIB3DS_MAT_MAP_COL2 =0xA362, |
|---|
| 147 | LIB3DS_MAT_MAP_RCOL =0xA364, |
|---|
| 148 | LIB3DS_MAT_MAP_GCOL =0xA366, |
|---|
| 149 | LIB3DS_MAT_MAP_BCOL =0xA368, |
|---|
| 150 | |
|---|
| 151 | LIB3DS_NAMED_OBJECT =0x4000, |
|---|
| 152 | LIB3DS_N_DIRECT_LIGHT =0x4600, |
|---|
| 153 | LIB3DS_DL_OFF =0x4620, |
|---|
| 154 | LIB3DS_DL_OUTER_RANGE =0x465A, |
|---|
| 155 | LIB3DS_DL_INNER_RANGE =0x4659, |
|---|
| 156 | LIB3DS_DL_MULTIPLIER =0x465B, |
|---|
| 157 | LIB3DS_DL_EXCLUDE =0x4654, |
|---|
| 158 | LIB3DS_DL_ATTENUATE =0x4625, |
|---|
| 159 | LIB3DS_DL_SPOTLIGHT =0x4610, |
|---|
| 160 | LIB3DS_DL_SPOT_ROLL =0x4656, |
|---|
| 161 | LIB3DS_DL_SHADOWED =0x4630, |
|---|
| 162 | LIB3DS_DL_LOCAL_SHADOW2 =0x4641, |
|---|
| 163 | LIB3DS_DL_SEE_CONE =0x4650, |
|---|
| 164 | LIB3DS_DL_SPOT_RECTANGULAR =0x4651, |
|---|
| 165 | LIB3DS_DL_SPOT_ASPECT =0x4657, |
|---|
| 166 | LIB3DS_DL_SPOT_PROJECTOR =0x4653, |
|---|
| 167 | LIB3DS_DL_SPOT_OVERSHOOT =0x4652, |
|---|
| 168 | LIB3DS_DL_RAY_BIAS =0x4658, |
|---|
| 169 | LIB3DS_DL_RAYSHAD =0x4627, |
|---|
| 170 | LIB3DS_N_CAMERA =0x4700, |
|---|
| 171 | LIB3DS_CAM_SEE_CONE =0x4710, |
|---|
| 172 | LIB3DS_CAM_RANGES =0x4720, |
|---|
| 173 | LIB3DS_OBJ_HIDDEN =0x4010, |
|---|
| 174 | LIB3DS_OBJ_VIS_LOFTER =0x4011, |
|---|
| 175 | LIB3DS_OBJ_DOESNT_CAST =0x4012, |
|---|
| 176 | LIB3DS_OBJ_DONT_RECVSHADOW =0x4017, |
|---|
| 177 | LIB3DS_OBJ_MATTE =0x4013, |
|---|
| 178 | LIB3DS_OBJ_FAST =0x4014, |
|---|
| 179 | LIB3DS_OBJ_PROCEDURAL =0x4015, |
|---|
| 180 | LIB3DS_OBJ_FROZEN =0x4016, |
|---|
| 181 | LIB3DS_N_TRI_OBJECT =0x4100, |
|---|
| 182 | LIB3DS_POINT_ARRAY =0x4110, |
|---|
| 183 | LIB3DS_POINT_FLAG_ARRAY =0x4111, |
|---|
| 184 | LIB3DS_FACE_ARRAY =0x4120, |
|---|
| 185 | LIB3DS_MSH_MAT_GROUP =0x4130, |
|---|
| 186 | LIB3DS_SMOOTH_GROUP =0x4150, |
|---|
| 187 | LIB3DS_MSH_BOXMAP =0x4190, |
|---|
| 188 | LIB3DS_TEX_VERTS =0x4140, |
|---|
| 189 | LIB3DS_MESH_MATRIX =0x4160, |
|---|
| 190 | LIB3DS_MESH_COLOR =0x4165, |
|---|
| 191 | LIB3DS_MESH_TEXTURE_INFO =0x4170, |
|---|
| 192 | |
|---|
| 193 | LIB3DS_KFDATA =0xB000, |
|---|
| 194 | LIB3DS_KFHDR =0xB00A, |
|---|
| 195 | LIB3DS_KFSEG =0xB008, |
|---|
| 196 | LIB3DS_KFCURTIME =0xB009, |
|---|
| 197 | LIB3DS_AMBIENT_NODE_TAG =0xB001, |
|---|
| 198 | LIB3DS_OBJECT_NODE_TAG =0xB002, |
|---|
| 199 | LIB3DS_CAMERA_NODE_TAG =0xB003, |
|---|
| 200 | LIB3DS_TARGET_NODE_TAG =0xB004, |
|---|
| 201 | LIB3DS_LIGHT_NODE_TAG =0xB005, |
|---|
| 202 | LIB3DS_L_TARGET_NODE_TAG =0xB006, |
|---|
| 203 | LIB3DS_SPOTLIGHT_NODE_TAG =0xB007, |
|---|
| 204 | LIB3DS_NODE_ID =0xB030, |
|---|
| 205 | LIB3DS_NODE_HDR =0xB010, |
|---|
| 206 | LIB3DS_PIVOT =0xB013, |
|---|
| 207 | LIB3DS_INSTANCE_NAME =0xB011, |
|---|
| 208 | LIB3DS_MORPH_SMOOTH =0xB015, |
|---|
| 209 | LIB3DS_BOUNDBOX =0xB014, |
|---|
| 210 | LIB3DS_POS_TRACK_TAG =0xB020, |
|---|
| 211 | LIB3DS_COL_TRACK_TAG =0xB025, |
|---|
| 212 | LIB3DS_ROT_TRACK_TAG =0xB021, |
|---|
| 213 | LIB3DS_SCL_TRACK_TAG =0xB022, |
|---|
| 214 | LIB3DS_MORPH_TRACK_TAG =0xB026, |
|---|
| 215 | LIB3DS_FOV_TRACK_TAG =0xB023, |
|---|
| 216 | LIB3DS_ROLL_TRACK_TAG =0xB024, |
|---|
| 217 | LIB3DS_HOT_TRACK_TAG =0xB027, |
|---|
| 218 | LIB3DS_FALL_TRACK_TAG =0xB028, |
|---|
| 219 | LIB3DS_HIDE_TRACK_TAG =0xB029, |
|---|
| 220 | |
|---|
| 221 | LIB3DS_POLY_2D = 0x5000, |
|---|
| 222 | LIB3DS_SHAPE_OK = 0x5010, |
|---|
| 223 | LIB3DS_SHAPE_NOT_OK = 0x5011, |
|---|
| 224 | LIB3DS_SHAPE_HOOK = 0x5020, |
|---|
| 225 | LIB3DS_PATH_3D = 0x6000, |
|---|
| 226 | LIB3DS_PATH_MATRIX = 0x6005, |
|---|
| 227 | LIB3DS_SHAPE_2D = 0x6010, |
|---|
| 228 | LIB3DS_M_SCALE = 0x6020, |
|---|
| 229 | LIB3DS_M_TWIST = 0x6030, |
|---|
| 230 | LIB3DS_M_TEETER = 0x6040, |
|---|
| 231 | LIB3DS_M_FIT = 0x6050, |
|---|
| 232 | LIB3DS_M_BEVEL = 0x6060, |
|---|
| 233 | LIB3DS_XZ_CURVE = 0x6070, |
|---|
| 234 | LIB3DS_YZ_CURVE = 0x6080, |
|---|
| 235 | LIB3DS_INTERPCT = 0x6090, |
|---|
| 236 | LIB3DS_DEFORM_LIMIT = 0x60A0, |
|---|
| 237 | |
|---|
| 238 | LIB3DS_USE_CONTOUR = 0x6100, |
|---|
| 239 | LIB3DS_USE_TWEEN = 0x6110, |
|---|
| 240 | LIB3DS_USE_SCALE = 0x6120, |
|---|
| 241 | LIB3DS_USE_TWIST = 0x6130, |
|---|
| 242 | LIB3DS_USE_TEETER = 0x6140, |
|---|
| 243 | LIB3DS_USE_FIT = 0x6150, |
|---|
| 244 | LIB3DS_USE_BEVEL = 0x6160, |
|---|
| 245 | |
|---|
| 246 | LIB3DS_DEFAULT_VIEW = 0x3000, |
|---|
| 247 | LIB3DS_VIEW_TOP = 0x3010, |
|---|
| 248 | LIB3DS_VIEW_BOTTOM = 0x3020, |
|---|
| 249 | LIB3DS_VIEW_LEFT = 0x3030, |
|---|
| 250 | LIB3DS_VIEW_RIGHT = 0x3040, |
|---|
| 251 | LIB3DS_VIEW_FRONT = 0x3050, |
|---|
| 252 | LIB3DS_VIEW_BACK = 0x3060, |
|---|
| 253 | LIB3DS_VIEW_USER = 0x3070, |
|---|
| 254 | LIB3DS_VIEW_CAMERA = 0x3080, |
|---|
| 255 | LIB3DS_VIEW_WINDOW = 0x3090, |
|---|
| 256 | |
|---|
| 257 | LIB3DS_VIEWPORT_LAYOUT_OLD = 0x7000, |
|---|
| 258 | LIB3DS_VIEWPORT_DATA_OLD = 0x7010, |
|---|
| 259 | LIB3DS_VIEWPORT_LAYOUT = 0x7001, |
|---|
| 260 | LIB3DS_VIEWPORT_DATA = 0x7011, |
|---|
| 261 | LIB3DS_VIEWPORT_DATA_3 = 0x7012, |
|---|
| 262 | LIB3DS_VIEWPORT_SIZE = 0x7020, |
|---|
| 263 | LIB3DS_NETWORK_VIEW = 0x7030 |
|---|
| 264 | } Lib3dsChunks; |
|---|
| 265 | |
|---|
| 266 | typedef struct _Lib3dsChunk { |
|---|
| 267 | Lib3dsWord chunk; |
|---|
| 268 | Lib3dsDword size; |
|---|
| 269 | Lib3dsDword end; |
|---|
| 270 | Lib3dsDword cur; |
|---|
| 271 | } Lib3dsChunk; |
|---|
| 272 | |
|---|
| 273 | extern LIB3DSAPI void lib3ds_chunk_enable_dump(Lib3dsBool enable, Lib3dsBool unknown); |
|---|
| [10076] | 274 | extern LIB3DSAPI Lib3dsBool lib3ds_chunk_read(Lib3dsChunk *c, iostream *strm); |
|---|
| 275 | extern LIB3DSAPI Lib3dsBool lib3ds_chunk_read_start(Lib3dsChunk *c, Lib3dsWord chunk, iostream *strm); |
|---|
| 276 | extern LIB3DSAPI void lib3ds_chunk_read_tell(Lib3dsChunk *c, iostream *strm); |
|---|
| 277 | extern LIB3DSAPI Lib3dsWord lib3ds_chunk_read_next(Lib3dsChunk *c, iostream *strm); |
|---|
| 278 | extern LIB3DSAPI void lib3ds_chunk_read_reset(Lib3dsChunk *c, iostream *strm); |
|---|
| 279 | extern LIB3DSAPI void lib3ds_chunk_read_end(Lib3dsChunk *c, iostream *strm); |
|---|
| 280 | extern LIB3DSAPI Lib3dsBool lib3ds_chunk_write(Lib3dsChunk *c, iostream *strm); |
|---|
| 281 | extern LIB3DSAPI Lib3dsBool lib3ds_chunk_write_start(Lib3dsChunk *c, iostream *strm); |
|---|
| 282 | extern LIB3DSAPI Lib3dsBool lib3ds_chunk_write_end(Lib3dsChunk *c, iostream *strm); |
|---|
| [8] | 283 | extern LIB3DSAPI const char* lib3ds_chunk_name(Lib3dsWord chunk); |
|---|
| 284 | extern LIB3DSAPI void lib3ds_chunk_unknown(Lib3dsWord chunk); |
|---|
| [151] | 285 | extern LIB3DSAPI void lib3ds_chunk_dump_info(const char *format, ...); |
|---|
| [8] | 286 | |
|---|
| 287 | #ifdef __cplusplus |
|---|
| [6461] | 288 | } |
|---|
| [8] | 289 | #endif |
|---|
| 290 | #endif |
|---|
| 291 | |
|---|