The performance mode, which I'm working on, can now be tested with `make performance && ./performance`. A very simple test was added, and it works!
37 lines
663 B
C++
37 lines
663 B
C++
#pragma once
|
|
|
|
#include "Point.h"
|
|
#include "Line.h"
|
|
|
|
class Triangle
|
|
{
|
|
private:
|
|
Point m_p1, m_p2, m_p3;
|
|
Line m_l1, m_l2, m_l3;
|
|
|
|
public:
|
|
// The points must come in __clockwise__ order.
|
|
Triangle(Point p1, Point p2, Point p3)
|
|
: m_p1(p1), m_p2(p2), m_p3(p3),
|
|
m_l1(Line(p1, p2)), m_l2(Line(p2, p3)), m_l3(Line(p3, p1)) {}
|
|
|
|
bool is_point_inside(Point other) const
|
|
{
|
|
return m_l1.is_point_right(other) && m_l2.is_point_right(other) && m_l3.is_point_right(other);
|
|
}
|
|
|
|
Line l1()
|
|
{
|
|
return m_l1;
|
|
}
|
|
|
|
Line l2()
|
|
{
|
|
return m_l2;
|
|
}
|
|
|
|
Line l3()
|
|
{
|
|
return m_l3;
|
|
}
|
|
}; |