mirror of https://github.com/CGAL/cgal
re-updated manual changes
This commit is contained in:
parent
a0a6a11438
commit
3b255863af
|
|
@ -4,12 +4,13 @@
|
|||
|
||||
#include <CGAL/basic.h>
|
||||
|
||||
#include <CGAL/Algebraic_kernel_d_1.h>
|
||||
#include <CGAL/Arr_rational_function_traits_2.h>
|
||||
#include <CGAL/Arrangement_2.h>
|
||||
#include <CGAL/Arithmetic_kernel.h> //NT
|
||||
#include <CGAL/Algebraic_kernel_d_1.h> //Algebraic Kernel
|
||||
#include <CGAL/Arr_rational_function_traits_2.h> //Traits
|
||||
#include <CGAL/Arrangement_2.h> //Arrangement
|
||||
|
||||
typedef CGAL::Gmpz Integer;
|
||||
typedef CGAL::Algebraic_kernel_d_1<Integer> AK1;
|
||||
typedef CGAL::CORE_arithmetic_kernel::Integer Number_type;
|
||||
typedef CGAL::Algebraic_kernel_d_1<Number_type> AK1;
|
||||
typedef CGAL::Arr_rational_function_traits_2<AK1> Traits_2;
|
||||
|
||||
typedef AK1::Polynomial_1 Polynomial_1;
|
||||
|
|
@ -33,24 +34,24 @@ int main ()
|
|||
// Create an arc supported by the polynomial y = x^4 - 6x^2 + 8,
|
||||
// defined over the interval [-2, 2]:
|
||||
Polynomial_1 P1 = x*x*x*x - 6*x*x + 8;
|
||||
arcs.push_back(construct_arc(P1, Alg_real_1(-2), Alg_real_1(2)));
|
||||
arcs.push_back(construct_arc(P1.begin(), P1.end(), Alg_real_1(-2), Alg_real_1(2)));
|
||||
|
||||
// Create an arc supported by the function y = x / (1 + x^2),
|
||||
// defined over the interval [-3, 3]:
|
||||
Polynomial_1 P2 = x;
|
||||
Polynomial_1 Q2 = 1+x*x;
|
||||
|
||||
arcs.push_back(construct_arc(P2, Q2, Alg_real_1(-3), Alg_real_1(3)));
|
||||
arcs.push_back(construct_arc(P2.begin(), P2.end(), Q2.begin(), Q2.end(), Alg_real_1(-3), Alg_real_1(3)));
|
||||
|
||||
// Create an arc supported by the parbola y = 8 - x^2,
|
||||
// defined over the interval [-2, 3]:
|
||||
Polynomial_1 P3 = 8 - x*x;
|
||||
arcs.push_back(construct_arc(P3, Alg_real_1(-2), Alg_real_1(3)));
|
||||
arcs.push_back(construct_arc(P3.begin(), P3.end(), Alg_real_1(-2), Alg_real_1(3)));
|
||||
|
||||
// Create an arc supported by the line y = -2x,
|
||||
// defined over the interval [-3, 0]:
|
||||
Polynomial_1 P4 = -2*x;
|
||||
arcs.push_back(construct_arc(P4, Alg_real_1(-3), Alg_real_1(0)));
|
||||
arcs.push_back(construct_arc(P4.begin(), P4.end(), Alg_real_1(-3), Alg_real_1(0)));
|
||||
|
||||
// Construct the arrangement of the four arcs.
|
||||
Arrangement_2 arr;
|
||||
|
|
|
|||
|
|
@ -1,15 +1,17 @@
|
|||
#include "stdafx.h"
|
||||
|
||||
//! \file examples/Arrangement_2/unbounded_rational_functions.cpp
|
||||
// Constructing an arrangement of unbounded portions of rational functions.
|
||||
#include <CGAL/basic.h>
|
||||
|
||||
#include <CGAL/Algebraic_kernel_d_1.h>
|
||||
#include <CGAL/Arr_rational_function_traits_2.h>
|
||||
#include <CGAL/Arrangement_2.h>
|
||||
#include <CGAL/Arithmetic_kernel.h> //NT
|
||||
#include <CGAL/Algebraic_kernel_d_1.h> //Algebraic Kernel
|
||||
#include <CGAL/Arr_rational_function_traits_2.h> //Traits
|
||||
#include <CGAL/Arrangement_2.h> //Arrangement
|
||||
|
||||
typedef CGAL::Gmpz Integer;
|
||||
typedef CGAL::Algebraic_kernel_d_1<Integer> AK1;
|
||||
typedef CGAL::Arr_rational_function_traits_2<AK1> Traits_2;
|
||||
typedef CGAL::CORE_arithmetic_kernel::Integer Number_type;
|
||||
typedef CGAL::Algebraic_kernel_d_1<Number_type> AK1;
|
||||
typedef CGAL::Arr_rational_function_traits_2<AK1> Traits_2;
|
||||
|
||||
typedef AK1::Polynomial_1 Polynomial_1;
|
||||
typedef AK1::Algebraic_real_1 Alg_real_1;
|
||||
|
|
@ -22,7 +24,7 @@ int main ()
|
|||
AK1 ak1;
|
||||
|
||||
// Traits class object
|
||||
Traits_2 traits(ak1);
|
||||
Traits_2 traits;
|
||||
|
||||
// constructor for rational functions
|
||||
Traits_2::Construct_curve_2 construct
|
||||
|
|
@ -37,24 +39,27 @@ int main ()
|
|||
|
||||
// Create the rational functions (y = 1 / x), and (y = -1 / x).
|
||||
Polynomial_1 P1(1);
|
||||
Polynomial_1 minusP1(-P1);
|
||||
Polynomial_1 Q1 = x;
|
||||
arcs.push_back(construct( P1, Q1));
|
||||
arcs.push_back(construct(-P1, Q1));
|
||||
arcs.push_back(construct( P1.begin(), P1.end(), Q1.begin(),Q1.end()));
|
||||
arcs.push_back(construct(minusP1.begin(),minusP1.end(), Q1.begin(),Q1.end()));
|
||||
|
||||
// Create a bounded segments of the parabolas (y = -4*x^2 + 3) and
|
||||
// (y = 4*x^2 - 3), defined over [-sqrt(3)/2, sqrt(3)/2].
|
||||
Polynomial_1 P2 = -4*x*x+3;
|
||||
std::vector<Alg_real_1> roots;
|
||||
Polynomial_1 minusP2 = -P2;
|
||||
std::vector<std::pair<Alg_real_1,int> > roots;
|
||||
ak1.solve_1_object()(P2,std::back_inserter(roots));// [-sqrt(3)/2, sqrt(3)/2]
|
||||
arcs.push_back(construct( P2, roots[0], roots[1]));
|
||||
arcs.push_back(construct(-P2, roots[0], roots[1]));
|
||||
arcs.push_back(construct(P2.begin(), P2.end(), roots[0].first, roots[1].first));
|
||||
arcs.push_back(construct(minusP2.begin(),minusP2.end(), roots[0].first, roots[1].first));
|
||||
|
||||
// Create the rational function (y = 1 / 2*x) for x > 0, and the
|
||||
// rational function (y = -1 / 2*x) for x < 0.
|
||||
Polynomial_1 P3(1);
|
||||
Polynomial_1 minusP3(-P3);
|
||||
Polynomial_1 Q3 = 2*x;
|
||||
arcs.push_back(construct( P3, Q3, Algebraic(0), true ));
|
||||
arcs.push_back(construct(-P3, Q3, Algebraic(0), false));
|
||||
arcs.push_back(construct( P3.begin(), P3.end(), Q3.begin(), Q3.end(), Alg_real_1(0), true ));
|
||||
arcs.push_back(construct(minusP3.begin(),minusP3.end(), Q3.begin(), Q3.end(), Alg_real_1(0), false));
|
||||
|
||||
// Construct the arrangement of the six arcs.
|
||||
Arrangement_2 arr;
|
||||
|
|
@ -72,5 +77,3 @@ int main ()
|
|||
|
||||
return 0;
|
||||
}
|
||||
|
||||
#endif
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
|
@ -45,22 +45,20 @@ namespace CGAL {
|
|||
* rational and algebraic types.
|
||||
*/
|
||||
|
||||
template < class Kernel_,
|
||||
class Algebraic_kernel_ = Algebraic_kernel_d_1 <typename Fraction_traits <typename Kernel_::FT>::Numerator_type> >
|
||||
class Arr_rational_arc_traits_d_1
|
||||
template < class Algebraic_kernel_ >
|
||||
class Arr_rational_function_traits_2
|
||||
{
|
||||
public:
|
||||
typedef Kernel_ Kernel;
|
||||
typedef Algebraic_kernel_ Algebraic_kernel;
|
||||
|
||||
typedef Arr_rational_arc_traits_d_1<Kernel, Algebraic_kernel> Self;
|
||||
typedef Arr_rational_arc::Base_rational_arc_ds_1<Kernel, Algebraic_kernel> Base_rational_arc_ds_1;
|
||||
typedef Arr_rational_function_traits_2<Algebraic_kernel> Self;
|
||||
typedef Arr_rational_arc::Base_rational_arc_ds_1<Algebraic_kernel> Base_rational_arc_ds_1;
|
||||
|
||||
// Traits objects:
|
||||
typedef Arr_rational_arc::Base_rational_arc_d_1<Kernel, Algebraic_kernel> Base_curve_2;
|
||||
typedef Arr_rational_arc::Continuous_rational_arc_d_1<Kernel, Algebraic_kernel> X_monotone_curve_2;
|
||||
typedef Arr_rational_arc::Rational_arc_d_1<Kernel, Algebraic_kernel> Curve_2;
|
||||
typedef Arr_rational_arc::Algebraic_point_2<Kernel, Algebraic_kernel> Point_2;
|
||||
typedef Arr_rational_arc::Base_rational_arc_d_1<Algebraic_kernel> Base_curve_2;
|
||||
typedef Arr_rational_arc::Continuous_rational_arc_d_1<Algebraic_kernel> X_monotone_curve_2;
|
||||
typedef Arr_rational_arc::Rational_arc_d_1<Algebraic_kernel> Curve_2;
|
||||
typedef Arr_rational_arc::Algebraic_point_2<Algebraic_kernel> Point_2;
|
||||
|
||||
typedef typename Base_rational_arc_ds_1::Algebraic_real_1 Algebraic_real_1;
|
||||
typedef typename Base_rational_arc_ds_1::Multiplicity Multiplicity;
|
||||
|
|
@ -77,10 +75,10 @@ public:
|
|||
typedef typename Algebraic_kernel::Bound Bound;
|
||||
typedef Bound Approximate_number_type;
|
||||
|
||||
typedef CGAL::Arr_rational_arc::Rational_function<Kernel_,Algebraic_kernel_> Rational_function;
|
||||
typedef CGAL::Arr_rational_arc::Cache<Kernel_,Algebraic_kernel_> Cache;
|
||||
typedef CGAL::Arr_rational_arc::Rational_function<Algebraic_kernel_> Rational_function;
|
||||
typedef CGAL::Arr_rational_arc::Cache<Algebraic_kernel_> Cache;
|
||||
|
||||
typedef typename Arr_rational_arc::Vertical_segment_d_1 <Kernel,Algebraic_kernel> Vertical_segment;
|
||||
typedef typename Arr_rational_arc::Vertical_segment_d_1 <Algebraic_kernel> Vertical_segment;
|
||||
|
||||
//Category tags:
|
||||
typedef Tag_true Has_left_category;
|
||||
|
|
@ -103,7 +101,7 @@ public:
|
|||
|
||||
//---------------------
|
||||
// Default constructor.
|
||||
Arr_rational_arc_traits_d_1 ()
|
||||
Arr_rational_function_traits_2 ()
|
||||
{}
|
||||
|
||||
class Construct_x_monotone_curve_2
|
||||
|
|
@ -1053,7 +1051,7 @@ public:
|
|||
{
|
||||
_cache.clear();
|
||||
}
|
||||
};
|
||||
}; //Arr_rational_function_traits_2
|
||||
|
||||
} //namespace CGAL {
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue