Voronoi tessellation class#
-
class BoundingBox#
- #include <BoundingBox.h>
-
class CenterTriangulationGenerator : public voronoi::TriangulationGenerator#
- #include <CenterTriangulationGenerator.h>
-
class Circle#
- #include <Circle.h>
Subclassed by voronoi::CircularHole
-
class CircularHole : public voronoi::Hole, public voronoi::Circle#
- #include <CircularHole.h>
Private Functions
-
void computeSegments()#
-
void computeSegments()#
-
class Clipper : public virtual ClipperLib::ClipperBase#
- #include <clipper.hpp>
Public Functions
-
Clipper(int initOptions = 0)#
-
bool Execute(ClipType clipType, Paths &solution, PolyFillType fillType = pftEvenOdd)#
-
bool Execute(ClipType clipType, Paths &solution, PolyFillType subjFillType, PolyFillType clipFillType)#
-
bool Execute(ClipType clipType, PolyTree &polytree, PolyFillType fillType = pftEvenOdd)#
-
bool Execute(ClipType clipType, PolyTree &polytree, PolyFillType subjFillType, PolyFillType clipFillType)#
-
inline bool ReverseSolution()#
-
inline void ReverseSolution(bool value)#
-
inline bool StrictlySimple()#
-
inline void StrictlySimple(bool value)#
Protected Functions
-
virtual bool ExecuteInternal()#
Private Functions
-
void SetWindingCount(TEdge &edge)#
-
bool IsEvenOddFillType(const TEdge &edge) const#
-
bool IsEvenOddAltFillType(const TEdge &edge) const#
-
void InsertEdgeIntoAEL(TEdge *edge, TEdge *startEdge)#
-
void AddEdgeToSEL(TEdge *edge)#
-
bool PopEdgeFromSEL(TEdge *&edge)#
-
void CopyAELToSEL()#
-
void DeleteFromSEL(TEdge *e)#
-
void SwapPositionsInSEL(TEdge *edge1, TEdge *edge2)#
-
bool IsContributing(const TEdge &edge) const#
-
void DoMaxima(TEdge *e)#
-
void ProcessHorizontals()#
-
void ProcessHorizontal(TEdge *horzEdge)#
-
OutRec *GetOutRec(int idx)#
-
void AppendPolygon(TEdge *e1, TEdge *e2)#
-
OutPt *GetLastOutPt(TEdge *e)#
-
void ProcessIntersectList()#
-
void SetHoleState(TEdge *e, OutRec *outrec)#
-
void DisposeIntersectNodes()#
-
bool FixupIntersectionOrder()#
-
void FixupOutPolygon(OutRec &outrec)#
-
void FixupOutPolyline(OutRec &outrec)#
-
bool IsHole(TEdge *e)#
-
bool FindOwnerFromSplitRecs(OutRec &outRec, OutRec *&currOrfl)#
-
void FixHoleLinkage(OutRec &outrec)#
-
void ClearJoins()#
-
void ClearGhostJoins()#
-
bool JoinPoints(Join *j, OutRec *outRec1, OutRec *outRec2)#
-
void JoinCommonEdges()#
-
void DoSimplePolygons()#
-
void FixupFirstLefts1(OutRec *OldOutRec, OutRec *NewOutRec)#
-
void FixupFirstLefts2(OutRec *InnerOutRec, OutRec *OuterOutRec)#
-
void FixupFirstLefts3(OutRec *OldOutRec, OutRec *NewOutRec)#
Private Members
-
IntersectList m_IntersectList#
-
MaximaList m_Maxima#
-
TEdge *m_SortedEdges#
-
bool m_ExecuteLocked#
-
PolyFillType m_ClipFillType#
-
PolyFillType m_SubjFillType#
-
bool m_ReverseOutput#
-
bool m_UsingPolyTree#
-
bool m_StrictSimple#
-
Clipper(int initOptions = 0)#
-
class ClipperBase#
- #include <clipper.hpp>
Subclassed by ClipperLib::Clipper
Public Functions
-
ClipperBase()#
-
virtual ~ClipperBase()#
-
virtual void Clear()#
-
inline bool PreserveCollinear()#
-
inline void PreserveCollinear(bool value)#
Protected Types
Protected Functions
-
void DisposeLocalMinimaList()#
-
TEdge *AddBoundsToLML(TEdge *e, bool IsClosed)#
-
virtual void Reset()#
-
TEdge *ProcessBound(TEdge *E, bool IsClockwise)#
-
bool LocalMinimaPending()#
-
OutRec *CreateOutRec()#
-
void DisposeAllOutRecs()#
-
void DisposeOutRec(PolyOutList::size_type index)#
-
void SwapPositionsInAEL(TEdge *edge1, TEdge *edge2)#
-
void DeleteFromAEL(TEdge *e)#
-
void UpdateEdgeIntoAEL(TEdge *&e)#
Protected Attributes
-
MinimaList::iterator m_CurrentLM#
-
MinimaList m_MinimaList#
-
bool m_UseFullRange#
-
bool m_PreserveCollinear#
-
bool m_HasOpenPaths#
-
PolyOutList m_PolyOuts#
-
TEdge *m_ActiveEdges#
-
ScanbeamList m_Scanbeam#
-
ClipperBase()#
-
class clipperException : public std::exception#
- #include <clipper.hpp>
-
class ClipperOffset#
- #include <clipper.hpp>
Public Functions
-
ClipperOffset(double miterLimit = 2.0, double roundPrecision = 0.25)#
-
~ClipperOffset()#
-
void Clear()#
-
ClipperOffset(double miterLimit = 2.0, double roundPrecision = 0.25)#
-
class ClipperWrapper#
- #include <ClipperWrapper.h>
Public Static Functions
Private Static Functions
-
static ClipperLib::IntPoint scalePoint(Point point, int maxScale)#
-
static ClipperLib::IntPoint scalePoint(Point point, int maxScale)#
-
struct DelaunayInfo#
- #include <DelaunayInfo.h>
Public Functions
-
class DelaunayToVoronoi#
- #include <DelaunayToVoronoi.h>
Private Functions
-
int getCircumcenter(DelaunayInfo &del, int triangle, int edge)#
-
int getCircumcenter(DelaunayInfo &del, int triangle, int edge)#
-
class DelaunayTriangulationGenerator : public voronoi::TriangulationGenerator#
- #include <DelaunayTriangulationGenerator.h>
-
class DelynoiConfig#
- #include <DelynoiConfig.h>
Public Functions
-
void setDiscretizationGrade(int d)#
-
void setTolerance(double t)#
-
void setScale(int s)#
-
void setPrecision(int p)#
-
int getDiscretizationGrade()#
-
double getTolerance()#
-
int getScale()#
-
int getPrecision()#
Public Static Functions
-
static DelynoiConfig *instance()#
Private Functions
-
DelynoiConfig()#
-
DelynoiConfig(const DelynoiConfig &other) = delete#
-
DelynoiConfig &operator=(const DelynoiConfig ©) = delete#
Private Members
-
int circle_discretization_grade#
-
double double_comparison_tolerance#
-
int scale_for_clipper#
-
int precision#
Private Static Attributes
-
static DelynoiConfig *s_instance#
-
void setDiscretizationGrade(int d)#
-
struct DoublePoint#
- #include <clipper.hpp>
-
class EarTriangulationGenerator : public voronoi::TriangulationGenerator#
- #include <EarTriangulationGenerator.h>
-
class EdgeData#
- #include <EdgeData.h>
-
class Functor#
- #include <Functor.h>
Subclassed by voronoi::RandomDoubleNoise, voronoi::RandomIntegerNoise, voronoi::Random_Double, voronoi::Random_Integer
Public Functions
-
virtual double apply(double x) = 0#
-
virtual double apply(double x) = 0#
-
struct GetKeys#
- #include <maputils.h>
-
struct GetValues#
- #include <maputils.h>
-
class Hole#
- #include <Hole.h>
Subclassed by voronoi::CircularHole, voronoi::PolygonalHole
-
class IndexSegment : public voronoi::Segment<int>#
- #include <IndexSegment.h>
Public Functions
-
IndexSegment()#
-
IndexSegment(int i1, int i2)#
-
IndexSegment(const IndexSegment &other)#
-
bool contains(const std::vector<Point> &p, IndexSegment s)#
-
bool intersection(const std::vector<Point> &points, PointSegment other, Point &inter)#
-
bool intersection(const std::vector<Point> &points, IndexSegment other, Point &inter)#
-
bool isContained(PointSegment s, const std::vector<Point> &p)#
-
bool operator==(const IndexSegment &other) const#
-
bool operator<(const IndexSegment &other) const#
-
IndexSegment add(int o)#
-
IndexSegment()#
-
struct IntPoint#
- #include <clipper.hpp>
-
struct IntRect#
- #include <clipper.hpp>
-
template<typename T>
class Mesh# - #include <Mesh.h>
Public Functions
-
Mesh()#
-
Mesh(UniqueList<Point> &p, std::vector<T> &e, SegmentMap *s, PointMap *pM)#
-
SegmentMap *getSegments() const#
-
UniqueList<Point> &getPoints()#
-
UniqueList<Point> getPoints() const#
-
NeighboursBySegment getNeighbours(IndexSegment s)#
-
Mesh()#
-
class NeighboursByPoint#
- #include <NeighboursByPoint.h>
-
class NeighboursBySegment#
- #include <NeighboursBySegment.h>
-
struct NeighboursHasher#
- #include <SegmentMap.h>
Public Functions
-
inline std::size_t operator()(const NeighboursBySegment &k) const#
-
inline std::size_t operator()(const NeighboursBySegment &k) const#
-
class PointData#
- #include <PointData.h>
-
class PointGenerator#
- #include <PointGenerator.h>
Public Functions
-
PointGenerator()#
-
PointGenerator(Functor *l, functions::independent_variable variable)#
-
virtual void generate(std::vector<Point> &vector, BoundingBox box, int nX, int nY)#
-
PointGenerator()#
-
class PointMap#
- #include <PointMap.h>
Public Functions
-
PointMap()#
-
NeighboursByPoint &get(Point p)#
-
std::map<Point, NeighboursByPoint> &getMap()#
-
int size()#
Protected Attributes
-
std::map<Point, NeighboursByPoint> map#
-
PointMap()#
-
class PointSegment : public voronoi::Segment<Point>#
- #include <PointSegment.h>
-
class Polygon#
- #include <Polygon.h>
Subclassed by voronoi::PolygonalHole, voronoi::Region, voronoi::Triangle
Public Functions
-
Polygon()#
-
void getSegments(std::vector<IndexSegment> &segments)#
-
int numberOfSides() const#
-
bool containsEdge(IndexSegment &s)#
-
bool isVertex(int index)#
-
IndexSegment containerEdge(std::vector<Point> &p, Point point)#
Protected Functions
-
void calculateHash()#
-
Polygon()#
-
class PolyNode#
- #include <clipper.hpp>
Subclassed by ClipperLib::PolyTree
Public Functions
-
PolyNode()#
-
inline virtual ~PolyNode()#
-
bool IsHole() const#
-
bool IsOpen() const#
-
int ChildCount() const#
Friends
- friend class Clipper
- friend class ClipperOffset
-
PolyNode()#
-
class PolyTree : public ClipperLib::PolyNode#
- #include <clipper.hpp>
Friends
- friend class Clipper
-
class Random_Double : public voronoi::Functor#
- #include <RandomDouble.h>
-
class Random_Integer : public voronoi::Functor#
- #include <RandomInteger.h>
-
class RandomDoubleNoise : public voronoi::Functor#
- #include <RandomDoubleNoise.h>
Public Functions
-
virtual double apply(double x)#
-
virtual double apply(double x)#
-
class RandomIntegerNoise : public voronoi::Functor#
- #include <RandomIntegerNoise.h>
Public Functions
-
virtual double apply(double x)#
-
virtual double apply(double x)#
-
class Region : public voronoi::Polygon#
- #include <Region.h>
Public Functions
-
Region()#
-
void cleanInternalHoles()#
-
void generateSeedPoints(PointGenerator p, int nX, int nY)#
-
BoundingBox getBox()#
-
void getSegments(std::vector<IndexSegment> &s)#
-
void cleanSeedPoints()#
Private Functions
-
void clean()#
-
Region()#
-
template<class T>
class Segment# - #include <Segment.h>
Public Functions
-
Segment()#
Protected Functions
-
Segment()#
-
struct SegmentHasher#
- #include <mapdata.h>
Public Functions
-
inline std::size_t operator()(const IndexSegment &k) const#
-
inline std::size_t operator()(const IndexSegment &k) const#
-
class SegmentMap#
- #include <SegmentMap.h>
Public Functions
-
SegmentMap()#
-
void insert(IndexSegment s, int polygonIndex)#
-
void insert(IndexSegment s, NeighboursBySegment n)#
-
NeighboursBySegment &get(IndexSegment s)#
-
std::unordered_map<IndexSegment, NeighboursBySegment, SegmentHasher> &getMap()#
-
std::unordered_map<IndexSegment, NeighboursBySegment, SegmentHasher> getMap() const#
-
int size()#
-
bool containsSegment(IndexSegment s)#
Protected Attributes
-
std::unordered_map<IndexSegment, NeighboursBySegment, SegmentHasher> map#
-
SegmentMap()#
-
class Triangle : public voronoi::Polygon#
- #include <Triangle.h>
-
class TriangleDelaunayGenerator#
- #include <TriangleDelaunayGenerator.h>
Public Functions
-
Mesh<Triangle> getConstrainedDelaunayTriangulation(std::vector<PointSegment> restrictedSegments)#
-
DelaunayInfo getConformingDelaunay()#
-
void writeTriangleInputFile(UniqueList<Point> &point_list, Region region, std::vector<int> regionIndex)#
Private Functions
-
void callTriangle(std::vector<Point> &point_list, char switches[], std::vector<PointSegment> restrictedSegments)#
Private Members
-
SegmentMap *delaunayEdges#
-
UniqueList<int> realPoints#
-
UniqueList<Point> circumcenters#
-
bool empty = false#
-
Mesh<Triangle> getConstrainedDelaunayTriangulation(std::vector<PointSegment> restrictedSegments)#
-
class TriangleVoronoiGenerator#
- #include <TriangleVoronoiGenerator.h>
Public Functions
-
struct triangulateio#
- #include <triangle.h>
Public Members
-
REAL *pointlist#
-
REAL *pointattributelist#
-
int *pointmarkerlist#
-
int numberofpoints#
-
int numberofpointattributes#
-
int *trianglelist#
-
REAL *triangleattributelist#
-
REAL *trianglearealist#
-
int *neighborlist#
-
int numberoftriangles#
-
int numberofcorners#
-
int numberoftriangleattributes#
-
int *segmentlist#
-
int *segmentmarkerlist#
-
int numberofsegments#
-
REAL *holelist#
-
int numberofholes#
-
REAL *regionlist#
-
int numberofregions#
-
int *edgelist#
-
int *edgemarkerlist#
-
REAL *normlist#
-
int numberofedges#
-
REAL *pointlist#
-
class TriangulationGenerator#
- #include <TriangulationGenerator.h>
Subclassed by voronoi::CenterTriangulationGenerator, voronoi::DelaunayTriangulationGenerator, voronoi::EarTriangulationGenerator
-
template<class T>
class UniqueList# - #include <UniqueList.h>
Public Functions
-
UniqueList()#
-
UniqueList(const UniqueList<T> &other)#
-
int size()#
-
std::vector<int> push_list(UniqueList<T> &list)#
-
void pop_front()#
-
bool operator==(const UniqueList<T> &other)#
-
bool hasCommonElement(UniqueList<T> &other)#
-
void clear()#
-
UniqueList()#
-
class Voronoi#
- #include <openfdem_Voronoi_module.h>
Public Static Functions
-
namespace ClipperLib#
Typedefs
-
typedef signed long long cInt#
-
typedef signed long long long64#
-
typedef unsigned long long ulong64#
Enums
-
enum ClipType#
Values:
-
enumerator ctIntersection#
-
enumerator ctUnion#
-
enumerator ctDifference#
-
enumerator ctXor#
-
enumerator ctIntersection#
-
enum PolyFillType#
Values:
-
enumerator pftEvenOdd#
-
enumerator pftNonZero#
-
enumerator pftPositive#
-
enumerator pftNegative#
-
enumerator pftEvenOdd#
-
enum InitOptions#
Values:
-
enumerator ioReverseSolution#
-
enumerator ioStrictlySimple#
-
enumerator ioPreserveCollinear#
-
enumerator ioReverseSolution#
Functions
-
void SimplifyPolygon(const Path &in_poly, Paths &out_polys, PolyFillType fillType = pftEvenOdd)#
-
void SimplifyPolygons(const Paths &in_polys, Paths &out_polys, PolyFillType fillType = pftEvenOdd)#
-
void SimplifyPolygons(Paths &polys, PolyFillType fillType = pftEvenOdd)#
-
typedef signed long long cInt#
-
namespace map_utils#
-
namespace Precision#
-
namespace std
-
namespace voronoi#
-
namespace convex#
-
namespace delynoi_utilities#
-
namespace functions#
-
Functions
-
namespace geometry_functions#
Functions
-
bool collinear(PointSegment &seg1, PointSegment &seg2)#
-
bool collinear(PointSegment &seg1, PointSegment &seg2)#
-
namespace noise#
-
namespace utilities#
- file openfdem_Voronoi_module.h
- #include <voronoi/voro/models/Region.h>#include <voronoi/voro/models/basic/Point.h>#include <voronoi/voro/models/hole/CircularHole.h>#include <voronoi/voro/models/generator/noise/noise.h>#include “solver/openfdem.h”
- file maputils.h
- file Pair.h
- file Precision.h
- file UniqueList.h
- #include <vector>#include <algorithm>#include <map>
- file utilities.h
- #include <iostream>#include <sstream>#include <vector>#include <algorithm>#include “Pair.h”#include <iomanip>#include <regex>
- file DelynoiConfig.h
- #include <utilities/Precision.h>
- file Angle.h
- #include <cmath>#include <voronoi/voro/config/DelynoiConfig.h>
- file IndexSegment.h
- #include <voronoi/voro/models/basic/Segment.h>#include <voronoi/voro/models/basic/PointSegment.h>
- file Point.h
- #include <string>#include <math.h>#include <cmath>#include <sstream>#include <utilities/utilities.h>
- file PointSegment.h
- #include <voronoi/voro/models/basic/Point.h>#include <voronoi/voro/models/basic/Segment.h>
- file Segment.h
- #include <vector>#include <voronoi/voro/models/basic/Point.h>#include <voronoi/voro/utilities/delynoi_utilities.h>#include <voronoi/voro/config/DelynoiConfig.h>
- file functions.h
- #include “voronoi/voro/models/generator/Functor.h”
- file RandomDouble.h
- #include <random>#include “voronoi/voro/models/generator/Functor.h”
- file RandomInteger.h
- #include <random>#include “voronoi/voro/models/generator/Functor.h”
- file Functor.h
- file noise.h
- #include <voronoi/voro/models/generator/Functor.h>
- file RandomDoubleNoise.h
- #include <random>#include <climits>#include <voronoi/voro/models/generator/Functor.h>
- file RandomIntegerNoise.h
- #include <random>#include <voronoi/voro/models/generator/Functor.h>
- file PointGenerator.h
- #include <voronoi/voro/models/basic/Point.h>#include <voronoi/voro/models/polygon/BoundingBox.h>#include “Functor.h”#include <vector>
- file CircularHole.h
- #include <vector>#include <voronoi/voro/models/basic/Point.h>#include <voronoi/voro/models/basic/Segment.h>#include <voronoi/voro/models/polygon/Circle.h>#include <voronoi/voro/models/hole/Hole.h>#include <voronoi/voro/models/polygon/Polygon.h>
- file ClipperWrapper.h
-
#include <voronoi/voro/models/basic/Point.h>#include <voronoi/voro/models/polygon/Polygon.h>
- file clipper.hpp
- #include <vector>#include <list>#include <set>#include <stdexcept>#include <cstring>#include <cstdlib>#include <ostream>#include <functional>#include <queue>
- file Hole.h
- #include <voronoi/voro/models/basic/Point.h>#include <voronoi/voro/models/basic/Segment.h>#include <vector>#include <voronoi/voro/models/basic/IndexSegment.h>
- file PolygonalHole.h
- #include <vector>#include <voronoi/voro/models/polygon/Polygon.h>#include <voronoi/voro/models/hole/Hole.h>
- file Mesh.h
-
#include <utilities/UniqueList.h>#include <fstream>#include <voronoi/voro/models/polygon/Polygon.h>#include <voronoi/voro/models/neighbourhood/PointMap.h>#include <voronoi/voro/models/polygon/Triangle.h>
- file EdgeData.h
- #include <iostream>#include <utilities/utilities.h>
- file NeighboursByPoint.h
- #include <vector>
- file NeighboursBySegment.h
- #include <iostream>#include <utilities/utilities.h>
- file PointMap.h
- #include <map>#include <vector>#include <voronoi/voro/models/basic/Point.h>#include <fstream>
- file SegmentMap.h
- #include <voronoi/voro/voronoi/structures/mapdata.h>#include <utilities/Pair.h>#include <unordered_map>#include “NeighboursBySegment.h”#include <fstream>#include <voronoi/voro/models/basic/IndexSegment.h>
- file BoundingBox.h
- #include <voronoi/voro/models/basic/Point.h>#include <voronoi/voro/models/basic/PointSegment.h>
- file Circle.h
- #include <vector>#include <voronoi/voro/models/basic/Point.h>#include <cstdlib>#include <cmath>#include <voronoi/voro/utilities/geometryFunctions.h>#include <voronoi/voro/utilities/delynoi_utilities.h>
- file Polygon.h
- #include <vector>#include <voronoi/voro/models/basic/Point.h>#include <voronoi/voro/models/basic/Segment.h>#include <voronoi/voro/utilities/geometryFunctions.h>#include <voronoi/voro/utilities/convexHull.h>#include <voronoi/voro/models/basic/IndexSegment.h>#include <utilities/Pair.h>#include <map>#include <utilities/UniqueList.h>#include <algorithm>#include <climits>
- file models/polygon/Triangle.h
- #include <voronoi/voro/models/polygon/Polygon.h>#include <voronoi/voro/models/neighbourhood/EdgeData.h>#include <voronoi/voro/voronoi/structures/mapdata.h>#include <unordered_map>
- file voronoi/lib/Triangle.h
-
Functions
-
void triangulate(char*, struct triangulateio*, struct triangulateio*, struct triangulateio*)#
-
void trifree(VOID *memptr)#
-
void triangulate(char*, struct triangulateio*, struct triangulateio*, struct triangulateio*)#
- file Region.h
- #include <vector>#include <voronoi/voro/models/basic/Segment.h>#include <voronoi/voro/models/hole/Hole.h>#include <voronoi/voro/models/polygon/Polygon.h>#include <algorithm>#include <voronoi/voro/utilities/delynoi_utilities.h>#include <climits>#include <voronoi/voro/models/hole/PolygonalHole.h>#include <voronoi/voro/config/DelynoiConfig.h>
- file CenterTriangulationGenerator.h
- #include “TriangulationGenerator.h”
- file DelaunayTriangulationGenerator.h
- #include “TriangulationGenerator.h”#include <voronoi/voro/models/Region.h>
- file EarTriangulationGenerator.h
- #include “TriangulationGenerator.h”
- file TriangulationGenerator.h
- #include <voronoi/voro/models/polygon/Triangle.h>
- file convexHull.h
- #include <voronoi/voro/models/basic/Point.h>
- file delynoi_utilities.h
- #include <vector>#include <iostream>#include <voronoi/voro/models/basic/Point.h>#include <utilities/Pair.h>
- file geometryFunctions.h
- #include <voronoi/voro/models/basic/Point.h>#include <voronoi/voro/models/basic/PointSegment.h>#include <vector>
- file DelaunayToVoronoi.h
- #include <voronoi/voro/models/basic/Point.h>#include <voronoi/voro/models/polygon/Triangle.h>#include <voronoi/voro/models/Mesh.h>#include <chrono>
- file DelaunayInfo.h
- #include <voronoi/voro/models/polygon/Triangle.h>#include “PointData.h”
- file mapdata.h
- #include <functional>#include <voronoi/voro/models/basic/IndexSegment.h>
- file PointData.h
- file TriangleDelaunayGenerator.h
- #include <voronoi/voro/models/Region.h>#include <voronoi/voro/voronoi/structures/PointData.h>#include <voronoi/voro/models/Mesh.h>#include <voronoi/voro/utilities/delynoi_utilities.h>#include <chrono>#include <voronoi/voro/voronoi/lib/triangle.h>
- file TriangleVoronoiGenerator.h
-
#include <voronoi/voro/models/Mesh.h>
- dir basic
- dir clipper
- dir config
- dir functions
- dir generator
- dir hole
- dir lib
- dir lib
- dir models
- dir neighbourhood
- dir noise
- dir polygon
- dir src
- dir structures
- dir triangulation
- dir utilities
- dir utilities
- dir voro
- dir voronoi
- dir voronoi