- 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.
- 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),
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.
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).
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.
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.
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).
* 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
- 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.
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.
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.
- 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<>.
- 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.
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
- 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.
- 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)
"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.
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".
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.
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).
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
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.
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.)
added in_complex test of facets and remove in_comples test of vertices
after_insertion of Surface_mesher_manifold :
use is_regular_or_boundary_for_vertices
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 SURFACE_MESHER_VERBOSE.
- 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