<> <> <> <> <<>> DIRECTORY Cubic2, CubicPaths, Polynomial, Vector2; GGCubic2: CEDAR DEFINITIONS = BEGIN Bezier: TYPE = Cubic2.Bezier; Path: TYPE = CubicPaths.Path; ShortRealRootRec: TYPE = Polynomial.ShortRealRootRec; VEC: TYPE = Vector2.VEC; Flat: PROC [bezier: Bezier, epsilon: REAL] RETURNS[BOOL]; <> <<>> ClosestPointSubdivide: PROC[pt: VEC, path: Path, epsilon: REAL, tolerance: REAL _ 9999.0] RETURNS [closest: VEC, success: BOOL]; <> ClosestPointAnalytic: PROC[pt: VEC, path: Path, tolerance: REAL _ 9999.0] RETURNS [closest: VEC, success: BOOL]; <> <<>> CheapRealRootsInInterval: PROC [poly: Polynomial.Ref, lo, hi: REAL] RETURNS [roots: ShortRealRootRec]; <> <<>> AlphaSplit: PROC [bezier: Bezier, alpha: REAL] RETURNS[Bezier, Bezier]; <> <<>> GetParam: PROC [bezier: Bezier, pt: VEC] RETURNS [u: REAL]; <> <<>> END.