From e3cd6df3f7e3dafc48d7cd4e5feb73da3d1d9bd8 Mon Sep 17 00:00:00 2001 From: Monique Teillaud Date: Sat, 25 Feb 2006 14:14:18 +0000 Subject: [PATCH] added example for predefined kernel --- .gitattributes | 1 + Curved_kernel/doc_tex/Curved_kernel/main.tex | 4 +- Curved_kernel/examples/Curved_kernel/Makefile | 46 ++++++------ .../example_Exact_circular_kernel.C | 71 +++++++++++++++++++ 4 files changed, 97 insertions(+), 25 deletions(-) create mode 100644 Curved_kernel/examples/Curved_kernel/example_Exact_circular_kernel.C diff --git a/.gitattributes b/.gitattributes index 7e2d5b346e9..b0faf2e7abb 100644 --- a/.gitattributes +++ b/.gitattributes @@ -411,6 +411,7 @@ Curved_kernel/demo/Curved_kernel/makefile -text Curved_kernel/demo/Curved_kernel/planar_map_icon.xpm -text Curved_kernel/demo/Curved_kernel/sweeper.xpm -text Curved_kernel/demo/Curved_kernel/trash.xpm -text +Curved_kernel/examples/Curved_kernel/example_Exact_circular_kernel.C -text Curved_kernel/test/Curved_kernel/test_Exact_curved_kernel.C -text Developers_manual/doc_tex/Developers_manual/fig/Cartesian_ipoint.gif -text svneol=unset#unset Developers_manual/doc_tex/Developers_manual/fig/Cartesian_orientation.gif -text svneol=unset#unset diff --git a/Curved_kernel/doc_tex/Curved_kernel/main.tex b/Curved_kernel/doc_tex/Curved_kernel/main.tex index 74bddc92f64..1f7ddc6a341 100644 --- a/Curved_kernel/doc_tex/Curved_kernel/main.tex +++ b/Curved_kernel/doc_tex/Curved_kernel/main.tex @@ -89,8 +89,6 @@ either circular arcs or line segments. \subsection{Using the predefined kernel} -%\ccIncludeExampleCode{Curved_kernel/example_predefined_kernel_arrangement_random_circles_segments.C} - -\footnote{TBD} +\ccIncludeExampleCode{Curved_kernel/example_Exact_circular_kernel.C} \section{Design and Implementation History} diff --git a/Curved_kernel/examples/Curved_kernel/Makefile b/Curved_kernel/examples/Curved_kernel/Makefile index 784cd9ece65..25121dbce54 100644 --- a/Curved_kernel/examples/Curved_kernel/Makefile +++ b/Curved_kernel/examples/Curved_kernel/Makefile @@ -7,6 +7,8 @@ # Choose the right include file from the /make directory. # CGAL_MAKEFILE = ENTER_YOUR_INCLUDE_MAKEFILE_HERE +CGAL_MAKEFILE = /user/teillaud/home/CGAL/install/CGAL-I/make/makefile_i686_Linux-2.6_g++33-3.3.4 +#makefile_i686_Linux-2.6_g++-3.4.4 include $(CGAL_MAKEFILE) #---------------------------------------------------------------------# @@ -36,16 +38,16 @@ LDFLAGS = \ #---------------------------------------------------------------------# all: \ - example_arrangement_random_circles \ - example_arrangement_random_circles_segments \ - example_predefined_kernel_arrangement_random_circles_segments$(EXE_EXT) \ - example_Bbox_Hexagon_Lazy_Circular_kernel_arrangement_Line_Circular$(EXE_EXT) \ - example_Circular_kernel_arrangement$(EXE_EXT) \ - example_Circular_kernel_arrangement_Line_arc$(EXE_EXT) \ - example_Circular_kernel_arrangement_Line_Circular$(EXE_EXT) \ - example_Lazy_Circular_kernel_arrangement$(EXE_EXT) \ - example_Lazy_Circular_kernel_arrangement_Line_arc$(EXE_EXT) \ - example_Lazy_Circular_kernel_arrangement_Line_Circular$(EXE_EXT) + example_arrangement_random_circles$(EXE_EXT) \ + example_arrangement_random_circles_segments$(EXE_EXT) \ + example_Exact_circular_kernel$(EXE_EXT) \ + example_Bbox_Hexagon_Lazy_Circular_kernel_arrangement_Line_Circular$(EXE_EXT) \ + example_Circular_kernel_arrangement$(EXE_EXT) \ + example_Circular_kernel_arrangement_Line_arc$(EXE_EXT) \ + example_Circular_kernel_arrangement_Line_Circular$(EXE_EXT) \ + example_Lazy_Circular_kernel_arrangement$(EXE_EXT) \ + example_Lazy_Circular_kernel_arrangement_Line_arc$(EXE_EXT) \ + example_Lazy_Circular_kernel_arrangement_Line_Circular$(EXE_EXT) example_arrangement_random_circles$(EXE_EXT): example_arrangement_random_circles$(OBJ_EXT) $(CGAL_CXX) $(LIBPATH) $(EXE_OPT)example_arrangement_random_circles example_arrangement_random_circles$(OBJ_EXT) $(LDFLAGS) @@ -53,8 +55,8 @@ example_arrangement_random_circles$(EXE_EXT): example_arrangement_random_circles example_arrangement_random_circles_segments$(EXE_EXT): example_arrangement_random_circles_segments$(OBJ_EXT) $(CGAL_CXX) $(LIBPATH) $(EXE_OPT)example_arrangement_random_circles_segments example_arrangement_random_circles_segments$(OBJ_EXT) $(LDFLAGS) -example_predefined_kernel_arrangement_random_circles_segments$(EXE_EXT): example_predefined_kernel_arrangement_random_circles_segments$(OBJ_EXT) - $(CGAL_CXX) $(LIBPATH) $(EXE_OPT)example_predefined_kernel_arrangement_random_circles_segments example_predefined_kernel_arrangement_random_circles_segments$(OBJ_EXT) $(LDFLAGS) +example_Exact_circular_kernel$(EXE_EXT): example_Exact_circular_kernel$(OBJ_EXT) + $(CGAL_CXX) $(LIBPATH) $(EXE_OPT)example_Exact_circular_kernel example_Exact_circular_kernel$(OBJ_EXT) $(LDFLAGS) example_Bbox_Hexagon_Lazy_Circular_kernel_arrangement_Line_Circular$(EXE_EXT): example_Bbox_Hexagon_Lazy_Circular_kernel_arrangement_Line_Circular$(OBJ_EXT) $(CGAL_CXX) $(LIBPATH) $(EXE_OPT)example_Bbox_Hexagon_Lazy_Circular_kernel_arrangement_Line_Circular example_Bbox_Hexagon_Lazy_Circular_kernel_arrangement_Line_Circular$(OBJ_EXT) $(LDFLAGS) @@ -78,16 +80,16 @@ example_Lazy_Circular_kernel_arrangement_Line_Circular$(EXE_EXT): example_Lazy_C $(CGAL_CXX) $(LIBPATH) $(EXE_OPT)example_Lazy_Circular_kernel_arrangement_Line_Circular example_Lazy_Circular_kernel_arrangement_Line_Circular$(OBJ_EXT) $(LDFLAGS) clean: \ - example_arrangement_random_circles.clean \ - example_arrangement_random_circles_segments.clean \ - example_predefined_kernel_arrangement_random_circles_segments.clean \ - example_Bbox_Hexagon_Lazy_Circular_kernel_arrangement_Line_Circular.clean \ - example_Circular_kernel_arrangement.clean \ - example_Circular_kernel_arrangement_Line_arc.clean \ - example_Circular_kernel_arrangement_Line_Circular.clean \ - example_Lazy_Circular_kernel_arrangement.clean \ - example_Lazy_Circular_kernel_arrangement_Line_arc.clean \ - example_Lazy_Circular_kernel_arrangement_Line_Circular.clean + example_arrangement_random_circles.clean \ + example_arrangement_random_circles_segments.clean \ + example_Exact_circular_kernel.clean \ + example_Bbox_Hexagon_Lazy_Circular_kernel_arrangement_Line_Circular.clean \ + example_Circular_kernel_arrangement.clean \ + example_Circular_kernel_arrangement_Line_arc.clean \ + example_Circular_kernel_arrangement_Line_Circular.clean \ + example_Lazy_Circular_kernel_arrangement.clean \ + example_Lazy_Circular_kernel_arrangement_Line_arc.clean \ + example_Lazy_Circular_kernel_arrangement_Line_Circular.clean #---------------------------------------------------------------------# # suffix rules diff --git a/Curved_kernel/examples/Curved_kernel/example_Exact_circular_kernel.C b/Curved_kernel/examples/Curved_kernel/example_Exact_circular_kernel.C new file mode 100644 index 00000000000..64ebc197c28 --- /dev/null +++ b/Curved_kernel/examples/Curved_kernel/example_Exact_circular_kernel.C @@ -0,0 +1,71 @@ +#include + +#include +#include + +#include + +#include + +#include +#include + +typedef CGAL::Exact_circular_kernel Circular_k; + +typedef Circular_k::Point_2 Point_2; +typedef Circular_k::Circle_2 Circle_2; +typedef Circular_k::Circular_arc_2 Circular_arc_2; +typedef Circular_k::Line_arc_2 Line_arc_2; + +typedef boost::variant< Circular_arc_2, Line_arc_2> Arc; +typedef std::vector< Arc> ArcContainer; + +typedef CGAL::Arr_circular_line_arc_traits + Traits; + +typedef CGAL::Arrangement_2 Arr; +typedef CGAL::Arr_naive_point_location Point_location; + +int main(){ + + CGAL::Random generatorOfgenerator; + int random_seed = generatorOfgenerator.get_int(0, 123456); + std::cout << "random_seed = " << random_seed << std::endl; + CGAL::Random theRandom(random_seed); + int random_max = 128; + int random_min = -128; + ArcContainer ac; + int x1, y1, x2, y2; + + for (int i = 0; i < 10; i++) { + x1 = theRandom.get_int(random_min,random_max); + y1 = theRandom.get_int(random_min,random_max); + do{ + x2 = theRandom.get_int(random_min,random_max); + y2 = theRandom.get_int(random_min,random_max); + } while((x1 == x2) && (y1 == y2)); + std::cout << x1 << " " << y1 << " " << x2 << " " << y2 << std::endl; + + boost::variant< Circular_arc_2, Line_arc_2 > + v = Line_arc_2(Point_2(x1,y1), Point_2(x2,y2)); + ac.push_back( v); + } + + for (int i = 0; i < 10; i++) { + x1 = theRandom.get_int(random_min,random_max); + y1 = theRandom.get_int(random_min,random_max); + + boost::variant< Circular_arc_2, Line_arc_2 > + v = Circle_2( Point_2(x1,y1), x1*x1 + y1*y1); + ac.push_back(v); + } + + Arr _pm; + Point_location _pl(_pm); + for (ArcContainer::const_iterator it=ac.begin(); it != ac.end(); ++it) { + insert_curve(_pm,*it,_pl); + }; + + return 0; +}; +