Commit Graph

425 Commits

Author SHA1 Message Date
Philipp Möller 58a6c86cbc * fixed include issue
* some work to make Lazy work with C++11
2011-12-15 15:45:39 +00:00
Philipp Möller 15c57cba6d * those two work correctly now 2011-12-14 16:43:28 +00:00
Philipp Möller 659d2295d0 Added tests to verify the types returned by boost::result_of match the
real tests and ajusted the type of Construct_vertex_3 for Iso_cuboid_3
2011-12-13 15:13:07 +00:00
Philipp Möller f455f63045 removed Qualified_result_of 2011-11-23 17:53:04 +00:00
Philipp Möller 0e0a200646 * Using result_of instead of Qualified_result_of
* limited refactoring in the lazy kernel
* still bugs in circular_3
* still specialization problem with iso_rectangle
2011-11-23 17:52:38 +00:00
Philipp Möller 94affd589d Moved the Intersection_result concept into the functors and adapted code in the lazy kernel to that change. 2011-11-15 15:40:22 +00:00
Philipp Möller 9051768cea Introduced Intersection_results as a Kernel concept for use in public APIs in favor over Intersection_traits. 2011-11-15 13:41:14 +00:00
Philipp Möller 450f438518 IT shortcut not circumvents specifying a kernel making it an actual shortcut and nicer for exposure in APIs 2011-11-10 11:06:26 +00:00
Philipp Möller a6f4cb16ae Macro for versioning the intersections and support for both versions in the top level function. 2011-11-08 11:56:57 +00:00
Laurent Rineau ab3753c62c Merge from next 2011-10-13 16:16:59 +00:00
Laurent Rineau 414f9319f4 Fix artificial dependency of Kernel_23 to Triangulation_2
This file was moved from Triangulation_2 to the kernel, a few months
ago. That explains why <CGAL/triangulation_assertions.h> was used.
2011-10-13 14:10:38 +00:00
Sébastien Loriot 961d58fa4b update files with incorrect license headers (QPL but should be LGPL) 2011-10-10 16:07:44 +00:00
Sébastien Loriot 91a5327fa8 change LGPLv2 -> LGPLv3 2011-10-10 13:48:25 +00:00
Andreas Fabri cbfe32ce37 Add declspecs for Visual C++ so that we can build dlls 2011-10-05 19:12:23 +00:00
Sébastien Loriot dff6dda8b3 Remove from copyright holder
Freie Universitaet Berlin (Germany), Martin-Luther-University Halle-Wittenberg
(Germany) and RISC Linz (Austria) as they transfer the copyright to other
sites.
2011-09-21 19:46:31 +00:00
Guillaume Damiand a29c905ee0 Replace BOOST_STATIC_ASSERT by CGAL_static_assertion. 2011-08-31 14:30:07 +00:00
Philipp Möller 5b925d6f6e * Reworked Intersection_traits into a single traits, adjusted
intersections accordingly, turned on IT<....> as return type
* removed result_type from the intersection functors
2011-08-25 10:18:31 +00:00
Philipp Möller 2f9b36d618 * intersection and do_intersection now pick their appropriate
overloads automatically;

* a test for the availability of all calls has been added
2011-07-12 16:53:49 +00:00
Sébastien Loriot f1fe27620e BUGFIX: copy-paste typo 2011-06-23 11:59:29 +00:00
Andreas Fabri 415e64411c Add functors of Convex_hull_projective_traits classes 2011-04-06 07:41:14 +00:00
Sébastien Loriot 8ce2048aea add #include<CGAL/config.h> before any directive CGAL_USE_* 2011-03-02 18:52:57 +00:00
Andreas Fabri 7f78d9d1b1 fix 2011-01-19 10:55:02 +00:00
Andreas Fabri 2071c33c81 Roll back to a projection on the xz instead of the zx plane 2011-01-19 10:36:52 +00:00
Andreas Fabri 1a48eaae74 Roll back to a projection on the xz instead of the zx plane 2011-01-19 10:27:51 +00:00
Sébastien Loriot 3e04fb16fb merge packages related to projection traits into the trunk. 2011-01-11 07:18:36 +00:00
Sébastien Loriot 78a8e36522 small features to add additional operator() to Angle_2.
This is a merge from the branch /branches/experimental-packages/More_robust_Triangulation_2-branch
2011-01-07 10:45:13 +00:00
Sébastien Loriot ace9c87934 revert dirty commit 60628 2011-01-07 10:37:54 +00:00
Sébastien Loriot 99dda59784 add operator() to Angle_2 functor (code,global function,doc,test).
That was submitted as small feature.
2011-01-07 10:04:06 +00:00
Laurent Rineau 8eac6ca650 Improvement: add static filters to Lazy_kernel (which is the EPEC kernel).
For that:

- Split internal::Static_filters into two classes: one with only filtered
functors, for Epeck, and one that use the filtered functors, but also use
directory unfiltered functors of the Cartesian kernel (for predicates that
only compare doubles).

- Add a functor Get_approx in <CGAL/internal/Static_filters/tools.h>, that
is the identity for all types but lazy types (in that case its returns
"x.approx()").

- Use Get_approx in static-filters versions of predicates, so that they can
be used with Lazy_kernel too.

- Use Static_filters<K_base, false> as base class of Lazy_kernel.

- Rewrite <CGAL/Exact_predicate_exact_constructions_kernel.h>, to use
  static filters for Epeck, but also to simplify that file by the use
  Exact_type_selector<double>::Type as number type.

