2 * Copyright (C) Volition, Inc. 1999. All rights reserved.
4 * All source code herein is the property of Volition, Inc. You may not sell
5 * or otherwise commercially exploit the source or things you created based on
15 #error This should only be used internally by the model library. See John if you think you need to include this elsewhere.
19 #define OP_DEFPOINTS 1
25 // change header for freespace2
27 #define FREESPACE1_FORMAT
29 #define FREESPACE2_FORMAT
31 #if defined( FREESPACE1_FORMAT )
32 #elif defined ( FREESPACE2_FORMAT )
34 #error Neither FREESPACE1_FORMAT or FREESPACE2_FORMAT defined
38 #if defined( FREESPACE1_FORMAT )
39 #define ID_OHDR 'RDHO' // POF file header
40 #define ID_SOBJ 'JBOS' // Subobject header
42 #define ID_OHDR '2RDH' // POF file header
43 #define ID_SOBJ '2JBO' // Subobject header
45 #define ID_TXTR 'RTXT' // Texture filename list
46 #define ID_INFO 'FNIP' // POF file information, like command line, etc
47 #define ID_GRID 'DIRG' // Grid information
48 #define ID_SPCL 'LCPS' // Special object -- like a gun, missile, docking point, etc.
49 #define ID_PATH 'HTAP' // A spline based path
50 #define ID_GPNT 'TNPG' // gun points
51 #define ID_MPNT 'TNPM' // missile points
52 #define ID_DOCK 'KCOD' // docking points
53 #define ID_TGUN 'NUGT' // turret gun points
54 #define ID_TMIS 'SIMT' // turret missile points
55 #define ID_FUEL 'LEUF' // thruster points
56 #define ID_SHLD 'DLHS' // shield definition
57 #define ID_EYE ' EYE' // eye information
58 #define ID_INSG 'GSNI' // insignia information
59 #define ID_ACEN 'NECA' // autocentering information
61 #define uw(p) (*((uint *) (p)))
62 #define w(p) (*((int *) (p)))
63 #define wp(p) ((int *) (p))
64 #define vp(p) ((vector *) (p))
65 #define fl(p) (*((float *) (p)))
67 extern int model_interp(matrix * orient, ubyte * data, polymodel * pm );
69 // Creates the octants for a given polygon model
70 void model_octant_create( polymodel * pm );
72 // frees the memory the octants use for a given polygon model
73 void model_octant_free( polymodel * pm );
75 void model_calc_bound_box( vector *box, vector *big_mn, vector *big_mx);
77 void interp_clear_instance();
79 #define MAX_POLYGON_VECS 1100 //6500 (7x)
80 #define MAX_POLYGON_NORMS 2800 //6500 (3x)
82 extern vector *Interp_verts[MAX_POLYGON_VECS];