From 1b96b0211ed98afba515f0ac9880116f79ead2e5 Mon Sep 17 00:00:00 2001 From: Elizabeth Hunt Date: Tue, 28 Nov 2023 13:58:18 -0700 Subject: render the front face of a cube --- src/model_instance.cpp | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) (limited to 'src/model_instance.cpp') diff --git a/src/model_instance.cpp b/src/model_instance.cpp index 65ed6a8..61204ff 100644 --- a/src/model_instance.cpp +++ b/src/model_instance.cpp @@ -9,11 +9,12 @@ ModelInstance::ModelInstance(std::shared_ptr mesh, FIXED scale, VECTOR rotate(VECTOR v, VECTOR rot) { FIXED sin_theta_x, sin_theta_y, sin_theta_z; FIXED cos_theta_x, cos_theta_y, cos_theta_z; + VECTOR res = {v.x, v.y, v.z}; if (rot.x != 0) { - sin_theta_x = lu_sin(rot.x) >> 4; - cos_theta_x = lu_cos(rot.x) >> 4; + sin_theta_x = float2fx(0.707); // lu_sin(rot.x) >> 4; + cos_theta_x = float2fx(0.707); // lu_cos(rot.x) >> 4; res.y = fxmul(res.y, cos_theta_x) - fxmul(res.z, sin_theta_x); res.z = fxmul(res.z, cos_theta_x) + fxmul(res.y, sin_theta_x); } @@ -36,14 +37,14 @@ VECTOR rotate(VECTOR v, VECTOR rot) { } void ModelInstance::render(std::shared_ptr scene_context) { - usu::vector transformed(m_mesh->vertices.size()); - usu::vector projected(transformed.size()); + usu::vector projected(m_mesh->vertices.size()); - for (std::uint32_t i = 0; i < transformed.size(); i++) { - VECTOR rotated = rotate(m_mesh->vertices[i], m_rot); - vec_add(&transformed[i], &rotated, &m_pos); + for (std::uint32_t i = 0; i < projected.size(); i++) { + VECTOR transformed = + m_mesh->vertices[i]; // rotate(m_mesh->vertices[i], m_rot); + // vec_add(&transformed, &transformed, &m_pos); - projected[i] = scene_context->project_2d(m_mesh->vertices[i]); + projected[i] = scene_context->project_2d(transformed); } for (const TRIANGLE triangle : m_mesh->triangles) { -- cgit v1.3