110 lines
1.4 KiB
C
110 lines
1.4 KiB
C
struct header {
|
|
int tag;
|
|
int major;
|
|
int minor;
|
|
int flags;
|
|
};
|
|
|
|
struct color_rgba {
|
|
float r;
|
|
float g;
|
|
float b;
|
|
float a;
|
|
};
|
|
|
|
struct color_rgb {
|
|
float r;
|
|
float g;
|
|
float b;
|
|
};
|
|
|
|
struct material {
|
|
int tag;
|
|
x_color_rgba facecolor;
|
|
float power;
|
|
x_color_rgb specularcolor;
|
|
x_color_rgb emissivecolor;
|
|
void * objects[];
|
|
};
|
|
|
|
struct frame {
|
|
int tag;
|
|
void * objects[];
|
|
};
|
|
|
|
struct frame_transform_matrix {
|
|
int tag;
|
|
mat4x4 framematrix;
|
|
};
|
|
|
|
struct mesh_face {
|
|
int nfacevertexindices;
|
|
int facevertexindices[];
|
|
};
|
|
|
|
struct mesh {
|
|
int nvertices;
|
|
vec3 * vertices;
|
|
int nfaces;
|
|
mesh_face * faces;
|
|
void * objects[];
|
|
};
|
|
|
|
struct mesh_material_list {
|
|
int n_materials;
|
|
int n_face_indices;
|
|
int * face_indices;
|
|
void * objects[];
|
|
};
|
|
|
|
struct mesh_normals {
|
|
int tag;
|
|
int n_normals;
|
|
vec3 * normals;
|
|
int n_face_normals;
|
|
mesh_face * face_normals;
|
|
};
|
|
|
|
struct mesh_texture_coords {
|
|
int tag;
|
|
int n_texture_coords;
|
|
vec2 texture_coords[];
|
|
};
|
|
|
|
struct texture_filename {
|
|
const char * filename;
|
|
};
|
|
|
|
struct float_keys {
|
|
int nvalues;
|
|
float values;
|
|
};
|
|
|
|
struct timed_float_keys {
|
|
int time;
|
|
float_keys tfkeys;
|
|
};
|
|
|
|
struct animation_key {
|
|
int tag;
|
|
int key_type;
|
|
int n_keys;
|
|
timed_float_keys keys[];
|
|
};
|
|
|
|
struct animation_options {
|
|
int tag;
|
|
int open_closed;
|
|
int position_quality;
|
|
};
|
|
|
|
struct animation {
|
|
int tag;
|
|
void * objects[];
|
|
};
|
|
|
|
struct animation_set {
|
|
int tag;
|
|
void * objects[];
|
|
}
|