Commit Graph

227 Commits

Author SHA1 Message Date
Jane Tournois 56d733b254 Merge remote-tracking branch 'origin/Mesh_3-improvements-GF'
Several improvements of Mesh_3, including
- speedup of optimizers,
- make inexact_locate public in Triangulation_2 and Triangulation_3,
- compactify mesh_cell_base and mesh_vertex_base,
- fix of documentation,
- and more

Small feature :
https://cgal.geometryfactory.com/CGAL/Members/wiki/Features/Small_Features/Various_improvements_of_Mesh_3

Approved by the release manager.
2013-07-01 16:25:56 +02:00
Guillaume Damiand 6ba0055694 Trivial bug-fix qualified for master:
/Users/cgaltester/cgal_test/CGAL-4.3-Ic-71/include/CGAL/Triangulation_data_structure_2.h:1858:41: warning: unused parameter 'src' [-Wunused-parameter]
    Face_tgt operator()(const Face_src& src) const
2013-06-25 12:32:59 +02:00
Jane Tournois 404f2e0e3c merge 2013-06-21 10:01:19 +01:00
Sébastien Loriot 8d602ed8c2 Merge branch 'triangulation_3-copy_tds-sloriot'
Approved by the release manager

Conflicts:
	Alpha_shapes_3/test/Alpha_shapes_3/copy_tds.h
	Triangulation_2/doc/TDS_2/Concepts/TriangulationDataStructure_2.h

it introduces a more general copy_tds that allows to copy tds with different types of simplices.
2013-04-29 11:09:01 +02:00
Sébastien Loriot bb7f025512 more permissive copy_tds for compatible vertex types with the same point type 2013-04-19 08:44:45 +02:00
Sébastien Loriot 62fcc226b8 add a method to insert a range of points with info in cdt 2013-04-16 07:37:51 +02:00
Jane Tournois a9275d1a5b add default value for start of inexact_locate 2013-04-12 14:48:10 +02:00
Jane Tournois e023f42a51 make inexact_locate public also in Triangulation_2 2013-04-12 14:32:16 +02:00
Sébastien Loriot f9e0c97aac for convenience add a default to simple converter
it is useful if you want to copy the tds of a familly
alpha-shape into a fixed one
2013-04-11 20:03:32 +02:00
Laurent Rineau b6ffa7c425 Merge branch 'CGAL-fix_warnings-GF'
That branch was successfully tested in CGAL-4.2-Ic-205.
2013-03-27 12:23:31 +01:00
Laurent Rineau 6026df138a Fix mis-compilations of Triangulation_2 with -O3 -DCGAL_NDEBUG
With recent g++ versions, when -DCGAL_NDEBUG and -O3 was in the compilation
flags, my patch using 'CGAL_assume' triggered mis-compilation of cases
where the dimension() was 1, for all uses of the following pattern:

  CGAL_assume(i>=0 && i<= 1);
  [...] 1-i [...]

The fix is to use "(i==0)?1:0" instead.
2013-03-19 14:29:18 +01:00
Andreas Fabri 950e858555 remove unused parameters 2013-03-12 09:50:46 +01:00
Laurent Rineau ef37a934a6 Fix warning "_ri may be used uninitialized" 2013-02-27 19:35:56 +01:00
Laurent Rineau 403031ce7f Fix warnings 2013-02-27 18:21:24 +01:00
Andreas Fabri c7e68385be remove unused variables and #if 0 buggy non used code 2013-02-26 16:52:55 +01:00
Laurent Rineau 2d8da664a3 Merge branch 'CGAL-fix_warnings-gdamiand'
Conflicts:
	.gitignore
	Skin_surface_3/examples/Skin_surface_3/CMakeLists.txt
