diff options
Diffstat (limited to 'src/model/triangle.h')
-rw-r--r-- | src/model/triangle.h | 38 |
1 files changed, 36 insertions, 2 deletions
diff --git a/src/model/triangle.h b/src/model/triangle.h index 416a3e6..27abeed 100644 --- a/src/model/triangle.h +++ b/src/model/triangle.h @@ -17,9 +17,19 @@ namespace model class Triangle { public: - /// a new triangle with 3 vertices, a normal, color and a detail flag + /// a new triangle with 3 vertices, a normal and detail flag Triangle(math::Vector3f const &v0, math::Vector3f const &v1, math::Vector3f const &v2, math::Vector3f const &normal, bool detail); + + /** + * @brief a new triangle with 3 vertices with normals and a face normal + * this constructor sets the detail flag to false + */ + Triangle( math::Vector3f const &v0, math::Vector3f const &n0, + math::Vector3f const &v1, math::Vector3f const &n1, + math::Vector3f const &v2, math::Vector3f const &n2, + math::Vector3f const &normal); + /// delete triangle ~Triangle(); @@ -41,23 +51,47 @@ public: return triangle_v0; } + /// triangle vertex 0 normal + inline math::Vector3f & n0() + { + return triangle_n0; + } + /// triangle vertex 1 inline math::Vector3f & v1() { return triangle_v1; } + + /// triangle vertex 1 normal + inline math::Vector3f & n1() + { + return triangle_n1; + } /// triangle vertex 2 inline math::Vector3f & v2() { return triangle_v2; } + + /// triangle vertex 0 normal + inline math::Vector3f & n2() + { + return triangle_n2; + } + private: math::Vector3f triangle_v0; + math::Vector3f triangle_n0; + math::Vector3f triangle_v1; + math::Vector3f triangle_n1; + math::Vector3f triangle_v2; - + math::Vector3f triangle_n2; + math::Vector3f triangle_normal; bool triangle_detail; }; |