summaryrefslogtreecommitdiffstats
path: root/Triangle.h
diff options
context:
space:
mode:
Diffstat (limited to 'Triangle.h')
-rw-r--r--Triangle.h39
1 files changed, 39 insertions, 0 deletions
diff --git a/Triangle.h b/Triangle.h
new file mode 100644
index 0000000..b0a7a2e
--- /dev/null
+++ b/Triangle.h
@@ -0,0 +1,39 @@
+#ifndef TRIANGLE_H_
+#define TRIANGLE_H_
+
+
+#include "Vertex.h"
+
+class Triangle {
+ private:
+ Vertex va, vb, vc;
+ public:
+ enum Direction {
+ CW, CCW, Unknown
+ };
+
+ Triangle() {}
+ Triangle(const Vertex& vertexa, const Vertex& vertexb, const Vertex& vertexc)
+ : va(vertexa), vb(vertexb), vc(vertexc) {}
+
+ Vertex &getVertexA() {return va;}
+ const Vertex &getVertexA() const {return va;}
+ void setVertexA(const Vertex &v) {va = v;}
+
+ Vertex &getVertexB() {return vb;}
+ const Vertex &getVertexB() const {return vb;}
+ void setVertexB(const Vertex &v) {vb = v;}
+
+ Vertex &getVertexC() {return vc;}
+ const Vertex &getVertexC() const {return vc;}
+ void setVertexC(const Vertex &v) {vc = v;}
+
+ Direction getDirection() const;
+
+ double area() const;
+ double perimeter() const;
+
+ bool contains(const Vertex &v) const;
+};
+
+#endif /*TRIANGLE_H_*/