57 lines
964 B
C
57 lines
964 B
C
#pragma once
|
|
|
|
struct polygon {
|
|
int a, b, c, d;
|
|
int material_index;
|
|
int uv_index;
|
|
};
|
|
|
|
struct mesh_material {
|
|
int width;
|
|
int height;
|
|
int offset;
|
|
};
|
|
|
|
struct edge {
|
|
int a; // vertices index
|
|
int b; // vertices index
|
|
};
|
|
|
|
struct edge_polygon {
|
|
struct edge edge;
|
|
struct {
|
|
int a;
|
|
int b;
|
|
} polygon_index; // polygon indices
|
|
};
|
|
|
|
struct mesh {
|
|
const vec3 * position;
|
|
const int position_length;
|
|
const vec3 * normal;
|
|
const int normal_length;
|
|
const vec3 * polygon_normal;
|
|
const int polygon_normal_length;
|
|
const polygon * polygons;
|
|
const int polygons_length;
|
|
const vec2 ** uv_layers;
|
|
const int uv_layers_length;
|
|
const mesh_material * materials;
|
|
const int materials_length;
|
|
const edge_polygon * edge_polygons;
|
|
const int edge_polygons_length;
|
|
};
|
|
|
|
struct object {
|
|
const struct mesh * mesh;
|
|
const vec3 scale;
|
|
const vec4 rotation;
|
|
const vec3 location;
|
|
};
|
|
|
|
struct material {
|
|
void * start;
|
|
int size;
|
|
int offset;
|
|
};
|