public class PolygonalMeshQuery
extends java.lang.Object
Constructor and Description |
---|
PolygonalMeshQuery() |
Modifier and Type | Method and Description |
---|---|
static java.util.HashSet<Vertex3d> |
findBoundaryVertices(java.util.HashSet<Vertex3d> vertices)
Find all the vertices that are on the boundary of a given set of
vertices.
|
static java.util.HashSet<Vertex3d> |
findEdgeLineVertices(Vertex3d vtx0,
double minBendAngle,
double maxEdgeAngle,
boolean allowBranching)
Find all the vertices that lie along an edge line, starting at
vtx0 . |
static java.util.HashSet<Vertex3d> |
findInteriorVertices(java.util.HashSet<Vertex3d> vertices)
Find all the vertices that are in the interior of a given set of
vertices.
|
static java.util.HashSet<Face> |
findPatchFaces(Face face0,
double maxBendAngle)
Find all the faces in a patch containing
face0 . |
static java.util.HashSet<Vertex3d> |
findPatchVertices(Vertex3d vtx0,
double maxBendAngle)
Find all the vertices in a patch containing
vtx0 . |
static java.util.ArrayList<Vertex3d> |
findShortestPath(Vertex3d vtxA,
Vertex3d vtxB,
int numv) |
public static java.util.HashSet<Vertex3d> findEdgeLineVertices(Vertex3d vtx0, double minBendAngle, double maxEdgeAngle, boolean allowBranching)
vtx0
. Edges along the edge line must have a bend angle
that is >= minBendAngle
, where the bend angle is the absolute
value of the angle between an edge's adjacent faces. In addition, the
edge angle between adjacent edges must be <=
maxEdgeAngle
. Branching is allowed if allowBranching
is true
; otherwise, edges are followed so as to minimize the edge angle.
The returned vertex set will always include vtx0
.
vtx0
- starting vertexminBendAngle
- minimum bend angle between adjacent faces (radians)maxEdgeAngle
- maximum edge angle between adjacent edges (radians)allowBranching
- if true
, allow branchingpublic static java.util.HashSet<Vertex3d> findPatchVertices(Vertex3d vtx0, double maxBendAngle)
vtx0
. The
patch is the collection of all faces surrounding vtx0
for which
the bend angle between them is <= maxBendAngle
, where the
bend angle is the absolute value of the angle between two faces about
their common edge.
The returned vertex set will always include vtx0
.
vtx0
- starting vertex within the patchmaxBendAngle
- maximum bend angle between adjacent faces (radians)public static java.util.HashSet<Vertex3d> findBoundaryVertices(java.util.HashSet<Vertex3d> vertices)
vertices
- original set of verticesvertices
public static java.util.HashSet<Vertex3d> findInteriorVertices(java.util.HashSet<Vertex3d> vertices)
vertices
- original set of verticesvertices
public static java.util.HashSet<Face> findPatchFaces(Face face0, double maxBendAngle)
face0
. The patch
is the collection of all faces surrounding face0
for which the
bend angle between them is <= maxBendAngle
, where the bend
angle is the absolute value of the angle between two faces about their
common edge.
The returned face set will always include face0
.
face0
- starting face within the patchmaxBendAngle
- maximum bend angle between adjacent faces (radians)