67 #ifndef _graphicsproceduraltriangulator_h
68 #define _graphicsproceduraltriangulator_h
70 #include "Graphics/Procedural/proceduraldatatypes.h"
71 #include "Graphics/Procedural/Mesh/meshgenerator.h"
73 #include "linesegment.h"
284 void Delaunay(
Point2DContainer& List, DelaunayTriangleBuffer& TriBuf)
const;
332 Triangulator& SetSegmentListToTriangulate(SegmentContainer* Segments);
Boole ContainsSegment(const Integer Index0, const Integer Index1) const
Checks to see of the segment specified via Indexes is a part of this triangle.
Integer Indexes[3]
An array of indexes forming the triangle.
DelaunaySegment Inverse() const
Gets the inverse of this segment.
A triangle formed from 3 points in a Point2DContainer.
Triangle2D * ManualSuperTriangle
A pointer to an optional triangle that encompasses all points to be triangulated. ...
DelaunaySegment(const Integer First, const Integer Second)
Class constructor.
bool Boole
Generally acts a single bit, true or false.
~TouchSuperTriangle()
Class destructor.
std::list< DelaunayTriangle > DelaunayTriangleBuffer
A container type for the storage of DelaunayTriangles.
std::vector< LineSegment2D > SegmentContainer
Convenience typedef for the storage of segments to be processed by this class.
A geometry math class for expressing a triangle in 2D space.
const Shape * ShapeToTriangulate
A pointer to the Shape to be triangulated.
A convenience buffer that stores vertices and indices of a mesh to be generated.
int Integer
A datatype used to represent any integer close to.
Boole IsDegenerate() const
Checks if this triangle is degenerate.
SegmentContainer * SegmentListToTriangulate
A pointer to a container of segments forming the shape to triangulate.
Boole IsPointInside(const Vector2 &Point) const
Checks to see if a point is inside this triangle.
Integer FindSegNumber(const Integer Index0, const Integer Index1) const
Gets the index of a segment within this triangle. a valid segment index is not found then an INTERNAL...
DelaunayTriangle(const Point2DContainer *List)
Class constructor.
std::vector< DelaunaySegment > DelaunaySegmentContainer
Convenience typedef for the storage of delaunay segments to be processed by this class.
std::vector< Integer > IndexContainer
A container of Integers used to represent the indicies of a shape.
std::vector< Vector2 > Point2DContainer
Basic container type for the storage of 2D points.
Returned when the specified point is inside the circumcircle.
Returned when the specified point is exceedingly close to being outside the circumcircle.
This is used to represent a point on a 2 dimentional area, such as a screen.
A segment of 2 points in a Point2DContainer.
Integer Index1
The first index of the segment.
Integer Index1
The second index of the segment.
A base class containing all of the utilities needed for a mesh generator.
const Point2DContainer * Points
An array of Vector2's that for all the triangles/segments being operated on.
Boole RemoveOutside
Stores whether or not the super triangle should be removed at the end of triangulation.
A generator class that implements the Delaunay Triangulation algorithm.
A triangle convenience class for some comparison operations.
~DelaunayTriangle()
Class destructor.
TouchSuperTriangle(const Integer First, const Integer Second, const Integer Third)
Class constructor.
Integer Index0
The first index of the segment.
String GetDebugDescription() const
Gets a string description of this triangle.
InsideType IsPointInsideCircumcircle(const Vector2 &Point) const
Checks to see if a point is inside the Circumcircle generated from this triangle. ...
The bulk of the engine components go in this namspace.
InsideType
An enum used to describe the proximity of a point to the edge of a Circumcircle generated by the Dela...
~DelaunaySegment()
Class destructor.
Integer Index2
The third index of the segment.
Returned when the specified point is outside the circumcircle.
Boole operator()(const DelaunayTriangle &Tri)
Functor operator.
Boole operator<(const DelaunaySegment &Other) const
Less-than compare operator.
A collection of interconnected 2D points used to express an arbitrary 2D shape.
Vector2 GetMidPoint() const
Gets the central point of this triangle.
Boole operator==(const DelaunayTriangle &Other) const
Equality comparison operator.
A grouping of individual 2D shapes used to express more elaborate shapes.
const MultiShape * MultiShapeToTriangulate
A pointer to the MultiShape to be triangulated.
void MakeDirectIfNeeded()
Will conditionally re-arrange the vertices of this triangle.
std::string String
A datatype used to a series of characters.
Integer Index2
The second index of the segment.
void SetVertices(const Integer Index0, const Integer Index1, const Integer Index2)
Sets the points that form this triangle.
Vector2 GetPoint(const Integer Point) const
Gets a point in the Point2DContainer by index.