public class Delaunay_3
extends java.lang.Object
Constructor and Description |
---|
Delaunay_3()
creates an empty 3D Delaunay triangulation, ready to be used for insertions and localizations.
|
Delaunay_3(Delaunay_3 del)
cloning constructor that only copies internal pointers and does not actually duplicate the content.
|
Modifier and Type | Method and Description |
---|---|
java.util.Collection<TriangulationDSCell_3<Point_3>> |
cells()
returns the collection of all cells of the triangulation.
|
java.util.Collection<FacetHandle<Point_3>> |
convexHullFacets()
Outputs the collection of all facets of the boundary of the convex hull.
|
Point_3 |
dual(TriangulationDSCell_3<Point_3> c)
Outputs the Voronoi vertex dual to cell c.
|
java.util.Collection<Triangle_3> |
dual(TriangulationDSVertex_3<Point_3> v)
Outputs the (triangulated) boundary of the Voronoi region dual to vertex v.
|
java.util.Set<TriangulationDSCell_3<Point_3>> |
findConflicts(Point_3 p,
TriangulationDSCell_3<Point_3> cstart)
Computes the set of cells that are in conflict with p, that is, the cells whose circumspheres have p
in their interior.
|
java.util.Collection<TriangulationDSCell_3<Point_3>> |
finiteCells()
returns the collection of all finite cells of the triangulation.
|
java.util.Collection<FacetHandle<Point_3>> |
finiteFacets()
Outputs the collection of all finite facets of the triangulation (the ones not linked to
bounding box vertices).
|
java.util.Collection<TriangulationDSVertex_3<Point_3>> |
finiteVertices()
returns the collection of all finite vertices of the triangulation.
|
java.util.Collection<TriangulationDSCell_3<Point_3>> |
incidentCells(TriangulationDSCell_3<Point_3> c,
int i,
int j)
Returns the collection of all cells incident to edge (c,i,j).
|
java.util.Collection<TriangulationDSCell_3<Point_3>> |
incidentCells(TriangulationDSVertex_3<Point_3> v)
Outputs the collection of all cells incident to vertex v.
|
java.util.Collection<TriangulationDSCell_3<Point_3>> |
incidentCells(TriangulationDSVertex_3<Point_3> u,
TriangulationDSVertex_3<Point_3> v)
Returns the collection of all cells incident to edge (u,v).
|
java.util.Collection<TriangulationDSCell_3<Point_3>> |
incidentFiniteCells(TriangulationDSCell_3<Point_3> c,
int i,
int j)
Returns the collection of all finite cells incident to edge (c,i,j).
|
java.util.Collection<TriangulationDSCell_3<Point_3>> |
incidentFiniteCells(TriangulationDSVertex_3<Point_3> v)
Outputs the collection of all finite cells incident to vertex v.
|
java.util.Collection<TriangulationDSCell_3<Point_3>> |
incidentFiniteCells(TriangulationDSVertex_3<Point_3> u,
TriangulationDSVertex_3<Point_3> v)
Returns the collection of all finite cells incident to edge (u,v).
|
TriangulationDSCell_3<Point_3> |
infiniteCell()
returns an infinite cell of the triangulation.
|
TriangulationDSVertex_3<Point_3> |
infiniteVertex()
returns an infinite vertex of the triangulation.
|
TriangulationDSVertex_3<Point_3> |
insert(Point_3 p)
Inserts point p in the triangulation, using a random cell to locate p then the output of the locate
to compute the conflicts zone of p.
|
TriangulationDSVertex_3<Point_3> |
insert(Point_3 p,
TriangulationDSCell_3<Point_3> cstart)
Inserts point p in the triangulation, using cell cstart to initiate the conflicts zone computation.
|
boolean |
isInfinite(FacetHandle f)
returns the status of a triangulation facet: infinite if it is incident to at least one infinite
vertex, and finite otherwise.
|
boolean |
isInfinite(Point_3 p)
returns the status of a 3D point: infinite if it is a bounding box vertex, finite otherwise.
|
boolean |
isInfinite(TriangulationDSCell_3 c)
returns the status of a triangulation cell: infinite if it is incident to at least one infinite
vertex, and finite otherwise.
|
boolean |
isInfinite(TriangulationDSVertex_3 v)
returns the status of a triangulation vertex: infinite if it is a vertex of the bounding box,
finite otherwise.
|
boolean |
isValid()
checks the combinatorial validity of the Delaunay triangulation.
|
TriangulationDSCell_3<Point_3> |
locate(Point_3 p)
locates point p using a straight-line walk from a random cell.
|
static void |
main(java.lang.String[] args)
Testing function.
|
TriangulationDSCell_3<Point_3> |
randomCell()
returns a random (possibly infinite) cell of the triangulation, chosen according to uniform
distribution over the set of all triangulation cells.
|
TriangulationDSCell_3<Point_3> |
randomFiniteCell()
returns a random finite cell of the triangulation, chosen according to a uniform distribution over
the set of finite triangulation cells.
|
TriangulationDSVertex_3<Point_3> |
randomFiniteVertex()
returns a random finite vertex of the triangulation, chosen according to a uniform distribution over
the set of finite triangulation vertices.
|
TriangulationDSVertex_3<Point_3> |
randomVertex()
returns a random (possibly infinite) vertex of the triangulation, chosen according to uniform
distribution over the set of all triangulation vertices.
|
void |
starZone(TriangulationDSVertex_3<Point_3> v,
java.util.TreeSet<TriangulationDSCell_3<Point_3>> zone)
Triangulates a zone (= facet-connected set of cells) by creating a star of simplices joining vertex v
to the triangles on the zone's boundary.
|
java.util.Collection<TriangulationDSVertex_3<Point_3>> |
vertices()
returns the collection of all vertices of the triangulation.
|
void |
writeToFile(java.lang.String filename)
outputs the triangulation in an OFF file.
|
public Delaunay_3()
public Delaunay_3(Delaunay_3 del)
public boolean isInfinite(Point_3 p)
public boolean isInfinite(TriangulationDSVertex_3 v)
public boolean isInfinite(TriangulationDSCell_3 c)
public boolean isInfinite(FacetHandle f)
public boolean isValid()
public TriangulationDSCell_3<Point_3> randomCell()
public TriangulationDSCell_3<Point_3> randomFiniteCell()
public TriangulationDSCell_3<Point_3> infiniteCell()
public TriangulationDSVertex_3<Point_3> randomVertex()
public TriangulationDSVertex_3<Point_3> randomFiniteVertex()
public TriangulationDSVertex_3<Point_3> infiniteVertex()
public java.util.Collection<TriangulationDSVertex_3<Point_3>> vertices()
public java.util.Collection<TriangulationDSVertex_3<Point_3>> finiteVertices()
public java.util.Collection<TriangulationDSCell_3<Point_3>> cells()
public java.util.Collection<TriangulationDSCell_3<Point_3>> finiteCells()
public TriangulationDSCell_3<Point_3> locate(Point_3 p)
public java.util.Set<TriangulationDSCell_3<Point_3>> findConflicts(Point_3 p, TriangulationDSCell_3<Point_3> cstart)
cstart
- any cell that is in conflict with p (for instance a cell containing p)public void starZone(TriangulationDSVertex_3<Point_3> v, java.util.TreeSet<TriangulationDSCell_3<Point_3>> zone)
v
- the new vertex to become the center of the starzone
- the facet-connected set of cells forming the zonepublic TriangulationDSVertex_3<Point_3> insert(Point_3 p, TriangulationDSCell_3<Point_3> cstart)
cstart
- a cell that is in conflict with p (for instance a cell containing p). This method casts
an Error if cstart turns out not to be in conflict with p.public TriangulationDSVertex_3<Point_3> insert(Point_3 p)
public java.util.Collection<FacetHandle<Point_3>> finiteFacets()
public java.util.Collection<FacetHandle<Point_3>> convexHullFacets()
public java.util.Collection<TriangulationDSCell_3<Point_3>> incidentCells(TriangulationDSVertex_3<Point_3> v)
public java.util.Collection<TriangulationDSCell_3<Point_3>> incidentFiniteCells(TriangulationDSVertex_3<Point_3> v)
public java.util.Collection<TriangulationDSCell_3<Point_3>> incidentCells(TriangulationDSCell_3<Point_3> c, int i, int j)
public java.util.Collection<TriangulationDSCell_3<Point_3>> incidentFiniteCells(TriangulationDSCell_3<Point_3> c, int i, int j)
public java.util.Collection<TriangulationDSCell_3<Point_3>> incidentCells(TriangulationDSVertex_3<Point_3> u, TriangulationDSVertex_3<Point_3> v)
public java.util.Collection<TriangulationDSCell_3<Point_3>> incidentFiniteCells(TriangulationDSVertex_3<Point_3> u, TriangulationDSVertex_3<Point_3> v)
public Point_3 dual(TriangulationDSCell_3<Point_3> c)
public java.util.Collection<Triangle_3> dual(TriangulationDSVertex_3<Point_3> v)
public void writeToFile(java.lang.String filename)
public static void main(java.lang.String[] args)