diff options
| author | Stanislaw Halik <sthalik@misaki.pl> | 2022-02-23 16:47:24 +0100 |
|---|---|---|
| committer | Stanislaw Halik <sthalik@misaki.pl> | 2022-02-23 16:47:24 +0100 |
| commit | 5664fd34a2f0317a276249762512d1a479fd7585 (patch) | |
| tree | 38425c03b171145f4e7774a20f975dc7389f6c28 /atlas.cpp | |
| parent | 767f69d60c87a039c6ab0c3bf9ba4ed171b28da4 (diff) | |
flush
Diffstat (limited to 'atlas.cpp')
| -rw-r--r-- | atlas.cpp | 47 |
1 files changed, 41 insertions, 6 deletions
@@ -37,7 +37,9 @@ std::array<Vector2, 4> atlas_texture::texcoords_for_id(int id_) const }}; } -std::array<Vector3, 4> 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<Vector3, 4> atlas_texture::floor_quad(Vector3 center, Vector2 size) }}; } -std::array<Vector3, 4> 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] }, }}; } |
