Commit Graph

379 Commits

Author SHA1 Message Date
Laurent Saboret a332a2dc4e Partially fixed the global orientation of the output mesh:
Complex_2_in_triangulation_3_polyhedron_builder used to orient coherently the facets but not globally: the mesh was randomly oriented towards inside or outside.
This fix orients the facet with max z towards +Z axis, in order to orient the mesh towards outside.
This is a naive algorithm but is works most of the time.
2009-08-03 10:57:57 +00:00
Laurent Saboret 1f05a2989a Moved output_surface_facets_to_polyhedron() from Surface_reconstruction_points_3 to Surface_mesher 2009-06-29 13:31:24 +00:00
Laurent Rineau a80352f38c Make Surface_mesher crash when a looping condition is detected, instead of
just displaying a warning (with the loop, the warning is a DoS on the CGAL
testsuite).
2009-05-05 14:10:13 +00:00
Laurent Saboret 1ee7c2d2ff Port to Linux/g++ 4.3 2009-04-14 15:24:57 +00:00
Laurent Saboret 005aefcf8a Fixed compilation error in class Complex_2_in_triangulation_3_polyhedron_builder 2009-04-10 09:14:14 +00:00
Sylvain Pion 55b427d531 lenght -> length 2009-04-07 19:30:59 +00:00
Laurent Rineau dff123ffcb Minor edit: comments, and update of the copyright. 2009-02-27 14:00:51 +00:00
Laurent Rineau fb51f5046d Had a forgotten #include 2009-02-27 14:00:22 +00:00
Laurent Rineau 1183905c3d Add the following function, which is documented:
Face_status face_status (const Cell_handle c, const int i, const int j) const
2009-02-07 13:30:04 +00:00
Laurent Rineau 1c91006892 More profiling instructions (beurk!) 2009-01-26 15:22:57 +00:00
Laurent Rineau f709e20493 - Add two header <CGAL/Surface_mesher/Profile_timer.h> and
<CGAL/Surface_mesher/Profile_counter.h> that wrap the one in CGAL/.
- Add profilers to several parts of Surface_mesher code.
2009-01-23 15:01:25 +00:00
Laurent Rineau b0cc8d2337 Remove check_restricted_delaunay, and assertions using it: that check is not robust, and is pretty useless now. 2009-01-23 13:49:56 +00:00
Laurent Rineau 38abf96ec8 Fix is_in_volume for images.
Note: That should impact only Mesh_3, which is not in CGAL-3.4-I.
2008-12-03 17:23:34 +00:00
Laurent Rineau f17c90018c Add parenthesis so that g++ does not complain about that. 2008-11-17 09:41:33 +00:00
Laurent Rineau afddfdcb23 Fix a warning 2008-11-10 14:37:48 +00:00
Laurent Rineau ec782e7c64 Fix Surface_mesher: remove all references to Singular_edges_allowed_tag,
which is a feature that I will not commit.
2008-10-29 13:42:19 +00:00
Laurent Rineau afa5e5203b Split <CGAL/make_surface_mesh.h> in two
files. <CGAL/Surface_mesher_generator.h> will not be documented. It can be
used to apply rules step be steps.
2008-10-28 17:42:27 +00:00
Laurent Rineau 813e25942d Commit a function that will be soon documented. 2008-10-28 17:34:02 +00:00
Andreas Fabri 9020359238 avoid VC++ warning 2008-10-14 08:27:53 +00:00
Laurent Rineau f4f78646d2 Fix <GL/gl.h> -> <CGAL/gl.h> (the latter is a workaround for Windows and 2008-10-08 11:49:36 +00:00
Laurent Rineau 43cc745311 Commit work of previous days (week-end, yesterday and this morning):
The surface mesher Qt4 demo can now deal with labellized images.
2008-10-07 13:00:59 +00:00
Laurent Rineau 9c8d626c30 Fix a bug in Surface_mesher: one cannot have two constructors for
CGAL::Surface_mesher::Implicit_surface_oracle_3<>.
2008-10-07 08:48:50 +00:00
Laurent Rineau 4028bff30a Multi_label_oracle is dead. 2008-10-03 14:38:24 +00:00
Laurent Rineau 01bcb32cb9 Internal and non documented stuff: gives access to the function object. 2008-10-03 13:58:08 +00:00
Laurent Rineau 201c494728 Remove #error introduced by revision 44887. 2008-09-30 12:50:31 +00:00
Michael Hemmer 28575ad723 rename Real_embeddable_traits::Sign -> Sgn 2008-09-18 16:32:35 +00:00
Sylvain Pion d167660a73 Remove the explicit To_double<> argument to Cartesian_converter<>: the default is fine. 2008-08-27 15:25:39 +00:00
Sylvain Pion c278a43b16 Follow-up of use of Robust_construction. 2008-08-27 15:16:57 +00:00
Sylvain Pion 3526c73a06 Use Robust_construction<>. 2008-08-27 15:11:20 +00:00
Sylvain Pion a76ed463b1 Bool -> bool in comment 2008-08-26 13:25:42 +00:00
Laurent Saboret a9e6b6fdfc Fixed compilation errors (Visual C++ 2005) 2008-08-19 16:00:52 +00:00
Andreas Fabri bb8c3dc397 Put verbose output in an #ifdef 2008-08-12 05:16:07 +00:00
Pierre Alliez 5a97fd3863 removed messages during surface meshing 2008-08-11 18:03:28 +00:00
Laurent Rineau 92e073f1db Add missing include. 2008-08-03 21:54:17 +00:00
Laurent Rineau 12e0e4ecc8 Add the output of remeshing to a new polyhedron. 2008-07-28 19:59:22 +00:00
Sylvain Pion 79864c0c8e Remove Arity_tag. 2008-07-22 12:29:01 +00:00
Laurent Rineau 6579b41282 Fix a segfault in Mesh_3. 2008-06-12 15:37:06 +00:00
Laurent Rineau 5bc7e76e17 Add an assertion, that checks if a facet is in conflict with its refinement
point. It MUST be (otherwise Surface_mesher enters an infinite loop).

If the assertion fails, its "what() string" is a set of debugging
informations.
2008-06-10 14:06:24 +00:00
Laurent Rineau b5bad15aa7 Fix an old nasty bug: the clipping for segment with a sphere was incorrect! 2008-06-09 14:20:14 +00:00
Laurent Rineau 6990082221 - New macro CGAL_SURFACE_MESHER_DEBUG_IMPLICIT_ORACLE
- More debug instructions in <CGAL/Surface_mesher/Implicit_surface_oracle_3.h>
2008-06-09 13:33:37 +00:00
Laurent Rineau e6b1bb3ae2 Put some debugging code between #ifdef/#endif CGAL_SURFACE_MESHER_DEBUG_CRITERIA 2008-06-06 12:28:14 +00:00
Laurent Rineau ddfc10e8e0 Minor changes:
- Add two const& 
  - Let before_insertion_impl in Surface_mesher_manifold and
    Surface_mesher_regular_edges pass its argument of type Facet to the same
    function in the base class.
2008-06-06 12:22:22 +00:00
Laurent Rineau 3702d39202 New parameters, that show the superiority of Surface_mesher over
VTK's marching cube.
2008-05-29 13:45:47 +00:00
Laurent Rineau 271df19d73 - First version of a VTK vtkImageData to vtkPolyData filter: mesh an
iso-value in a 3D image.
2008-05-21 22:16:03 +00:00
Laurent Rineau 4ed2298896 Allow to construct a Gray_level_image_3 from an Image_3. 2008-05-21 22:11:03 +00:00
Laurent Rineau c79aacdc8c Fix the error "error: 'number_of_facets_on_surface' was not declared in
this scope" in <CGAL/IO/Complex_2_in_triangulation_3_file_writer.h>.
2008-05-21 16:08:27 +00:00
Laurent Rineau abf246366d - add constness to facets_begin()/facets_end() in c2t3,
- add more VTK support: output a c2t3 to a vtkPolyData
- add a demo that shows the ability to display a c2t3 in a VTK viewer.
2008-05-20 11:51:10 +00:00
Laurent Rineau 7002346ca2 Minor change: add a missing const&. 2008-05-12 20:45:09 +00:00
Laurent Rineau 63b39ef1be Quick fix for Mesh_3. is_in_volumes() only affects Mesh_3 2008-05-12 20:43:54 +00:00
Laurent Rineau cab2554766 Minor commit: add a few "const" or "const&". 2008-04-29 13:51:29 +00:00
Laurent Rineau f677dd435d - Commit 43053 was not really a fix for the "set_on_surface" problem.
- Some piece of meta-programming was needed, actually.
  p.set_on_surface(...) is now called only if the type Point has a
  Set_on_surface nested type.
2008-04-29 13:50:11 +00:00
Laurent Rineau 4e4f937188 - Tags in cells now use std::bitset instead of the home-made bitset.
- New tag: is_bad (to reduce the number of calls to Double_map::erase)
2008-04-29 08:57:30 +00:00
Laurent Rineau 38ebdc41f2 Fix the set_on_surface problem: the present of a tag is tested. 2008-04-29 08:53:50 +00:00
Laurent Rineau 1a55b0a8e3 - Add calls to CGAL::Profiler
- No longer test the Gabriel criteria for facets.
2008-04-28 13:02:10 +00:00
Laurent Rineau 6e2224ccf3 Moved to Mesh_2/include/CGAL/Meshes/. 2008-04-25 12:14:32 +00:00
Laurent Rineau 22629c62b3 New directory Mesh_2/include/CGAL/Meshes/ that aggregates several
non documented files that are common to Mesh_2, Mesh_3 and Surface_mesher.
2008-04-21 16:07:38 +00:00
Laurent Rineau 9fa4761d86 CGAL::Image_3 is no longer a class template.
New parameter value_outside, with default = 0.f

That class should be removed in CGAL-3.4, as soon as a better oracle exists
for 3D images.
2008-04-16 12:36:02 +00:00
Sylvain Pion 1b79e6c94d Use CGAL::midpoint() instead of redoing the computation. 2008-04-11 16:11:47 +00:00
Laurent Rineau 09a919365f Move most of Gray_level_image_3 to a new class <CGAL/Image_3.h>. 2008-04-08 08:59:13 +00:00
Laurent Rineau c6fa89e93c Do not export File_writer_OFF comments to OFF files. 2008-04-08 08:55:43 +00:00
Laurent Rineau 1dccc80b79 Fix the testsuite temporarily, before I break everything again. 2008-04-01 12:55:59 +00:00
Laurent Rineau 00ced538b1 Modifications of C2T3:
- add a lot of comments arround the face status.
- use explicit variable names in union find, instead of 'i' and 'j'
- add a is_valid() function, that checks that the facets markers are the
  same from both sides, and that the real number of marked facets is
  conform to the cached number (used in the Slivers_exuder),
2008-03-13 22:13:30 +00:00
Laurent Rineau b60a86e0c7 - Fix a missing header: <stack>)
- Activate now by default the version of output_surface_facets_to_off()
  that orients the surface.
