public class PenetrationRegion
extends java.lang.Object
In some cases the penetration region may intersect only a single face of the intersecting mesh. The region is then referred to as a "single face region", and its bounding contours all lie within the single face of the intersecting mesh.
Modifier and Type | Field and Description |
---|---|
static boolean |
debug |
Constructor and Description |
---|
PenetrationRegion(PolygonalMesh mesh,
boolean clockwise,
double posTol)
Creates a new, empty penetration region for a specified mesh.
|
Modifier and Type | Method and Description |
---|---|
boolean |
containsEdge(HalfEdge he)
Returns
true if a specified edge is contained in this
region. |
boolean |
containsFace(Face face)
Returns
true if a specified face is contained in this
region. |
boolean |
containsVertex(Vertex3d vtx)
Returns
true if a specified vertex is contained in this
region. |
boolean |
equals(PenetrationRegion region)
Returns true if this region equals another.
|
double |
getArea()
Returns the surface area for this penetration region.
|
java.util.LinkedHashSet<IntersectionContour> |
getContours()
Returns the contours which bound this region.
|
java.util.LinkedHashSet<HalfEdge> |
getEdges()
Returns the edges contained in this region.
|
java.util.LinkedHashSet<Face> |
getFaces()
Returns the faces contained in this region.
|
PolygonalMesh |
getMesh()
Returns the mesh associated with this region.
|
double |
getPositionTol()
Returns the position tolerance that was used to create this region.
|
java.util.LinkedHashSet<Vertex3d> |
getVertices()
Returns the vertices contained in this region.
|
boolean |
hasClockwiseContours()
Indicates if the contours of this region are oriented clockwise
with respect to the region's mesh.
|
int |
numContours()
Returns the number of contours bounding this region.
|
int |
numEdges()
Returns the number of edges contained in this region.
|
int |
numFaces()
Returns the number of faces contained in this region.
|
int |
numVertices()
Returns the number of vertices contained in this region.
|
java.lang.String |
toString(java.util.List<IntersectionContour> contours)
Returns a string representation of this region consisting
of the indices of the vertices and the indices of
the contours with respect to a reference list.
|
public PenetrationRegion(PolygonalMesh mesh, boolean clockwise, double posTol)
mesh
- mesh to which the region belongsclockwise
- if true
, indicates that the
bounding contours for the region are oriented clockwise
with respect to the mesh.posTol
- position tolerance used to create the regionpublic java.util.LinkedHashSet<IntersectionContour> getContours()
public int numContours()
public java.util.LinkedHashSet<Vertex3d> getVertices()
public int numVertices()
public boolean containsVertex(Vertex3d vtx)
true
if a specified vertex is contained in this
region.vtx
- vertex to testtrue
if vtx
is in this regionpublic java.util.LinkedHashSet<Face> getFaces()
public int numFaces()
public boolean containsFace(Face face)
true
if a specified face is contained in this
region.face
- face to testtrue
if face
is in this regionpublic java.util.LinkedHashSet<HalfEdge> getEdges()
he
is an inside edge,
he.opposite
will not be.public int numEdges()
public boolean containsEdge(HalfEdge he)
true
if a specified edge is contained in this
region. The test will be made using he.getPrimary()
, so that
if he
is inside, then he.opposite
will also be
inside.he
- edge to testtrue
if he
or he.opposite
is in this regionpublic PolygonalMesh getMesh()
public boolean hasClockwiseContours()
true
if contours are oriented clockwisepublic boolean equals(PenetrationRegion region)
public java.lang.String toString(java.util.List<IntersectionContour> contours)
public double getArea()
public double getPositionTol()
SurfaceMeshIntersector
when the region is
created.