示例#1
0
 /// <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");
 }
示例#2
0
 /// <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);
 }