From 5664fd34a2f0317a276249762512d1a479fd7585 Mon Sep 17 00:00:00 2001 From: Stanislaw Halik Date: Wed, 23 Feb 2022 16:47:24 +0100 Subject: flush --- atlas.cpp | 47 +++++++++++++++++++++++++++++++++++++++++------ 1 file changed, 41 insertions(+), 6 deletions(-) (limited to 'atlas.cpp') diff --git a/atlas.cpp b/atlas.cpp index d6b6a0c2..4528393f 100644 --- a/atlas.cpp +++ b/atlas.cpp @@ -37,7 +37,9 @@ std::array atlas_texture::texcoords_for_id(int id_) const }}; } -std::array atlas_texture::floor_quad(Vector3 center, Vector2 size) +using vertex_array_type = atlas_texture::vertex_array_type; + +vertex_array_type atlas_texture::floor_quad(Vector3 center, Vector2 size) { float x = size[0]*.5f, y = size[1]*.5f; return {{ @@ -48,14 +50,47 @@ std::array atlas_texture::floor_quad(Vector3 center, Vector2 size) }}; } -std::array atlas_texture::wall_quad(Vector3 center, Vector3 size) +vertex_array_type atlas_texture::wall_quad_N(Vector3 center, Vector3 size) +{ + float x = size[0]*.5f, y = size[1]*.5f, z = size[2]; + return {{ + { x + center[0], y + center[1], center[2] }, + { x + center[0], y + center[1], z + center[2] }, + {-x + center[0], y + center[1], center[2] }, + {-x + center[0], y + center[1], z + center[2] }, + }}; +} + +vertex_array_type atlas_texture::wall_quad_W(Vector3 center, Vector3 size) +{ + float x = size[0]*.5f, y = size[1]*.5f, z = size[2]; + return {{ + {-x + center[0], y + center[1], center[2] }, + {-x + center[0], y + center[1], z + center[2] }, + {-x + center[0], -y + center[1], center[2] }, + {-x + center[0], -y + center[1], z + center[2] }, + }}; +} + +vertex_array_type atlas_texture::wall_quad_S(Vector3 center, Vector3 size) +{ + float x = size[0]*.5f, y = size[1]*.5f, z = size[2]; + return {{ + { x + center[0], -y + center[1], center[2] }, + { x + center[0], -y + center[1], z + center[2] }, + {-x + center[0], -y + center[1], center[2] }, + {-x + center[0], -y + center[1], z + center[2] }, + }}; +} + +vertex_array_type atlas_texture::wall_quad_E(Vector3 center, Vector3 size) { float x = size[0]*.5f, y = size[1]*.5f, z = size[2]; return {{ - { x + center[0], -y + center[1], + center[2] }, - { x + center[0], -y + center[1], z+ center[2] }, - {-x + center[0], y + center[1], + center[2] }, - {-x + center[0], y + center[1], z+ center[2] }, + { x + center[0], -y + center[1], center[2] }, + { x + center[0], -y + center[1], z + center[2] }, + { x + center[0], y + center[1], center[2] }, + { x + center[0], y + center[1], z + center[2] }, }}; } -- cgit v1.2.3