public class IntersectionPoint extends Point3d
| Modifier and Type | Field and Description |
|---|---|
IntersectionContour |
contour |
HalfEdge |
edge |
Face |
face |
int |
intersectionCode |
NEGATIVE_INFINITY, POSITIVE_INFINITY, ZERONEG_X_UNIT, NEG_Y_UNIT, NEG_Z_UNIT, ONES, x, X_UNIT, y, Y_UNIT, z, Z_UNIT| Constructor and Description |
|---|
IntersectionPoint() |
| Modifier and Type | Method and Description |
|---|---|
void |
clearEmptyMarks() |
IntersectionPoint |
clone() |
boolean |
equals(IntersectionPoint mip,
java.lang.StringBuilder msg) |
Face |
findSegmentFace(PolygonalMesh mesh) |
HalfEdge |
getCommonEdge(IntersectionPoint p1)
If this point and the specified intersection point
p1
are degenerate such that they both lie on a common triangle edge,
return that edge. |
Point3d |
getCurrentPosition()
Computes the current position of this point, in world coordinates, using
the feature coordinates to interpolate with respect to either the edge (
if FACE_ON_MESH1 is true) or the face.
|
int |
getDegeneracies()
Returns flags describing the degeneracies, if any,
for intersection associated with this point.
|
Face |
getEffectiveFace(int meshNum) |
int |
getEmptyMark(int meshNum) |
HalfEdge |
getNearEdge(int meshNum) |
PolygonalMesh |
getOtherMesh(PolygonalMesh mesh) |
Vertex3d |
getSegmentVertex()
If this intersection is degenerate and associated with one of the
segment vertices (but not both), return that vertex.
|
HalfEdge |
getTriangleEdge()
If this intersection is degenerate and associated with one of the
triangle edges (but not a vertex), return that edge.
|
Vertex3d |
getTriangleVertex()
If this intersection is degenerate and associated with one of the
triangle vertices, return that vertex.
|
boolean |
headInsideFace()
Queries whether the edge head is inside the face, after accounting
for tie-breaking), for the intersection associated with this point.
|
boolean |
isCoincident() |
boolean |
matches(IntersectionPoint p) |
IntersectionPoint |
next() |
boolean |
onTriangleBorder() |
boolean |
onTriangleEdge(HalfEdge edge)
Queries whether this intersection point is degenerate such that
it lies on the specified triangle edge.
|
IntersectionPoint |
prev() |
void |
setEffectiveFace(int meshNum,
Face face) |
void |
setEmptyMark(int meshNum,
int mark) |
void |
setFeatureCoordinates(double s,
double t)
Sets the feature coordinates defining the point wrt either
the edge or the face.
|
void |
setNearEdge(int meshNum,
HalfEdge edge) |
inverseTransform, inverseTransform, transform, transformabsolute, absolute, add, add, add, addObj, angle, angleWeightedCross, angleWeightedCrossAdd, combine, computeHashCode, cross, cross, crossAdd, distance, distanceSquared, dot, epsilonEquals, equals, get, get, get, get, get, get, greater, greaterEquals, hermiteInterpolate, hermiteVelocity, infinityNorm, interpolate, interpolate, inverseTransform, inverseTransform, main, max, maxAbsIndex, maxElement, min, minAbsIndex, minElement, mul, mulAdd, mulTranspose, mulTransposeAdd, negate, negate, norm, normalize, normalize, normSquared, oneNorm, perpendicular, scale, scale, scale, scaledAdd, scaledAdd, scaledAddObj, scaleObj, scan, set, set, set, set, set, set, set, set, set, setFromHomogeneous, setRandom, setRandom, setRandom, setZero, size, sort, sort, sortAbsolute, sub, sub, transform, transform, triangleArea, updateBounds, writecontainsNaN, copy, copyAndAdd, copyAndNegate, copyAndScale, copyAndSub, copyAndSubLeft, dot, epsilonEquals, equals, get, getDefaultFormat, hasInf, hasNaN, isColumnVectorStringsVertical, isFixedSize, isRowVector, isWritable, scan, scanFromFile, set, set, setColumnVectorStringsVertical, setDefaultFormat, setRowVector, setSize, toString, toString, toString, write, write, writeToFileequals, getClass, hashCode, notify, notifyAll, wait, wait, waitgetThreeVectorValueisWritable, scan, writecomputeMD5Checksum, computeMD5Checksumpublic IntersectionContour contour
public Face face
public HalfEdge edge
public int intersectionCode
public boolean isCoincident()
public boolean matches(IntersectionPoint p)
public boolean headInsideFace()
true if the edge head is inside the facepublic int getDegeneracies()
public PolygonalMesh getOtherMesh(PolygonalMesh mesh)
public boolean onTriangleBorder()
public Vertex3d getTriangleVertex()
null.nullpublic Point3d getCurrentPosition()
public void setFeatureCoordinates(double s,
double t)
public boolean onTriangleEdge(HalfEdge edge)
edge - face edge which the point must lie on.true if the point lies on the edge.public HalfEdge getCommonEdge(IntersectionPoint p1)
p1
are degenerate such that they both lie on a common triangle edge,
return that edge. Otherwise, return null. If both points lie on
a vertex, this method will return null as well.p1 - point to query for common edgepublic HalfEdge getTriangleEdge()
null.nullpublic Vertex3d getSegmentVertex()
null.nullpublic IntersectionPoint next()
public IntersectionPoint prev()
public Face findSegmentFace(PolygonalMesh mesh)
public Face getEffectiveFace(int meshNum)
public void setEffectiveFace(int meshNum,
Face face)
public HalfEdge getNearEdge(int meshNum)
public void setNearEdge(int meshNum,
HalfEdge edge)
public int getEmptyMark(int meshNum)
public void setEmptyMark(int meshNum,
int mark)
public void clearEmptyMarks()
public IntersectionPoint clone()
public boolean equals(IntersectionPoint mip, java.lang.StringBuilder msg)