2008-03-11 15:11:54 +00:00
Laurent Rineau 5075e30cc5 Fix the color association.
Points are still indexed by int, but surfaces are now indexed
by a "const QTreeWidgetItem*"! :-)
2008-02-05 23:44:08 +00:00
Laurent Rineau 16e98803c1 Can now use Surface_mesher with multi-domains.
In the demo, one can define a list of iso-values.
2008-02-05 14:46:17 +00:00
Laurent Rineau ba1ef9944b First step to a multi-label oracle: make Implicit_surface_oracle_3 do not
depend on the type CGAL::Sign.
2008-01-29 10:14:27 +00:00
Laurent Rineau eafc8f0d11 include/CGAL/ImageIO.h is now back in CGAL 2008-01-28 14:55:52 +00:00
Laurent Rineau d682c43451 Add two files needed by new features of revision r41873: they are model of
a new concept of point, that stores:
  - the lowest dimension of all psc elements that contain it,
  - the index of the psc elements of lowest dimension that contains it.

Two files:
  include/CGAL/Point_with_psc_localisation.h
  include/CGAL/Weighted_point_with_psc_localisation.h
with bvious names: one is for Delaunay triangulations, and the other is for
regular triangulations.
2008-01-28 14:13:52 +00:00
Laurent Rineau 83171e4fd8 Deprecated files, never used. They were commited in revision 41880 in order to be backuped in the svn repository. 2008-01-28 13:59:19 +00:00
Laurent Rineau 5c3567e15f Temporarily commit deprecated files.
They are about to be removed (in revision 41881 actually).
That commit is only for those files to be stored on the subversion
repository (in the history).
2008-01-28 13:58:16 +00:00
Laurent Rineau ef6d4c019d - edges and facets are now taggued with the index of the PSC element of
lower dimension that contains them,
- the oracle sets tags in points as well,
- the edges default criteria can now enforce that an edge must have its two
  end points on the same curved edge,
