42 lines
1 KiB
C++
42 lines
1 KiB
C++
#ifndef TRIANGLE_H_
|
|
#define TRIANGLE_H_
|
|
|
|
|
|
#include "Vertex.h"
|
|
#include "Line.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;
|
|
|
|
float area() const;
|
|
float perimeter() const;
|
|
|
|
bool contains(const Vertex &v) const;
|
|
bool onEdge(const Vertex &v) const;
|
|
int intersectionCount(const Line &l) const;
|
|
};
|
|
|
|
#endif /*TRIANGLE_H_*/
|