We declare
cmake_minimum_required(VERSION 2.6.2)
but we also use
cmake_policy(VERSION 2.8.4)
to declare that our CMake scripts are OK with all the defaults of CMake policies
as of CMake-2.8.4. That shuts down the warnings of CMake-2.8.4.
That way, we no longer need any declaration of specific policies.
Those two lines must be present and maintained in all our CMakeLists.txt
files (the one for the libraries, and also the one for examples and demos,
and maybe tests).
The documentation of CGAL says that the minimal version of CMake must be
CMake-2.6.2.
- change cmake_minimum_required to VERSION 2.6.2
- no longer any need for the policy CMP0003 (was for 2.4.x)
- no longer any need for CMAKE_ALLOW_LOOSE_LOOP_CONSTRUCTS (was for 2.4)
| ------------------------------------------------------------------------
| r57979 | lrineau | 2010-08-11 15:24:20 +0200 (Wed, 11 Aug 2010) | 1 line
|
| Global fix of all uses of qt4_generate_moc: the destination file path must be absolute.
| ------------------------------------------------------------------------
| r58026 | stayeb | 2010-08-12 17:40:41 +0200 (Thu, 12 Aug 2010) | 2 lines
|
| Bug fix: ensure that c3t3 contains no in complex cell when starting a new refinement process. We need this because the first refinement of the surface does not update the volume, so c3t3 can't know that in complex cells have been deleted.
|
| ------------------------------------------------------------------------
(That shows it is difficult to avoid to merge the release branch in the
trunk from time to time.)
- CMake's conditional use of the marching cube code.
- Use Surface_mesher_generator instead of make_surface_mesh().
- Better drawing of multi-label surface meshes.
the right widget, with other criteria (manifold...).
- Save image settings for the multilabel case.
- polyhedral surface support is now optional.
- The main window store and restore its state.
image (internally VTK's classes are used).
- Simplification of the code using the "show_only_in" feature.
- binary_image is now derived from CGAL::Image_3
component in the image, one start a breadth-first search initialized with
all voxels of the border of the connected component. The last voxel found
by that BFS is choosen as a kind of center of the connected component, from
which one throws several rays.
one display list for the surface mesher result, and two for the marching
cubes results (one with Gouraud shading and one without).
- One can now choose the color of triangulation edges (with the whole
triangulation is drawn).
- Redraw the OpenGL widget each time something in the isovalues list has
changed.
internaly stores a Data_type[] array, instead of a double[] array. When
Data_type==char, it uses the 8th of the memory! For a 3D images of 182MB
(the "colon" image), that saves 1.2GB.
As a side effect, MarchingCubes.cpp is renamed to MarchingCubes_impl.h
(because it is now a template class).
- Use MarchingCube.set_ext_data, so that the 3D image and the MarchingCube
object share the same (unsigned char*) array. That saves again a lot of
memory.
- call MarchingCube::clean_temps *before* copying its result in the demo's
internal structures.
My laptop with 2GB RAM can now call the marching cubes algorithm on the
colon 3D image. It uses 2.8GB of virtual memory, which is just below the
limit of 3GB (Linux's limit on x86 machines)!
It works. I compiled CGAL using:
cmake . -DCMAKE_INSTALL_PREFIX=$HOME/CGAL/CGAL-3.4-I -DWITH_CGALimageIO=TRUE
make install
Then I compile the demo using:
cmake -DCMAKE_MODULE_PATH=/home/lrineau/CGAL/CGAL-3.4-I/cmake/modules/cmake/modules -DCMAKE_VERBOSE_MAKEFILE=TRUE -DCGAL_INCLUDE_DIR=/home/lrineau/CGAL/CGAL-3.4-I/include -DCMAKE_CXX_COMPILER==g++
That is currently quite complicated. Need to work with Fernando to enhance the usability.
copying into another vector,
- add an option to display (or not) the triangles edges,
- add an option to display the maching cubes with Gouraud shading, using
the computed normals.
- split polyhedral_surface.h into polyhedral_surface.h and
polyhedral_surface.cpp (and removal of get_polyhedral_surface.cpp),
- fix qt4-demo.pro: use a qt feature file "cgal.prf", generated from
Makefile.make_CGAL_prf (using $CGAL_MAKEFILE).
* 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.
Without parameter: displays supported image file formats
With a parameter: displays informations about the file, if supported.
(reminder: demo/Surface_mesher/ is not submitted).
Reminder: demo/Surface_mesher is in dont_submit. It only tests
non-documented features, and may rely on headers that are not in CGAL (such
as the package Data_structure_for_query_3).
- 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)