![]() |
Gamedev Framework (gf)
0.19.0
A C++17 framework for 2D games
|
A convex polygon. More...
#include <gf/Polygon.h>
Public Member Functions | |
Polygon ()=default | |
Default constructor. More... | |
Polygon (Span< const Vector2f > points) | |
Constructor from an array. More... | |
template<typename Iterator > | |
Polygon (Iterator first, Iterator last) | |
Constructor from points. More... | |
Vector2f | getSupport (Vector2f direction, const Transform &transform) const |
Get the farthest point in a direction. More... | |
Vector2f | getSupport (Vector2f direction) const |
Get the farthest point in a direction. More... | |
bool | isConvex () const |
Check if the polygon is convex. More... | |
Winding | getWinding () const |
Compute the winding of a convex polygon. More... | |
bool | contains (Vector2f point) const |
Test if a point is inside the (convex) polygon. More... | |
float | getArea () const |
Compute the area of the polygon. More... | |
![]() | |
PointSequence ()=default | |
Default constructor. More... | |
PointSequence (Span< const Vector2f > points) | |
Constructor from an array. More... | |
template<typename Iterator > | |
PointSequence (Iterator first, Iterator last) | |
Constructor from points. More... | |
bool | isEmpty () const |
Check if the sequence is empty. More... | |
void | addPoint (Vector2f point) |
Add a point to the sequence. More... | |
std::size_t | getPointCount () const |
Get the number of points of the sequence. More... | |
Vector2f | getPoint (std::size_t index) const |
Get the i-th point of the sequence. More... | |
Vector2f | getCenter () const |
Get the center of the sequence. More... | |
const Vector2f * | begin () const |
Get an iterator to the first point. More... | |
Vector2f * | begin () |
Get an iterator to the first point. More... | |
const Vector2f * | end () const |
Get an iterator past the last point. More... | |
Vector2f * | end () |
Get an iterator past the last point. More... | |
Vector2f | getFirstPoint () const |
Get the first point of the sequence. More... | |
Vector2f | getLastPoint () const |
Get the last point of the sequence. More... | |
void | applyTransform (const Matrix3f &mat) |
Apply a transformation to the sequence. More... | |
void | simplify (float distance=Epsilon) |
Simplify the sequence. More... | |
Additional Inherited Members | |
![]() | |
std::vector< Vector2f > & | getRawPoints () |
Get the raw container of points. More... | |
const std::vector< Vector2f > & | getRawPoints () const |
Get the raw container of points. More... | |
A convex polygon.
|
default |
Default constructor.
Constructor from an array.
points | The array of points |
|
inline |
Constructor from points.
first | Iterator to the first point |
last | Iterator after the last point |
bool gf::Polygon::contains | ( | Vector2f | point | ) | const |
Test if a point is inside the (convex) polygon.
point | The point to test |
float gf::Polygon::getArea | ( | ) | const |
Compute the area of the polygon.
Complexity: \( O(n) \)
Get the farthest point in a direction.
direction | The direction to search (in world coordinates) |
transform | The transformation of the polygon |
Get the farthest point in a direction.
direction | The direction to search |
Winding gf::Polygon::getWinding | ( | ) | const |
Compute the winding of a convex polygon.
Complexity: \( O(n) \)
bool gf::Polygon::isConvex | ( | ) | const |
Check if the polygon is convex.
This function should return true, otherwise you may have problems in other functions which assume that the polygon is convex.
This function does not handle self-intersecting polygons (yet).