13 September 2006 Laurent Rineau - massive fix of const-correctness in Surface_mesher, Mesh_3, Head_mesher dans Data_structure_for_queries_3. (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!) 10 August 2006 Laurent Rineau - added a public member function Bbox bbox() const; to Polyhedral_surface_3<>. - make make_surface_mesh() take the surface by reference, to avoid copies. - in demo/Surface_mesher: - merge parameters.* with the Mesh_3 version, - use - new polyhedron_remesher.cpp - use Robust_circumcenter_traits_3 by default, in Surface_mesh_default_triangulation_3 9 August 2006 Laurent Rineau - documentation of Surface_mesh_default_triangulation_3 - big cleaning of examples/Surface_mesher/ 28 July 2006 Laurent Rineau - 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 26 July 2006 Laurent Rineau - fix a bug: c2t3::Vertex_iterator should be convertible to Vertex_handle, as usuall vertex iterators of CGAL triangulations. 12 July 2006 Laurent Rineau - 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. - fixed i/o operators, in binary mode, of Point_with_surface_index and Weighted_point_with_surface_index 10 July 2006 Laurent Rineau - remove a buguy debug output, in include/CGAL/Surface_mesher/Point_surface_indices_oracle_visitor.h - add a new macro CGAL_MESHES_DEBUG_REFINEMENT_POINTS (see Mesh_2 changelog too) in - 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_MESH_3_DEBUG_CRITERIA Used in test/Mesh_3/combined_spheres*.cpp 6 July 2006 Laurent Rineau - fix typos in make_surface_mesh.tex. - in Surface_mesher_ref/intro.tex, change "Global Functions" to "Function Templates", and capitalize "Tag classes" to "Tag Classes" (This patch will be submitted in the CGAL-3.2.x branch.) 5 July 2006 Laurent Rineau - move Point_traits.h from Mesh_3 to Surface_mesher, to avoid an unneeded dependancy - fix the oracle Sphere_oracle_3 - added a test in Surfacer_mesher 28 June 2006 Laurent Rineau - extends Robust_circumcenter_traits_3 so that this class is model of ConstructCicumcenter_3. - fix operator>> for c2t3, so that number_of_facets is computed correctly. 26 June 2006 Laurent Rineau - 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. 23 June 2006 Laurent Rineau - fix all iterators of C2t3!! - added a test to test that these iterators works... 12 June 2006 Laurent Rineau - 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! :-( 7 June 2006 Laurent Rineau - sliver exuder fixed, - Combining_oracle fixed too. 6 June 2006 Laurent Rineau - remove the old code Multi_implicit_oracle.h (in Surface_Mesher), and multi_spheres.C (in Mesh_3). 6 June 2006 Laurent Rineau - merge trunk modifications into the branch "cannot_wait_for_CGAL-3.2" I will copy the branch into the trunk. Here are the changes: 21 April 2006 Laurent Rineau - the patch of 15 April broke examples. - s/ZLIB/CGAL_USE_ZLIB/ - ugly hack: need to include in imageio.h! 20 April 2006 Laurent Rineau - minor fixes in the documentation, after the second review of Efi. 15 April 2006 Laurent Rineau - try to fix compilation problem with gcc-3.3, in test/Surface_mesher/implicit_surface_mesher_test.C (I am not sure to well understand this problem.) (added 16th of April: actually it fixed the compilation problem.) 7 April 2006 Laurent Rineau - added a picture for the sphere example, in manual. - modified the bounds for the skull example: with previous bounds (10 and 10), the resulting mesh was not manifold. 4 May 2006 Laurent Rineau - in include/CGAL/Complex_2_in_triangulation_3.h, removed 20% lignes of code: - remove adjacent_facets(...) (unused) - in set_in_complex(Facet), merge cases dimension()==3 with dimension()==2. - merge remove_from_complex(...) code with set_in_complex(...), using a template boolean parameter. - added incident_facets(Vertex_handle v, OutputIterator facets) to the specifications of SurfaceMeshComplex_2InTriangulation_3 - added operator<< and operator>> for Complex_2_in_triangulation_3 3 May 2006 Laurent Rineau - in include/CGAL/Surface_mesher/Oracles/Implicit_oracle.h: - remove a "const", before the point can be modified by the visitor, if any. 1 May 2006 Laurent Rineau - patch to ImageIO, to fix "unused variable" warnings. - added support for "Input/Ouput signature" (see include/CGAL/Mesh_3/IO.h) - better debugging output for include/CGAL/Surface_mesher/Surface_mesher_regular_edges.h, with macros CGAL_SURFACE_MESHER_DEBUG_CONSTRUCTORS and CGAL_SURFACE_MESHER_VERBOSE. - fix a bug in include/CGAL/Surface_mesh_cell_base_3.h: due to the Rebind_TDS mecanism, Complex_2_in_triangulation_cell_base_3 was base class twice! - remove 7 April 2006 Laurent Rineau - added a picture for the sphere example, in manual. - modified the bounds for the skull example: with previous bounds (10 and 10), the resulting mesh was not manifold. 6 April 2006 Laurent Rineau - better test case with two spheres (I changed the radii and centers), in the testsuite. - 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). - remove an unused code, in Surface_mesher (check_visits) - change to include/CGAL/Weighted_point_with_surface_index.h, used by Mesh_3 only. - 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. - Performance issue, in Standard_criteria.h: Quality were not defined correctly, and then facets were not ordered correctly, in the Double_map. - If the center of the bounding sphere is not in the volume, take another one, randomly in the sphere. - Make surf_equation non private, for Mesh_3, in Implicit_oracle.h 5 April 2006 Laurent Rineau - demo now output an off file, probably non oriented. - Mesh_3/application/off_to_medit.C helps to convert it to a medit file. 29 March 2006 Laurent Rineau - New "#ifdef CGAL_USE_CORE/#endif" around the use of CORE, in test/Surface_mesher/implicit_surface_mesher_test.C - Patch to ImageIO to kill warnings of SunCC. ImageIO was a C library but is compiled by a C++ compiler. It needs adjustments. 28 March 2006 Andreas Fabri - Replaced #ifdef WIN32 with #ifdef _MSC_VER in ImageIO.c 23 March 2006 Laurent Rineau - new version, more didactic, of examples/Surface_mesher/3d_image_surface_mesher.C - killed warnings in ImageIO - updated test parameters - 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 - the teaser picture of the doc is now centered in HTML too - added a demo, even if it is not ready If somebody or the release manager do not agree with that, I will "dont_submit" it. So "Speak Now or Forever Hold Your Peace!" :-) 22 March 2006 Laurent Rineau - fix doc_tex/Surface_mesher_ref/ImplicitSurfaceTraits_3.tex after the changes of yesterday - forgot to tell that FT must be constructible from a double - fix the std::cerr everywhere: better use of the macro CGAL_SURFACE_MESHER_VERBOSE - 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. - change sligthly the code of examples, and modify sligthly the user manual accordingly - change the way the parameter error_bound of the constructor of Implicit_Surface_3 is multiplied by the radius of the bounding sphere. - added explanation of parameter error_bound of the constructor of Implicit_Surface_3, in its ref page - change some bug messages in include/CGAL/Surface_mesher/Oracles/Implicit_oracle.h - add a case in the testsuite 21 March 2006 Laurent Rineau - fix examples/Surface_mesher/3d_image_surface_mesher.C (stupid bug: the bounding sphere and the criteria were copy-pasted from implicit_surface_mesher.C and were unappropriate. - changes template parameters of all classes include/CGAL/Surface_mesher/Surface_mesher*.h and update of include/CGAL/make_surface_mesh.h - Fix the compilation error on Windows compilers. BUG explanation: there was a typedef name SMREB in Surface_mesher_regular_edges.h and SMREB was also the name of a template parameter of Surface_mesher_regular_edges.h. - Change the compilation process of ImageIO, to be cross-platform 20 March 2006 Laurent Rineau - fix include/CGAL/Gray_level_image_3.h - added a CGAL::Timer to test/Surface_mesher/implicit_surface_mesher_test.C and fixed a warning ("FT(1)" instead of "1") - new version of include/CGAL/Surface_mesher/Oracles/Implicit_oracle.h that now uses include/CGAL/Surface_mesher/Oracles/Sphere_oracle_3.h 17 March 2006 Laurent Rineau - modified examples/Surface_mesher/makefile, to have ImageIO compiled on Sun - added examples/Surface_mesher/cgal_test, so that the testsuite does not try to compile and run examples/Surface_mesher/implicit_functions - try to workaround ICL and VC++ 8 bug (or not bug, I do not know), in include/CGAL/Surface_mesher/Surface_mesher_manifold.h - added a new class include/CGAL/Surface_mesher/Oracles/Sphere_oracle_3.h and a specialization Surface_mesh_traits_generator_3 > - updated test test/Surface_mesher/implicit_surface_mesher_test.C to test the meshing of Kernel::Sphere_3(ORIGIN, 1.) 15 March 2006 Laurent Rineau - Added macro CGAL_SURFACE_MESHER_DEBUG_CONSTRUCTORS to strace constructors calls of classes in include/CGAL/Surface_mesher/Surface_mesher*.h - Added a test file test/Surface_mesher/internal-test-surface-mesher.C for Andreas 14 March 2006 Joachim Reichel - Added/fixed CGAL_MAKEFILE= line in makefiles 10 March 2006 Mariette - doc fixes 10 March 2006 Laurent Rineau - first correct version of SurfaceMeshTraingulation_3.tex - removed unused Tr::* typedefs everywhere - renamed Triangulation::XXXX_iterator to Triangulation::Finite_XXXs_iterator in C2t3. 9 March 2006 Laurent Rineau - modification of Complex_2_in_triangulation_vertex_base_3 and Complex_2_in_triangulation_3: the result of union_find_of_incident_facets() is cached in the vertex. - remove unwanted verbose output. It is now activable by defining the preprocessor macro CGAL_SURFACE_MESHER_VERBOSE. 8 March 2006 Laurent Rineau - change some hard-coded "double" to "FT" - change face_type() to face_status() in users of C2t3 - first testsuite - renamed nested typedef Triangulation_3 to Triangulation, in C2t3 - added specializations for Manifold_tag and Manifold_with_boundaries_tag, in include/CGAL/make_surface_mesh.h - heavy changes of template parameters and constructors of: - Surface_mesher_regular_edges_without_boundary_base - Surface_mesher_regular_edges_base - Surface_mesher_manifold_base - new classes Surface_mesher_manifold, urface_mesher_regular_edges and Surface_mesher_regular_edges_without_boundary, that are no longer copy-pasted from Surface_mesher. - rename all triangulation objects to "tr", and all geom_traits objects to "gt". No longer "tri3", or "ker". - updated the target "depends" of GNUmakefile files. - testsuite compiles, but runtime problem in manifold version. Non manifold runs correctly. - fix layout of this changes.txt file 8 March 2006 Mariette Yvinec - changed the booleans in Complex_2_in_triangulation_vertex_base_3 - changes in Complex_2_in_triangulation_3 : - remove set_in_complex and remove_from_complex for vertices - change set_in_complex and remove_from_complex for facets - add iterators on complex faces - fixed operator Not_in_complex - changed face_type into face_status - changed is_in_complex - added is_regular_or_boundary_for_vertices 2 March 2006 Laurent Rineau (WARNING: partially compiles, runtime errors, temporary commit) - Added an undocumented class Surface_mesh_triangulation_generator_3 which is a meta functor Kernel->Triangulation, that computes the right triangulation for make_surface_mesh() - Added documented files: - include/CGAL/Implicit_surface_3.h - include/CGAL/Surface_mesh_default_criteria_3.h - include/CGAL/Surface_mesh_complex_2_in_triangulation_3.h - In doc, rename: - SurfaceMeshCriteria to SurfaceMeshCriteria_3 - Surface_mesh_default_criteria to Surface_mesh_default_criteria_3 - Added doc_tex GNUmakefile, for developers uses. - Wrote the first test file! - Find Triangulation_mesher_level_traits_3.h in include/CGAL/Mesh_2/, now. - Major changes in template arguments, data members, and constructors of: - class Surface_mesher, - class Implicit_oracle, - Minor changes everywhere (sorry for the imprecision, too long). 27 february 2006 Laurent Rineau (WARNING: no longer compiles, temporary commit) - Added number_of_facets() to C2T3 (code and documentation) - Remove Complex_2_in_triangulation_3_surface_meshe.h (not finished) - Created classes Surface_mesh_cell_base_3 and Surface_mesher_vertex_base_3. - Beginning to changes code to bo sync with the documentation. - Remove old headers Nodes.h and Graph.h 20 janvier 2006 Mariette Yvinec - changed the reference page manual according to Efi comments + various discussions. - still missing : the concept SurfaceMeshTriangulation_3 17 janvier 2006 Mariette Yvinec - changed in the doc PureComplex_2InTriangulation_3 to SurfaceMeshComplex_2InTriangulation_3 and Pure_complex_2_in_triangulation_3.tex to Surface_mesh_complex_2_in_triangulation_3.tex 9 December 2005 Andreas Fabri - Replaced arrays of bool with a char and bit operations - Moved CGAL/Complex_2_in_triangulation_surface_mesh_cell_base_3.h to CGAL/Surface_mesher/Surface_mesh_cell_base_3.h 1 December 2005 Andreas Fabri - Putting const& in the Implicit_oracle - Made Implicit_oracle::intersect_segment_surface_rec(Point p1, Point p2) non-recursive - Replaced handwritten code with usage of TDS_3::mirror_facet 30 November 2005 Andreas Fabri - Introduced lazy initialization of treatment of singular vertices - Introduced a method for determining if a vertex is in the complex, as face_type computation would trigger the lazy initialization - Removed the graph in the vertices for computing whether the vertex is singular - Removed the facet status field and its set/get method - Renamed complex_subface_type by face_type - Replaced functions that return a list with functions that write in output iterators - Replaced the "visits" that counted with a visited that only stores a bool as there was only an inc and reset method, and the comparison with 0 - Lots of small cleanup as proposed in TODO 4 november 2005 Laurent Rineau - new output/input operators in: include/CGAL/Complex_2_in_triangulation_cell_base_3.h include/CGAL/Complex_2_in_triangulation_surface_mesh_cell_base_3.h include/CGAL/Point_with_surface_index.h include/CGAL/Weighted_point_with_surface_index.h This permits to save/load meshes with i/o operators of Triangulation_3. 3 novembre 2005 Mariette Yvinec - surface mesher is now on cgal cvs serveur - added in doc_tex the specifications of Complex_2_in Triangulation_3 although they do not correspond to the code developped by David 14 september 2005 Mariette Yvinec - put package Surface_mesher on cgal local cvs serveur 2 september 2005 Laurent Rineau - in Surface_mesher: - new file include/CGAL/Point_with_surface_index_geom_traits.h to have one class per file. - new files: include/CGAL/Weighted_point_with_surface_index.h include/CGAL/Point_with_surface_index_geom_traits.h so that CGAL::Weighted_point_with_surface_index can have several additional constructors with Bare_point parameters. - two important hacks in files: include/CGAL/Surface_mesher/Oracles/Polyhedral.h include/CGAL/Surface_mesher/Oracles/Implicit_oracle.h 1/ Use of a new typedef Kernel_point, obtained by Kernel_traits, so these two classes work with Point_with_surface_index and Weighted_point_with_surface_index. Some assign statement has to be used with a Kernel_point, so that they do not fail systematicaly (assign sucks!). 2/ Use of CGAL::Random_points_in_sphere_3 in include/CGAL/Surface_mesher/Oracles/Implicit_oracle.h in function random_points(), so that this function does not use the contructor Point(double x, double y, double z). This implied that the tenmplate Implicit_oracle had a new template parameter, Point_creator, which I gave default Creator_uniform_3. With Point_with_surface_index and Weighted_point_with_surface_index this creator should be defined. See ../Mesh_3/test/Mesh_3/combined_spheres.C and ../Surface_mesher/examples/Surface_mesher/surfaces_union.C - same problem, file include/CGAL/Surface_mesher/Oracles/Point_surface_indices_visitor.h has been changed: Point_surface_indices_visitor now has a templated new_point() function, so that is can take Kernel_point or Point as argument. - minor changes: - include/CGAL/IO/Complex_2_in_triangulation_3_file_writer.h now has correct copyright and #ifdef sentinel - include/CGAL/Surface_mesher/Oracles/Multi_implicit_oracle.h now has correct copyright - rename DT_3 into Tr, and GT_3 into Geom_traits in file include/CGAL/Surface_mesher/Oracles/Polyhedral.h - updated examples/Surface_mesher/surfaces_union.C so that it works. TODO: - fix include/CGAL/Surface_mesher/Oracles/Multi_implicit_oracle.h as regards Kernel_point stuff - merge it with include/CGAL/Surface_mesher/Oracles/Implicit_oracle.h - in Mesh_3: - include/CGAL/IO/File_medit.h : - fix namespace !! - some functions now takes a C2T3 as argument, now that C2T3 has a triangulation() getter. - new function input_pslg_from_medit() !! It reads indices. - output_pslg_to_medit() now uses surface_index() too - new implementation of CGAL::Point_traits.h 18 august 2005 Laurent Rineau - Complex_2_in_triangulation_3 now has an accessor: Triangulation_3& triangulation() 15 august 2005 Laurent Rineau - in Surface_mesher: new Combining_oracle, and Oracle_visitor, - in Mesh_3: test/Mesh_3/combined_spheres tests that new oracle. 28 july 2005 LR MY - fixed the add_node() for memory leaks in Graph.h - fixed the face_type() for edges in Complex_2_in_triangulation_3.h 27 July 2005 LR MY - fixed return type of apply in Multi_implicit_oracle.h - remove the const of const int number_of_functions 27 July 2005 LR MY - changed some named - multi_implicit_oracle added 19 July 2005 Laurent Rineau Change in examples/Surface_mesher/surface_mesher.C : - added a macro SURFACE_MESHER_POLYHEDRAL. If defined, the polyhedral version is compiled. - change of makefile (and .cvsignore), so that two versions implicit_surface_mesher and polyhedral_surface_mesher are built by make all. 19 July 2005 Laurent Rineau Minor changes: - use mirror_facet, from Triangulation_3. Introduced in CGAL_3_2_I_146. 30 June 2005 Laurent Rineau - attempt to merged trunk, sliver_branch and my local modifications... - may be correct, or not. 12 may 2005 David Rey - create several surface meshers: - with no verification about manifoldness - constraint regulare edges - constraint regular edges and no boundary - constraint manifoldness - mv names into better ones: - Chew_4_surfaces -> Surface_mesher - Chew_4_surfaces_manifold -> Surface_mesher_regular_edges - Chew_4_surfaces_manifold_without_boundary -> Surface_mesher_regular_edges_without_boundary - Chew_4_surfaces_manifold_simple_vertices -> Surface_mesher_manifold 24 March 2005 Laurent Rineau - compatibility with new requirements of Mesher_level - code is still broken, since 2005/02/27. 8 February 2005 Laurent Rineau - new changes.txt file - removed files that are in Mesh_2 and Mesh_3: - Mesher_level.h (Mesh_2) - Triangulation_mesher_level_traits_3 (Mesh_3) - new template parameters for Mesher_level - modified Complex_2_in_triangulation_3: - factorised set_in_complex and remove_from_complex - new functions is_in_complex - rename Complex_2_in_triangulation_cell_base_* classes: - Complex_2_in_triangulation_cell_base_3 - Complex_2_in_triangulation_surface_mesh_cell_base_3 - new Mesher_level function names: - Tr& triangulation_ref_impl() - Vertex_handle insert_impl(p, z) - Zone conflicts_zone_impl(p) - void scan_triangulation_impl() - bool no_longer_element_to_refine_impl() - Element get_next_element_impl() - void pop_next_element_impl() - Point refinement_point_impl(e) - void before_conflicts_impl(e, p) - Mesher_level_conflict_status private_test_point_conflict_impl(p, zone) - Mesher_level_conflict_status test_point_conflict_from_superior_impl(p, zone) - void before_insertion_impl(e, p, zone) - void after_insertion_impl(vh) - void after_no_insertion_impl(e, p, zone) - new class in Mesher_level.h for default implementations: - class Triangulation_ref_impl - No_private_test_point_conflict - No_test_point_conflict_from_superior - No_test_point_conflict : - No_before_insertion - No_after_insertion - No_after_no_insertion - No_before_after_insertion - added implementation of: Chew_4_surface::test_point_conflict_from_superior_impl()