internal RightIntersectionEvent(ConeRightSide coneRightSide, Point intersectionPoint, PolylinePoint endVertex) { this.coneRightSide = coneRightSide; this.intersectionPoint = intersectionPoint; this.endVertex = endVertex; }
RightIntersectionEvent CreateRightIntersectionEvent(ConeRightSide coneRightSide, Point intersection, PolylinePoint obstacleSideVertex) { Debug.Assert(Math.Abs((obstacleSideVertex.Point - intersection) * SweepDirection) > ApproximateComparer.DistanceEpsilon); return(new RightIntersectionEvent(coneRightSide, intersection, obstacleSideVertex)); }
void TryIntersectionOfConeRightSideAndObstacleSide(ConeRightSide coneRightSide, ObstacleSide side) { Point x; if (Point.IntervalIntersectsRay(side.Start, side.End, coneRightSide.Start, coneRightSide.Direction, out x)) { EnqueueEvent(CreateRightIntersectionEvent(coneRightSide, x, side.EndVertex)); //Show(CurveFactory.CreateDiamond(3, 3, x)); } }
RightIntersectionEvent CreateRightIntersectionEvent(ConeRightSide coneRightSide, Point intersection, PolylinePoint obstacleSideVertex) { Debug.Assert(Math.Abs((obstacleSideVertex.Point - intersection) * SweepDirection) > 0); return new RightIntersectionEvent(coneRightSide, intersection, obstacleSideVertex); }
RightIntersectionEvent CreateRightIntersectionEvent(ConeRightSide coneRightSide, Point intersection, PolylinePoint obstacleSideVertex) { Debug.Assert(Math.Abs((obstacleSideVertex.Point - intersection)*SweepDirection) > ApproximateComparer.DistanceEpsilon); return new RightIntersectionEvent(coneRightSide, intersection, obstacleSideVertex); }