cgal/Surface_mesher/changes.txt

564 lines
23 KiB
Plaintext

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 <CGAL/Surface_mesh_default_triangulation_3.h>
- new polyhedron_remesher.cpp
- use Robust_circumcenter_traits_3<K> 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 <CGAL/Surface_mesher/Surface_mesher.h>
- 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
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 <CGAL/compiler_config.h> 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<Tr>
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 <CGAL/Delaunay_triangulation_3.h>
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<CGAL::Sphere_3<Kernel> >
- 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<Weighted_point> 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<Point> and
Weighted_point_with_surface_index<Weighted_point>. 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<Point, Point_creator> 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<typename GT::RT, typename GT::Point_3>.
With Point_with_surface_index<Point> and
Weighted_point_with_surface_index<Weighted_point> 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<Tr> 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()