(The testsuite of Kernel_23 is OK on the platform
x86-64_Linux-2.6_g++-4.4.4_F13).
2010-12-17 13:53:26 +00:00
Laurent Rineau 11c7844f61 Add comments on #else and #endif. 2010-12-16 16:40:00 +00:00
Marc Glisse ee07a88c30 unused 2010-11-10 21:14:11 +00:00
Laurent Rineau 0293802159 Revert those commits:
| ------------------------------------------------------------------------
  | r59170 | afabri | 2010-10-11 15:48:42 +0200 (Mon, 11 Oct 2010) | 1 line
  | Changed paths:
  |    A /trunk/Kernel_23/doc_tex/Kernel_23_ref/Projection_traits_xy_3.tex
  | 
  | Add  Projection_traits_xy_3
  | ------------------------------------------------------------------------
  | r59168 | afabri | 2010-10-11 15:35:17 +0200 (Mon, 11 Oct 2010) | 1 line
  | Changed paths:
  |    A /trunk/Kernel_23/include/CGAL/Projection_traits_xy_3.h (from /trunk/Kernel_23/include/CGAL/Triangulation_euclidean_traits_xy_3.h:59167)
  |    A /trunk/Kernel_23/include/CGAL/Projection_traits_xz_3.h (from /trunk/Kernel_23/include/CGAL/Triangulation_euclidean_traits_xz_3.h:59167)
  |    A /trunk/Kernel_23/include/CGAL/Projection_traits_yz_3.h (from /trunk/Kernel_23/include/CGAL/Triangulation_euclidean_traits_yz_3.h:59167)
  |    D /trunk/Kernel_23/include/CGAL/Triangulation_euclidean_traits_xy_3.h
  |    D /trunk/Kernel_23/include/CGAL/Triangulation_euclidean_traits_xz_3.h
  |    D /trunk/Kernel_23/include/CGAL/Triangulation_euclidean_traits_yz_3.h
  | 
  | Generalize name of traits class
  | ------------------------------------------------------------------------
  | r59167 | afabri | 2010-10-11 15:31:36 +0200 (Mon, 11 Oct 2010) | 1 line
  | Changed paths:
  |    A /trunk/Kernel_23/include/CGAL/Triangulation_euclidean_traits_xy_3.h (from /trunk/Triangulation_2/include/CGAL/Triangulation_euclidean_traits_xy_3.h:59165)
  |    A /trunk/Kernel_23/include/CGAL/Triangulation_euclidean_traits_xz_3.h (from /trunk/Triangulation_2/include/CGAL/Triangulation_euclidean_traits_xz_3.h:59165)
  |    A /trunk/Kernel_23/include/CGAL/Triangulation_euclidean_traits_yz_3.h (from /trunk/Triangulation_2/include/CGAL/Triangulation_euclidean_traits_yz_3.h:59165)
  | 
  | Add Projection_traits classes
  | ------------------------------------------------------------------------
  | r59166 | afabri | 2010-10-11 15:28:40 +0200 (Mon, 11 Oct 2010) | 1 line
  | Changed paths:
  |    M /trunk/Kernel_23/include/CGAL/internal/Projection_traits_3.h
  | 
  | Add Less_xy_2 and Less_yx, so that it becomes model of PolygonTraits_2
  | ------------------------------------------------------------------------
  | r59162 | afabri | 2010-10-11 15:19:16 +0200 (Mon, 11 Oct 2010) | 1 line
  | Changed paths:
  |    M /trunk/Kernel_23/include/CGAL/internal/Projection_traits_3.h
  | 
  | rename class inside the file
  | ------------------------------------------------------------------------
  | r59161 | afabri | 2010-10-11 15:17:15 +0200 (Mon, 11 Oct 2010) | 1 line
  | Changed paths:
  |    A /trunk/Kernel_23/include/CGAL/internal/Projection_traits_3.h (from /trunk/Kernel_23/include/CGAL/internal/Triangulation_euclidean_traits_projected_3.h:59160)
  |    D /trunk/Kernel_23/include/CGAL/internal/Triangulation_euclidean_traits_projected_3.h
  | 
  | Generalize name 
  | ------------------------------------------------------------------------
  | r59160 | afabri | 2010-10-11 15:15:20 +0200 (Mon, 11 Oct 2010) | 1 line
  | Changed paths:
  |    A /trunk/Kernel_23/include/CGAL/internal/Triangulation_euclidean_traits_projected_3.h (from /trunk/Triangulation_2/include/CGAL/internal/Triangulation_euclidean_traits_projected_3.h:59156)
  | 
  | Move implementation of Projection_traits from Triangulation_2 to Kernel
  | ------------------------------------------------------------------------
  | r59158 | afabri | 2010-10-11 15:12:54 +0200 (Mon, 11 Oct 2010) | 1 line
  | Changed paths:
  |    A /trunk/Kernel_23/include/CGAL/internal
  | 
  | Add directory for the Projection_traits
  | ------------------------------------------------------------------------