2013-02-22 13:02:37 +01:00
Laurent Rineau 66c5d23154 Use CGAL_assume to remove warnings 2013-02-20 18:55:43 +01:00
Sébastien Loriot e9e31dc6f3 remove unused file 2013-02-19 13:57:41 +01:00
Andreas Fabri 2740aa9c05 use size_type instead of int 2013-02-07 15:16:03 +01:00
Andreas Fabri c6dd56cf0f suppress a warning. The hypothetical problem cannot occur 2013-02-07 15:15:27 +01:00
Andreas Fabri 462ad57712 Remove a declaration without definition 2013-02-07 15:13:48 +01:00
Andreas Fabri b307771892 bug fix for natural_neighbor_coordinates_2 using a small feature in the conflict zone functions of Delaunay_triangulation_2 2013-01-08 12:34:37 +01:00
Philipp Möller 0f34f2a89e Merge branch 'Maintenance-include-less-boost-pmoeller' 2012-12-21 09:44:18 +01:00
Sébastien Loriot 41362b6b57 Merge branch 'triangulation_2-cstr_using_ranges' 2012-12-21 08:42:25 +01:00
Sébastien Loriot 84caad7137 using the regular triangulation filtered traits using flags in the kernel 2012-12-20 16:12:38 +01:00
Sébastien Loriot 59f9e8a778 add constructor from range for 2D Delaunay and Regular triangulation 2012-12-19 17:10:57 +01:00
Sébastien Loriot 09e42c760e fix source vertex and face types 2012-12-19 10:52:56 +01:00
Sébastien Loriot 853c658a18 add copy_tds with converter in TDS2 2012-12-19 10:15:03 +01:00
Philipp Möller 71ea8e6e22 Minimal boost includes
Replace type_traits.hpp and utility.hpp with the respective
fine-grained includes.
2012-12-14 18:13:59 +01:00
Laurent Rineau 96319a1365 reintegrate '^/branches/features/Triangulation_2_UseTraitsInHierarchy-GF' 2012-11-07 14:59:00 +00:00
Sébastien Loriot ef81760b85 macro renaming 2012-11-02 08:58:21 +00:00
Laurent Rineau ef5b895a93 merge from next 2012-11-02 08:49:12 +00:00
Sébastien Loriot 6ff851e791 macro renaming 2012-11-02 08:44:08 +00:00
Sébastien Loriot 6da5e9e84d unrecursive version of propagating_flip and propagate_conflicts
for CDT2 and DT2 using 100 recursive calls before switching to
a local stack in a function.
2012-10-30 13:16:52 +00:00
Sébastien Loriot 720244f8f8 apply the same choice as the one made in r73262 for CDT_2 2012-10-24 21:39:38 +00:00
Sébastien Loriot cd165546fc Remove all alternatives to propagating_flip to keep one that allow to use the call
stack for at most 100 recursive calls and switch to a non-recursive function
that uses a local std::stack to emulate the call stack.

Benchmarks show the following results:

7 runs on 10,000,000 random in unit circle points

43.67074 : Old implementation
43.91474 : use stack for 100 first call then non-recursive with stack
44.07075 : use stack for 100 first call then non-recursive with vector
44.57079 : Local vector
45.0068 : Local stack
45.87886 : Local fixed size array
46.3829 : Local "home-made" small vector
53.41534 : Thread-local vector
2012-10-24 21:35:17 +00:00
Sébastien Loriot a7b02bd716 merge experimental-packages/Triangulation_2-unrecursive 2012-10-24 09:26:32 +00:00
Sébastien Loriot 5c4ae5d477 windows mixes up Fb template parameter with nested Fb type from base class 2012-08-22 06:48:49 +00:00
Laurent Rineau db194534c7 First big patch to fix -Wunused-local-typedefs
-Wunused-local-typedefs is a new warning flag of gcc-4.7, and it will enabled
 by -Wall since gcc-4.8 (not yet released).

