OpenSiv3D  v0.6.5
C++20 framework for creative coding
s3d::Subdivision2D Class Reference

#include <Subdivision2D.hpp>

Public Types

using EdgeID = int32
 
using VertexID = int32
 

Public Member Functions

SIV3D_NODISCARD_CXX20 Subdivision2D ()=default
 
SIV3D_NODISCARD_CXX20 Subdivision2D (const RectF &rect)
 
SIV3D_NODISCARD_CXX20 Subdivision2D (const RectF &rect, const Array< Vec2 > &points)
 
bool isEmpty () const noexcept
 
 operator bool () const noexcept
 
void initDelaunay (const RectF &rect)
 
int32 addPoint (const Vec2 &point)
 
void addPoints (const Array< Vec2 > &points)
 
Optional< VertexIDfindNearest (const Vec2 &point, Vec2 *nearestPt=nullptr)
 
Array< LinecalculateEdges () const
 
void calculateEdges (Array< Line > &edgeList) const
 
Array< EdgeIDcalculateLeadingEdges () const
 
void calculateLeadingEdges (Array< EdgeID > &leadingEdgeList) const
 
Array< TrianglecalculateTriangles () const
 
void calculateTriangles (Array< Triangle > &triangleList) const
 
Array< VoronoiFacetcalculateVoronoiFacets ()
 
void calculateVoronoiFacets (Array< VoronoiFacet > &facets)
 
void calculateVoronoiFacets (const Array< VertexID > &indices, Array< VoronoiFacet > &facets)
 
Vec2 getVertex (VertexID vertex, EdgeID *firstEdge=nullptr) const
 
EdgeID getEdge (EdgeID edge, Subdivision2DEdgeType nextEdgeType) const
 
EdgeID nextEdge (EdgeID edge) const
 
EdgeID rotateEdge (EdgeID edge, int32 rotate) const
 
EdgeID symEdge (EdgeID edge) const
 
VertexID edgeBegin (EdgeID edge, Vec2 *beginPos=nullptr) const
 
VertexID edgeEnd (EdgeID edge, Vec2 *endPos=nullptr) const
 

Member Typedef Documentation

◆ EdgeID

◆ VertexID

Constructor & Destructor Documentation

◆ Subdivision2D() [1/3]

SIV3D_NODISCARD_CXX20 s3d::Subdivision2D::Subdivision2D ( )
default

◆ Subdivision2D() [2/3]

SIV3D_NODISCARD_CXX20 s3d::Subdivision2D::Subdivision2D ( const RectF rect)
explicit

◆ Subdivision2D() [3/3]

SIV3D_NODISCARD_CXX20 s3d::Subdivision2D::Subdivision2D ( const RectF rect,
const Array< Vec2 > &  points 
)
explicit

Member Function Documentation

◆ addPoint()

int32 s3d::Subdivision2D::addPoint ( const Vec2 point)

◆ addPoints()

void s3d::Subdivision2D::addPoints ( const Array< Vec2 > &  points)

◆ calculateEdges() [1/2]

Array<Line> s3d::Subdivision2D::calculateEdges ( ) const

◆ calculateEdges() [2/2]

void s3d::Subdivision2D::calculateEdges ( Array< Line > &  edgeList) const

◆ calculateLeadingEdges() [1/2]

Array<EdgeID> s3d::Subdivision2D::calculateLeadingEdges ( ) const

◆ calculateLeadingEdges() [2/2]

void s3d::Subdivision2D::calculateLeadingEdges ( Array< EdgeID > &  leadingEdgeList) const

◆ calculateTriangles() [1/2]

Array<Triangle> s3d::Subdivision2D::calculateTriangles ( ) const

◆ calculateTriangles() [2/2]

void s3d::Subdivision2D::calculateTriangles ( Array< Triangle > &  triangleList) const

◆ calculateVoronoiFacets() [1/3]

Array<VoronoiFacet> s3d::Subdivision2D::calculateVoronoiFacets ( )

◆ calculateVoronoiFacets() [2/3]

void s3d::Subdivision2D::calculateVoronoiFacets ( Array< VoronoiFacet > &  facets)

◆ calculateVoronoiFacets() [3/3]

void s3d::Subdivision2D::calculateVoronoiFacets ( const Array< VertexID > &  indices,
Array< VoronoiFacet > &  facets 
)

◆ edgeBegin()

VertexID s3d::Subdivision2D::edgeBegin ( EdgeID  edge,
Vec2 beginPos = nullptr 
) const

◆ edgeEnd()

VertexID s3d::Subdivision2D::edgeEnd ( EdgeID  edge,
Vec2 endPos = nullptr 
) const

◆ findNearest()

Optional<VertexID> s3d::Subdivision2D::findNearest ( const Vec2 point,
Vec2 nearestPt = nullptr 
)

◆ getEdge()

EdgeID s3d::Subdivision2D::getEdge ( EdgeID  edge,
Subdivision2DEdgeType  nextEdgeType 
) const

◆ getVertex()

Vec2 s3d::Subdivision2D::getVertex ( VertexID  vertex,
EdgeID firstEdge = nullptr 
) const

◆ initDelaunay()

void s3d::Subdivision2D::initDelaunay ( const RectF rect)

◆ isEmpty()

bool s3d::Subdivision2D::isEmpty ( ) const
noexcept

◆ nextEdge()

EdgeID s3d::Subdivision2D::nextEdge ( EdgeID  edge) const

◆ operator bool()

s3d::Subdivision2D::operator bool ( ) const
explicitnoexcept

◆ rotateEdge()

EdgeID s3d::Subdivision2D::rotateEdge ( EdgeID  edge,
int32  rotate 
) const

◆ symEdge()

EdgeID s3d::Subdivision2D::symEdge ( EdgeID  edge) const

The documentation for this class was generated from the following file: