X-Git-Url: http://git.localhorst.tv/?a=blobdiff_plain;f=src%2Fworld%2FPlanet.hpp;h=7ac6b570256f7b256679b067ca8887489a4c3c59;hb=b9af958c3f80a966bd31c622a45d0f3375bf2c3a;hp=28ecaa03cd206a0e254685928dabeb398203af07;hpb=8f6530c75730f901efd6708e4fde7e68a178adf1;p=blobs.git diff --git a/src/world/Planet.hpp b/src/world/Planet.hpp index 28ecaa0..7ac6b57 100644 --- a/src/world/Planet.hpp +++ b/src/world/Planet.hpp @@ -75,6 +75,19 @@ public: // center point of tile on surface at elevation glm::dvec3 TileCenter(int surface, int x, int y, double elevation = 0.0) const noexcept; + static glm::dvec3 SurfaceNormal(int srf) noexcept { + glm::dvec3 nrm(0.0); + nrm[(srf + 2) % 3] = srf < 3 ? 1.0 : -1.0; + return nrm; + } + static glm::dmat3 SurfaceOrientation(int srf) noexcept { + glm::dmat3 mat(0.0); + mat[(srf + 0) % 3][0] = 1.0; + mat[(srf + 2) % 3][1] = srf < 3 ? -1.0 : 1.0; + mat[(srf + 1) % 3][2] = srf < 3 ? 1.0 : -1.0; + return mat; + } + void BuildVAO(const Set &); void Draw(app::Assets &, graphics::Viewport &) override;