added example for predefined kernel

This commit is contained in:
Monique Teillaud 2006-02-25 14:14:18 +00:00
parent 3d3013f8f0
commit e3cd6df3f7
4 changed files with 97 additions and 25 deletions

1
.gitattributes vendored
View File

@ -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

View File

@ -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}

View File

@ -7,6 +7,8 @@
# Choose the right include file from the <cgalroot>/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

View File

@ -0,0 +1,71 @@
#include <CGAL/basic.h>
#include <CGAL/Random.h>
#include <CGAL/point_generators_2.h>
#include <CGAL/Exact_circular_kernel.h>
#include <CGAL/Arr_circular_line_arc_traits.h>
#include <CGAL/Arrangement_2.h>
#include <CGAL/Arr_naive_point_location.h>
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
<Circular_k, Circular_arc_2, Line_arc_2> Traits;
typedef CGAL::Arrangement_2<Traits> Arr;
typedef CGAL::Arr_naive_point_location<Arr> 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;
};