diff options
Diffstat (limited to 'src/model/triangle.h')
-rw-r--r-- | src/model/triangle.h | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/src/model/triangle.h b/src/model/triangle.h new file mode 100644 index 0000000..58e25e4 --- /dev/null +++ b/src/model/triangle.h @@ -0,0 +1,47 @@ +/* + model/triangle.h + This file is part of the Osirion project and is distributed under + the terms of the GNU General Public License version 2 +*/ + +#ifndef __INCLUDED_MODEL_TRIANGLE_H__ +#define __INCLUDED_MODEL_TRIANGLE_H__ + +#include "math/color.h" +#include "math/vector3f.h" + +namespace model +{ + +/// a model triangle +class Triangle +{ +public: + /// a new triangle with 3 vertices, a normal, color and a detail flag + Triangle(math::Vector3f const &v0, math::Vector3f const &v1, math::Vector3f const &v2, math::Vector3f const &n, + math::Color *color=0, bool detail=false); + ~Triangle(); + + /// normal of the triangle + inline math::Vector3f const & normal() const { return triangle_normal; } + /// color of the triangle + inline math::Color const & color() const { return triangle_color;} + /// indidcates if this triangle was generated from a detail brush + inline bool detail() const { return triangle_detail; } + + /// triangle vertex 0 + math::Vector3f triangle_v0; + /// triangle vertex 1 + math::Vector3f triangle_v1; + /// triangle vertex 2 + math::Vector3f triangle_v2; + +private: + math::Vector3f triangle_normal; + math::Color triangle_color; + bool triangle_detail; +}; + +} + +#endif // __INCLUDED_MODEL_TRIANGLE_H__ |