From 0509575421dcc13079ea20f68592bc2fe05d8e52 Mon Sep 17 00:00:00 2001 From: "Johan B. C. Engelen" Date: Mon, 1 Sep 2008 19:29:30 +0000 Subject: update 2geom (rev. 1569) (bzr r6748) --- src/2geom/basic-intersection.h | 38 ++++++++++++++++++++++++++++++-------- 1 file changed, 30 insertions(+), 8 deletions(-) (limited to 'src/2geom/basic-intersection.h') diff --git a/src/2geom/basic-intersection.h b/src/2geom/basic-intersection.h index 0090b0305..d464891f9 100644 --- a/src/2geom/basic-intersection.h +++ b/src/2geom/basic-intersection.h @@ -1,25 +1,47 @@ + + +#include <2geom/point.h> #include <2geom/sbasis.h> -#include <2geom/bezier-to-sbasis.h> -#include <2geom/sbasis-to-bezier.h> #include <2geom/d2.h> +#include +#include + + namespace Geom { -std::vector > -find_intersections( D2 const & A, +std::vector > +find_intersections( D2 const & A, D2 const & B); -std::vector > +std::vector > find_self_intersections(D2 const & A); // Bezier form -std::vector > -find_intersections( std::vector const & A, +std::vector > +find_intersections( std::vector const & A, std::vector const & B); -std::vector > +std::vector > find_self_intersections(std::vector const & A); + +/* + * 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 + * + * This routine is based on the Bezier Clipping Algorithm, + * see: Sederberg - Computer Aided Geometric Design + */ +void find_intersections (std::vector< std::pair > & xs, + std::vector const& A, + std::vector const& B, + double precision = 1e-5); + }; /* -- cgit v1.2.3