mirror of https://github.com/CGAL/cgal
added example for predefined kernel
This commit is contained in:
parent
3d3013f8f0
commit
e3cd6df3f7
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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}
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
};
|
||||
|
||||
Loading…
Reference in New Issue