|
|
|
|
@ -43,6 +43,7 @@ entInitSimpleMesh(entity& e, simple_mesh& mesh, GLenum draw_mode)
|
|
|
|
|
e.mesh_type = SIMPLE_MESH; |
|
|
|
|
e.draw_mode = draw_mode; |
|
|
|
|
|
|
|
|
|
e.mesh.model_transform = mesh.model_transform; |
|
|
|
|
e.mesh.num_vertices = mesh.num_vertices; |
|
|
|
|
e.mesh.vertices = UTIL_ALLOC(mesh.num_vertices, glm::vec3); |
|
|
|
|
e.mesh.vert_colors = UTIL_ALLOC(mesh.num_vertices, glm::vec3); |
|
|
|
|
@ -81,25 +82,70 @@ entFree(entity& e)
|
|
|
|
|
void |
|
|
|
|
entSetWorldPosition(entity& e, glm::vec3 v) |
|
|
|
|
{ |
|
|
|
|
#if 0 |
|
|
|
|
e.world_transform[3][0] = v.x; |
|
|
|
|
e.world_transform[3][1] = v.y; |
|
|
|
|
e.world_transform[3][2] = v.z; |
|
|
|
|
#endif |
|
|
|
|
if (e.mesh_type == SIMPLE_MESH) { |
|
|
|
|
//
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if (e.mesh_type == DEFAULT_MESHES) { |
|
|
|
|
//
|
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
void |
|
|
|
|
entTranslate(entity& e, glm::vec3 v) |
|
|
|
|
{ |
|
|
|
|
#if 0 |
|
|
|
|
e.world_transform = glm::translate(e.world_transform, v); |
|
|
|
|
#endif |
|
|
|
|
if (e.mesh_type == SIMPLE_MESH) { |
|
|
|
|
//
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if (e.mesh_type == DEFAULT_MESHES) { |
|
|
|
|
//
|
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
void |
|
|
|
|
entScale(entity& e, glm::vec3 v) |
|
|
|
|
{ |
|
|
|
|
#if 0 |
|
|
|
|
e.world_transform = glm::scale(e.world_transform, v); |
|
|
|
|
#endif |
|
|
|
|
if (e.mesh_type == SIMPLE_MESH) { |
|
|
|
|
//
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
for (uint i = 0; i < e.meshes.num_meshes; i++) { |
|
|
|
|
render_object& ro = e.render_objs[i]; |
|
|
|
|
ro.node_xform = glm::scale(ro.node_xform, v); |
|
|
|
|
if (e.mesh_type == DEFAULT_MESHES) { |
|
|
|
|
for (uint i = 0; i < e.meshes.num_meshes; i++) { |
|
|
|
|
render_object& ro = e.render_objs[i]; |
|
|
|
|
ro.node_xform = glm::scale(ro.node_xform, v); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
void |
|
|
|
|
entRotate(entity& e, float angle, glm::vec3 axis) |
|
|
|
|
{ |
|
|
|
|
#if 0 |
|
|
|
|
e.world_transform = glm::rotate(e.world_transform, angle, axis); |
|
|
|
|
#endif |
|
|
|
|
if (e.mesh_type == SIMPLE_MESH) { |
|
|
|
|
e.simple_ro.model_transform = |
|
|
|
|
glm::rotate(e.simple_ro.model_transform, angle, axis); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if (e.mesh_type == DEFAULT_MESHES) { |
|
|
|
|
for (uint i = 0; i < e.meshes.num_meshes; i++) { |
|
|
|
|
render_object& ro = e.render_objs[i]; |
|
|
|
|
ro.node_xform = glm::rotate(ro.node_xform, angle, axis); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@ -109,7 +155,6 @@ entScale(entity& e, glm::vec3 v)
|
|
|
|
|
void |
|
|
|
|
initDefaults(entity& e) |
|
|
|
|
{ |
|
|
|
|
e.world_transform = glm::mat4(1.0); |
|
|
|
|
entScale(e, glm::vec3(1.0)); |
|
|
|
|
entSetWorldPosition(e, glm::vec3(0, 0, 0)); |
|
|
|
|
} |
|
|
|
|
|