home *** CD-ROM | disk | FTP | other *** search
/ Enter 2005 March / ENTER.ISO / files / fwp-0.0.6-win32-installer.exe / chunk.h < prev    next >
Encoding:
C/C++ Source or Header  |  2001-07-07  |  11.1 KB  |  289 lines

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