Point and Area Intersection - HiStructClient/femcad-doc GitHub Wiki
Vertices of area
vertex 1 xyz 0 (-0.5) 0
vertex 2 xyz 2.3 (-0.5) 0
vertex 3 xyz 2.3 0.9 0
vertex 4 xyz 1.6 0.9 0
vertex 5 xyz 1.6 0 0
vertex 6 xyz 0 0 0
Vertices for test
vertex {vIn} xyz 1.9 0.5 0
vertex {vOut} xyz 0.6 0.5 0
vertex {vBor} xyz 1.2 -0.5 0
Curves
curve 1 vertex 1 2
curve 2 vertex 2 3
curve 3 vertex 3 4
curve 4 vertex 4 5
curve 5 vertex 5 6
curve 6 vertex 6 1
Areas
area {area1} boundary curve +1 +2 +3 +4 +5 +6
vInInArea1 := FCS.Geometry.Intersection.PointAndArea(vIn.point3D,area1.GetIArea())
print vInInArea1.IsPointIn # True
print vInInArea1.IsPointOut # False
vOutInArea1 := FCS.Geometry.Intersection.PointAndArea(vOut.point3D,area1.GetIArea())
print vOutInArea1.IsPointOut # True
print vOutInArea1.IsPointIn # False
print vOutInArea1.IsPointOnBorder # False
vBorInArea1 := FCS.Geometry.Intersection.PointAndArea(vBor.point3D,area1.GetIArea())
print vBorInArea1.IsPointOut # False
print vBorInArea1.IsPointIn # False
print vBorInArea1.IsPointOnBorder # True
list of all bools
public bool IsPointOut => resultSitu == Loop.eSitu.Outside;
public bool IsPointIn => resultSitu == Loop.eSitu.Inside;
public bool IsPointOnEdge => resultSitu == Loop.eSitu.OnBorderCurve;
public bool IsPointOnVertex => resultSitu == Loop.eSitu.InBorderVertex;
public bool IsPointOnBorder => resultSitu == Loop.eSitu.InBorderVertex || resultSitu == Loop.eSitu.OnBorderCurve;
public bool IsPointOnArea => IsPointIn || IsPointOnBorder;
Examples in picture