//compute the faces intersect with segment seg private List <TrapezoidFace> FollowSegment(TDShape seg) { List <TrapezoidFace> traversed = new List <TrapezoidFace>(); TDPoint p = seg.getFirst(); TDPoint q = seg.getLast(); /* if (p.equals(q)) * System.out.println("AAAAAAHHHH!"); */ TrapezoidFace start = Dgraph.retrieve(p); traversed.Add(start); TrapezoidFace j = start; while (j != null && (j.rightp != null && q.right(j.rightp))) { if (seg.above(j.rightp)) { j = j.lowerRight; } else { j = j.upperRight; } if (j != null) { traversed.Add(j); } } return(traversed); }
public TDNode getNext(TDPoint p) { // x-node if (type == POINT) { return(p.right(p) ? rightNode : leftNode); } // y-node else if (type == SEG) { return(s.above(p) ? leftNode : rightNode); } return(null); }