From ea18c25aef4aa0104852f314dd76e4ce446673f3 Mon Sep 17 00:00:00 2001 From: Stijn Buys Date: Wed, 12 Aug 2009 20:22:20 +0000 Subject: triangle/quad code cleanup,corrects submodel origin, enable quad rendering again --- src/model/quad.h | 97 +++++++++++++++++++++++++++++++++++++++++++++----------- 1 file changed, 79 insertions(+), 18 deletions(-) (limited to 'src/model/quad.h') diff --git a/src/model/quad.h b/src/model/quad.h index 2950477..4728866 100644 --- a/src/model/quad.h +++ b/src/model/quad.h @@ -7,7 +7,7 @@ #ifndef __INCLUDED_MODEL_QUAD_H__ #define __INCLUDED_MODEL_QUAD_H__ -#include "math/color.h" +#include "math/vector2f.h" #include "math/vector3f.h" namespace model @@ -17,54 +17,115 @@ namespace model 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, bool detail); + /** + * @brief a new quad with 4 vertices + * this constructor assigns the face normal to every vertex normal + */ + Quad(const math::Vector3f &v0,const math::Vector3f &v1, const math::Vector3f &v2, const math::Vector3f &v3, const math::Vector3f &normal, const bool detail = false); /// delete quad ~Quad(); - /// normal of the quad - inline math::Vector3f const & normal() const + /// quad vertex 0 + inline math::Vector3f & v0() { - return quad_normal; + return quad_v0; } - /// indidcates if this quad was generated from a detail brush - inline bool detail() const + /// quad vertex 0 normal + inline math::Vector3f & n0() { - return quad_detail; + return quad_n0; } - - /// quad vertex 0 - inline math::Vector3f & v0() + + /// quad vertex 0 texture coordinates + inline math::Vector2f & t0() { - return quad_v0; + return quad_t0; } - + /// quad vertex 1 inline math::Vector3f & v1() { return quad_v1; } + + /// quad vertex 1 normal + inline math::Vector3f & n1() + { + return quad_n1; + } + + /// quad vertex 1 texture coordinates + inline math::Vector2f & t1() + { + return quad_t1; + } /// quad vertex 2 inline math::Vector3f & v2() { return quad_v2; } - + + /// quad vertex 2 normal + inline math::Vector3f & n2() + { + return quad_n2; + } + + /// quad vertex 2 texture coordinates + inline math::Vector2f & t2() + { + return quad_t2; + } + /// quad vertex 3 inline math::Vector3f & v3() { return quad_v3; } + + /// quad vertex 3 normal + inline math::Vector3f & n3() + { + return quad_n3; + } + + /// quad vertex 3 texture coordinates + inline math::Vector2f & t3() + { + return quad_t3; + } + + /// indidcates if this quad was generated from a detail brush + inline bool detail() const + { + return quad_detail; + } + + /// face normal + inline math::Vector3f &normal() { + return quad_normal; + } + private: - math::Vector3f quad_v0; + math::Vector3f quad_v0; + math::Vector3f quad_n0; + math::Vector2f quad_t0; + math::Vector3f quad_v1; + math::Vector3f quad_n1; + math::Vector2f quad_t1; + math::Vector3f quad_v2; + math::Vector3f quad_n2; + math::Vector2f quad_t2; + math::Vector3f quad_v3; - + math::Vector3f quad_n3; + math::Vector2f quad_t3; + math::Vector3f quad_normal; bool quad_detail; }; -- cgit v1.2.3