/// <summary> /// /// </summary> /// <param name="p0"></param> /// <param name="p1"></param> protected void Init(Coordinate p0, Coordinate p1) { _p0 = p0; _p1 = p1; _dx = p1.X - p0.X; _dy = p1.Y - p0.Y; _quadrant = QuadrantOp.Quadrant(_dx, _dy); Assert.IsTrue(!(_dx == 0 && _dy == 0), "EdgeEnd with identical endpoints found"); }
/// <summary> /// The coordinate pairs match if they define line segments lying in the same direction. /// E.g. the segments are parallel and in the same quadrant /// (as opposed to parallel and opposite!). /// </summary> /// <param name="p0"></param> /// <param name="p1"></param> /// <param name="ep0"></param> /// <param name="ep1"></param> private static bool MatchInSameDirection(Coordinate p0, Coordinate p1, Coordinate ep0, Coordinate ep1) { if (!p0.Equals(ep0)) { return(false); } if (Orientation.Index(p0, p1, ep1) == OrientationIndex.Collinear && QuadrantOp.Quadrant(p0, p1) == QuadrantOp.Quadrant(ep0, ep1)) { return(true); } return(false); }