diff options
| author | Mel <einebeere@gmail.com> | 2023-07-12 03:39:01 +0200 |
|---|---|---|
| committer | Mel <einebeere@gmail.com> | 2023-07-12 03:39:01 +0200 |
| commit | f09e5791837bb003f7c5db8c0e3162636bc9a9c2 (patch) | |
| tree | 36b9a007f119388bb7943489e8d203de04269483 /src/GFX/Util/MeshBuilder.hpp | |
| parent | 0ce26f2a49fd6d64a690b84b1932126edfbfbee6 (diff) | |
| download | meowcraft-f09e5791837bb003f7c5db8c0e3162636bc9a9c2.tar.zst meowcraft-f09e5791837bb003f7c5db8c0e3162636bc9a9c2.zip | |
3D Clouds
Diffstat (limited to 'src/GFX/Util/MeshBuilder.hpp')
| -rw-r--r-- | src/GFX/Util/MeshBuilder.hpp | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/src/GFX/Util/MeshBuilder.hpp b/src/GFX/Util/MeshBuilder.hpp index e3caa8c..c174b8c 100644 --- a/src/GFX/Util/MeshBuilder.hpp +++ b/src/GFX/Util/MeshBuilder.hpp @@ -2,6 +2,7 @@ #include "../../Common/Sizes.hpp" #include "../../Math/Common.hpp" +#include "Primitives.hpp" #include <vector> namespace MC::GFX::Util { @@ -53,6 +54,18 @@ public: m_indices.insert(m_indices.end(), from.begin(), from.end()); } + template<uint PN> + void primitive(const Primitives::Primitive<PN>& primitive) { + decltype(primitive.indices) relativized_indices{}; + for (Int i = 0; i < primitive.indices.size(); i++) { + relativized_indices[i] = primitive.indices[i] + m_positions.size(); + } + + positions(primitive.positions); + attributes<0>(primitive.normals); + indices(relativized_indices); + } + Mesh mesh() { return mesh(std::make_index_sequence<AttributesN>{}); } |
