(* Last edited on 1999-11-14 04:59:47 by hcgl *) PROCEDURE EnsurePositive(length: LONG): LONG = BEGIN IF length < 0.0d0 THEN Wr.PutText(stderr, "warning: requested candidate length too small for this scale\n"); Wr.Flush(stderr); Process.Exit(1); END; RETURN MAX(0.0d0, length) END EnsurePositive; PROCEDURE SegmentIsExcluded( READONLY s: PZSegment.T; READONLY exSeg: Segments; ): BOOL = (* TRUE if "s" overlaps any of the segments in "exSeg". *) BEGIN FOR i := 0 TO LAST(exSeg) DO IF PZSegment.Overlap(s, exSeg[i]) THEN RETURN TRUE END END; RETURN FALSE END SegmentIsExcluded;