de.grogra.imp3d.math.delaunay
public class Tetrahedralization extends java.lang.Object implements java.io.Serializable
| Modifier and Type | Field and Description |
|---|---|
java.util.Set<Point3d> |
fourCornersSet |
boolean |
showAuxiliaryCells |
boolean |
showAuxiliaryFaces |
boolean |
showDelaunayFaces |
boolean |
showVoronoiCells |
static V[] |
VERTICES
Cannonical enumeration of the vertex ordinals
|
| Constructor and Description |
|---|
Tetrahedralization()
Construct a tetrahedralizaion using the supplied random number generator
|
| Modifier and Type | Method and Description |
|---|---|
void |
compute()
Computes the Delaunay triangulation and Voronoi diagram for the current set of VoronoiCell s
|
void |
delete(VoronoiCell v)
Delete the vertex from the tetrahedralization.
|
protected Tetrahedron |
flip4to1(VoronoiCell n)
Perform the 4->1 bistellar flip.
|
java.util.List<Point3d[]> |
getDelaunayFaces() |
java.util.List<Point3d[]> |
getDelaunayRegion(VoronoiCell v) |
java.util.LinkedList<OrientedFace> |
getEars(VoronoiCell v) |
static VoronoiCell[] |
getFourCorners() |
java.util.Collection<VoronoiCell> |
getNeighbours(VoronoiCell v)
Answer the cleaned collection of neighbouring VoronoiCells around the indicated VoronoiCell.
|
java.util.Collection<VoronoiCell> |
getNeighboursAll(VoronoiCell v)
Answer the collection of neighbouring VoronoiCells around the indicated VoronoiCell.
|
java.util.Deque<OrientedFace> |
getStar(VoronoiCell v) |
java.util.Set<Tetrahedron> |
getTetrahedrons()
Answer the set of all tetrahedrons in this tetrahedralization
|
java.util.Set<VoronoiCell> |
getVertices()
Answer the set of all vertices in this tetrahedralization
|
java.util.Collection<VoronoiCell> |
getVirtualNeighbours(VoronoiCell v)
Answer the collection of neighbouring VoronoiCells (VoronoiCell.getId()==-1) around the indicated VoronoiCell.
|
java.util.List<Point3d[]> |
getVoronoiFaces() |
java.util.Set<Point3d> |
getVoronoiPointsSet()
returns a set of points that build the voronoi faces for this VoronoiCell
|
java.util.List<Point3d[]> |
getVoronoiRegion(VoronoiCell v)
Answer the faces of the voronoi region around the vertex
|
void |
insert(VoronoiCell v)
Insert the vertex into the tetrahedralization.
|
void |
insert(VoronoiCell[] array) |
protected boolean |
isAuxiliary(Point3d[] face) |
boolean |
isShowAuxiliaryCells() |
boolean |
isShowAuxiliaryFaces() |
boolean |
isShowDelaunayFaces() |
boolean |
isShowVoronoiCells() |
Tetrahedron |
locate(VoronoiCell query)
Locate the tetrahedron which contains the query point via a stochastic
walk through the delaunay triangulation.
|
Tetrahedron |
myOwnPrivateIdaho()
Construct a Tetrahedron which is set up to encompass the numerical span
|
void |
setShowAuxiliaryCells(boolean value) |
void |
setShowAuxiliaryFaces(boolean value) |
void |
setShowDelaunayFaces(boolean value) |
void |
setShowVoronoiCells(boolean value) |
void |
traverse(java.util.Set<Tetrahedron> tetrahedrons,
java.util.Set<VoronoiCell> vertices)
Traverse all the tetrahedrons in the tetrahedralization.
|
void |
update() |
public java.util.Set<Point3d> fourCornersSet
public boolean showAuxiliaryCells
public boolean showAuxiliaryFaces
public boolean showDelaunayFaces
public boolean showVoronoiCells
public static final V[] VERTICES
public Tetrahedralization()
random - public void compute()
public void delete(VoronoiCell v)
v - - the vertex to be deletedprotected Tetrahedron flip4to1(VoronoiCell n)
n - - the vertex who's star defines the 4 tetrahedronpublic java.util.List<Point3d[]> getDelaunayFaces()
public java.util.List<Point3d[]> getDelaunayRegion(VoronoiCell v)
public java.util.LinkedList<OrientedFace> getEars(VoronoiCell v)
public static VoronoiCell[] getFourCorners()
public java.util.Collection<VoronoiCell> getNeighbours(VoronoiCell v)
v - - the VoronoiCell determining the neighbourhoodpublic java.util.Collection<VoronoiCell> getNeighboursAll(VoronoiCell v)
v - - the VoronoiCell determining the neighbourhoodpublic java.util.Deque<OrientedFace> getStar(VoronoiCell v)
public java.util.Set<Tetrahedron> getTetrahedrons()
public java.util.Set<VoronoiCell> getVertices()
public java.util.Collection<VoronoiCell> getVirtualNeighbours(VoronoiCell v)
v - - the VoronoiCell determining the neighbourhoodpublic java.util.List<Point3d[]> getVoronoiFaces()
public java.util.Set<Point3d> getVoronoiPointsSet()
public java.util.List<Point3d[]> getVoronoiRegion(VoronoiCell v)
v - - the vertex of interestpublic void insert(VoronoiCell v)
v - - the vertex to be insertedpublic void insert(VoronoiCell[] array)
protected boolean isAuxiliary(Point3d[] face)
public boolean isShowAuxiliaryCells()
public boolean isShowAuxiliaryFaces()
public boolean isShowDelaunayFaces()
public boolean isShowVoronoiCells()
public Tetrahedron locate(VoronoiCell query)
In this variant, the intial "random" triangle used is simply the one of the triangles in the last tetrahedron created by a flip, or the previously located tetrahedron.
This location algorithm provides fast location results with no memory overhead. Further, because there is no search structure to maintain, this algorithm is ideally suited for incremental deletions and kinetic maintenance of the delaunay tetrahedralization.
query - - the query pointpublic Tetrahedron myOwnPrivateIdaho()
public void setShowAuxiliaryCells(boolean value)
public void setShowAuxiliaryFaces(boolean value)
public void setShowDelaunayFaces(boolean value)
public void setShowVoronoiCells(boolean value)
public void traverse(java.util.Set<Tetrahedron> tetrahedrons, java.util.Set<VoronoiCell> vertices)
tetrahedrons - vertices - public void update()