- new facets criteria to enforce a facet to have its three vertices on the
  same surface patch.
- The surface is now pass by const reference to the oracle (that was one
  reason of the  poor performances of the polyhedral oracle!).

ALL THAT CODE WILL NEED A FULL REVIEW BEFORE CGAL-3.4.
2008-01-28 09:38:18 +00:00
Laurent Rineau 8533dd1589 Change in Surface_mesher::Standard_criteria include/CGAL/Surface_mesher/Standard_criteria.h :
If a criteria bound is 0, then the criteria is always fullfilled (instead of never fullfilled).
2008-01-28 09:24:02 +00:00
Laurent Rineau 0b5e91875f Fix compilation with g++-4.3. 2008-01-28 08:57:07 +00:00
Laurent Rineau af1ada7aa1 Use object_cast instead of assign (see revision 40902, 40923, 41482 also). 2008-01-25 15:42:51 +00:00
Laurent Rineau e4e8a9e7d7 Use Triangulation_cell_base_with_circumcenter_3 in the default triangulation for Surface_mesher 2008-01-25 09:18:30 +00:00
Laurent Rineau 42f222c01c - Fix an old and minor bug (from revisions 38635+38306 in a branch, the bug
was merged in trunk at revision 38638). The image data should be
  deallocated, now.
  Actually, that bug exists since the begin of Gray_level_image_3
  (CGAL-3.2). I thought I fixed it with revision 38306, but I failed to
  correctly fix it.

- Add the possibility to define the interior of the object by f(x)>0,
  instead of f(x)>0. That will be superseeded very soon.
