summaryrefslogtreecommitdiffhomepage
path: root/atlas.cpp
diff options
context:
space:
mode:
authorStanislaw Halik <sthalik@misaki.pl>2022-02-23 16:47:24 +0100
committerStanislaw Halik <sthalik@misaki.pl>2022-02-23 16:47:24 +0100
commit5664fd34a2f0317a276249762512d1a479fd7585 (patch)
tree38425c03b171145f4e7774a20f975dc7389f6c28 /atlas.cpp
parent767f69d60c87a039c6ab0c3bf9ba4ed171b28da4 (diff)
flush
Diffstat (limited to 'atlas.cpp')
-rw-r--r--atlas.cpp47
1 files changed, 41 insertions, 6 deletions
diff --git a/atlas.cpp b/atlas.cpp
index d6b6a0c2..4528393f 100644
--- a/atlas.cpp
+++ b/atlas.cpp
@@ -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] },
}};
}