The fix is a big set of removals of unused typedefs (or comments, or moves,
depending on the context).
2012-08-01 13:29:16 +00:00
Marc Glisse a758751485 Remove / comment out unused local typedefs. Fix one place where FT was used instead of RT (homogeneous coordinates, probably never compiled). 2012-07-28 06:21:06 +00:00
Sébastien Loriot 3e750c6fd7 temporary hack to work around assertion 2012-07-17 12:08:49 +00:00
Laurent Rineau 49404f75f5 Improved patch
The Constraint_hierarchy is now templated by T, an anonymous type (that is
a Vertex_handle when the constraint hierarchy is used in Ct_plus_2), and a
Compare operator, that have a comparison member function:
  bool operator()(T, T);

In Ct_plus_2, the Compare operator passed to the Constraint_hierarchy
compares the vertices with a Less_xy_2, implemented by Less_x_2, and
Less_y_2.

The test test/Triangulation_2/include/CGAL/_test_cls_hierarchy_2.h has been
tweaked, to check that the type T passed in the hierarchy no longer needs
to have a point() member function, as it was before May 2010 (when GF has
determinized the Cdt_plus_2 using too simple patch).
2012-06-28 09:16:23 +00:00
Andreas Fabri 7cb640d05d The Constraint_hierarchy_2 gets an additional LessXY_2 functor as template argument so that it no longer applies operator<(Point,Point) 2012-06-25 10:11:56 +00:00
Philipp Möller 5f6b09c484 Fix types of loop counters to size_t. 2012-06-20 09:15:34 +00:00
Sébastien Loriot 19857458b6 deprecation warnings 2012-05-28 07:28:03 +00:00
Menelaos Karavelas 9201c1f2c3 implementation and documentation for the Rebind_vertex and Rebind_face small
feature of the TDS_2 concept.
The release manager has approved the commit directly into the next branch.
2012-05-24 14:07:56 +00:00
Laurent Rineau 95bec3999c Use Unique_has_map instead of std::map (patch from Andreas Fabri)
The gain on copies of T2 or T3 is the following:


afabri@klimt /cygdrive/c/cgal/next/Triangulation_3/benchmark/Triangulation_3
$ ./copy 1000000 2
36.806 sec

afabri@klimt /cygdrive/c/cgal/next/Triangulation_3/benchmark/Triangulation_3
$ ./copy 1000000 2
4.865 sec

The benchmarck copy.cpp is the following (not commited):

#define  CGAL_T3_HASH
#include <CGAL/Exact_predicates_inexact_constructions_kernel.h>
#include <CGAL/Delaunay_triangulation_3.h>
#include <CGAL/Timer.h>
#include <CGAL/point_generators_3.h>


#include <iostream>
#include <fstream>
#include <string>
#include <vector>

typedef CGAL::Exact_predicates_inexact_constructions_kernel  K;
typedef CGAL::Delaunay_triangulation_3<K> Delaunay;
typedef K::Point_3                                     Point;
typedef CGAL::Creator_uniform_3<double,Point>  Creator;



int main(int argc, char **argv)
{
  int n=1000000;
  int rep=100;
  if (argc>=2)
    n=atoi(argv[1]);
  if (argc>=3)
    rep=atoi(argv[2]);
  std::vector<Point> points;
  points.reserve(n);  
  CGAL::Random_points_in_sphere_3<Point,Creator> g(1);
  CGAL::copy_n( g, n, std::back_inserter(points));
  Delaunay original;
  original.insert(points.begin(),points.end());
  
  double res = 0;
  for (int r=0;r<rep;++r){
    CGAL::Timer t;    t.start();
    Delaunay delaunay=original;
    t.stop();
    res+=t.time();
  }

  std::cout << res << std::endl;
            
  return 0;
}
2012-03-30 12:37:19 +00:00
Sébastien Loriot 498c0a6e1e Make the insert-by-range function more permissive
The condition is now to be convertible to the point type, pair<point,info>,...
This was the behavior before the insert-by-range-with-info methods were
introduced.
2012-01-24 17:25:20 +00:00
Olivier Devillers 1eb0ad5c1b optimize 2012-01-24 16:24:56 +00:00
Olivier Devillers 8722c292d7 replace inexact_locate by has_inexact_negative_orientation 2012-01-24 09:45:13 +00:00