Package | Description |
---|---|
Jcg.graph.generation | |
Jcg.mesh | |
Jcg.pointLocation | |
Jcg.polyhedron | |
Jcg.schnyderwoods | |
Jcg.subdivision |
Modifier and Type | Field and Description |
---|---|
(package private) Halfedge<Point_2> |
RandomSamplingTriangulations.rootEdge |
Modifier and Type | Method and Description |
---|---|
(package private) Halfedge<Point_2> |
RandomSamplingTriangulations.addLeaf(Halfedge<Point_2> nodeEdge,
Vertex<Point_2> leaf) |
(package private) Halfedge<Point_2> |
RandomSamplingTriangulations.addRoot() |
(package private) Halfedge<Point_2> |
RandomSamplingTriangulations.newHalfedge() |
Modifier and Type | Method and Description |
---|---|
(package private) Halfedge<Point_2> |
RandomSamplingTriangulations.addLeaf(Halfedge<Point_2> nodeEdge,
Vertex<Point_2> leaf) |
(package private) void |
RandomSamplingTriangulations.close(Halfedge<Point_2> g) |
(package private) int |
RandomSamplingTriangulations.decodeSubtree(Halfedge<Point_2> nodeEdge,
int i) |
(package private) static boolean |
RandomSamplingTriangulations.isExternal(Halfedge<Point_2> h) |
(package private) static boolean |
RandomSamplingTriangulations.isInternal(Halfedge<Point_2> h) |
Modifier and Type | Method and Description |
---|---|
private Halfedge<X> |
MeshBuilder.getNextBoundaryHalfedge(Halfedge<X> e)
Given a boundary half-edge e, returns the next boundary half-edge around the same face
Warning: the mesh is supposed to be manifold (boundary cycles are disjoint)
|
Modifier and Type | Method and Description |
---|---|
private Halfedge<X> |
MeshBuilder.getNextBoundaryHalfedge(Halfedge<X> e)
Given a boundary half-edge e, returns the next boundary half-edge around the same face
Warning: the mesh is supposed to be manifold (boundary cycles are disjoint)
|
private java.lang.String |
MeshBuilder.printEdge(Halfedge<X> e)
Print the edge (the index of its extremities)
Useful for debugging
|
Modifier and Type | Method and Description |
---|---|
Halfedge<Point_2> |
PlanarPointLocation.locatePoint(Polyhedron_3<Point_2> triangulation,
Point_2 queryPoint)
Compute and return the face (an incident half-edge) containing the query point
|
Modifier and Type | Field and Description |
---|---|
(package private) Halfedge<X> |
Vertex.halfedge |
(package private) Halfedge<X> |
Face.halfedge |
Halfedge<X> |
Halfedge.next |
Halfedge<X> |
Halfedge.opposite |
Halfedge<X> |
Halfedge.prev |
Modifier and Type | Field and Description |
---|---|
java.util.ArrayList<Halfedge<X>> |
Polyhedron_3.halfedges |
Modifier and Type | Method and Description |
---|---|
Halfedge<X> |
Polyhedron_3.addTriangleToBorder(Halfedge h,
X point)
creates a new triangle facet within the hole incident to h by connecting
the tip of h with two new halfedges and a new vertex.
|
Halfedge<X> |
Polyhedron_3.fillHole(Halfedge h) |
Halfedge<X> |
Face.getEdge() |
Halfedge<X> |
Vertex.getHalfedge() |
Halfedge<X> |
Halfedge.getNext() |
Halfedge<X> |
Halfedge.getOpposite() |
Halfedge<X> |
Halfedge.getPrev() |
Halfedge<X> |
Polyhedron_3.makeHole(Halfedge<X> h) |
Halfedge<X> |
Polyhedron_3.makeTriangle(X p1,
X p2,
X p3)
a triangle with border edges is added to the polyhedral surface.
|
Halfedge<X> |
Polyhedron_3.splitEdge(Halfedge<X> h,
X point)
splits the edge inserting a new vertex, with coordinates given by point.
|
Halfedge<X> |
Polyhedron_3.splitFacet(Halfedge<X> h,
Halfedge<X> g)
splits the facet incident to h and g into two facets with a new diagonal
between the two vertices denoted by h and g respectively.
|
Modifier and Type | Method and Description |
---|---|
Halfedge<X> |
Polyhedron_3.addTriangleToBorder(Halfedge h,
X point)
creates a new triangle facet within the hole incident to h by connecting
the tip of h with two new halfedges and a new vertex.
|
Halfedge<X> |
Polyhedron_3.fillHole(Halfedge h) |
void |
Polyhedron_3.flipEdge(Halfedge<X> e)
Perform the flip of an edge
|
boolean |
Polyhedron_3.isTriangle(Halfedge<X> h)
true iff the connected component denoted by h is a triangle
|
Halfedge<X> |
Polyhedron_3.makeHole(Halfedge<X> h) |
void |
Vertex.setEdge(Halfedge<X> halfedge) |
void |
Face.setEdge(Halfedge<X> halfedge) |
void |
Halfedge.setNext(Halfedge<X> e) |
void |
Halfedge.setOpposite(Halfedge<X> e) |
void |
Halfedge.setPrev(Halfedge<X> e) |
Halfedge<X> |
Polyhedron_3.splitEdge(Halfedge<X> h,
X point)
splits the edge inserting a new vertex, with coordinates given by point.
|
Halfedge<X> |
Polyhedron_3.splitFacet(Halfedge<X> h,
Halfedge<X> g)
splits the facet incident to h and g into two facets with a new diagonal
between the two vertices denoted by h and g respectively.
|
Halfedge<X> |
Polyhedron_3.splitFacet(Halfedge<X> h,
Halfedge<X> g)
splits the facet incident to h and g into two facets with a new diagonal
between the two vertices denoted by h and g respectively.
|
Modifier and Type | Field and Description |
---|---|
Halfedge<Point_> |
PlanarTriSchnyderWood.rootEdge |
Modifier and Type | Field and Description |
---|---|
private DLinkedList<Halfedge<Point_>> |
PlanarTriSchnyderWood.outerCycle |
Modifier and Type | Method and Description |
---|---|
Halfedge<Point_> |
PlanarTriSchnyderWood.getFirstIncomingRedEdge(Vertex<Point_> v)
Return the first (half)edge oriented toward vertex v and having color 0 (red)
Edges (v0, v1) and (v2, v0) are assumed to be red colored
Return null, if such an edge does not exist
|
Halfedge<Point_> |
PlanarTriSchnyderWood.getNextIncomingRedEdge(Halfedge<Point_> e)
Return the next edge of color 0, after edge e (turning in ccw direction), oriented toward its target vertex (denoted by v).
|
Modifier and Type | Method and Description |
---|---|
private DListNode<Halfedge<Point_>> |
PlanarTriSchnyderWood.triangleRemoval(DListNode<Halfedge<Point_>> node)
It removes a vertex incident to one triangle from the boundary cycle
|
DListNode<Halfedge<Point_>> |
PlanarTriSchnyderWood.vertexRemoval(DListNode<Halfedge<Point_>> node)
It removes a vertex from the cut-border (vertex conquest)
It updates the cut-border, assigning color and orientation to edges
|
Modifier and Type | Method and Description |
---|---|
void |
PlanarTriSchnyderWood.addToCutBorder(Halfedge<Point_> e,
DListNode<Halfedge<Point_>> node)
Add a half-edge to the cut-border, at a given position (in the cut-border)
Update all concerned information (colors, existent chords, boundary vertices, ...)
|
Halfedge<Point_> |
PlanarTriSchnyderWood.getNextIncomingRedEdge(Halfedge<Point_> e)
Return the next edge of color 0, after edge e (turning in ccw direction), oriented toward its target vertex (denoted by v).
|
private void |
PlanarTriSchnyderWood.setIngoingEdge2(Halfedge<Point_> e) |
private void |
PlanarTriSchnyderWood.setOutgoingEdge0(Halfedge<Point_> e) |
private void |
PlanarTriSchnyderWood.setOutgoingEdge1(Halfedge<Point_> e) |
void |
PlanarTriSchnyderWood.setToCutBorder(Halfedge<Point_> e)
Add a half-edge to the cut-border, at a given position (in the cut-border)
Update all concerned information (colors, existent chords, boundary vertices, ...)
|
Modifier and Type | Method and Description |
---|---|
void |
PlanarTriSchnyderWood.addToCutBorder(Halfedge<Point_> e,
DListNode<Halfedge<Point_>> node)
Add a half-edge to the cut-border, at a given position (in the cut-border)
Update all concerned information (colors, existent chords, boundary vertices, ...)
|
private boolean |
PlanarTriSchnyderWood.hasIncidentChords(DListNode<Halfedge<Point_>> node)
Check whether a vertex has incident chords
In that case it cannot be removed from the cut-border
|
private DListNode<Halfedge<Point_>> |
PlanarTriSchnyderWood.triangleRemoval(DListNode<Halfedge<Point_>> node)
It removes a vertex incident to one triangle from the boundary cycle
|
DListNode<Halfedge<Point_>> |
PlanarTriSchnyderWood.vertexRemoval(DListNode<Halfedge<Point_>> node)
It removes a vertex from the cut-border (vertex conquest)
It updates the cut-border, assigning color and orientation to edges
|
Constructor and Description |
---|
PlanarTriSchnyderWood(Polyhedron_3<Point_> polyhedron,
Halfedge<Point_> rootEdge)
Construct the cut-border starting from the root edge (v0, v1)
At the beginning the cut-border contains edges (v2, v0) and (v1, v2)
Edges are ccw oriented around faces
|
Modifier and Type | Method and Description |
---|---|
java.util.HashMap<Halfedge<Point_3>,Point_3> |
LoopSubdivision.computeEdgePoints()
Compute all new edge points and store the result in an HashMap
|
Modifier and Type | Method and Description |
---|---|
Point_3 |
LoopSubdivision.computeEdgePoint(Halfedge<Point_3> h)
Compute a new edge point (given the half-edge h)
|
Modifier and Type | Method and Description |
---|---|
void |
LoopSubdivision.splitEdges(java.util.HashMap<Halfedge<Point_3>,Point_3> edgePoints)
Splits all edges by inserting a new vertex
|