CGAL 5.6 - 3D Isosurfacing
3D Isosurfacing Reference

isosurfacing3_ico.png
Julian Stahl and Daniel Zint
This package implements several variations of the marching cubes algorithm to generate a triangle meshes out of a voxel grid.
Introduced in: CGAL 5.7
BibTeX: cgal:sz-mc-22b
License: GPL
Windows Demo: Polyhedron demo
Common Demo Dlls: dlls

This package provides algorithms to extract isosurfaces from different inputs. The input is represented as a domain and can be an implicit function, a cartesion grid, or an octree. The output is an indexed face set that stores an isosurface in the form of a surface mesh. Available algorithms include Marching Cubes, Dual Contouring, and others.

Classified Reference Pages

Concepts

Classes

Free Functions

Modules

 Concepts
 

Functions

template<typename Concurrency_tag = Sequential_tag, class Domain_ , class PointRange , class PolygonRange >
void CGAL::Isosurfacing::make_triangle_mesh_using_marching_cubes (const Domain_ &domain, const typename Domain_::FT iso_value, PointRange &points, PolygonRange &polygons)
 Creates a polygon soup that represents an isosurface using the marching cubes algorithm. More...
 

Function Documentation

◆ make_triangle_mesh_using_marching_cubes()

template<typename Concurrency_tag = Sequential_tag, class Domain_ , class PointRange , class PolygonRange >
void CGAL::Isosurfacing::make_triangle_mesh_using_marching_cubes ( const Domain_ &  domain,
const typename Domain_::FT  iso_value,
PointRange &  points,
PolygonRange &  polygons 
)

#include <CGAL/Marching_cubes_3.h>

Creates a polygon soup that represents an isosurface using the marching cubes algorithm.

Template Parameters
ConcurrencyTagdetermines if the algorithm is executed sequentially or in parallel.
Domain_must be a model of IsosurfacingDomain.
PointRangeis a model of the concept RandomAccessContainer and BackInsertionSequence whose value type can be constructed from the point type of the polygon mesh.
PolygonRangea model of the concept RandomAccessContainer and BackInsertionSequence whose value type is itself a model of the concepts RandomAccessContainer and BackInsertionSequence whose value type is std::size_t.
Parameters
domainthe domain providing input data and its topology
iso_valuevalue of the isosurface
pointspoints making the polygons of the soup
polygonseach element in the vector describes a polygon using the indices of the points in points
Examples:
Isosurfacing_3/all_cartesian_cube.cpp, Isosurfacing_3/marching_cubes_cartesian_grid_sphere.cpp, Isosurfacing_3/marching_cubes_implicit_sphere.cpp, Isosurfacing_3/marching_cubes_inrimage.cpp, and Isosurfacing_3/marching_cubes_mesh_offset.cpp.
CGAL 5.6 - 3D Isosurfacing
3D Isosurfacing Reference

isosurfacing3_ico.png
Julian Stahl and Daniel Zint
This package implements several variations of the marching cubes algorithm to generate a triangle meshes out of a voxel grid.
Introduced in: CGAL 5.7
BibTeX: cgal:sz-mc-22b
License: GPL
Windows Demo: Polyhedron demo
Common Demo Dlls: dlls

This package provides algorithms to extract isosurfaces from different inputs. The input is represented as a domain and can be an implicit function, a cartesion grid, or an octree. The output is an indexed face set that stores an isosurface in the form of a surface mesh. Available algorithms include Marching Cubes, Dual Contouring, and others.

Classified Reference Pages

Concepts

Classes

Free Functions

Modules

 Concepts
 

Functions

template<typename Concurrency_tag = Sequential_tag, class Domain_ , class PointRange , class PolygonRange >
void CGAL::Isosurfacing::make_triangle_mesh_using_marching_cubes (const Domain_ &domain, const typename Domain_::FT iso_value, PointRange &points, PolygonRange &polygons)
 Creates a polygon soup that represents an isosurface using the marching cubes algorithm. More...
 

Function Documentation

◆ make_triangle_mesh_using_marching_cubes()

template<typename Concurrency_tag = Sequential_tag, class Domain_ , class PointRange , class PolygonRange >
void CGAL::Isosurfacing::make_triangle_mesh_using_marching_cubes ( const Domain_ &  domain,
const typename Domain_::FT  iso_value,
PointRange &  points,
PolygonRange &  polygons 
)

#include <CGAL/Marching_cubes_3.h>

Creates a polygon soup that represents an isosurface using the marching cubes algorithm.

Template Parameters
ConcurrencyTagdetermines if the algorithm is executed sequentially or in parallel.
Domain_must be a model of IsosurfacingDomain.
PointRangeis a model of the concept RandomAccessContainer and BackInsertionSequence whose value type can be constructed from the point type of the polygon mesh.
PolygonRangea model of the concept RandomAccessContainer and BackInsertionSequence whose value type is itself a model of the concepts RandomAccessContainer and BackInsertionSequence whose value type is std::size_t.
Parameters
domainthe domain providing input data and its topology
iso_valuevalue of the isosurface
pointspoints making the polygons of the soup
polygonseach element in the vector describes a polygon using the indices of the points in points
Examples:
Isosurfacing_3/all_cartesian_cube.cpp, Isosurfacing_3/marching_cubes_cartesian_grid_sphere.cpp, Isosurfacing_3/marching_cubes_implicit_sphere.cpp, Isosurfacing_3/marching_cubes_inrimage.cpp, and Isosurfacing_3/marching_cubes_mesh_offset.cpp.