The work is now done is a branch.
2010-11-04 11:24:14 +00:00
Marc Glisse 6ca6e27978 rename private types for clang 2010-10-27 09:06:49 +00:00
Andreas Fabri 9064b74068 Generalize name of traits class 2010-10-11 13:35:17 +00:00
Andreas Fabri 6ce7d97cab Add Projection_traits classes 2010-10-11 13:31:36 +00:00
Andreas Fabri 1e2383151e Add Less_xy_2 and Less_yx, so that it becomes model of PolygonTraits_2 2010-10-11 13:28:40 +00:00
Andreas Fabri 4656f941a8 rename class inside the file 2010-10-11 13:19:16 +00:00
Andreas Fabri 80e6d72509 Generalize name 2010-10-11 13:17:15 +00:00
Andreas Fabri ab087f138c Move implementation of Projection_traits from Triangulation_2 to Kernel 2010-10-11 13:15:20 +00:00
Laurent Rineau 5b22e449e0 Kernel::Compare_distance_[23] with three objects, similar to
compare_distance_to_point, but with any object types
2010-10-11 11:10:32 +00:00
Christian Helbling 837409ebdc adding compare_lexicographically for Point_2 and Point_3 to improve compatibility with Point_d 2010-09-20 12:30:45 +00:00
Sylvain Pion 9d9b178cb7 Optimize solve().
before : 22 +, 48 *, 3 /
after  : 14 +, 24 *, 3 /
It might even be slightly more stable numerically.
2010-08-27 21:27:07 +00:00
Laurent Rineau 351c3233be - Deprecate operator()(T1, T2, T3, T4) of Kernel::CompareSquaredDistance_[23]
and move it to Kernel::CompareDistance_[23].
- Add CGAL::compare_distance(T1, T2, T3, T4).

(Test suite OK.)
2010-08-03 14:22:25 +00:00
Sylvain Pion 8bd3dce0e2 Replace typedefs Exact_predicates_[in]exact_constrictions_kernel by Epick and
Epeck to shorten error messages, mangling...
2010-07-27 14:16:39 +00:00
Laurent Rineau 665c0ea8c1 Kernel::Compare_Squared_distance_[23]::operator() has now the following
overloads:

  template <typename T1, typename T2> 
  Comparison_result 
  operator()(T1, T2, Kernel::FT);

and 

  template <typename T1, typename T2, typename T3, typename T4> 
  Comparison_result 
  operator()(T1, T2, T3, T4); // compare distances |t1, t2|^2 and |t3, t4|^2.

Before that revision, the types T_i were hardcoded to Kernel::Point_3
without any reason.

And Kernel::Compare_Squared_distance_2 and
Kernel::Compare_Squared_distance_3 now have the same implementation, and
almost the same documentation (but the set of admitted input types). The
implementations could even have been factorized.

(The Kernel_23 testsuite passes on Linux, as well as the doc_tex testsuite.)
2010-06-30 12:19:54 +00:00
Laurent Rineau a97730f073 Move Compare_squared_distance_[23] from Cartesian and Homogeneous to
Kernel_23: their implementation were identical.
2010-06-30 10:04:49 +00:00
Sébastien Loriot 2a1e9fe728 vertex function of triangle use Has_qrt
add specialization of Qualified_result_of for Iso_cuboid

(added because I needed to have const ref on triangle points)
2010-06-22 07:17:59 +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
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
Sébastien Loriot 86d9865f2e add operator() with one point to compare_squared_radius functor 2009-10-13 08:34:43 +00:00
Stéphane Tayeb 8dceee4164 Add include<CGAL/assertions.h> in *_assertion files. 2009-10-07 13:16:13 +00:00
Stéphane Tayeb 770492c1c7 Use new version of script create_assertions.sh to generate *_assertions.h files.
Diffs are:
 * #undef added
 * in old files, (void)0 is replaced by static_cast<void>(0)
 * in old files, lines as "#  define CGAL_xxx_assertion 1" are added
 * in point_set_processing_assertions.h, surface_mesh_parameterization_assertions.h, surface_reconstruction_points_assertions.h, "|| defined(CGAL_NDEBUG)" is replaced by "|| defined (NDEBUG)"
 * protective macros (if any) are removed
 * included files if any (<CGAL/assertions.h>, <CGAL/trace.h>) are removed
2009-10-07 07:49:44 +00:00
Laurent Rineau e896a33ec6 We must either:
- include <CGAL/config.h>
  - or not use CGAL_BEGIN_NAMESPACE.
I prefer the second option.
2009-08-27 14:54:01 +00:00
Laurent Rineau 4a383b3197 In Compare_dihedral_angle_3, add the comparison between the dihedral angle
defined by four points (or three vectors), and a FT. The FT represents the
cosine of the angle.

The code passes the testsuite. Documentation coming...
2009-08-26 11:31:51 +00:00
Laurent Rineau a210c87658 Let's use v.squared_length() instead v*v. 2009-08-25 15:48:33 +00:00
Laurent Rineau 09c4682e0b Typo: s/cosinus/cosine/.
(Thanks to Sylvain for his review of my patch r51491.)
2009-08-25 15:26:08 +00:00
Laurent Rineau 146aa66bca Remove commented code. 2009-08-25 14:58:19 +00:00
Laurent Rineau 22798366ad Add a new predicate in the Kernel: Compare_dihedral_angle_3. 2009-08-25 14:48:41 +00:00
Sylvain Pion 8573fe26ce Rename CGALi to internal. 2009-08-24 17:10:04 +00:00
Laurent Rineau b9fcb4ff62 Revert that change:
-----------------------------------------------------------------
   | New Revision: 51399
   | Author: lrineau
   | Date: 2009-08-21 16:01:46 +0200 (Fri, 21 Aug 2009)
   |  
   | Log message:
   |  
   | Add a CGAL_kernel_assertion_code, in
   | Construct_circle_2::operator()(Point_3, Point_2, Point_2), to avoid some
   | unneeded calculus to be performed when NDEBUG is defined.
   -----------------------------------------------------------------
