/* model/quad.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_QUAD_H__ #define __INCLUDED_MODEL_QUAD_H__ #include "math/color.h" #include "math/vector3f.h" namespace model { /// a model quad class Quad { public: /// a new quad with 4 vertices, a normal, color and a detail flag Quad(math::Vector3f const &v0, math::Vector3f const &v1, math::Vector3f const &v2, math::Vector3f const &v3, math::Vector3f const &normal, math::Color const & color, bool detail); /// delete quad ~Quad(); /// normal of the quad inline math::Vector3f const & normal() const { return quad_normal; } /// color of the quad inline math::Color const & color() const { return quad_color; } /// indidcates if this quad was generated from a detail brush inline bool detail() const { return quad_detail; } /// quad vertex 0 inline math::Vector3f & v0() { return quad_v0; } /// quad vertex 1 inline math::Vector3f & v1() { return quad_v1; } /// quad vertex 2 inline math::Vector3f & v2() { return quad_v2; } /// quad vertex 3 inline math::Vector3f & v3() { return quad_v3; } private: math::Vector3f quad_v0; math::Vector3f quad_v1; math::Vector3f quad_v2; math::Vector3f quad_v3; math::Vector3f quad_normal; math::Color quad_color; bool quad_detail; }; } #endif // __INCLUDED_MODEL_QUAD_H__