Gem Illuminator
 All Classes Namespaces Files Functions Variables Enumerations Enumerator Macros
triangle.h
Go to the documentation of this file.
1 #ifndef TRIANGLE_H
2 #define TRIANGLE_H
3 
4 template<typename T> class QList;
5 class QVector3D;
6 
11 class Triangle
12 {
13 public:
17  Triangle();
18 
25  Triangle(const QVector3D &a,
26  const QVector3D &b,
27  const QVector3D &c);
28 
33  Triangle(const Triangle &triangle);
34 
35  ~Triangle();
36 
37  Triangle &operator=(const Triangle &triangle);
38 
39  const QVector3D &a() const;
40  void setA(const QVector3D &a);
41 
42  const QVector3D &b() const;
43  void setB(const QVector3D &b);
44 
45  const QVector3D &c() const;
46  void setC(const QVector3D &c);
47 
52  const QVector3D &normal() const;
53 
58  QList<QVector3D> vertices() const;
59 
65  QVector3D reflect(const QVector3D &incidentVector) const;
66 
67 protected:
68  void calculateNormal() const;
69 
70 protected:
71  QVector3D *m_a;
72  QVector3D *m_b;
73  QVector3D *m_c;
74  mutable QVector3D *m_normal;
75 };
76 
77 #endif // TRIANGLE_H
void setB(const QVector3D &b)
Definition: triangle.cpp:70
Definition: gemdata.h:6
void calculateNormal() const
Definition: triangle.cpp:110
The Triangle class represents a triangle in three dimensional space.
Definition: triangle.h:11
void setC(const QVector3D &c)
Definition: triangle.cpp:80
~Triangle()
Definition: triangle.cpp:47
Triangle & operator=(const Triangle &triangle)
Definition: triangle.cpp:32
QVector3D * m_a
Definition: triangle.h:71
QVector3D reflect(const QVector3D &incidentVector) const
Reflects incoming ray at outer side of triangle.
Definition: triangle.cpp:103
QVector3D * m_c
Definition: triangle.h:73
const QVector3D & a() const
Definition: triangle.cpp:55
const QVector3D & normal() const
Returns normal of triangle. The vertices a(), b() and c() ordered counter clockwise are expected to d...
Definition: triangle.cpp:85
QVector3D * m_b
Definition: triangle.h:72
QVector3D * m_normal
Definition: triangle.h:74
const QVector3D & c() const
Definition: triangle.cpp:75
Triangle()
Creates a new degenerated Triangle, with all points in (0, 0, 0).
Definition: triangle.cpp:8
void setA(const QVector3D &a)
Definition: triangle.cpp:60
const QVector3D & b() const
Definition: triangle.cpp:65
QList< QVector3D > vertices() const
Convenience method. All vertices are returned in QList.
Definition: triangle.cpp:94