00001 00002 00003 00004 00005 00006 00007 00008 00009 00010 00011 00012 00013 00014 00015 00016 00017 00018 00019
00020
00021 00022 00023 00024 00025 00026 00027
00028 #ifndef __RVTYPES_H
00029 #define __RVTYPES_H
00030
00031 #include <math.h>
00032
00033 #include "rvbasetypes.h"
00034 #include "rvcolor.h"
00035 #include "vector.h"
00036 #include "matrix3.h"
00037 #include "vertex.h"
00038 #include "axisbox.h"
00039
00040 #define SUFFIX_W_STD "w"
00041 #define SUFFIX_W_IM "i-w"
00042 #define SUFFIX_PRM_STD "prm"
00043 #define SUFFIX_PRM_IM "i-p"
00044 #define SUFFIX_NCP "ncp"
00045 #define SUFFIX_TAZ "taz"
00046 #define SUFFIX_VIS "vis"
00047
00048
00049 #define SUFFIX_DOT_W_STD ".w"
00050 #define SUFFIX_DOT_W_IM ".i-w"
00051 #define SUFFIX_DOT_PRM_STD ".prm"
00052 #define SUFFIX_DOT_PRM_IM ".i-p"
00053 #define SUFFIX_DOT_NCP ".ncp"
00054 #define SUFFIX_DOT_TAZ ".taz"
00055 #define SUFFIX_DOT_VIS ".vis"
00056
00057
00058
00060
00062 struct RV_UV
00063 {
00064 rvfloat u;
00065 rvfloat v;
00066 };
00067 #define RV_UV_SIZE sizeof(RV_UV)
00068
00069
00070
00071
00072
00073
00074
00075
00077
00079 struct RV_W_Mesh
00080 {
00082 Vector ball_center;
00084 rvfloat ball_radius;
00085
00086 AxisBox bbox;
00087
00089 rvushort num_polys;
00091 rvushort num_vecs;
00092 };
00093 #define RV_W_MESH_SIZE sizeof(RV_W_Mesh)
00094
00095
00096
00097
00098
00100
00102 struct RV_PRM_Mesh
00103 {
00105 rvushort num_polys;
00106
00108 rvushort num_vecs;
00109 };
00110 #define RV_PRM_MESH_SIZE sizeof(RV_PRM_Mesh)
00111
00112
00113
00114
00115
00116
00117
00118
00119
00121
00126 struct RV_Poly
00127 {
00142 rvushort type;
00143
00149 rvshort texture;
00150
00152 rvushort vertidx[4];
00153
00158 RVColor color[4];
00159
00161 RV_UV texcoord[4];
00162 };
00163 #define RV_POLY_SIZE sizeof(RV_Poly)
00164
00165
00166 #define POLY_IS_QUAD 0x001
00167 #define POLY_IS_DOUBLE 0x002
00168 #define POLY_IS_TRANS 0x004
00169 #define POLY_TRANS_1_1 0x100
00170
00171 #define POLY_PRM_DISABLE_ENV 0x400
00172 #define POLY_W_ENABLE_ENV 0x800
00173
00174
00175
00176
00177
00178
00179
00180
00181
00182
00183
00184
00186 struct RV_FunnyBall
00187 {
00188 Vector center;
00189 rvfloat radius;
00190
00191 rvulong groupcnt;
00192 };
00193 #define RV_FUNNYBALL_SIZE sizeof(RV_FunnyBall)
00194
00195
00196
00197
00198
00200 struct RV_Plane
00201 {
00202 Vector normal;
00203 rvfloat distance;
00204 };
00205 #define RV_PLANE_SIZE sizeof(RV_Plane);
00206
00207
00208
00210 struct RV_Polyhedron
00211 {
00212 rvlong type;
00213 rvlong surface;
00214
00215 RV_Plane plane[5];
00216
00217 AxisBox bbox;
00218 };
00219 #define RV_POLYHEDRON_SIZE sizeof(RV_Polyhedron)
00220
00221
00222
00224 struct RV_LookupGrid
00225 {
00226 rvfloat x0;
00227 rvfloat z0;
00228
00229 rvfloat x_size;
00230 rvfloat z_size;
00231
00232 rvfloat raster_size;
00233 };
00234 #define RV_LOOKUPGRID_SIZE sizeof(RV_LookupGrid)
00235
00236
00237
00238
00239
00241 struct RV_FIN_Data
00242 {
00243 char fname[9];
00244
00245 signed char model_r, model_g, model_b;
00246 unsigned char env_b, env_g, env_r;
00247
00248 unsigned char _unknown_1[2];
00249
00250 unsigned char enable_env_flag;
00251
00252 unsigned char _unknown_2[2];
00253
00254 rvlong lodbias;
00255
00256 Vector position;
00257 Matrix_3x3 rotation;
00258 };
00259 #define RV_FIN_DATA_SIZE sizeof(RV_FIN_Data)
00260
00261
00262
00263
00265 struct RV_TAZ_Data
00266 {
00267 rvulong id;
00268 Vector center;
00269 Matrix_3x3 rotation;
00270 Vector size;
00271 };
00272 #define RV_TAZ_DATA_SIZE sizeof(RV_TAZ_Data)
00273
00274
00275
00276
00277 #define CAMERA_NODE 0x1
00278 #define CUBE_NODE 0x2
00279
00281 struct RV_VIS_Data
00282 {
00283 unsigned char flags;
00284 unsigned char id;
00285 unsigned char _unknown_[2];
00286 AxisBox abox;
00287 };
00288 #define RV_VIS_DATA_SIZE sizeof(RV_VIS_Data)
00289
00290
00291 #endif