mirror of https://github.com/CGAL/cgal
|
|
||
|---|---|---|
| .. | ||
| CGAL | ||
| Release | ||
| data/Polyhedra | ||
| mesher_tester_scripts | ||
| CMakeLists.txt | ||
| Distribution_displayer.h | ||
| GOCAD_xyz_to_OFF.cpp | ||
| Gd_displayer.cpp | ||
| Gd_displayer.h | ||
| Qt_widget_displayer.cpp | ||
| Qt_widget_displayer.h | ||
| README | ||
| cgal_to_medit.cpp | ||
| debug.h | ||
| display_distribution.cpp | ||
| distribution.cpp | ||
| distribution.h | ||
| dump_to_ghs_points | ||
| filter_remove_tets_from_medit | ||
| identify_identical_points_in_OFF_files.cpp | ||
| lanteri.cpp | ||
| lanteri_output_tet_mesh.cpp | ||
| lanteri_process_results.cpp | ||
| lanteri_process_results.h | ||
| lanteri_utils.h | ||
| libmesh.c | ||
| libmesh.h | ||
| merge_off_files.cpp | ||
| mesh_3D_image.cpp | ||
| mesh_implicit_domains.cpp | ||
| mesh_polyhedral_domain.cpp | ||
| mesher_tester.cpp | ||
| mesher_tester.h | ||
| mesher_tester_image.cpp | ||
| mesher_tester_polyhedron.cpp | ||
| nb2mesh.c | ||
| off_to_ghs.cpp | ||
| off_to_medit.cpp | ||
| output_distribution_to_stdout.cpp | ||
| read_mesh.cpp | ||
| slivers_exuder.cpp | ||
| stat_mesh.cpp | ||
| test_off.cpp | ||
| thread_queue.h | ||
| types.h | ||
| utils.h | ||
| weighted_types.h | ||
README
This directory is a repository of tools, related to Mesh_3, but which
are not demos nor examples. Some of them (like slivers_exuder) will
perhaps be moved to demo/Mesh_3/ in the future.
Here is the list of tools:
cgal_to_medit
display_distribution
filter_remove_tets_from_medit
GOCAD_xyz_to_OFF
identify_identical_points_in_OFF_files
lanteri
lanteri_output_tet_mesh
off_to_ghs
read_mesh
slivers_exuder
stat_mesh
test_off
nb2mesh
Details follows...
Files formats:
-------------
[too be written]
filter_remove_tets_from_medit:
-----------------------------
This is a filter, written in Perl.
Use it like that:
./filter_remove_tets_from_medit < file.mesh > file-notets.mesh
It takes a medit file as standard input, and returns to standard
output the same medit file, without its tetrahedra.
cgal_to_medit:
-------------
Usage:
./cgal_to_medit INPUT OUPUT
INPUT must be a file of format produced by the output operator of
CGAL::Triangulation_3, with points
CGAL::Weighted_point_with_surface_index and cells
CGAL::Mesh_3::Complex_2_in_triangulation_cell_base_3.
OUTPUT will be a medit file.
GOCAD_xyz_to_OFF:
----------------
Convert a file from format GOCAD's xyz to OFF file format.
Usage:
./GOCAD_xyz_to_OFF INPUT.xyz OUTPUT.off
identify_identical_points_in_OFF_files:
--------------------------------------
That tools tries to fix an OFF file:
- merge identical points,
- then orient the surface if possible.
Usage:
./identify_identical_points_in_OFF_files < input.off > output.off
merge_off_files:
---------------
Use 'merge_off_files' to... merge several OFF files. If the OFF files have
vertices in common, they will be duplicated (use
'identify_identical_points_in_OFF_files' after to fix that).
Usage:
./merge_off_files a.off b.off [off files] > result.off
lanteri:
--------
This tool is designed specificaly for answering to a request of
Stephane Lanteri, INRIA. It uses several files:
- utils.h contains templated functions
'display_faces_counts',
'display_facets_by_surface_indices_statistics',
'display_vertices_by_surface_indices_statistics',
'display_cells_by_volume_indices_statistics'.
- distribution.h and distribution.cpp declare and define functions
'compute_distribution',
'display_distribution'.
They use Distribution_displayer.h.
- Distribution_displayer.h defines a base class
'Distribution_displayer', with two pure virtual functions:
'fill_rectangle',
'segment'
- Gd_displayer.h Qt_widget_displayer.h
Gd_displayer.cpp Qt_widget_displayer.cpp
implementes two different classes derived of
'Distribution_displayer' (two implementation for displaying).
- lanteri_process_results.cpp defines three functions (declared in
lanteri.cpp):
'process_cells',
'process_volume_edges',
'process_surface_edges'.
- lanteri_utils.h defines two templated functions:
'scan_edges_and_process',
'scan_cells_and_process'.
These two functions use functions of lanteri_process_results.cpp.
lanteri_output_tet_mesh:
-----------------------
This tool is designed specificaly for answering to a request of
Stephane Lanteri, INRIA.
display_distribution:
--------------------
Usage:
./display_distribution [--scale x] (--tets|--noboite|--mesh) FILE
Options:
--scale SCALE SCALE is a real number, which will be the
the vertical scaling of the histogram.
--criterion ANGLE
--criterion RATIO Choose between an min dihedral angle distribution
or an aspect ratio distribution.
Default: RATIO.
--tets FILE
--noboite FILE
--mesh FILE
--cgal FILE
Read input file FILE.
FILE must a .tets file, or a .noboite file,
a cgal file, or a .mesh file.
This tool displays the radius-radius ratio distribution or the minimum
dihedral angle distribution of a mesh file, and save it in a png file named
FILE-scale-SCALE-angles.png or FILE-scale-SCALE-ratios.png. It also display
the minimum and the maximum of the criterion, in the mesh.
off_to_ghs:
----------
Usage:
./off_to_ghs [FILE_BASENAME]
will convert FILE_BASENAME.off to FILE_BASENAME.faces
and FILE_BASENAME.points.
off_to_medit:
----------
This tool creates a medit files with 0 tetrahedra, from an .off file.
Usage:
./off_to_medit [FILE_BASENAME]
will convert FILE_BASENAME.off to FILE_BASENAME.mesh.
read_mesh:
---------
Usage:
./read_mesh FILE
FILE must be a file of format produced by the output operator of
CGAL::Triangulation_3, with points
CGAL::Weighted_point_with_surface_index and cells
CGAL::Mesh_3::Complex_2_in_triangulation_cell_base_3.
This tools read a .mesh file and displays faces counts, such as in:
Vertices: 3247
Facets on surface: 6474
Cells: 19670
Cells in volume: 18335
This file uses utils.h, and types.h.
stat_mesh:
---------
Usage:
./stat_mesh FILE
FILE must be a file of format produced by the output operator of
CGAL::Triangulation_3, with points
CGAL::Weighted_point_with_surface_index and cells
CGAL::Mesh_3::Complex_2_in_triangulation_cell_base_3.
Same as read_mesh, but displays more informations:
Vertices: 3247
Facets on surface: 6474
Cells: 19670
Cells in volume: 18335
Statistics:
(vertices)
Vertices with index #0: 0
Vertices with index #1: 450
Vertices with index #2: 563
Vertices with index #3: 705
Vertices with index #4: 863
Vertices with index #5: 666
(facets)
Hybrid facets: 0
Facets on surface #0: 0
Facets on surface #1: 896
Facets on surface #2: 1122
Facets on surface #3: 1406
Facets on surface #4: 1722
Facets on surface #5: 1328
slivers_exuder:
--------------
This tools exudes slivers from a cgal triangulation.
Usage:
./slivers_exuder INPUT OUTPUT bound [filename.off]
INPUT must be a file of format produced by the output operator of
CGAL::Triangulation_3, with points
CGAL::Weighted_point_with_surface_index and cells
CGAL::Volume_mesher_cell_base_3.
OUPUT is the name of the ouput file. It will be in the same format.
0<=bound<=1.0 is a bound on pumping process.
If non-nul, filename.off is the name of an output off file, where
only slivers are displayed.
Uses utils.h and weighted_types.h.
test_off:
--------
This tool tests if an OFF file describes a manifold surface or not from the
combinatorial point of view : more precisely it tests if any edge is
incident to two faces.
Usage:
./test_off [OFF_FILE_NAME.off]
will analyse OFF_FILE_NAME.off and display the list of non manifold edges.
nb2mesh:
-------
This tool converts meshes from the [no]boite[b]-format to the mesh[b]- or amdba3-format.
Usage: nb2mesh filein fileout [-v] [-s]
filein : xxx.[no]boite[b]
fileout: yyy.mesh[b] or zzz.amdba3
-v : verbose mode
-s : do not create boundary (surface)
-x : split constrained tetras
-df : remove dangling faces
-ref : add reference to sub-domains