Philipp Möller
fad504838f
* Circular_kernel: - Intersections now use variants
...
- removed most internal uses of Object
* Intersections: more traits, typofix, doc typofix, aliases IT23d
2011-07-20 22:54:03 +00:00
Laurent Rineau
369498d1e5
Cancel revision 64607. There had been a problem with the branch.
...
| ------------------------------------------------------------------------
| r64607 | efif | 2011-07-05 17:27:04 +0200 (Tue, 05 Jul 2011) | 1 line
|
| Merged feature-branch Aos_2-new_functors-tau into next
| ------------------------------------------------------------------------
2011-07-06 11:11:58 +00:00
Laurent Rineau
2bbdde3dc1
backport trunk changes
2011-06-23 12:55:08 +00:00
Monique Teillaud
d784ea5019
removed old stuff that was in dont_submit anyway
2011-06-21 06:58:57 +00:00
Sébastien Loriot
d5c2355419
merge the modification from experimental packages to
...
the candidate branch of the feature + few name bug fixes
2011-04-12 11:34:37 +00:00
Sébastien Loriot
8ce2048aea
add #include<CGAL/config.h> before any directive CGAL_USE_*
2011-03-02 18:52:57 +00:00
Sébastien Loriot
9cbf4274ae
due to correction of the traits Filtered_bbox_circular_kernel_2
...
in revision 58154, Filtered_bbox_circular_kernel_2<Lazy_circular_kernel_2<K> >
was no longer working.
In Circular_kernel_2:
*The Rep type of Circular_arc_2, Line_arc_2 and Circular_arc_point_2 in
Filtered_bbox_circular_kernel_2 now inherits from the Rep of the kernel
template parameter. To allow Lazy filtering mechanism on
Filtered_bbox_circular_kernel_2::{Circular_arc_2,Line_arc_2,Circular_arc_point_2}
it was needed to explicit some conversions (with Lazy_circular_kernel, we add another
implicit construction, thus the compiler cannot find the correct constructor).
In Filtered_kernel:
*explicit some conversions
2010-11-10 15:52:53 +00:00
Laurent Rineau
4bc6a941fb
Remove a std::cerr from my last commit. Sorry for the pollution.
2010-08-20 14:17:33 +00:00
Laurent Rineau
418d2a5f01
Refactoring of CK_2 Filtered_bbox_circular_kernel_2:
...
- The three classes Circular_arc_2, Circular_arc_point_2 and Line_arc_2
now have a proper base class with bboxes,
- The functors of Fb_ck_2 now directly use the functors of Ck_2 (without
bbox filtering) templated by Fb_ck_2: that avoids all creations of
temporary objects to convert between types CGAL::Foobar_2<CK_2> and
CGAL::Foobar_2<Fb_ck_2>.
- The number of functors in bbox_filtered_predicates has been reduced
quite a lot: all functors that were not using bboxes have been
removed. They were just forwarding all there calls to the functors
without filtering. That was useless (and created a lot of temporary
objects).
As a side effect, Fb_ck_2 now works even with -DCGAL_CFG_MATCHING_BUG_6
(VC++), because of the removal of the temporary objects.
2010-08-19 10:20:47 +00:00
Andreas Fabri
16010cf531
For VC++ we have to directly derive from Has_qrt
2010-08-10 08:02:28 +00:00
Sébastien Loriot
93a7d05699
Make the benchmark compiling again.
...
I try to run some of the mode 'alpha' as described in the
README_benchmark_CK2.txt but this ended up with different
preconditions non validated (for alpha=1,4,5 or 8 with beta=9)
2010-06-22 09:37:10 +00:00
Sébastien Loriot
52317dd49f
add python script (replace_CGAL_NAMESPACE.py) to replace CGAL_BEGIN_NAMESPACE and CGAL_END_NAMESPACE
...
by namespace CGAL { and } //namespace CGAL. in all .h and .cpp files
in a directory.
Apply it to all packages in the trunk
Remove macro definition from the config.h file.
2010-06-09 07:37:13 +00:00
Andreas Fabri
cc7b417bd4
fix bugs in VC++ workarounds
2010-05-06 09:27:16 +00:00
Sébastien Loriot
f295f910f0
change LK:: to CK:: (bug on windows)
2010-05-06 09:19:35 +00:00
Andreas Fabri
83cb1edf06
Reindent and removal of duplicate typedef for Circle_2
2010-05-06 08:20:53 +00:00
Pedro Machado Manhaes de Castro
9ee39b4642
qualified result type issues
2010-04-30 16:41:23 +00:00
Sylvain Pion
85dc12f2a7
Remove empty lines at beginning and end of files
...
(apply Scripts/developer_scripts/remove_empty_lines.pl).
2010-02-01 12:55:28 +00:00
Laurent Rineau
83912b2952
Massive fix of svn:keywords properties, and $URL$ keyword.
2009-10-20 08:59:26 +00:00
Sylvain Pion
8573fe26ce
Rename CGALi to internal.
2009-08-24 17:10:04 +00:00
Sylvain Pion
927b432b39
typo : mecanism -> mechanism.
2009-08-10 15:57:03 +00:00
Laurent Rineau
fd76a2222d
- Remove "using CK::Linear_kernel::Do_intersect_2::operator()" in
...
CircularFunctor::Do_intersect_2 because
CK::Linear_kernel::Do_intersect_2::operator() and
CircularFunctor::Do_intersect_2 have exactly the same signature! The Intel
compiler is right to say there is an ambiguity in the matching.
2009-07-10 08:21:44 +00:00
Efi Fogel
4b22c83e54
cleanup
2009-07-07 08:23:06 +00:00
Sylvain Pion
f0ed774e37
Move CGAL::array to namespace CGAL::cpp0x, like tuple.
2009-04-30 14:03:52 +00:00
Pedro Machado Manhaes de Castro
66f53a570b
testing calls for VC8 + bug fix
2008-10-31 17:08:32 +00:00
Pedro Machado Manhaes de Castro
e7ee6ea845
fix the VC8 compatibility
2008-10-24 23:36:02 +00:00
Andreas Fabri
c58989d70e
make the linear kernel testsuite work with the circular kernel on VC8
2008-10-24 12:53:39 +00:00
Andreas Fabri
dd0b52dfe5
make the linear kernel testsuite work with the circular kernel on VC8
2008-10-24 09:52:30 +00:00
Pedro Machado Manhaes de Castro
36b4d94397
Cmake ok name for project
2008-10-22 23:45:26 +00:00
Pedro Machado Manhaes de Castro
0d8b9ac616
Linear_kernel with CK_2 test + ambiguity fix
2008-10-22 13:32:25 +00:00
Pedro Machado Manhaes de Castro
2512af15a0
testing CK with the test of Kernel as well, (and small bug fix)
2008-10-22 11:04:08 +00:00
Andreas Fabri
cb53f0f8ae
Renamed template parameter as it leads to typmixup for VC8
2008-10-21 11:54:39 +00:00
Laurent Rineau
1d7a5b1625
Fix indentation.
2008-10-21 08:06:37 +00:00
Laurent Rineau
ce24967b2c
Modify the indentation, to help understanding the code (CRTP means a lot of
...
templates arguments).
2008-10-21 08:04:39 +00:00
Laurent Rineau
59e9173cb9
Modify the indentation, in order to understand well the templates arguments.
2008-10-21 07:32:36 +00:00
Pedro Machado Manhaes de Castro
5476d1bd01
testing Line_2, Circle_2 as well
2008-10-16 14:41:36 +00:00
Pedro Machado Manhaes de Castro
f86250b818
inheritance
2008-10-15 16:21:52 +00:00
Pedro Machado Manhaes de Castro
18638671c1
removing some useless defines and trying something for GCC < 4.3
2008-10-15 16:17:20 +00:00
Pedro Machado Manhaes de Castro
005cc1ccb7
Fixing for Line_2, Circle_2 on BK stuff
2008-10-13 20:34:01 +00:00
Pedro Machado Manhaes de Castro
3e0b9e1ed4
Trying to be more precise on the namespaces so VC8 will be happy (trying at least)
2008-10-13 18:12:12 +00:00
Pedro Machado Manhaes de Castro
e80226ce3c
Improving the testsuite and fixing some problems
2008-10-13 17:58:36 +00:00
Pedro Machado Manhaes de Castro
8bf93852dd
tunning the tests for global functions CK2
2008-10-03 14:45:43 +00:00
Pedro Machado Manhaes de Castro
e33078a4e9
Circular_arc_point_2 has a constructor for Point_2
2008-10-03 11:26:19 +00:00
Pedro Machado Manhaes de Castro
f39a5d6cd4
pre-condition for split_2
2008-10-02 15:45:54 +00:00
Pedro Machado Manhaes de Castro
71b58f8eb3
<, <=, >=, > operations for Circular_arc_point_2
2008-10-02 15:42:13 +00:00
Pedro Machado Manhaes de Castro
1e88811a5e
point_in_x_range does not look as cool as has_in_x_range (in conformity with CGAL)
2008-10-02 14:30:30 +00:00
Pedro Machado Manhaes de Castro
a379bd57d4
global functions in a single file
2008-10-01 15:24:23 +00:00
Pedro Machado Manhaes de Castro
25983e68bb
only one global function file
2008-10-01 15:12:54 +00:00
Pedro Machado Manhaes de Castro
e7e4e33287
Only one global function file -> global_functions_circular_kernel_2.h
2008-10-01 15:12:01 +00:00
Pedro Machado Manhaes de Castro
f125fd60b0
Remove from visible stuffs the compare_y_to_left_2
2008-10-01 12:27:57 +00:00
Pedro Machado Manhaes de Castro
2775e451e5
Some Not Documented line comments
2008-10-01 12:25:23 +00:00
Pedro Machado Manhaes de Castro
939667002a
remove compare_y_to_left
2008-10-01 10:41:33 +00:00
Pedro Machado Manhaes de Castro
e752ba2382
global function for the functor compare_y_to_left
2008-10-01 09:18:26 +00:00
Pedro Machado Manhaes de Castro
b610bdb783
testsuite for make_xy_monotone + remove some warnings
2008-10-01 09:12:03 +00:00
Pedro Machado Manhaes de Castro
15f7610a40
cleaning
2008-09-30 15:52:44 +00:00
Pedro Machado Manhaes de Castro
4124531409
test for {x,y}_extremal_point global function
2008-09-30 15:48:34 +00:00
Pedro Machado Manhaes de Castro
cfaa7f3b7c
Comment line on some non-documented stuff, it exists (i.e. for tests) but it is not documented
2008-09-30 14:38:33 +00:00
Pedro Machado Manhaes de Castro
ca8f6c806a
removing Advanced_make_{x,xy}_monotone_2, On_upper_part_2, Construct_circular_arc_2 operator()(const Circular_arc_2 &A, bool b, const Circle_2& ccut, bool b_cut), Equal_2 for types that do not match
2008-09-30 13:59:18 +00:00
Pedro Machado Manhaes de Castro
32f1dbffaf
Compute_Circular_{x,y}_2 to Compute_circular_{x,y}_2
2008-09-30 13:44:20 +00:00
Pedro Machado Manhaes de Castro
2dbdeb2c71
not necessary anymore
2008-09-30 13:37:10 +00:00
Pedro Machado Manhaes de Castro
d7e7e23c1a
sending to trash some unfortunate global functions
2008-09-30 13:36:33 +00:00
Pedro Machado Manhaes de Castro
1bfd02a7f2
Global function for make_xy_monotone
2008-09-30 13:11:33 +00:00
Pedro Machado Manhaes de Castro
cffa240949
global function compare_y_to_right with correct params (Arc, Arc, Circular_arc_point)
2008-09-30 13:07:52 +00:00
Pedro Machado Manhaes de Castro
caedb2cf8f
good naming of global functions
2008-09-29 18:58:39 +00:00
Pedro Machado Manhaes de Castro
56901ba7f7
Globals with T<K> instead of typename K::T, and reordering of .h so it works
2008-09-29 18:50:45 +00:00
Pedro Machado Manhaes de Castro
d8f8af7e14
putting both Get_equation together in function_objects_polynomial
2008-09-18 18:53:33 +00:00
Pedro Machado Manhaes de Castro
a8e2a6bbb7
moving supporting_line and circle to the deprecated area
2008-09-15 16:40:38 +00:00
Pedro Machado Manhaes de Castro
dfd621367b
Construct_supporting_circle_2 => Construct_circle_2
2008-09-15 15:29:11 +00:00
Pedro Machado Manhaes de Castro
61b7ab6dd2
Inheritance for result_type
2008-09-15 13:12:44 +00:00
Pedro Machado Manhaes de Castro
0ddfd915b9
Looks like this is not an usual global function in CGAL, so I remove it.
2008-09-15 13:01:55 +00:00
Pedro Machado Manhaes de Castro
5c1829d9e0
Construct_supporting_line_2 => Construct_line_2
2008-09-15 12:57:09 +00:00
Pedro Machado Manhaes de Castro
b65bd7be6b
Forgot adding this file (Type Equality Wrapper thread)
2008-09-12 21:30:34 +00:00
Pedro Machado Manhaes de Castro
4dffce29c5
Better Circular_arc_2/Circular_arc_point_2/Line_arc_2 Copy Constructor
2008-09-12 17:36:32 +00:00
Pedro Machado Manhaes de Castro
3ac5443b35
Small example: using a functor + A forgotten Copy Constructor
2008-09-12 14:43:12 +00:00
Pedro Machado Manhaes de Castro
476c6e7bb8
Type Equality Wrapper for Filtered Bbox + kernel stuffs (base for Circular_kernel and almost everything for Filtered_bbox_kernel), operator == for Circular_arc_2, cleaning old stuffs
2008-09-12 12:53:05 +00:00
Sylvain Pion
a0be560caa
New profiling tool : Profile_branch_counter, that improves the display
...
of failure/calls ratios. With the corresponding macro CGAL_BRANCH_PROFILER().
2008-09-08 09:52:37 +00:00
Monique Teillaud
7ec77d6c81
missing include
2008-08-28 12:20:12 +00:00
Monique Teillaud
6c9be1ff58
move global functions (intersection, do_intersect) to a 'documentable' place
2008-08-27 12:38:15 +00:00
Sylvain Pion
4c79d1d5cf
Rename Bool_type to Boolean.
2008-08-26 13:40:26 +00:00
Sylvain Pion
44c185f1f4
Rename boost::array to CGAL::array.
2008-08-26 13:15:21 +00:00
Sylvain Pion
53f5c9679b
Add a using directive "using std::array" in namespace CGAL to import either:
...
- C++0x's std:array from <array>
- TR1's std::tr1::array from <tr1/array>
- boost::array from <boost/array.hpp>
Motivation : GCC's std::array is faster than boost::array.
Move CGALi:make_array to namespace CGAL.
Document CGAL::array.
2008-08-26 13:08:16 +00:00
Sylvain Pion
a8e8ecfdcf
Replace Interval_nt_advanced::unsafe_comparison by Uncertain_conversion_exception.
...
(it was alrady the same type, but now the filtering code can be independent on Interval_nt_advanced
(think other interval types, or other types of filters).
2008-07-31 13:31:26 +00:00
Sylvain Pion
edcedb11fd
forgot to update demo code after Triple->array changes
2008-07-27 11:40:49 +00:00
Pedro Machado Manhaes de Castro
b7c906cf00
global functions and do_intersect for CK_2
2008-07-25 15:02:26 +00:00
Sylvain Pion
a00960f952
Rename local typedef Triple to Triplet (makes it easier for grep to distinguish).
2008-07-25 14:51:40 +00:00
Sylvain Pion
20a76e0b04
Replace CGAL::Triple by boost::array
...
(NB : I'm not sure this code is tested...).
2008-07-25 14:49:50 +00:00
Pedro Machado Manhaes de Castro
3aaad47ea1
Adding filtered bbox predicates for Line_2
2008-07-25 11:52:13 +00:00
Pedro Machado Manhaes de Castro
d51d5d3811
CK_2 intersection Line_2 vs Line_arc_2 and Circular_arc_2
2008-07-24 15:42:18 +00:00
Pedro Machado Manhaes de Castro
285600fe63
result_type inheritance
2008-07-24 14:40:44 +00:00
Pedro Machado Manhaes de Castro
2cc9590c83
LGPL -> QPL + updating authors
2008-07-23 17:13:44 +00:00
Sylvain Pion
79864c0c8e
Remove Arity_tag.
2008-07-22 12:29:01 +00:00
Monique Teillaud
c199564523
old arrangement traits removed
...
(interesting ones had been included in the Arrangement_2 package already)
2008-07-22 08:49:38 +00:00
Pedro Machado Manhaes de Castro
524e385f7b
Making life easier for the user
2008-07-17 16:52:06 +00:00
Pedro Machado Manhaes de Castro
49c02ffd2e
One solution for the Filtered_bbox_circular_kernel memory leak problem. However, probably not the best.
2008-07-17 15:02:11 +00:00
Pedro Machado Manhaes de Castro
66b2705068
Changing Licenses from QPL to LGPL
2008-07-17 12:02:29 +00:00
Sylvain Pion
1d47b96e3c
Remove more useless enum_cast<>.
2008-03-20 16:46:25 +00:00
Sylvain Pion
b24108f5fd
Remove #include <cassert> from everywhere under include/CGAL/.
...
CGAL code has to use CGAL assertions instead.
2008-01-20 18:47:19 +00:00
Andreas Meyer
fdeedcf8b0
some low level code cleanup. renamed
...
* CGAL_error to CGAL_error_msg
* introduced a macro CGAL_error()
* added some words about CGAL_error to the developers manual
* renamed most of assert(x) into CGAL_assertion(x)
* renamed exit(x) with x != 0 , CGAL_assertion(false) and assert(false) into CGAL_error
* CORE left untouched, OpenNL changed
2007-11-07 16:51:18 +00:00
Sylvain Pion
87759faafd
Move internal typedefs to CGAL::CGALi::.
2007-11-06 16:14:00 +00:00
Sylvain Pion
1881ddf9e9
Replace abort by assertions.
2007-11-05 10:16:21 +00:00
Sylvain Pion
b976aea1b6
Remove 2 workarounds which are not needed anymore by the latest SunPRO:
...
CGAL_CFG_DEEP_DEPENDENT_TEMPLATE_BUG
CGAL_CFG_DEDUCABLE_CONTEXT_BUG
2007-08-24 12:57:55 +00:00
Monique Teillaud
708964b7bc
missing derivation of Has_on added
2007-08-08 08:29:25 +00:00
Andreas Fabri
4039e49760
removed unused parameters
2007-03-17 09:43:57 +00:00
Sylvain Pion
c6b85022e5
warning patrol
2007-03-09 08:37:01 +00:00
Sylvain Pion
a2297186ad
Prefix macros with CGAL_ , damned !!!
2007-02-28 18:54:33 +00:00
Sylvain Pion
802fe6a40f
Remove commented FILEWRITE macro #define
...
(probably useless, at least unused, and beeping on my missing-CGAL_-prefix grep)
2007-02-28 18:52:35 +00:00
Sylvain Pion
70ddda8342
remove g++ 4.3 warning
2007-02-11 22:37:08 +00:00
Monique Teillaud
f320c7ebf3
typo
2007-01-16 15:14:47 +00:00
Monique Teillaud
70e1c89a26
cleaning traits
2007-01-16 14:49:01 +00:00
Monique Teillaud
02e5e27c5e
cosmetic
2007-01-16 14:47:01 +00:00
Monique Teillaud
6886304007
cosmetic
2007-01-16 14:43:11 +00:00
Laurent Saboret
9d0d302a87
Fixed svn properties of whole trunk
2006-12-18 09:37:55 +00:00
Monique Teillaud
95c3155996
added in the traits
...
typedef CGAL::Tag_false Has_boundary_category;
just a guess to try to follow changes in Arrangement_2
2006-12-15 14:11:52 +00:00
Monique Teillaud
d086e4bd90
- Lazy_CK replaced by Filtered_bbox_CK in the typedef Exact_circular_kernel_2
...
- all Lazy stuff (not working) put in dont_submit
more cleaning will be needed but this should at least please test-suites
2006-12-08 10:39:32 +00:00
Andreas Fabri
92da39d4b0
workaround for VC++ as using doesn't work for operators
2006-10-18 08:45:39 +00:00
Andreas Fabri
e1548b2c02
Fixed min/max problem for Windows
2006-10-16 12:32:09 +00:00
Pedro Machado Manhaes de Castro
2897e73934
Correcting a mistake
2006-09-16 14:14:09 +00:00
Pedro Machado Manhaes de Castro
a73fe542e4
removing an useless thing
2006-09-15 15:17:33 +00:00
Andreas Fabri
19506b48cf
Fix of a copy/paste/edit error
2006-09-12 11:54:13 +00:00
Pedro Machado Manhaes de Castro
a6b064dcbf
Commenting orientation
2006-09-11 09:13:22 +00:00
Pedro Machado Manhaes de Castro
7b273543c4
Commenting orientation
2006-09-11 09:11:25 +00:00
Andreas Fabri
71811b1dc8
Added constructor functors
2006-09-10 20:23:12 +00:00
Andreas Fabri
964f22cdfb
Use constructor functors
2006-09-10 20:22:37 +00:00
Andreas Fabri
381055282a
Added constructor functors
2006-09-10 20:21:48 +00:00
Andreas Fabri
4552b3b105
fix for wrong grouping of expressions (thanks monique)
2006-09-08 10:03:31 +00:00
Andreas Fabri
80dd6262d0
added bbox test before has_on
2006-09-07 13:00:04 +00:00
Andreas Fabri
604632c322
added missing ')'
2006-09-07 12:41:18 +00:00
Andreas Fabri
26e7c1f451
Removed call to print_dag
2006-09-07 12:28:40 +00:00
Andreas Fabri
d69c4ea2d9
Added Compare_y_to_left_2
2006-09-07 12:27:12 +00:00
Andreas Fabri
b8e790ef29
Added Compare_y_to_left_2
2006-09-07 12:26:44 +00:00
Andreas Fabri
30e0a88c30
fixed typedef
2006-09-07 12:26:01 +00:00
Andreas Fabri
d2e9194f94
All checks based on identity
2006-09-07 12:25:09 +00:00
Andreas Fabri
2c684cfba5
Some checks based on identity
2006-09-07 12:10:48 +00:00
Pedro Machado Manhaes de Castro
e898563f28
Correcting the constructor
2006-09-02 16:25:42 +00:00
Andreas Fabri
696880c05f
We use a std::map in order to create identical circular arc endpoints
2006-09-01 13:29:08 +00:00
Andreas Fabri
a8483ec518
A reader that does not create CGAL objects
2006-09-01 13:27:09 +00:00
Pedro Machado Manhaes de Castro
6c2a39e5c5
Orientation Test
2006-08-31 12:14:09 +00:00
Pedro Machado Manhaes de Castro
a630622bff
Orientation Test
2006-08-31 12:13:25 +00:00
Pedro Machado Manhaes de Castro
54e9f74a1e
Orientation Test
2006-08-31 12:13:17 +00:00
Pedro Machado Manhaes de Castro
bba440a0ba
correcting do_overlap
2006-08-30 08:03:52 +00:00
Andreas Fabri
1040066d89
undo as this penalizes the bbox filtering
2006-08-29 08:54:22 +00:00
Andreas Fabri
062bcb5d07
A homeopathic dose of bbox
2006-08-28 14:04:11 +00:00
Pedro Machado Manhaes de Castro
4ebc9111cc
#include <CGAL/Algebraic_kernel_2_2.h> --->
...
#include <CGAL/Algebraic_kernel_for_circles_2_2.h>
2006-08-28 08:15:45 +00:00
Andreas Fabri
735356caf9
A homeopathic dose of identity checks
2006-08-25 15:46:47 +00:00
Pedro Machado Manhaes de Castro
fa5da93d8b
Algebraic_kernel_for_circles (instead of Algebraic_kernel)
...
Curved_kernel -> Circular_kernel_2
2006-08-25 13:02:50 +00:00
Pedro Machado Manhaes de Castro
f5678aeed2
Algebraic_kernel_for_circles (instead of Algebraic_kernel)
...
Curved_kernel -> Circular_kernel_2
2006-08-25 13:02:41 +00:00
Pedro Machado Manhaes de Castro
954187823d
Algebraic_kernel_for_circles (instead of Algebraic_kernel)
...
Curved_kernel -> Circular_kernel_2
2006-08-25 12:44:18 +00:00
Pedro Machado Manhaes de Castro
6bf8bd5435
Fixing it
2006-08-24 15:03:35 +00:00
Pedro Machado Manhaes de Castro
d2b1f81dd7
Algebraic_kernel still the same at the moment
2006-08-24 14:40:50 +00:00
Pedro Machado Manhaes de Castro
895f7d645c
Curved_kernel -> Circular_kernel_2 [adapt]
2006-08-24 14:25:50 +00:00
Pedro Machado Manhaes de Castro
0327444d45
Curved_kernel -> Circular_kernel_2 [adapt]
2006-08-24 14:25:24 +00:00