cgal/Mesh_3/changes.txt

334 lines
14 KiB
Plaintext
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

13 September 2006 Laurent Rineau
- 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!)
12 July 2006 Laurent Rineau
- new class Volume_mesher_default_triangulation_3
- new test, of io operators. It uses Volume_mesher_default_triangulation_3.
- fix i/o operators of <CGAL/Volume_mesher_cell_base_3.h>, in binary mode.
- fix <CGAL/Mesh_3/IO.h>, in case of binary mode.
- improved applications/lanteri.cpp. It know compute histograms of
dihedral min angles, too.
10 July 2006 Laurent Rineau
- new debug macros:
- CGAL_MESH_3_DIRTY_DEBUG_SPHERES,
- and CGAL_MESHES_DEBUG_REFINEMENT_POINTS.
- new macro CGAL_MESHES_OUTPUT_STREAM, which is set to std::cout by
default.
- in Mesh_2: new header <CGAL/Mesh_2/Output_stream.h>
- new debug macro in <CGAL/Surface_mesher/Standard_criteria.h>
- CGAL_MESH_3_DEBUG_CRITERIA
Used in test/Mesh_3/combined_spheres*.cpp
7 July 2006 Laurent Rineau
- in test/Mesh_3/combined_spheres*.C:
- new surface criterion class, named Uniform_size_multi_surface_criterion
It does at the same time the job of
CGAL::Surface_mesher::Vertices_on_the_same_surface_criterion
and add size bounds, different for each surfaces.
- This fixes the "combined_spheres hot spots" problem.
5 July 2006 Laurent Rineau
- move Point_traits.h from Mesh_3 to Surface_mesher, to avoid an unneeded
dependancy
28 June 2006 Laurent Rineau
- another fix of Slivers_exuder
27 June 2006 Laurent Rineau
- use filtered regular traits in applications/
- fixed Slivers_exuder so that it can pump vertices of surfaces too
(Note: I may have broken things. I'll check tomorrow.)
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.
12 June 2006 Laurent Rineau
- remove subdirectories of include/CGAL/Surface_mesher: files of Criteria/
and Oracles/ are moved one step back.
- repear examples/Mesh_3/polyhedral_surface_mesher.C
- add two input files in ./inputs/*.off (with their medit files)
7 June 2006 Laurent Rineau
- sliver exuder fixed,
- Combining_oracle fixed too.
- fix a robustness issue in examples/Mesh_3/implicit_surfaces_mesher_3.C:
need to use CGAL::Regular_triangulation_filtered_traits_3 as geom_traits!!
6 June 2006 Laurent Rineau
- remove the old code Multi_implicit_oracle.h (in Surface_Mesher), and
multi_spheres.C (in Mesh_3).
1 May 2006 Laurent Rineau
- well... the exuder works, now!
1 May 2006 Laurent Rineau
- better checking of options, in
examples/Mesh_3/implicit_surfaces_mesher_3.C
- in CGAL/Mesh_3/IO.h, new feature "Get_io_signature". It permits to
verify that a file produced by the operator<< of an object is compatible
with the operator>> of an object of another type, by comparing a
"Input/Ouput signature".
- new applications/medit_to_cgal.C. It will work only when
read_from_medit(), in include/CGAL/IO/File_edit.h, will be fixed.
- new macro CGAL_SURFACE_MESHER_MANIFOLD, that permits to choose between
the manifold or non manifold version of Surface_mesher, in
include/CGAL/Implicit_surfaces_mesher_3.h
- improved the class "Debug" in include/CGAL/IO/File_medit.h. I should
perhaps publishit one day.
- include/CGAL/Mesh_3/Sliver_exuder.h is still under debugging!...
- change replay-skull a little, to test pumping...
6 April 2006 Laurent Rineau
- if the surface_index() of a point is 0, set it to 1, in
include/CGAL/Mesh_3/Implicit_surface_mesher_visitor.h
This visitor is passed to the Surface_mesher, when it is used from
Mesh_3. This patch makes surface_index() of points on the surface to
be 1, if is was 0.
- replay-skull now run correctly too.
- sliver exuder still crash. :-(
- the ImplicitFunction concept now has a operator()(Point), instead of
operator()(FT, FT, FT).
5 April 2006 Laurent Rineau
- Too much changes, after Surface_mesher API changes.
- examples/Mesh_3/implicit_surfaces_mesher_3.C compiles
- applications/ too.
- examples/Mesh_3/replay-* almost runs correctly.
- This package is still under reconstruction. Do no expect any from it!
26 Febraury 2006 Laurent Rineau
- Move the internal header
include/CGAL/Mesh_3/Triangulation_mesher_level_traits_3.h to Mesh_2.
4 november 2005 Laurent Rineau
- modified Special_tets_criteria in test/Mesh_3/combined_spheres.C
This criteria class has five size bounds, one for each sphere.
- new output/input operators in:
include/CGAL/Mesh_3/Complex_2_in_triangulation_cell_base_3.h
(in surface mesher:)
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 november 2005 Laurent Rineau
- modified applications/ tools
- rename functions:
output_pslg_to_medit -> output_to_medit
input_pslg_from_medit -> input_from_medit
7 september 2005 Laurent Rineau
- "New" tools in the subdirectory applications/
Actually, they were lost in the tools/ subdirectory of the package, that
exists only in the branch 'sliver_branch'.
They work, but are not adapted to the new framework Distribution_displayer.h
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
- tests:
- test/Mesh_3/combined_spheres.C
Now uses a class Point_with_surface_index_creator that is passed
to Implicit_oracle.
Now reads r1..r5 from std::cin, as well as the output medit file.
- test/Mesh_3/multi_spheres.C
Updated: compiles but is still broken, because of
Multi_implicit_oracle (see TODO below)
- new shell script test/Mesh_3/spheres_create_input.sh (not
submitted to CGAL) that helps to create .cin files for
combined_sphere.C
- examples:
- examples/Mesh_3/implicit_surfaces_mesher_3.C
Updated (use Weighted_point_with_surface_index_geom_traits and
new API for output_pslg_to_medit())
Compiles and should run correctly (I will see this week-end).
- new directory applications/ (not submitted)
- read_mesh.C reads medit files and display faces
counts. Uses "utils.h" and "types.h"
- stat_mesh.C does the same and displays vertices and facets counts
by surfaces.
- lanteri.C ad hoc application for fives spheres having same
center. It uses:
- lanteri_utils.h scans edges and cells
- distribution.[Ch] computes and display distributions
- Distribution_displayer.h is an abstract base class used by
distribution.C
- Gd_displayer.h and Qt_widget_displayer.h are two
Distribution_displayer subclasses, with there
implementations. Qt_widget_displayer is not currently used.
Only lanteri.C (and lanteri_utils.h) needs CGAL. The other files can
be compiled very quickly.
- minor changes:
- include/CGAL/IO/File_medit.h :
- now has correct #ifdef sentinel
- added missing includes
- examples/Mesh_3/implicit_surfaces_mesher_3.C: rename T to tr
- examples/Mesh_3/makefile is cleaned.
TODO: - examples/Mesh_3/polyhedral_surface_mesher.C is broken because:
- output_pslg_to_medit() in include/CGAL/IO/File_medit.h need
surface_index() in points. :-(
- Weighted_point wp = Weighted_point(p, best_weight, index);
in include/CGAL/Mesh_3/Slivers_exuder.h
- add_in_graph() & o in vertices (this sucks!)
- should use Weighted_point_with_surface_index_geom_traits
- test/Mesh_3/multi_spheres.C is broken because
../../../Surface_mesher/ \
include/CGAL/Surface_mesher/Oracles/Multi_implicit_oracle.h
*is* broken.
- File_medit.h should not require systematicaly surface_index()
- provide .cin files for tests (read Dev'Manual)
25 august 2005 Laurent Rineau
- new implementation of CGAL::Point_traits
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.
27 july 2005 LR MY
- first version of multi-implicit_surface mesher compiles and runs
27 July 2005 LR MY
- changed some names
- multi_implicit_oracle added
30 June 2005 Laurent Rineau
- attempt to merged trunk, sliver_branch and my local modifications...
- may be correct, or not.
07 April 2005 Laurent Rineau
- added skin implicit function
- the option parser of examples/Mesh_3/implicite_surface_mesher_3.C now has
string options
- new options:
--distribution_after_filename
--mesh_after_filename
--initial_surface_off
--surface_off
--slivers_off
- can output slivers to off
- multi-passes of sliver exudation
06 April 2005 Laurent Rineau
- added sliver exudation: include/CGAL/Mesh_3/Sliver_exuder.h
(perhaps should it be only a global function >> TODO)
03 April 2005 Laurent Rineau
- New functions using isosurface of Inrimage images
- Regular triangulation
- New prototype of sliver exudation
- New command-line options parser
- examples/Mesh_3/implicit_surface_mesher.C is some kind of demo. It
can also make coffe.
24 March 2005 Laurent Rineau
- new requirements for Mesher_level
- the bug of Refine_tets.h has been crunched!
- less verbose debugging outputs
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()