From fffb14c92df4ff0efb9271708984c75ca12b30d6 Mon Sep 17 00:00:00 2001 From: JF Barraud Date: Mon, 9 Mar 2009 01:47:39 +0000 Subject: 2geom update (bzr r7453) --- src/2geom/basic-intersection.h | 77 ++++++++++++++++++++---------------------- 1 file changed, 37 insertions(+), 40 deletions(-) (limited to 'src/2geom/basic-intersection.h') diff --git a/src/2geom/basic-intersection.h b/src/2geom/basic-intersection.h index 783df370e..a19a10c8c 100644 --- a/src/2geom/basic-intersection.h +++ b/src/2geom/basic-intersection.h @@ -44,38 +44,44 @@ #define USE_RECURSIVE_INTERSECTOR 0 -namespace Geom { - -#ifdef USE_RECURSIVE_INTERSECTOR -void -find_intersections( std::vector > &xs, - D2 const & A, - D2 const & B); -void -find_self_intersections(std::vector > &xs, - D2 const & A); +namespace Geom { -// Bezier form -void -find_intersections( std::vector > &xs, - std::vector const & A, - std::vector const & B, - double precision = 1e-5); +//why not allowing precision to be set here? +void find_intersections(std::vector >& xs, + D2 const & A, + D2 const & B); -// Bezier form -void -find_intersections_bezier_clipping( std::vector > &xs, - std::vector const & A, - std::vector const & B, - double precision = 1e-5); +void find_intersections(std::vector< std::pair > & xs, + std::vector const& A, + std::vector const& B, + double precision = 1e-5); -void -find_self_intersections(std::vector > &xs, - std::vector const & A); +//why not allowing precision to be set here? +void find_self_intersections(std::vector >& xs, + D2 const & A); -#else +//--not implemented +//void find_self_intersections(std::vector >& xs, +// std::vector const & A); + + +//TODO: this should be moved to .cpp, shouldn't it? +// #ifdef USE_RECURSIVE_INTERSECTOR +// /* +// * find_intersection +// * +// * input: A, B - set of control points of two Bezier curve +// * input: precision - required precision of computation +// * output: xs - set of pairs of parameter values +// * at which crossing happens +// */ +// void find_intersections_bezier_recursive (std::vector< std::pair > & xs, +// std::vector const& A, +// std::vector const& B, +// double precision = 1e-5); +// #else /* * find_intersection * @@ -87,11 +93,14 @@ find_self_intersections(std::vector > &xs, * This routine is based on the Bezier Clipping Algorithm, * see: Sederberg, Nishita, 1990 - Curve intersection using Bezier clipping */ -void find_intersections_clipping (std::vector< std::pair > & xs, +void find_intersections_bezier_clipping (std::vector< std::pair > & xs, std::vector const& A, std::vector const& B, double precision = 1e-5); -#endif +//#endif + + + /* * find_collinear_normal * @@ -112,18 +121,6 @@ void polish_intersections(std::vector > &xs, D2 const &A, D2 const &B); -void find_intersections(std::vector >& xs, - D2 const & A, - D2 const & B); - -void find_self_intersections(std::vector >& xs, - D2 const & A); - - -void find_self_intersections(std::vector >& xs, - std::vector const & A); - - /** * Compute the Hausdorf distance from A to B only. -- cgit v1.2.3