2009-08-24 09:52:55 +00:00
Laurent Rineau b0b7c5b629 Add a CGAL_kernel_assertion_code, in
Construct_circle_2::operator()(Point_3, Point_2, Point_2), to avoid some
unneeded calculus to be performed when NDEBUG is defined.
2009-08-21 14:01:46 +00:00
Sébastien Loriot 7e00f2fa49 remove warning uninitialized int (approved by RM) 2009-07-09 08:20:52 +00:00
Andreas Fabri a89ffb7be3 Add squared radius for a point to make kernels model of the alpha shape traits class 2009-07-07 10:33:38 +00:00
Sébastien Loriot ed59e89ad6 correct has_on pb 2009-06-26 14:14:54 +00:00
Sébastien Loriot b65aa72c49 has_on circle for plane_3 2009-06-25 05:55:14 +00:00
Sébastien Loriot 7537bdbeab add documented has_on for point and circle on a sphere 2009-06-24 16:26:17 +00:00
Sylvain Pion da8f43f45f Mark most one-argument constructors explicit. 2009-05-09 16:08:19 +00:00
Sylvain Pion f0ed774e37 Move CGAL::array to namespace CGAL::cpp0x, like tuple. 2009-04-30 14:03:52 +00:00
Andreas Fabri 9b6425f55c Forward argument 'orientation' 2008-12-08 14:47:16 +00:00
Andreas Fabri bde0aee592 In deep derivation hierarchies VC8 has problems when we use the same name for a template parameter at several hierarchy levels, so we rename it here 2008-10-21 12:29:38 +00:00
Pedro Machado Manhaes de Castro a65aceddf2 radical line as well 2008-10-20 14:44:37 +00:00
Sylvain Pion 4aa1cb057a Remove my email adress from header files. 2008-10-11 20:21:08 +00:00
Pedro Machado Manhaes de Castro 5a40803e35 Fixing has_on member function of Circle_3 2008-10-06 10:31:28 +00:00
Pedro Machado Manhaes de Castro 8960a3dd58 Some forgotten operators on functors for Circle_3 2008-10-02 16:31:35 +00:00
Pedro Machado Manhaes de Castro 759a865e5a member functions on Circle_3 2008-10-02 16:21:54 +00:00
Pedro Machado Manhaes de Castro a8647958ae member functions on Circle_3 2008-10-02 16:19:04 +00:00
Pedro Machado Manhaes de Castro 7b44979a90 Convention to allow Circle_3 c = Circle_3(p1, p2, p3); Sphere_3 s = c; Plane_3 p = c; 2008-09-16 13:04:08 +00:00
Pedro Machado Manhaes de Castro 642a419079 Is_degenerate_3 functor for Circle_3 2008-09-16 12:48:45 +00:00
Pedro Machado Manhaes de Castro 0ce9d35d32 Construct_supporting_plane => Construct_plane, Construct_diametral_sphere => Construct_sphere 2008-09-16 12:45:08 +00:00
Sylvain Pion 4c79d1d5cf Rename Bool_type to Boolean. 2008-08-26 13:40:26 +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 7d5dda0438 Propagate Uncertain-ty. 2008-08-22 15:22:00 +00:00
Sylvain Pion 2f0abc4b6f Move CGAL::Object from Kernel_23 to STL_Extension. 2008-07-29 15:26:38 +00:00
Sylvain Pion 0a76cd42f7 Remove the deprecated linear kernel functors Construct_supporting_line_2 and
Construct_supporting_line_3.  (they were deprecated in 2004).
2008-07-28 16:07:28 +00:00
Sylvain Pion 91ded52d27 Replace Sixtuple and Fourtuple by boost::array in Bbox_[23]. 2008-07-25 09:50:56 +00:00
Pedro Machado Manhaes de Castro 65e7bd6974 Cleaning stuffs temporarily 2008-07-24 13:13:12 +00:00
Michael Hoffmann 8dd4cd38ca Remove functional_base include. 2008-07-23 14:50:58 +00:00
Sylvain Pion d52770ff46 Add missing new typedefs 2008-07-22 14:04:17 +00:00
Sylvain Pion 79864c0c8e Remove Arity_tag. 2008-07-22 12:29:01 +00:00
Pedro Machado Manhaes de Castro e8663963f2 Constructing a Circle_3 passing through three points p, q, r 2008-07-17 14:08:50 +00:00
Pedro Machado Manhaes de Castro 66b2705068 Changing Licenses from QPL to LGPL 2008-07-17 12:02:29 +00:00
Sylvain Pion 173ef7c590 Allow propagation of Uncertain-ty in more places, to reduce the number of exceptions.
- Use K::Bool_type, K::Orientation... instead of bool, CGAL::Orientation...
- More functions around Uncertain<> : make_certain(), extract_singleton(),
                                      possible conversions tightenning.