2008-01-24 13:25:16 +00:00
Laurent Rineau ece2b056d4 Fix compilation error, when CGAL_SURFACE_MESHER_DEBUG_INITIAL_POINTS is
defined.
I forgot that change in revision 41482.
2008-01-24 12:54:18 +00:00
Sylvain Pion 8ebd675cf9 Fix protect macro name, it was clashing with another file. 2008-01-14 21:31:05 +00:00
Laurent Rineau 4b2bc78fc4 - use object_cast instead of assign
- add the typedef Intersection_point, to fix the testsuite.
2008-01-09 10:35:49 +00:00
Laurent Rineau 9bbe7ad8fb - Use SurfaceMeshTraits::Intersection_point, as the point type embeded in
the CGAL::Object that is returned by the mesh traits (aka the oracle).
- Use object_cast instead of assign, everywhere.
- Do not ask the oracle about degenerate dual segments.
- Remove more warnings about unused variables (when NDEBUG is defined).
2007-11-18 14:19:48 +00:00
Laurent Rineau 3edae701c3 oups, the Polyhedral_oracle return Kernel::Point_3 as intersection object 2007-11-14 12:56:06 +00:00
Laurent Rineau a7bdd984c3 cosmetic 2007-11-14 12:17:17 +00:00
Laurent Rineau a1fc5c762e add a missing method in Enriched_facet 2007-11-14 12:16:54 +00:00
Laurent Rineau 07e4eacee3 updated enriched polyhedron 2007-11-14 11:07:10 +00:00
Laurent Rineau f8e6dc3740 updated version 2007-11-14 11:03:18 +00:00
Laurent Rineau 5aab4f8ab7 commit Pierre files, maybe temporarily 2007-11-14 11:02:04 +00:00
Laurent Rineau a61decfce6 new option, that allows to mesh the whole bounding box volume 2007-11-14 10:57:06 +00:00
Laurent Rineau fbc8cd5d3c new version: compute the piecewise-smooth graph using the enriched polyhedron 2007-11-14 10:55:55 +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
Laurent Rineau 1c985577b2 Quick backup. Sorry, no comment. 2007-11-05 15:07:07 +00:00
Laurent Rineau 681862491a update, more OpenGL stuff 2007-11-02 14:00:38 +00:00
Laurent Rineau f924e04db6 - Add a macro CGAL_SURFACE_MESHER_POLYHEDRAL_SURFACE_USE_PINPOLYHEDRON that
triggers the use of PointInPolyhedron, from Dr. Liu Jianfei"
  <liujianfei@pku.edu.cn>. His code is not shipped.
  That does not seem to be faster. :-(
2007-10-18 14:48:41 +00:00
Laurent Rineau 58e17f60f3 Fix warnings, again. 2007-10-17 16:44:50 +00:00
Laurent Rineau 2c03c1cf43 rename all shared pointer into "*_ptr" 2007-10-17 16:39:22 +00:00
Laurent Rineau 1f029db333 In Surface_mesher, a "Surface" is an object that can be passed by copy.
Generalize the use of boost::shared_ptr for all data of Polyhedral_surface_3<>
2007-10-17 16:27:23 +00:00
Laurent Rineau 0ee3afc639 Remove a std::cerr output. 2007-10-17 15:21:53 +00:00
Laurent Rineau 99031df5ce New attempt to make that class work. Not yet. :-( 2007-10-17 15:21:27 +00:00
Laurent Rineau 79efcce674 Attempt to replace the octree by something else: the Segment_tree_3 (from
SearchStructures).
It is actually slower, so I disable it by default. :-(
2007-10-17 12:59:45 +00:00
Laurent Rineau 49554ef06d Move Simple_map_container.h to Surface_mesher.
That should fix the Surface_mesher build errors, in the testsuite.
2007-10-16 16:10:55 +00:00
Laurent Rineau 5053a73fea fix std::max->CGAL_NTS max 2007-10-16 12:01:45 +00:00
Laurent Rineau 9ac3b1e631 Fix a bug in Surface_mesher_manifold. 2007-09-17 16:33:50 +00:00
Laurent Rineau 5a9bafcee6 typos 2007-08-08 14:29:57 +00:00
Laurent Rineau e4d1b4f876 Remove 6-i-j-k, use next_around_edge() instead. 2007-08-07 13:41:32 +00:00
Laurent Rineau c4b96ca9e5 more precise debug_info output 2007-08-07 11:16:12 +00:00
Laurent Rineau 6848cfac91 We had a robust circumcenter but not a robust squared radius. Fixed now.
Maybe this will make Mesh_3 crash-free... <hope>
2007-07-27 14:35:04 +00:00
Laurent Rineau 785f029ac3 Explicit qualitication of previous(). 2007-07-27 08:47:28 +00:00
Laurent Rineau 785ccf1e39 cosmetic change in a cerr output 2007-07-27 08:38:16 +00:00
Laurent Rineau 1cbd8e1f7b avoid division by zero 2007-07-27 08:37:22 +00:00
Fernando Cacciola 39bfd40aa4 ImageIO autolinking enabled 2007-06-21 13:07:15 +00:00
Laurent Rineau 796d7877b4 Do not try to mesh edges of the surface, it the surface has the tag Has_no_edges 2007-06-14 18:38:55 +00:00
Laurent Rineau 36b7e51dc0 again a new attempt to workaround imprecisions in constructors. Need work. 2007-06-14 12:51:32 +00:00
Laurent Rineau a30420ea22 Use Delaunay triangulation in Mesh_3, instead of a regular triangulation 2007-06-14 09:32:02 +00:00
Laurent Rineau bf5b9efebb new implementation, polyhedron-free, of output_surface_facets_to_off 2007-06-13 22:41:51 +00:00
Laurent Rineau 87c10e9b5e Change of the step-by-step output. 2007-06-13 21:12:22 +00:00
Laurent Rineau 41a045b9be Bad hack to r5Cobustify the algorithm. Need work. 2007-06-12 14:11:57 +00:00
Laurent Rineau 4c12071ab5 Robustify Construct_weighted_circumcenter_3 as well. 2007-06-12 14:08:31 +00:00
Laurent Rineau fd97c81e8a In Surface_mesher:
- Polyhedral_oracle::initial_points_: use input points in random order,
  - Polyhedral_surface is know templated by a new tag, that can be
    "Has_no_edges" or "Has_edges", so that the edges detection and handling
    is triggered.
  - Polyhedral_oracle::is_in_volume()  now tests if the point is in the
    bounding box, before anything else. That solved several issues, when
    the point tested had very big coordinates.
In Mesh_3:
  - Mesh_criteria's size_bound is know squared in the constructor.
2007-06-10 20:50:11 +00:00
Laurent Rineau 1f471177ce push current version 2007-06-06 12:54:28 +00:00
Laurent Rineau d381828fa7 I do not know what to say... That version just work!!
I can remesh piecewise smooth surface...
2007-05-30 16:52:43 +00:00
Laurent Rineau 7f0bab55ed fix compilation errors in Mesh_3 2007-05-14 13:54:01 +00:00
Laurent Rineau 37c7266f76 Merge the branch "temporary_branch_during_trunk_freeze" back to the trunk.
Details below (thank to svnmerge).

Merged revisions 38016,38018-38083,38085-38637 via svnmerge from 
svn+ssh://lrineau@scm.gforge.inria.fr/svn/cgal/branches/temporary_branch_during_trunk_freeze/Surface_mesher

........
  r38022 | lrineau | 2007-04-10 15:11:14 +0200 (Tue, 10 Apr 2007) | 1 line
  
  no-op modifications
........
  r38023 | lrineau | 2007-04-10 15:13:06 +0200 (Tue, 10 Apr 2007) | 1 line
  
  add an intersection computation method to the polyhedral oracle: Triangle-curve
........
  r38026 | lrineau | 2007-04-10 16:14:12 +0200 (Tue, 10 Apr 2007) | 1 line
  
  use vectors instead of lists, and use the correct type Facet_circulator from C2t3
........
  r38028 | lrineau | 2007-04-10 16:18:48 +0200 (Tue, 10 Apr 2007) | 5 lines
  
  
  - Use sets or vectors instead of lists
  - Add marked edges
  - Marked edges are not removed when incident facets are removed.
    They are counted isolated, instead
........
  r38029 | lrineau | 2007-04-10 16:33:09 +0200 (Tue, 10 Apr 2007) | 2 lines
  
  typos
........
  r38306 | lrineau | 2007-04-18 17:58:24 +0200 (Wed, 18 Apr 2007) | 1 line
  
  new version, that should work, now. :-S
........
  r38327 | lrineau | 2007-04-19 03:13:46 +0200 (Thu, 19 Apr 2007) | 1 line
  
  add Edge_info into C2t3, and make the surfacic centers be cached into those edge infos
........
  r38328 | lrineau | 2007-04-19 03:36:21 +0200 (Thu, 19 Apr 2007) | 1 line
  
  forgot that part
........
  r38413 | lrineau | 2007-04-23 02:22:23 +0200 (Mon, 23 Apr 2007) | 1 line
  
  new version o Surface_mesher, with documentation.
........
  r38635 | lrineau | 2007-05-11 15:49:29 +0200 (Fri, 11 May 2007) | 1 line
  
  fix compilation
........
  r38636 | lrineau | 2007-05-11 15:49:52 +0200 (Fri, 11 May 2007) | 1 line
  
  updated documentation
........
  r38637 | lrineau | 2007-05-11 15:50:12 +0200 (Fri, 11 May 2007) | 1 line
  
  update for piecewise-smooth surfaces
........
2007-05-11 14:09:56 +00:00
Laurent Rineau 23984e220a Merged revisions 38084 via svnmerge from
svn+ssh://lrineau@scm.gforge.inria.fr/svn/cgal/branches/temporary_branch_during_trunk_freeze/Surface_mesher

........
  r38084 | lrineau | 2007-04-12 13:28:39 +0200 (Thu, 12 Apr 2007) | 4 lines
  
  Reorganization of:
    bool is_facet_on_surface(const Facet& f, Point& center);
  for better readability of the code.
........
2007-04-12 15:50:19 +00:00
Laurent Rineau 7d31a00e9f Copyright year range. 2007-04-04 10:19:50 +00:00
Laurent Rineau eefbb701ce Remove debug outputs. 2007-04-04 10:04:29 +00:00
Laurent Rineau 61e2a2ebfd - New codebase for <CGAL/Polyhedral_surface_3.h>, that uses
Polyhedron_3.
- Added "Facet neighbor(Facet f, int j) const;" in
  <CGAL/Complex_2_in_triangulation_3.h>.
- New code for output_surface_facets_to_off() in
  <CGAL/IO/Complex_2_in_triangulation_3_file_writer.h>. Now uses
  Polyhedron_3 I/O operators (maybe temporarily), and *orients the output*,
  as mush as possible, without any call to any surface oracle.
  The ordering code is adapted from reorient_faces() in TDS_2.
- Updated demo/Surface_mesher/polyhedron_remesher.cpp, so that it works.

Notes for the CGAL-3.3 release manager: 
  - Surface_mesher/demo/Surface_mesher is "dont_submitted".
  - The changes in Surface_mesher/include/CGAL/ only impact undocumented
  features of the package. Actually, maybe output_surface_facets_to_off()
  should be documented (with an adapted API) now that it orients the facets.
2007-04-04 09:52:34 +00:00
Laurent Rineau cb2e689c05 fix SVN keywords 2007-04-03 13:59:17 +00:00
Laurent Rineau bce1a7694c CGALimageIO is now a C++ library: 'extern "C"' are removed. 2007-04-02 09:50:40 +00:00
Laurent Rineau 418d827071 Remove the enum Debug_flag from Surface_mesher (conflicts with VC++ macros). 2007-03-20 14:41:50 +00:00
Laurent Rineau 9e1dd1fee9 Gray_level_image_3 objects are copy-constructed a lot of time, during the
execution of the Surface_mesher algorithm.  I do not know how to deal with
the destruction of *image. Maybe a smart pointer. We need to bench. I delay
that until somebody really need to have that memory leak fixed.
2007-03-20 14:27:13 +00:00
Laurent Rineau 814a039ead Double free => I comment the _freeImage call. 2007-03-18 21:04:42 +00:00
Laurent Rineau 73c07dece1 - add a missing destructor for Gray_level_image_3.
- add an undocumented static function print_supported_file_format()
2007-03-15 11:13:03 +00:00
Laurent Rineau a9c8fdf162 Fix warnings about unreachable "break"s. 2007-03-14 23:29:49 +00:00
Laurent Rineau e9196b3173 quick fix for a bug found by gcc-4.3 2007-03-01 10:04:27 +00:00
Laurent Rineau 035da295a4 commit several things that change only debug outputs, or the polyhedral oracle 2007-02-28 18:22:28 +00:00
Laurent Rineau 349d29a80c Fix two typos and a linker bug (extern "C"). 2007-02-16 19:18:00 +00:00
Laurent Rineau 86307ba0e2 Fix libCGALimageIO, so that <CGAL/Gray_level_image_3.h> compiles. 2007-02-16 18:59:35 +00:00
Laurent Rineau e55e35a3e0 Move ImageIO.h into src/CGALimageIO/. We need to define a licence for src/CGALimageIO! 2007-02-15 14:50:41 +00:00
Laurent Rineau 6c6cbdcb1c The commit that will break everthing:
- New library: libCGALimageIO
- make shared libraries for CORE, and Benchmark.
2007-02-02 16:10:06 +00:00
Laurent Rineau d3dca6fd3c fix ifndef/define macro names 2006-09-13 14:35:27 +00:00
Laurent Rineau 66b7d8b7f9 - massive fix of const-correctness in Surface_mesher, Mesh_3 and
Head_mesher.
  (A nice feature of C++ is that, when you need to add *one* const
   somewhere, then you have to fix const-correctness of all the World!)
2006-09-13 13:31:45 +00:00
Laurent Rineau 007eeef2a7 use Robust_circumcenter_traits_3<K> by default, in
Surface_mesh_default_triangulation_3
2006-08-10 16:10:58 +00:00
Laurent Rineau be5ac4b19e make make_surface_mesh() take the surface by reference, to avoid copies. 2006-08-10 16:04:54 +00:00
Laurent Rineau 782ca4aad2 ** In DS_for_queries_3:
- added a public member function
       Bbox bbox() const;
     to Data_structure_using_octree_3<>.
   - fix several bad coding patterns, in Data_structure_using_octree_3.h
   - fix the header of Data_structure_using_octree_3.h
   - trivial destructor for Constrained_Element, to delete the "type"
   member.
** In Surface_mesher:
   - added a public member function
       Bbox bbox() const;
     to Polyhedral_surface_3<>.
2006-08-10 16:00:25 +00:00
Laurent Rineau 5b79951cce - fix last patch: the vertex iterator class needs a little more sugar
(thanks to Mariette how spotted this out).
- extend the testsuite to check that
2006-07-28 14:02:07 +00:00
Laurent Rineau 7967427be6 - fix a bug: c2t3::Vertex_iterator should be convertible to Vertex_handle,
as usuall vertex iterators of CGAL triangulations.
2006-07-26 12:46:44 +00:00
Laurent Rineau 1d23a00b1a - fixed i/o operators, in binary mode, of Point_with_surface_index and
Weighted_point_with_surface_index
2006-07-12 01:04:05 +00:00
Laurent Rineau b275743f60 - fixed i/o operators, in binary mode, for C2t3_cell_base_3,
- fixed input operator of c2t3. It know deals correctly (I hope), with the
  edge_facets_counter member.
- added a new class Surface_mesh_default_triangulation_3
- use Surface_mesh_default_triangulation_3 in test_c2t3_iterators.cpp, as a
  test.
2006-07-12 00:10:41 +00:00
Laurent Rineau f5c912e666 - major switch from .C to .cpp. Andreas's script left a lot of things that
had to be fixed manually.
- new debug macro in <CGAL/Surface_mesher/Standard_criteria.h>
  - CGAL_MESH_3_DEBUG_CRITERIA
  Used in test/Mesh_3/combined_spheres*.cpp
2006-07-10 10:12:38 +00:00
Laurent Rineau 7923326287 - add a new macro CGAL_MESHES_DEBUG_REFINEMENT_POINTS (see Mesh_2 changelog
too) in <CGAL/Surface_mesher/Surface_mesher.h>
2006-07-10 09:41:01 +00:00
Laurent Rineau 457f890f8b attempt to add an operator<< to Quality 2006-07-10 09:37:57 +00:00
Laurent Rineau afc214fb76 fix of CGAL_SURFACE_MESHER_DEBUG_CONSTRUCTORS in Sphere_oracle_3.h 2006-07-10 09:37:33 +00:00
Laurent Rineau 6698d77abc - remove a buguy debug output, in
include/CGAL/Surface_mesher/Point_surface_indices_oracle_visitor.h
2006-07-10 09:36:53 +00:00
Laurent Rineau adc307ab63 - move Point_traits.h from Mesh_3 to Surface_mesher, to avoid an unneeded
dependancy
2006-07-05 06:59:41 +00:00
Laurent Rineau 5f53f7668e - fix the oracle Sphere_oracle_3
- added a test in Surfacer_mesher
2006-07-05 06:57:28 +00:00
Laurent Rineau 9e9034e412 fix s/intersect/intersection in the octree 2006-06-30 15:38:27 +00:00
Laurent Rineau ed1f7bcdfd fix operator>> for c2t3, so that number_of_facets is computed correctly 2006-06-28 17:05:41 +00:00
Laurent Rineau 931b4cfb11 extends Robust_circumcenter_traits_3 so that this class is model of
ConstructCicumcenter_3.
2006-06-28 17:04:31 +00:00
Laurent Rineau 768c783d89 fix a warning: comp. between signed and unsigned int 2006-06-27 16:59:04 +00:00
Laurent Rineau d0d24488f5 - in Surface_mesher:
- remove deprecated include/CGAL/Surface_mesher/Implicit_surface.h
  - rename CGAL::Surface_mesher::Implicit_surface_oracle to
           CGAL::Surface_mesher::Implicit_surface_oracle_3
    and then, rename include/CGAL/Surface_mesher/Implicit_surface_oracle.h
    to include/CGAL/Surface_mesher/Implicit_surface_oracle_3.h
- in Mesh_3: adapt code to the above change.
2006-06-26 12:42:39 +00:00
Laurent Rineau 00e588aed7 modified a comment, to be more explicit 2006-06-26 12:29:39 +00:00
Laurent Rineau 9eaa9ee75b - fix all iterators of C2t3!!
- added a test to test that these iterators works...
2006-06-23 15:35:33 +00:00
Laurent Rineau 65519abd31 prefix filter_iterator with CGAL::, to prevent ADL 2006-06-17 05:42:30 +00:00
Laurent Rineau 5c6b881a1d ** In Surface_mesher:
- remove subdirectories of include/CGAL/Surface_mesher: files of Criteria/
  and Oracles/ are moved one step back.
- repear the polyhedral oracle
- Implicit_oracle.h is now Implicit_surface_oracle.h (and the class has
been renamed too.
- no longer "Kernel_point" trick in Implicit_surface_oracle.h
- *but* "Kernel_point" trick is needed in Polyhedral_oracle.h! :-(

** In Mesh_3:
- repear examples/Mesh_3/polyhedral_surface_mesher.C
- add two input files in ./inputs/*.off (with their medit files)
2006-06-13 13:08:19 +00:00
Laurent Rineau ab88dda917 temp commit 2006-06-13 06:38:16 +00:00
Laurent Rineau f90b94529d I forgot this file, in the previous commit. 2006-06-07 12:55:35 +00:00
Laurent Rineau 171707f114 - sliver exuder fixed,
- Combining_oracle fixed too.
2006-06-07 12:55:01 +00:00
Laurent Rineau 58d9d6ad87 remove the old code Multi_implicit_oracle.h (in Surface_Mesher), and
multi_spheres.C (in Mesh_3).
2006-06-06 14:44:44 +00:00
Laurent Rineau 8d43b786ae Copy Mesh_2, Mesh_3 and Surface_mesher, from the branch
"cannot_wait_for_CGAL-3.2" to the trunk.

My idea: the branch is the real working version, and I want it to be joined
back to the trunk:

          __________________________         cannot_wait_for_CGAL-3.2 branch
         /                          \
        /                            \ 
-------------------------------------------- trunk
        S                             M

The modification of the trunk between the splitting point S and the merging
point M has already been merged into "cannot_wait_for_CGAL-3.2".

The trunk versions of these three packages have been removed already.
2006-06-06 13:38:17 +00:00
Laurent Rineau 24535549b2 Remove trunk of Mesh_2, Mesh_3 and Surface_mesher.
Do not worry: I will "svn cp" the branch "cannot_wait_for_CGAL-3.2" into the
trunk, and the trunk will inherit from the logs of the branch.

My idea: the branch is the real working version, and I want it to be joined
back to the trunk:

          __________________________         cannot_wait_for_CGAL-3.2 branch
         /                          \
        /                            \ 
-------------------------------------------- trunk
        S                             M

The modification of the trunk between the splitting point S and the merging
point M has already been merged into "cannot_wait_for_CGAL-3.2".
2006-06-06 13:36:22 +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 87d65f75e3 Fixed svn properties of ASCII files (as defined by Maintenance/svn_client/config) 2006-04-18 12:42:52 +00:00
Laurent Rineau 781e40adc0 - Performance issue, in Standard_criteria.h:
Quality were not defined correctly, and then facets were not ordered
  correctly, in the Double_map.
2006-04-06 23:01:25 +00:00
Laurent Rineau 31e2cfc6dc - the ImplicitFunction concept now has a operator()(Point), instead of
operator()(FT, FT, FT). This implied the modification of:
    - the Gray_level_image_3 and its documentation Gray_level_image_3.tex
    (new template parameter, to have the type of point),
    - all examples or demo,
    - Mesh_3 examples or demo as well

  This modification was mandatory, before the CGAL-3.2 release, to avoid
  Implicit_surface to use methods x(), y() and z() of points.

  Fully tested, etc.
2006-04-06 22:52:38 +00:00
Laurent Rineau 11a9a960eb fix copyright year 2006-04-06 19:50:58 +00:00
Laurent Rineau 92b4745731 - change to include/CGAL/Weighted_point_with_surface_index.h, used by
Mesh_3 only.
2006-04-06 19:49:41 +00:00
Laurent Rineau 199321c88d - remove an unused code, in Surface_mesher (check_visits) 2006-04-06 11:55:00 +00:00
Laurent Rineau fa41f8dc68 remove an unused and buggy method 2006-04-06 11:52:05 +00:00
Laurent Rineau 45465d545e - fix the classes Surface_mesh_cell_base_3 and
Complex_2_in_triangulation_cell_base_3, so that Surface_mesh_cell_base_3
  corresponds to its documentation (the default base class was hidding the
  problem).
2006-04-06 11:44:34 +00:00
Laurent Rineau a32a18d1de Updated copyright years and ifndef macro name. Cannot break anything. 2006-04-05 20:58:48 +00:00
Laurent Rineau ba53fc3365 - demo now output an off file, probably non oriented.
- Mesh_3/application/off_to_medit.C helps to convert it to a medit file.
2006-04-05 08:57:15 +00:00
Laurent Rineau bf5b494f4f kill warnings 2006-03-29 15:39:54 +00:00
Laurent Rineau cc7dc178c7 - the handle of bad edges, in
include/CGAL/Surface_mesher/Surface_mesher_regular_edges.h, is now lazy,
  like in Surface_mesher_manifold.h
- include/CGAL/Surface_mesher/Surface_mesher_regular_edges_with_boundary.h 
  now longer exists: Surface_mesher_regular_edges is templated by a
  boolean (see the code)
- fix efficiency errors in Surface_mesher_manifold.h
2006-03-23 15:52:52 +00:00
Laurent Rineau 6e97eaa695 added CGAL/basic.h, just in case 2006-03-23 15:49:09 +00:00
Laurent Rineau cf4f92ec29 - change the way the parameter error_bound of the constructor of
Implicit_Surface_3 is multiplied by the radius of the bounding sphere.
- change some bug messages
2006-03-22 22:03:45 +00:00
Laurent Rineau 1fbd74b36b important patch: change the sign returned by Gray_level_image_3::operator() 2006-03-22 21:44:43 +00:00
Laurent Rineau 120f5224e9 - fix the (bool debug, bool verbose) parameters of
Surface_mesher::refine_mesh. It is now template parameters of the class
  Surface_mesher. I have verified that the optimizer of GNU/CC is able to
  strip the debug code when NO_DEBUG is use.
2006-03-22 13:47:31 +00:00
Laurent Rineau 28e3008ec3 Fix a comment. 2006-03-22 13:22:55 +00:00
Laurent Rineau 8152739c1b Remove an old debug code. 2006-03-22 12:43:43 +00:00
Laurent Rineau 91b8567695 remove default iso_value 2006-03-22 10:23:59 +00:00
Laurent Rineau 95a4d483bb FIX the crazy bug: rename the base class!!! 2006-03-21 15:24:26 +00:00
Laurent Rineau 2e1fe4c14a - changes template parameters of all classes
include/CGAL/Surface_mesher/Surface_mesher*.h and update of
  include/CGAL/make_surface_mesh.h
2006-03-21 15:04:50 +00:00
Laurent Rineau 5fb2bf0100 changes names "gt."->"GT()." and list fonctors 2006-03-21 13:50:14 +00:00
Laurent Rineau 4d49bd5c23 - new version of include/CGAL/Surface_mesher/Oracles/Implicit_oracle.h that
now uses include/CGAL/Surface_mesher/Oracles/Sphere_oracle_3.h
2006-03-21 03:30:55 +00:00
Laurent Rineau a42cf143e6 - fix include/CGAL/Gray_level_image_3.h 2006-03-20 18:58:11 +00:00
Laurent Rineau 688ba73466 - added a new class include/CGAL/Surface_mesher/Oracles/Sphere_oracle_3.h
and a specialization Surface_mesh_traits_generator_3<CGAL::Sphere_3<Kernel> >
- updated test test/Surface_mesher/implicit_surface_mesher_test.C to test
  the meshing of Kernel::Sphere_3(ORIGIN, 1.)
2006-03-17 19:22:53 +00:00
Laurent Rineau 99743eeb40 corrected typo 2006-03-17 19:21:26 +00:00
Laurent Rineau ee8ea5fc0f - try to workaround ICL and VC++ 8 bug (or not bug, I do not know), in
include/CGAL/Surface_mesher/Surface_mesher_manifold.h
2006-03-17 13:24:08 +00:00
Laurent Rineau 0b5c39287f - Added a test file test/Surface_mesher/internal-test-surface-mesher.C for
Andreas
2006-03-15 16:37:24 +00:00
Laurent Rineau 2229e83a45 - Added macro CGAL_SURFACE_MESHER_DEBUG_CONSTRUCTORS to strace constructors
calls of classes in include/CGAL/Surface_mesher/Surface_mesher*.h
2006-03-15 14:32:59 +00:00
Laurent Rineau f1cfb6bf15 oups! missed a coma.
C++ is really a strange language, carring of comas! :-)
2006-03-10 18:15:45 +00:00