Project::OSiRiON - Git repositories
Project::OSiRiON
News . About . Screenshots . Downloads . Forum . Wiki . Tracker . Git
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'src/model/quad.h')
-rw-r--r--src/model/quad.h97
1 files changed, 79 insertions, 18 deletions
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;
};