Many conversions still remain, e.g. for switch and if statements, &&, ||...
2008-07-16 13:45:13 +00:00
Sylvain Pion 2eb0d8f9e9 certainly() -> possibly(). 2008-07-14 11:16:41 +00:00
Sylvain Pion 32a9d86ec2 Fix header inclusion order problem by #including <CGAL/config.h> instead of <CGAL/basic.h>.
Really: <CGAL/basic.h> should go away!
2008-07-12 21:09:38 +00:00
Sylvain Pion 9d7a609ff2 Make assertions trigger an error only for *certain* conditions (using CGAL::certainly()).
This is useful for interval arithmetic code.
(replay of r44002 with the header order hopefully fixed)
2008-07-10 21:49:17 +00:00
Sylvain Pion 2b4ebf01f7 Undo r44002 as it's buggy 2008-07-06 20:47:29 +00:00
Sylvain Pion 514a17ad4f Improve the interaction of assertions and interval computations.
Things like "CGAL_assertion(denominator != 0)" produced assertion failures for no gain.
So now, the assertion is triggered only if the condition is certain, using CGAL::certainly().
That is, change the following in all assertion files :
  ((EX)?(static_cast<void>(0)): ::CGAL::assertion_fail( # EX , __FILE__, __LINE__))
to :
  (CGAL::certainly(EX)?(static_cast<void>(0)): ::CGAL::assertion_fail( # EX , __FILE__, __LINE__))
2008-07-06 17:05:47 +00:00
Pedro Machado Manhaes de Castro 4527058121 Fixing Lazy for Circle_3 2008-06-26 14:26:49 +00:00
Pedro Machado Manhaes de Castro 60e14a495e Changed the typedef for Sphere_3 of Circle_3 from private to public temporarily so the stuffs of Sebastien (in Circular_kernel_3, Circular_arc_3 with reference sphere) keep working. 2008-06-09 16:16:44 +00:00
Pedro Machado Manhaes de Castro 95699dc3a6 Fixing Dimension Tags for Circle_3 2008-06-05 08:40:13 +00:00
Pedro Machado Manhaes de Castro 0061696f17 missin Circle_3 itself 2008-06-04 16:32:43 +00:00
Pedro Machado Manhaes de Castro 69c2b4d186 add radical_plane 2008-06-04 09:04:45 +00:00
Pedro Machado Manhaes de Castro 5cf2eb63cd fixing the 03/06/2008 red mosaic 2008-06-04 07:52:01 +00:00
Pedro Machado Manhaes de Castro fc45f43179 Adding Circle_3 object to the Kernel. 2008-06-03 12:17:16 +00:00
Andreas Fabri b997c33952 Added compare_squared_radius, its functor, doc, testsuite 2008-05-28 14:25:42 +00:00
Sylvain Pion 74db076d75 Remove too simplistic Intel compiler workaround, as it breaks
with the Intel compiler on Linux.  If it's still needed,
a *proper* workaround should be put in place instead.
2008-05-21 13:48:05 +00:00
Sylvain Pion 0ba9bfbca4 Move that preliminary stuff to internal CGAL::Access namespace. 2008-04-17 14:43:41 +00:00
Sylvain Pion 7eeb87cf71 Add a Dimension typedef to the d-dim kernels.
Swap the order of the arguments of the Point<2, K> so that there can be a default for the dimension.
2008-04-17 14:02:06 +00:00
Sylvain Pion 55d538b335 "Ambient" is not spelled "Ambiant" in English... 2008-04-17 10:13:31 +00:00
Sylvain Pion bbd100121b Add barycenter computation. 2008-04-15 15:13:17 +00:00
Sylvain Pion 4477a9d986 Updates after the new d-dim stuff changes. 2008-04-15 13:53:58 +00:00
Sylvain Pion 2389cdcc1e Dimension detecting stuff rewrite.
There is now Ambiant_dimension and Feature_dimension.
The handling of the dynamic dimension case is now done by having
the di,ension tag as the first thing provided, with the integral
constant value available only when it makes sense (INT_MAX no longer needed).
2008-04-13 12:38:48 +00:00
Sylvain Pion 4416bee3de Move all Handle* classes to STL_Extension. There's no geometry in them,
so the kernel is not the most appropriate place for them.
2008-04-12 10:38:07 +00:00
Sylvain Pion 02e543a294 Add Dimension<T, K> whose nested "value" is the dimension of the ambiant
space.  A special constant CGAL::Dynamic_dimension (equal to INT_MAX)
indicates the case where the dimension is only known at run time.
2008-04-11 21:03:22 +00:00
Sylvain Pion aad1552b8a Add Dimension_tag<int dim> to help dispatching functions depending
on the dimension.
2008-04-11 19:29:30 +00:00
Sylvain Pion ef71559164 Remove the Kernel Concept Archetypes. 2008-04-11 19:26:21 +00:00
Sylvain Pion 4873e53de2 Move:
<CGAL/Kernel/Cartesian_coordinate_iterator_2.h>
  <CGAL/Kernel/Cartesian_coordinate_iterator_3.h>
To:
  <CGAL/Filtered_kernel/Cartesian_coordinate_iterator_2.h>
  <CGAL/Filtered_kernel/Cartesian_coordinate_iterator_3.h>
2008-04-09 18:06:00 +00:00
Sylvain Pion 11bbf3e2de Vector_2 and Vector_3 now also provide a Cartesian_const_iterator. 2008-04-09 17:58:57 +00:00
Sylvain Pion 1d8779b171 Rename the following functions:
det2x2_by_formula
  det3x3_by_formula
  det4x4_by_formula
  det5x5_by_formula
  det6x6_by_formula
to:
  determinant

How cute...  a name independent of the dimension, and even readable !
2008-04-09 13:35:34 +00:00
Sylvain Pion b740e90de0 Rename the following functions:
sign_of_determinant2x2
  sign_of_determinant3x3
  sign_of_determinant4x4
  sign_of_determinant5x5
  sign_of_determinant6x6
to:
  sign_of_determinant

So that we have less dimension-dependent namings, at least internally...
2008-04-09 12:20:25 +00:00
Sylvain Pion 54648829af Merge <CGAL/functions_on_enums.h> into <CGAL_enum.h>.
No need to have 2 separately documented headers for that.
2008-03-20 16:39:56 +00:00
Andreas Fabri 7f258ba048 Added functors to archetype kernel 2008-01-19 15:11:50 +00:00
Andreas Fabri a322da0f0e Added preconditions and made it more efficient 2008-01-18 13:42:39 +00:00
Andreas Fabri e1f07a4bde Added normal and unit_normal function ans functors 2008-01-18 12:56:56 +00:00
Sylvain Pion 06109ce606 Add <CGAL/basic.h> header. 2008-01-12 20:15:41 +00:00
Sylvain Pion 79f8bea447 Update following the enum types merge of 3.3.
(this file is unused, so it was undetected before, I nevertheless keep it, as it is cute)
2008-01-11 22:56:35 +00:00
Sylvain Pion a582e0979f Add missing includes. 2008-01-11 22:09:24 +00:00
Sylvain Pion d49e006c53 Remove default argument "0" to calls to assertion_fail() et al,
as the default is now the empty string "".
It should fix the problem that we have lost the assertion messages
(seeing "what():  basic_string::_S_construct NULL not valid" instead),
for packages that use package-specific assertion macros.
2007-12-21 21:58:27 +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 90b39fe156 Replace abort() by CGAL_assertion*. 2007-11-05 10:08:04 +00:00
Sylvain Pion e05221ceef Iso_cuboid_3::transform had been dropped when doing shuffles for the Lazy_kernel. 2007-10-31 19:31:24 +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
Sylvain Pion e06d15e64e Fix bug #3850: add missing #include <CGAL/Bbox_2.h>. 2007-08-23 08:57:12 +00:00
Sylvain Pion 4f1170dcc4 Keep Bbox_3 and Bbox_2 in sync, and add missing documentation
for : dimension(), min(), max(), operator==, operator!=.
2007-08-22 12:12:48 +00:00
Sylvain Pion a90de08bf3 Remove obsolete config flag CGAL_CFG_MATCHING_BUG_4 and its dependency CGAL_WRAP. 2007-08-08 15:15:20 +00:00
Sylvain Pion 79eb2c8ffa Remove unused parameters. 2007-04-17 22:09:34 +00:00
Sylvain Pion bda89ba1d6 Use CGAL_CFG_DEDUCABLE_CONTEXT_BUG to partially (but most probably sufficiently)
work around SunCC bug.
2007-03-30 17:18:22 +00:00
Andreas Fabri e38380c619 workaround for Intel 9 2007-03-17 18:29:25 +00:00
Andreas Fabri b0a58d5601 removed unused parameters 2007-03-17 09:51:49 +00:00
Michael Hemmer 47107d399e include of proper CORE::Expr support file : CGAL/CORE_Expr.h 2007-03-15 10:47:09 +00:00
Joachim Reichel 4f47903a25 moved src/Core to src/CGALCore
moved include/CORE to include/CGAL/CORE
moved include/OpenNL to include/CGAL/OpenNL
renamed libcore++ to libCGALcore++
2007-03-13 18:10:39 +00:00
Andreas Fabri bf08f44f3c undo of change for Intel 9 2007-03-13 08:50:41 +00:00
Andreas Fabri 6def599d5b help Intel 9 2007-03-12 18:18:37 +00:00
Sylvain Pion 21ae09f184 remove g++ 4.3 warning 2007-03-06 15:11:09 +00:00
Sylvain Pion dc16641bec remove warnings 2007-03-03 08:56:34 +00:00
Sylvain Pion b760147492 remove empty first lines 2007-02-16 09:36:28 +00:00
Andreas Fabri 49df0a4603 Removed template member function. It is not clear why it is needed and causes trouble for the Circular_kernel_3 testsuite for VC++ 2007-02-01 16:18:38 +00:00
Sylvain Pion 1ec1875a01 Add missing #include <CGAL/representation_tags.h>. 2007-01-23 15:43:06 +00:00
Sylvain Pion 70b3bee5af Move 3D .bbox() to the functors to make Lazy_kernel pass, and enhance the test-suite to test .bbox() 2006-12-27 23:26:06 +00:00
Andreas Fabri 0be85d575d The direction must be != 0 in the constructor of the rotation 2006-12-17 22:28:35 +00:00
Sylvain Pion bd1e8bfc3a Add operator[] in Point_3 (and test it). 2006-11-23 12:56:55 +00:00
Andreas Fabri 07658cbdc8 remove comment for workaround for VC++ 2006-11-06 12:05:36 +00:00
Andreas Fabri cea0f3bbf1 workaround for VC++ 2006-11-06 10:18:16 +00:00
Sylvain Pion 14c04ed337 Sneak in Lazy_kernel without anyone noticing. 2006-10-27 19:01:33 +00:00
Andreas Meyer e9e8387260 merged changes from CGAL_with_EXACUS branch into trunk.
revisions used: 
(1) 32995:34537 
(2) 34538:34906
2006-10-24 15:21:25 +00:00
Sylvain Pion fbe285ca94 New predicates :
compare_squared_distance(Point_[23], Point_[23], FT), with
  CompareSquaredDistance_[23] functors.
2006-10-24 05:24:31 +00:00
Andreas Fabri 1cdfe0a29b Added a circle constructor with two points and bulge 2006-09-01 13:25:52 +00:00
Andreas Fabri 0b94820931 fixed min/max problem 2006-08-16 21:29:43 +00:00
Sylvain Pion ed36e763c7 Second part of Return_base_tag changes. 2006-08-16 16:38:49 +00:00
Sylvain Pion 2eb12d7441 - First part of introduction of Return_base_tag workaround for lack
of "forwarding constructors".
  Quoting some comment in the code:
  "
    This is a simple tag which is used as additional (first) argument in
    some kernel functors, to tell them to return the base (rep) class,
    instead of the main type (e.g. Kernel_base::Point_2 instead
    of Kernel::Point_2).  This is a minor optimization which prevents
    useless copies of the "reps".

    Those functors are only those used in the constructors of the kernel
    types like Point_2, so it's limited.

    The real solution will be to use "forwarding constructors", when they
    will be available in C++.
    In the mean time, this should be a mostly/hopefully internal hack.
  "
2006-08-16 14:56:11 +00:00
Andreas Fabri 6830557518 fixed min/max problem 2006-08-16 14:08:44 +00:00
Sylvain Pion daee2152ec Make the return type of the function operator() of the
Construct_point_2 functors be the Rep class (the base).
This avoids conversions Rep -> Point_2 -> Rep, hence
useless copies of objects.
The result_type of the functors does not change
(we therefore return a type which is only convertible
to result_type, but hopefully this is fine, and what standard
requirements on functors are anyway).
A real fix for this would require the language addition of
"forwarding constructors".
2006-08-11 11:48:16 +00:00
Sylvain Pion ef72d8ae7e Remove the .rep() as they are useless since there is the automatic base class conversion (and see next change) 2006-08-11 11:36:01 +00:00
Sylvain Pion cb4d5597bf Add BOOST_STATIC_ASSERT() to check that CGAL::Point_2<R>
is only instantiated when R::Point_2 is itself.
2006-08-11 10:23:23 +00:00
Sylvain Pion 629c1dfddd Ray_2.is_degenerate() was buggy. 2006-08-11 09:01:12 +00:00
Andreas Meyer 68c3715b5c support for LEDA 5.x (mostly done by Eric Berberich) 2006-08-10 15:14:32 +00:00
Sylvain Pion 7ab36784b9 Merge the various constructors into a template to avoid ambiguities 2006-08-08 08:24:09 +00:00
Sylvain Pion c50783f08f Bad luck: "equi-distant" -> "equidistant" (thanks Andreas). 2006-08-07 16:11:40 +00:00
Sylvain Pion 38853d1b10 - Optimize equi_distant_line() by merging the calls to
circumcenter() and cross_product().
- Add ctors to Point_[23] and Vector_[23] that take
  int, double, and FT coordinates, instead of only RT.
2006-08-07 15:57:40 +00:00
Sylvain Pion 12838a204a - Add a distinguishing "int" template parameter
to First_if_different, defaulting to 0, which
  allows to differentiate it in places where it's
  needed.
2006-08-07 15:18:21 +00:00
Sylvain Pion cb6639b85a Introduce wmult_hw(), a new abstraction for Homogeneous/Cartesian,
similar to wmult(), for calls .hw() on the last argument
(i.e., does absolutely nothing in the Cartesian case).
2006-08-07 12:34:24 +00:00
Sylvain Pion cd1cdd3188 Add missing #include. 2006-08-06 22:12:05 +00:00
Sylvain Pion cc7624fa5c Last bunch of I/O changes to alloz Lazy_kernel to pass the kernel-I/O test-suite. 2006-08-06 16:37:35 +00:00
Sylvain Pion 5d3ca03180 You believed this could be something else ? : Move Plane_3 I/O to user class level 2006-08-06 16:06:39 +00:00
Sylvain Pion 812a7c8cbd You guessed right : Move Tetrahedron_3 I/O to user class level 2006-08-06 15:59:24 +00:00
Sylvain Pion 02414e55f0 Guess what : Move Iso_cuboid_3 I/O to user class level 2006-08-06 15:55:58 +00:00
Sylvain Pion e6f5182e7a Move Triangle_3 I/O to user class level 2006-08-06 15:50:48 +00:00
Sylvain Pion 38c91de538 Move Ray_3 I/O to user class level 2006-08-06 15:45:55 +00:00
Sylvain Pion cce78c4286 Move Line_3 I/O to user class level 2006-08-06 15:40:06 +00:00
Sylvain Pion ac192e33ec Move Segment_3 I/O to user class level 2006-08-06 15:35:57 +00:00
Sylvain Pion 3634f311e2 Move Direction_3 I/O to user class level 2006-08-06 15:29:08 +00:00
Sylvain Pion ab88a8e595 Move Vector_3 I/O to user class level 2006-08-06 15:18:37 +00:00
Sylvain Pion ef0f5d103f Move Triangle_2 I/O to user class level 2006-08-05 23:31:09 +00:00
Sylvain Pion 45e65df64c Move Ray_2 I/O to user class level 2006-08-05 23:18:30 +00:00
Sylvain Pion aa9fb702a0 Move Segment_2 I/O to user class level 2006-08-05 23:04:36 +00:00
Sylvain Pion eb4be2820d Move Direction_2 I/O to user class level 2006-08-05 22:55:06 +00:00
Sylvain Pion 0e7340c184 Move Vector_2 I/O to user class level 2006-08-05 22:34:47 +00:00
Sylvain Pion 48390a019a Move Sphere_3 I/O to user class level. 2006-08-05 22:17:02 +00:00
Sylvain Pion c9de727dd2 New construction equi_distant_line(3 Point_3), with functor. 2006-08-04 15:03:16 +00:00
Sylvain Pion fcbacc1284 Have squared_distance(Point_3, Point_3) call its functor. 2006-08-04 12:41:56 +00:00
Sylvain Pion c7f1f68b40 Move Point_3 I/O to user class level. 2006-08-04 12:08:14 +00:00
Sylvain Pion f4be5b9920 Add overloads of circumcenter() taking only 2 Point_2 (or Point_3),
that is, the same thing as midpoint(), but with a uniform notation.
Same thing for the corresponding functor.
2006-08-03 17:07:39 +00:00
Sylvain Pion ea748e53d4 Add new constructor to Iso_rectangle_2(Point_2, Point_2, int).
The additional dummy "int" specifies that the 2 points are
the lower-left and upper-right corner.  This is more efficient
when one knows they are already in this configuration.

Same thing for Iso_cuboid_3, and the functors.

Use them in Cartesian_converter and Homogeneous_converter.
2006-08-03 09:40:12 +00:00
Sylvain Pion 64d8c5e77a - Remove blanks at end of line
- Make Assign_[23]::result_type be bool instead of K::Bool_type.
  (it can't be Uncertain<bool>).
2006-08-03 08:40:47 +00:00
Sylvain Pion f84245c8d1 Add determinant() to the kernel archetype as well... 2006-08-02 19:14:03 +00:00
Sylvain Pion 6ee4e656e7 Add determinant(Vector_2, Vector_2)
Add determinant(Vector_3, Vector_3, Vector_3)
And corresponding functor.
2006-08-02 18:57:40 +00:00
Sylvain Pion 540406f767 Rename FT -> RT. 2006-08-02 18:19:18 +00:00
Andreas Meyer d72148ffdb bugfix for g++-3.3 : added missing #include <CGAL/Kernel/mpl.h>
( strange: for g++-3.4/4.x, there was no problem ... )
2006-08-02 16:54:57 +00:00
Sylvain Pion 7b120847c9 Do_intersect_3 is a predicate, not a construction. 2006-08-02 12:17:19 +00:00
Sylvain Pion b69dd83c5f Use CGAL_Kernel_obj. 2006-08-02 11:43:40 +00:00
Sylvain Pion 18b1d37259 Add a macro CGAL_Kernel_obj(X) in the same spirit
as CGAL_Kernel_pred(X,Y) and CGAL_Kernel_cons(X, Y),
but which lists all kernel objects (Point_2...).
2006-08-02 11:36:26 +00:00
Sylvain Pion b7614eee4e More code move towards user classes, and improve 3D support for LazyK. 2006-08-02 11:23:56 +00:00
Sylvain Pion a63e4909f9 Move some Vector_3 functions to user class level. 2006-08-02 08:32:23 +00:00
Sylvain Pion 91faa1fff3 Remove spurious comma triggering a warning with sunpro 2006-08-01 21:29:53 +00:00
Sylvain Pion 38956c9b10 Move yet another bunch of code to user classes... 2006-08-01 16:15:07 +00:00
Sylvain Pion ca7ca6c0bc More code move to user classes. 2006-08-01 15:39:37 +00:00
Sylvain Pion 4408fa1c2a More code move to user classes. 2006-08-01 14:10:09 +00:00
Sylvain Pion a04f166f1f - Move more code to the "user classes". 2006-08-01 13:17:03 +00:00
Sylvain Pion cbd6fc9417 Move .transform() in the 3D user classes.
Move some functions in the 3D user classes instead of the internal
 rep classes.
2006-08-01 12:09:47 +00:00
Sylvain Pion 04b834db9a Move .transform() functions to the "user classes" level. 2006-08-01 09:08:28 +00:00
Sylvain Pion 0c5460ccfa - Have free operator== and != call the Equal_3 functor for 3D kernel objects.
- Introduce .rep() in 3D kernel objects.
2006-08-01 07:56:38 +00:00
Sylvain Pion 5db77ed5d1 Add Compare_yx_2 functor to the kernel archetype. 2006-07-31 22:59:54 +00:00
Sylvain Pion ead2e93fdb - Add missing functor for compare_yx(). 2006-07-31 16:22:08 +00:00
Andreas Fabri fafaa14fc1 Fixed min max problem 2006-07-30 13:06:56 +00:00
Menelaos Karavelas 213aad8fc2 removed specializations of Pairify for Comparison_result and
Oriented_side; they are now taken care of by that of Sign.
2006-07-21 11:21:56 +00:00
Menelaos Karavelas d1862ff4de in Enum_converter: removed (dummy) conversions for Oriented_side and
Comparison_result; they should be taken care of by the conversion for
Sign, now that Sign, Oriented_side and Comparison_result are the same
type.
2006-07-18 09:36:56 +00:00
Christophe Delage ff123ee544 - typedefed Oriented_side and Comparison_result to Sign
- added unary - and binary * operators for Sign
2006-07-18 07:01:03 +00:00
Sylvain Pion 45bfd07a83 Remove some #include <CGAL/Arithmetic_filter/...> (Filtered_exact stuff). 2006-07-12 12:03:52 +00:00
Efi Fogel d083fa1323 renamed Bool to Bool_type to avoid a conflict between a macro of the same name defined in Xlib.h 2006-06-13 14:35:40 +00:00
Andreas Fabri 02497d2b97 Removed the general operator in Equal_2 2006-04-20 08:32:23 +00:00
Marc Glisse b13e3b5ec0 Last round of missing std:: before 3.2 (Andreas permission) 2006-04-19 16:56:12 +00:00
Laurent Saboret 312353dd51 Global fix of svn:executable property in trunk 2006-04-14 15:07:17 +00:00
Laurent Saboret db6a8f948c Change CVS keywords to SVN style 2006-02-16 14:30:13 +00:00
Laurent Saboret 1aad55d4cb Change CVS keywords to SVN style 2006-02-14 10:08:15 +00:00
Laurent Saboret a0a9b777bc Move packages to trunk root 2006-02-14 08:58:16 +00:00