Commit Graph

230 Commits

Author SHA1 Message Date
Laurent Rineau 96162627aa Merge the following small features in trunk:
https://cgal.geometryfactory.com/CGAL/Members/wiki/Features/Small_Features/Remove_cluster
  https://cgal.geometryfactory.com/CGAL/Members/wiki/Features/Small_Features/Structural_filtering

Merge also a partial support of:
  https://cgal.geometryfactory.com/CGAL/Members/wiki/Features/Small_Features/Rt::vertices_inside_conflict_zone
    (vertices_inside_conflict_zone" is added in Regular_triangulation_3,  without documenting it)
2010-12-10 17:02:10 +00:00
Sébastien Loriot dfa20899ef derecursion of create_star_3:
I remade a benchmark and finally when using boost::thread_specific_ptr,
using a std::vector is faster than the dedicated vector-class I previously
use.
I also retry using a tuple instead of a dedicated class to store variables
useful for the emulated recursion but tuple is (on my machine) slower.

benchmark results are the following (points are randomly taken in a sphere,
time is in seconds and is the mean of 10 idendical runs)

nb points              |   1000        100000    100000    1000000   10000000
-----------------------------------------------------------------------------
trunk version          | 0.0088       0.0928     0.9865    10.216     102.99 
with vector            | 0.0096       0.0900     0.9817    10.075     102.24 
with vector and tuple  | 0.0100       0.0948     0.9981    10.219     104.58 
recursive version      | 0.0080       0.0936     0.9732    10.141     102.33
2010-11-24 07:27:04 +00:00
Laurent Rineau 77a2bead80 Add missing svn properties (keywords and eol-style). 2010-09-20 12:12:46 +00:00
Stéphane Tayeb ca4f9f11e8 Add an overload of insert_in_hole() in class Regular_triangulation_3 to ensure that hidden points are properly treated. 2010-08-04 15:36:38 +00:00
Sylvain Pion 8bd594a8be Simplification : the case dim==1 should work for dim==0 as well. 2010-07-27 12:55:09 +00:00
Sylvain Pion fdd4243639 nearest_vertex_in_cell() : handle dimension == 0. 2010-07-27 12:48:53 +00:00
Sébastien Loriot 599b23129e missing using 2010-07-08 09:04:57 +00:00
Stéphane Tayeb 771b6f1b79 Fix bug on g++-4.5 -std=c++0x: use int[3] instead of unsigned char[3] to store vertex indices. 2010-07-07 11:26:48 +00:00
Sébastien Loriot 9567810ef8 add macro CGAL_TDS_USE_OLD_CREATE_STAR_3 in TDS_3.h so that user can
still use the old recursive version of create_star_3.
2010-06-28 14:06:14 +00:00
Sébastien Loriot 238f5a8479 change a private into protecter to have access to hidden_tester in derived class
add a using find_conflicts so that can call T3 version from class inheriting from DT or RT
2010-06-25 21:13:06 +00:00
Sébastien Loriot bb39c7d194 bug in Facet_extractor: missing * and ++ 2010-06-25 12:58:37 +00:00
Laurent Rineau 0625b6c6bd int -> std::size_t|size_type 2010-06-24 13:27:44 +00:00
Andreas Fabri 1e12152c5f int size_t fixes 2010-06-24 12:50:37 +00:00
Andreas Fabri d185e4152f Finally use ptrdiff_t as return type for insert(beg, end) 2010-06-23 13:35:35 +00:00
Andreas Fabri b456cdb994 int -> size_type/std::size_t 2010-06-21 20:31:19 +00:00
Andreas Fabri 97c2754da5 As the insertion of points in a regular triangulation can reduce the number of vertices we have to replace size_t with ptrdiff_t 2010-06-21 16:06:01 +00:00
Andreas Fabri f555a82e17 int -> size_type/std::size_t 2010-06-21 14:16:24 +00:00
Andreas Fabri c79a1ebbf6 int -> size_type/std::size_t 2010-06-21 14:12:02 +00:00
Laurent Rineau 8679a3911e Merged revisions 56835,56864-56870,56876,56895-56897 via svnmerge from
svn+ssh://lrineau@scm.gforge.inria.fr/svn/cgal/branches/CGAL-3.6-branch

........
  r56835 | lrineau | 2010-06-17 12:56:52 +0200 (Thu, 17 Jun 2010) | 6 lines
  
  Remove the constructor Gmpfr(long double) on Microsoft Visual C++. A big
  comment in the source code explains why.
  
  The testsuite will check that the construction of Gmpfr from a long double
  on MSVC still works and produces the right Gmpfr.
........
  r56864 | afabri | 2010-06-18 11:04:47 +0200 (Fri, 18 Jun 2010) | 1 line
  
  Use tie from boost::
........
  r56865 | afabri | 2010-06-18 11:11:49 +0200 (Fri, 18 Jun 2010) | 1 line
  
  Use bind from boost::
........
  r56866 | afabri | 2010-06-18 11:38:50 +0200 (Fri, 18 Jun 2010) | 1 line
  
  Use bind from boost:: (detected in Mesh_3 VC10 testsuite)
........
  r56867 | lrineau | 2010-06-18 11:39:24 +0200 (Fri, 18 Jun 2010) | 3 lines
  
  cmake-2.8.2rc2 is out.
  /bigobj is necessary
........
  r56868 | afabri | 2010-06-18 11:52:37 +0200 (Fri, 18 Jun 2010) | 1 line
  
  Add #include <fstream>
........
  r56869 | afabri | 2010-06-18 11:55:33 +0200 (Fri, 18 Jun 2010) | 1 line
  
  Shorten filename as with path it exceeds easily 256 letters which poor Visual C++ can't handle
........
  r56870 | afabri | 2010-06-18 12:24:30 +0200 (Fri, 18 Jun 2010) | 1 line
  
  Use tie from boost::
........
  r56876 | lrineau | 2010-06-18 16:40:36 +0200 (Fri, 18 Jun 2010) | 3 lines
  
  New try to fix the issue of Gmpfr(long double) with MSVC and libmpfr-1.dll
  compiled by Mingw.
........
  r56895 | lrineau | 2010-06-20 23:16:40 +0200 (Sun, 20 Jun 2010) | 3 lines
  
  Using boost::bind is not sufficient" "bind" without qualifier was
  ambiguous, according to MSVC2010, with std::bind (from C++0x).
........
  r56896 | lrineau | 2010-06-20 23:18:29 +0200 (Sun, 20 Jun 2010) | 3 lines
  
  Qualify "bind" with "boost::", to avoid the ambiguity (according to
  MSVC2010), with std::bind (C++0x).
........
  r56897 | lrineau | 2010-06-20 23:19:17 +0200 (Sun, 20 Jun 2010) | 2 lines
  
  Stupid typo!
........
2010-06-20 21:48:20 +00:00
Sébastien Loriot 4d0e30fd74 add comments 2010-06-16 15:04:30 +00:00
Sébastien Loriot cf43255df7 Remove recursive call of create_star_3:
--create an internally used vector that can reserve its size when constructed
  --create an internally used class to store information required to emulated the call stack
  --the stack used to emulate the call stack is a static thread-safe vector of the function (thus a memory overhead) 
These choices have been made so that the running time of the triangulation is still the same.
2010-06-16 12:27:22 +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
Olivier Devillers da7051d179 fixing missing this-> 2010-05-31 09:58:31 +00:00
Laurent Rineau 7e87099363 Merge the branch /branches/candidate-packages/Triangulation_3
- Work from:
    Pedro Machado Manhaes de Castro <Pedro.Machado@sophia.inria.fr>
    Olivier Devillers <Olivier.Devillers@sophia.inria.fr>
- The work is:
    - displacement for 3D triangulation (Olivier and Pedro)
         https://cgal.geometryfactory.com/CGAL/Members/wiki/Features/Move_T2T3
2010-05-31 08:48:09 +00:00
Sébastien Loriot e3c0dd54fb change private to protected (needed by 'using locate' in Alpha_shape_3 class) 2010-05-13 06:39:52 +00:00
Andreas Fabri beaff6d265 Add 'using' statement for ansi-compliance 2010-05-11 07:08:10 +00:00
Laurent Rineau 7aedbdf5eb Missing using Tr_base:: (for strict ansi compliance) 2010-05-10 08:43:22 +00:00
Laurent Rineau c4d182b8c7 Oops. Typo.
Locate testing was not testing the right headers.
2010-05-08 11:35:32 +00:00
Laurent Rineau 2257b8b2ab Fix for strict-ansi compliance 2010-05-08 11:24:59 +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
Andreas Fabri 968a4abc45 std::min -> (std::min) for VC++ 2010-01-27 14:49:38 +00:00
Andreas Fabri d2d5e9df50 Remove random_shuffle from insert(b,e) functions as spatial_sort does it now 2010-01-27 14:24:29 +00:00
Andreas Fabri 6edc1c3f73 Remove random_shuffle from insert(b,e) functions as spatial_sort does it now 2010-01-27 13:50:23 +00:00
Sylvain Pion 60ba9996f3 Replace CGAL::Random by Boost RNG (with geometric distribution)
in the hierarchy as well, to avoid global state sharing issues.
2010-01-26 16:02:53 +00:00
Sylvain Pion 84932f89cc Make locate() deterministic using Boost RNGs.
The previous approach using a local CGAL::Random failed because it still uses a
global state through drand48()...
2010-01-26 14:55:44 +00:00
Sylvain Pion ce3541e210 Improve locate() reproducibility. 2010-01-25 12:11:45 +00:00
Sylvain Pion 033d3ce790 Use Compact_container::owns_dereferencable() in order to speed up is_vertex,
is_edge, is_facet and is_cell.
In passing, fix bugs as the end iterators/handles were incorrectly treated !
2010-01-23 17:30:58 +00:00
Andreas Fabri 8ea590cec5 Add operator for MSVC 2005/2008 to avoid a matching ambiguity 2010-01-21 16:51:49 +00:00
Sylvain Pion 266a053335 More debugging aid : add an is_simplex() function to [expensive] check that
the handle passed to locate() belongs to the triangulation.
2010-01-14 23:20:18 +00:00
Sylvain Pion a8e748d109 Bug-fix (for bug reproducable with probability ~1/50 with the test-suite) :
the "loc" Cell_handle was used after being invalidated by a call to insert()...
Note : this bug was also present in 3.5 (at least).
2010-01-14 18:08:46 +00:00
Sylvain Pion f374ec280c Be paranoid : detect potential users of CGAL_DELAUNAY_3_OLD_REMOVE. 2010-01-13 16:32:32 +00:00
Sylvain Pion 45b6d32b62 Remove old (CGAL < 3.0) version of the remove() code (which could be triggered by CGAL_DELAUNAY_3_OLD_REMOVE).
No one complained about the new code, so let's remove the old remove.
2010-01-13 13:44:54 +00:00
Manuel Caroli 4bcee3abdf add geometric access functions point(...) +doc + tests 2009-12-04 12:14:50 +00:00
Sébastien Loriot 328fb9dfa4 correct bug in Compare_weighted_squared_radius_3::operator() with one point 2009-12-02 18:16:41 +00:00
Sylvain Pion c37d102615 I &hearts; VC++ ! 2009-11-17 15:29:24 +00:00
Andreas Fabri 531ac243cc Remove CGAL_CFG_MATCHING_BUG_6 2009-11-17 09:25:57 +00:00
Sylvain Pion 76a8ae7aaf Forgot one conversion... 2009-11-10 13:44:05 +00:00
Sylvain Pion 0e26ea1bcc Minor formatting changes. 2009-11-10 13:33:52 +00:00
Sylvain Pion d09319501c Use canonical form for for-loops over iterator ranges. 2009-11-10 12:53:07 +00:00
Sylvain Pion 228d3f6805 Introduce a symetric set_up_down() function which does both
set_up and set_down.
2009-11-10 12:29:16 +00:00
Sylvain Pion ba4092e0b1 After 7 years of deprecation, it's probably safe to make the code actually
match the spec by having remove return void and not bool anymore.
2009-11-10 12:01:49 +00:00
Sylvain Pion 828a6eeabc Merge the Triangulation_3_Location_policy branch.
- Deprecate the "hierarchy" implementation detail in the package API.
- Introduce a Location_policy parameter instead.
- Add a "Complexity and Performance" section in the user manual.
- Add a benchmark program (dont_submit'ed for now)

Note : merge done by hand as svnmerge.py got too easily confused...
2009-11-04 12:57:51 +00:00
Sébastien Loriot ba244ab842 correct wrong typedef 2009-10-23 20:27:04 +00:00
Sébastien Loriot 3f97a23120 add missing a public 2009-10-22 09:32:17 +00:00
Sébastien Loriot ec6f2dbb9b add no_deprecated_code macro 2009-10-20 21:54:12 +00:00
Sébastien Loriot 9b1e1f8b24 Regular_triangulation_filtered_traits_3 backward compatibility 2009-10-20 21:45:29 +00:00
Sébastien Loriot 910a6f94d6 Regular_triangulation_filtered_traits_3 is now deprecated 2009-10-20 21:44:47 +00:00
Sébastien Loriot 83d2efcd34 add operator() one wpoint to Compute_squared_radius_smallest_orthogonal_sphere_3 2009-10-20 17:48:26 +00:00
Laurent Rineau 83912b2952 Massive fix of svn:keywords properties, and $URL$ keyword. 2009-10-20 08:59:26 +00:00
Sébastien Loriot b17dbb6348 copy-paste bug on windows platforms 2009-10-20 06:55:18 +00:00
Sébastien Loriot 7d50e382e1 take into account boolean stating wheather filter kernel and static filters should be used for regular_euclidean_traits_3.
This avoids the problem of specialization using the kernel type parameter of the traits.
2009-10-19 14:29:18 +00:00
Sébastien Loriot 1d86302f4f remove accent 2009-10-15 13:42:57 +00:00
Laurent Rineau 9d7a29cc44 Fix the encoding of the accent in "S'ebastien Loriot": UTF-8!! 2009-10-15 13:29:53 +00:00
Sébastien Loriot 94e9b83218 add predicates Compare_weighted_squared_radius_3 in Regular traits which is the weighted equivalent of Compare_squared_radius_3 in the kernel. A semi-static filtered version is also provided. 2009-10-15 13:24:47 +00:00
Sébastien Loriot a0ae099496 Add semi-static filtering for Power_test_3 2009-10-15 11:52:59 +00:00
Sébastien Loriot 6ff38dd39b add parenthesis around terms of degree two to reduce the epsilon value while generating semi-static filters 2009-10-15 08:27:22 +00:00
Sylvain Pion 0e456b39d7 Remove useless comment. 2009-09-23 18:39:08 +00:00
Sylvain Pion 516f8d5eee Same as revision 51948 on CGAL-3.5-branch :
Rename following the converging convention to prevent future incompatibility :
  - Vertex_container -> Vertex_range
  - Face_container   -> Face_range
  - Cell_container   -> Cell_range
2009-09-15 17:12:03 +00:00
Sylvain Pion 53bcc5fafe Remove traces of Natural_neighbors_3 (friendship declaration).
I can't find where this class is defined.
2009-09-06 16:19:30 +00:00
Sylvain Pion 7aa8c1535a Move internal files under CGAL/internal/ and their code under CGAL::internal:: . 2009-08-26 12:52:38 +00:00
Sylvain Pion 4e4cf033dd Swap initialization order of V[] and N[] so that it matches the declaration
order, in order to avoid a compiler warning.
2009-08-26 12:49:01 +00:00
Sylvain Pion 8573fe26ce Rename CGALi to internal. 2009-08-24 17:10:04 +00:00
Andreas Fabri 2b6c2a8488 VC++ doesn't know whether Tds is the template parameter or the inherited typedef ... Tds; which is defined in the scope of the base class Triangulation_3 2009-08-20 08:10:35 +00:00
Sylvain Pion 443277dab0 Pass Cell_handle and Vertex_handle by value instead of by const&. This undoes :
r19107 | afabri | 2003-10-17 10:49:19 +0200 (Ven 17 oct 2003) | 2 lignes
    Added const& for gaining performance

which was justified at the time by the fact that on VC++, handles encapsulated iterators.
2009-08-17 15:11:03 +00:00
Sylvain Pion 7c29a486d7 This seems to bring 1-2% speed improvement.
At least on the Mac, and on x86-64 with recent (4.4+) gcc.
2009-08-17 11:54:24 +00:00
Sylvain Pion 57603f0b3b Allow CGAL::Default for the TDS parameters of the three main triangulation classes.
(patch extracted from the Triangulation_3_Location_policy branch as it is mostly orthogonal)
2009-08-17 09:48:07 +00:00
Sébastien Loriot 129f5dda73 avoid using temporary point in side_of_sphere predicate of Delaunay_triangulation_3 (thus avoiding accessing the point of the infinite vertex) 2009-08-14 15:10:36 +00:00
Sylvain Pion 919321e300 Give the TDS the ability to store a more general Cell_data in cells,
than just an implicit access to a conflict_flag.
2009-08-11 20:05:42 +00:00
Sylvain Pion 6a2d8f54d1 Add missing include, and a few minor changes in the manual. 2009-08-07 20:58:18 +00:00
Sylvain Pion 094505bb76 Define Face_circulator together with the other types. 2009-08-07 20:50:32 +00:00
Sylvain Pion 7f61ffff50 Add a Rebind_vertex and a Rebind_cell to the TDS that allow to get new TDS types
with changes vertex/cell types.  Documented as advanced in the TDS concept.
2009-08-04 14:32:30 +00:00
Sylvain Pion 8fdac12e77 Add insert_in_hole() function overloads (in T3 and TDS_3) taking an additional
Vertex_handle argument that specifies the vertex to be used for the new vertex
(instead of creating a new one internally).
2009-08-04 13:48:07 +00:00
Sylvain Pion 395b1d569e Remove white spaces at end of lines. 2009-08-04 13:36:15 +00:00
Sylvain Pion f846f65dcf Fix indentation (4-spaces tabs had been introduced by Camille...). 2009-08-04 13:29:40 +00:00
Sylvain Pion cb7bbc1619 Minor cleanup (un-share variable). 2009-08-04 12:58:30 +00:00
Sylvain Pion ffedfc0d58 Add some locate() and insert() convenient overloads, taking the start hint as a
Vertex_handle (instead of the Cell_handle currently).
2009-07-24 21:57:38 +00:00
Manuel Caroli ebdb067ab8 adding method insert that takes the return values of a point location query
to the triangulation hierarchy.
2009-05-12 15:10:42 +00:00
Sylvain Pion 7df2a2df3b Remover short name macros. See PR 1551. 2009-04-21 18:34:14 +00:00
Sylvain Pion 62aac76768 Actually, much better naming (Range concept like) :
vertex_container() -> vertices()
cell_container()   -> cells()
2009-04-10 15:23:53 +00:00
Sylvain Pion 525ac5818a Add vertex_container() and cell_container() to the TDS. 2009-04-10 15:05:43 +00:00
Monique Teillaud ba9b7b7143 incident_vertices(vertex) renamed as adjacent_vertices()
old name left for backward compatibility (and old functions still tested)
2009-04-08 10:06:32 +00:00
Laurent Rineau 6108848419 Test and fix the input/output operator of CGAL::Triangulation_3
*in binary mode*.
2008-11-14 11:59:14 +00:00
Camille Wormser 0e0975df31 same derecursion, for find_conflict, this time. 2008-11-14 10:43:11 +00:00
Camille Wormser 182c824db5 Iterative version of the incident_...(vertex) methods.
See Andreas' e-mail:

> I just had a look at the code. The problem is that it calls
> incident_cells, which is implemented recursively, and for a
> vertex with many incident cells, as in your case the infinite
> vertex, the stack is full.
> 
> We have to put it on our todo list.

I did it for 3D only because the degenerate 2D case should be 
handled by the circulator anyway.

I did not add the test which explodes the call stack (in case we plug
the recursive version): too slow for a testsuite. But incident_... 
methods are used everywhere in the code anyway.
2008-11-14 04:27:18 +00:00
Sylvain Pion 4aa1cb057a Remove my email adress from header files. 2008-10-11 20:21:08 +00:00
Manuel Caroli 25a4741b11 revert change, code was right before 2008-09-15 20:54:02 +00:00
Manuel Caroli a1802d060c pass assignment operator argument as reference 2008-09-15 19:36:15 +00:00
Sylvain Pion eede712857 - Fix "warning: array subscript is above array bounds" with g++ -O3.
It was actually a real bug.
- Rewrote the loops for clarity as well.
2008-08-20 08:37:44 +00:00
Sylvain Pion 051a87a8d6 Rename CGAL_kernel_assertion to CGAL_triangulation_assertion. 2008-08-12 13:56:13 +00:00
Sylvain Pion 93cae6500f Remove deprecated functions find_conflicts_2 and find_conflicts_3
(deprecated in 2006, and internal).
2008-07-28 18:16:14 +00:00