java.lang.Object
de.grogra.imp3d.math.delaunay.OrientedFace
- All Implemented Interfaces:
Iterable<VoronoiCell>
An oriented face of a tetrahedron.
- Author:
- Hal Hildebrand
-
Field Summary
Modifier and TypeFieldDescriptionprotected final V
The vertex in the adjacent tetrahedron opposite of this face -
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionboolean
flip
(int index, LinkedList<OrientedFace> ears, VoronoiCell n) Perform a flip for deletion of the vertex from the tetrahedralization.flip
(VoronoiCell n, List<OrientedFace> ears) Perform the flip which incrementally restores the delaunay condition after the vertex has been inserted into the tetrahedralization.flip2to3()
Perform the bistellar flip 2 -> 3.flip3to2
(int reflexEdge) Perform the bistellar 3->2 flip.abstract Tetrahedron
Answer the adjacent tetrahedron to the faceAnswer the vertex in the adjacent tetrahedron which is opposite of this face.Answer the canonical ordinal of the vertex in the adjacent tetrahedron which is opposite of this face.abstract VoronoiCell[]
Answer the two vertices defining the edge opposite of the vertex vabstract Tetrahedron
Answer the tetrahedron which is incident with this faceabstract VoronoiCell
Answer the vertex in the tetrahedron which is opposite of this faceabstract VoronoiCell
getVertex
(int anIndex) Answer the canonical vertex for this faceboolean
abstract boolean
abstract int
Answer the edge index corresponding to the vertexabstract boolean
isConvex
(int vertex) Answer true if the faces joined by the edge are concave when viewed from the originating tetrahedron.abstract boolean
isReflex
(int vertex) Answer true if the faces joined by the edge are not concave when viewed from the originating tetrahedron.boolean
Answer true if the vertex in the adjacent tetrahedron is not contained in the circumsphere of the incident tetrahedroniterator()
abstract int
orientationOf
(VoronoiCell query) Answer +1 if the orientation of the query point is positive with respect to this face, -1 if negative and 0 if the test point is coplanar with the faceMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface java.lang.Iterable
forEach, spliterator
-
Field Details
-
adjacentVertexOrdinal
The vertex in the adjacent tetrahedron opposite of this face
-
-
Constructor Details
-
OrientedFace
public OrientedFace()
-
-
Method Details
-
flip
Perform a flip for deletion of the vertex from the tetrahedralization. The incident and adjacent tetrahedra form an ear of the star set of tetrahedra adjacent to v.- Parameters:
index
- - the index of the receiver in the list of earsears
- - the list of ears of the vertexn
- - the vertex to be deleted- Returns:
- true if the receiver is to be deleted from the list of ears
-
flip
Perform the flip which incrementally restores the delaunay condition after the vertex has been inserted into the tetrahedralization.- Parameters:
n
- - the inserted vertexears
- - the stack of oriented faces left to process- Returns:
- - the last valid tetrahedron noted, or null if no flip was performed.
-
flip2to3
Perform the bistellar flip 2 -> 3. This produces three new tetrahedra from the receiver and tetrahdron that shares the receiver face- Returns:
- the three created tetrahedron
-
flip3to2
Perform the bistellar 3->2 flip. This flip constructs two new tetrahedra from the two tetraheda determined by the incident and adjacent neighbor of the face, along with the tetrahedron on the reflexive edge of the face.- Parameters:
reflexiveEdge
- - the vertex opposite the reflexive edge of the face- Returns:
- the two created tetrahedron
-
getAdjacent
Answer the adjacent tetrahedron to the face- Returns:
-
getAdjacentVertex
Answer the vertex in the adjacent tetrahedron which is opposite of this face.- Returns:
-
getAdjacentVertexOrdinal
Answer the canonical ordinal of the vertex in the adjacent tetrahedron which is opposite of this face.- Returns:
-
getIncident
Answer the tetrahedron which is incident with this face- Returns:
-
getIncidentVertex
Answer the vertex in the tetrahedron which is opposite of this face- Returns:
-
getVertex
Answer the canonical vertex for this face- Parameters:
anIndex
-- Returns:
-
hasAdjacent
public boolean hasAdjacent() -
includes
-
indexOf
Answer the edge index corresponding to the vertex- Parameters:
v
- - the vertex- Returns:
- the index of the edge
-
isConvex
public abstract boolean isConvex(int vertex) Answer true if the faces joined by the edge are concave when viewed from the originating tetrahedron.- Parameters:
vertex
- - the vertex of the face that is opposite of the edge- Returns:
- true if the faces joined by the edge are convex, false if these faces are not convex
-
isReflex
public abstract boolean isReflex(int vertex) Answer true if the faces joined by the edge are not concave when viewed from the originating tetrahedron.- Parameters:
vertex
- - the vertex of the face that is opposite of the edge- Returns:
- true if the faces joined by the edge are reflex, false if these faces are not reflex
-
isRegular
public boolean isRegular()Answer true if the vertex in the adjacent tetrahedron is not contained in the circumsphere of the incident tetrahedron- Returns:
-
iterator
- Specified by:
iterator
in interfaceIterable<VoronoiCell>
-
getEdge
Answer the two vertices defining the edge opposite of the vertex v- Parameters:
v
- - the vertex defining the edge- Returns:
- the array of two vertices defining the edge
-
orientationOf
Answer +1 if the orientation of the query point is positive with respect to this face, -1 if negative and 0 if the test point is coplanar with the face- Parameters:
query
- - the point to be tested- Returns:
- +1 if the orientation of the query point is positive with respect to the face, -1 if negative and 0 if the query point is coplanar
-