Defines the mesh component: face.
Base class for triangle and quad patches.
Defines the mesh component: triangle.
Target mlrange_cast(Source arg)
Generic version of checked ML casts.
bool isOnSegmentFor2DSegmentIntersectionTest(double xi, double yi, double xj, double yj, double xk, double yk)
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...
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.
MLWEM_EXPORT bool isPointInsideWEMPatch(const Vector3 &position, WEMPatch *wemPatch)
Returns whether the given point is inside the given WEMPatch.
MLWEM_EXPORT bool isPointInsideFace(const Vector3 &point, const WEMFace *face)
Returns whether the given point is in the given face.
bool doLineSegmentsIntersect2D(const Vector2 &s1, const Vector2 &e1, const Vector2 &s2, const Vector2 &e2)
MLWEM_EXPORT double computePointTriangleDistance(const Vector3 &point, const WEMTriangle *triangle)
Returns the distance of the given point to the given triangle.
MLWEM_EXPORT bool isPointOnFace(const Vector3 &position, WEMFace *face)
Returns whether the given point lies on any face of the given face.
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,...
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.
char computeDirectionFor2DSegmentIntersectionTest(double xi, double yi, double xj, double yj, double xk, double yk)
MLWEM_EXPORT bool isPointOnEdgeOrNode(const Vector3 &position, WEMFace *face)
Returns whether the given point lies on any node or edge of the given face.
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.
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....