MeVisLab Toolbox Reference
|
Tool namespace for performing geometric operations on a WEMPatch. More...
Functions | |
MLWEM_EXPORT bool | isPointInsideWEMPatch (const Vector3 &position, WEMPatch *wemPatch) |
Returns whether the given point is inside the given WEMPatch. More... | |
MLWEM_EXPORT bool | isLineIntersectingFace (const Vector3 &startPos, const Vector3 &endPos, WEMFace *face, WEMPatch *wemPatch=nullptr) |
Returns whether the given line (from startPos to endPos) intersects the given WEMFace. The wemPatch parameter is not in use and per default NULL. More... | |
MLWEM_EXPORT bool | isLineIntersectingFace (Vector3 &intersectionPoint, const Vector3 &startPos, const Vector3 &endPos, WEMFace *face, WEMPatch *wemPatch=nullptr) |
Returns whether the given line (from startPos to endPos) intersects the given WEMFace and fills up the intersection point. More... | |
MLWEM_EXPORT bool | pointInsidePolygon (const Vector3 &point, const Vector3 *polygon, unsigned int numPoints) |
Returns whether the given point lies inside the polygon, given by the list of points. More... | |
MLWEM_EXPORT bool | isPointOnEdgeOrNode (const Vector3 &position, WEMFace *face) |
Returns whether the given point lies on any node or edge of the given face. More... | |
MLWEM_EXPORT bool | isPointOnFace (const Vector3 &position, WEMFace *face) |
Returns whether the given point lies on any face of the given face. More... | |
MLWEM_EXPORT bool | isPointInsideFace (const Vector3 &point, const WEMFace *face) |
Returns whether the given point is in the given face. More... | |
MLWEM_EXPORT bool | checkForEdgeNodeCrossing (const Vector3 &rayStart, const Vector3 &rayEnd, WEMFace *face) |
Returns whether the given ray crosses any edge or node of the given face. More... | |
MLWEM_EXPORT double | computeSegmentSegmentDistance (const Vector3 &start0, const Vector3 &end0, const Vector3 &start1, const Vector3 &end1, Vector3 &intersectionPoint) |
Returns the minimum distance between the two given segments. If this distance is 0, the intersectionPoint is valid. More... | |
MLWEM_EXPORT double | computePointSegmentDistance (const Vector3 &point, const Vector3 &segmentStart, const Vector3 &segmentEnd) |
Returns the shortest distance of a given point to a segment, given by its start and end point. More... | |
MLWEM_EXPORT double | computePointPlaneDistance (const Vector3 &point, const WEMFace *face) |
Returns the distance of the given point to a plane, defined by the WEMFace (first position and normal of the face). More... | |
MLWEM_EXPORT double | computePointTriangleDistance (const Vector3 &point, const WEMTriangle *triangle) |
Returns the distance of the given point to the given triangle. More... | |
bool | doLineSegmentsIntersect2D (const Vector2 &s1, const Vector2 &e1, const Vector2 &s2, const Vector2 &e2) |
bool | isOnSegmentFor2DSegmentIntersectionTest (double xi, double yi, double xj, double yj, double xk, double yk) |
char | computeDirectionFor2DSegmentIntersectionTest (double xi, double yi, double xj, double yj, double xk, double yk) |
Tool namespace for performing geometric operations on a WEMPatch.
If you are looking for fast WEM ray intersection, have a look at the WEMBoundingVolumeHierarchy class in the MLWEMAcceleration project.
MLWEM_EXPORT bool ml::WEMGeometry::checkForEdgeNodeCrossing | ( | const Vector3 & | rayStart, |
const Vector3 & | rayEnd, | ||
WEMFace * | face | ||
) |
Returns whether the given ray crosses any edge or node of the given face.
char ml::WEMGeometry::computeDirectionFor2DSegmentIntersectionTest | ( | double | xi, |
double | yi, | ||
double | xj, | ||
double | yj, | ||
double | xk, | ||
double | yk | ||
) |
MLWEM_EXPORT double ml::WEMGeometry::computePointPlaneDistance | ( | const Vector3 & | point, |
const WEMFace * | face | ||
) |
Returns the distance of the given point to a plane, defined by the WEMFace (first position and normal of the face).
MLWEM_EXPORT double ml::WEMGeometry::computePointSegmentDistance | ( | const Vector3 & | point, |
const Vector3 & | segmentStart, | ||
const Vector3 & | segmentEnd | ||
) |
Returns the shortest distance of a given point to a segment, given by its start and end point.
MLWEM_EXPORT double ml::WEMGeometry::computePointTriangleDistance | ( | const Vector3 & | point, |
const WEMTriangle * | triangle | ||
) |
Returns the distance of the given point to the given triangle.
MLWEM_EXPORT double ml::WEMGeometry::computeSegmentSegmentDistance | ( | const Vector3 & | start0, |
const Vector3 & | end0, | ||
const Vector3 & | start1, | ||
const Vector3 & | end1, | ||
Vector3 & | intersectionPoint | ||
) |
Returns the minimum distance between the two given segments. If this distance is 0, the intersectionPoint is valid.
bool ml::WEMGeometry::doLineSegmentsIntersect2D | ( | const Vector2 & | s1, |
const Vector2 & | e1, | ||
const Vector2 & | s2, | ||
const Vector2 & | e2 | ||
) |
MLWEM_EXPORT bool ml::WEMGeometry::isLineIntersectingFace | ( | const Vector3 & | startPos, |
const Vector3 & | endPos, | ||
WEMFace * | face, | ||
WEMPatch * | wemPatch = nullptr |
||
) |
Returns whether the given line (from startPos to endPos) intersects the given WEMFace. The wemPatch parameter is not in use and per default NULL.
MLWEM_EXPORT bool ml::WEMGeometry::isLineIntersectingFace | ( | Vector3 & | intersectionPoint, |
const Vector3 & | startPos, | ||
const Vector3 & | endPos, | ||
WEMFace * | face, | ||
WEMPatch * | wemPatch = nullptr |
||
) |
Returns whether the given line (from startPos to endPos) intersects the given WEMFace and fills up the intersection point.
bool ml::WEMGeometry::isOnSegmentFor2DSegmentIntersectionTest | ( | double | xi, |
double | yi, | ||
double | xj, | ||
double | yj, | ||
double | xk, | ||
double | yk | ||
) |
MLWEM_EXPORT bool ml::WEMGeometry::isPointInsideFace | ( | const Vector3 & | point, |
const WEMFace * | face | ||
) |
Returns whether the given point is in the given face.
MLWEM_EXPORT bool ml::WEMGeometry::isPointInsideWEMPatch | ( | const Vector3 & | position, |
WEMPatch * | wemPatch | ||
) |
Returns whether the given point is inside the given WEMPatch.
A point is considered to be inside if it lies exactly on a node, edge, or face.
MLWEM_EXPORT bool ml::WEMGeometry::isPointOnEdgeOrNode | ( | const Vector3 & | position, |
WEMFace * | face | ||
) |
Returns whether the given point lies on any node or edge of the given face.
MLWEM_EXPORT bool ml::WEMGeometry::isPointOnFace | ( | const Vector3 & | position, |
WEMFace * | face | ||
) |
Returns whether the given point lies on any face of the given face.
MLWEM_EXPORT bool ml::WEMGeometry::pointInsidePolygon | ( | const Vector3 & | point, |
const Vector3 * | polygon, | ||
unsigned int | numPoints | ||
) |
Returns whether the given point lies inside the polygon, given by the list of points.
Both, the point and the polygon, must be projected onto the x-y plane before.