Skip to content

Point and Area Intersection

jpodval edited this page Oct 23, 2017 · 2 revisions

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

Clone this wiki locally