CGAL 6.0 - 3D Isosurfacing
Loading...
Searching...
No Matches
CGAL::Isosurfacing::Marching_cubes_domain_3< Partition, ValueField, EdgeIntersectionOracle > Class Template Reference

#include <CGAL/Isosurfacing_3/Marching_cubes_domain_3.h>

Definition

template<typename Partition, typename ValueField, typename EdgeIntersectionOracle = CGAL::Isosurfacing::Linear_interpolation_edge_intersection>
class CGAL::Isosurfacing::Marching_cubes_domain_3< Partition, ValueField, EdgeIntersectionOracle >

A domain that can be used with the Marching Cubes algorithm.

Is model of
IsosurfacingDomain_3

This class is essentially wrapper around the different bricks provided by its template parameters: Partition provides the spatial partitioning, ValueField the values that define the isosurface. The optional template parameter EdgeIntersectionOracle gives control over the method used to compute edge-isosurface intersection points.

Template Parameters
Partitionmust be a model of IsosurfacingPartition_3
ValueFieldmust be a model of IsosurfacingValueField_3
EdgeIntersectionOraclemust be a model of IsosurfacingEdgeIntersectionOracle_3
See also
CGAL::Isosurfacing::marching_cubes()
CGAL::Isosurfacing::Dual_contouring_domain_3
Examples
Isosurfacing_3/contouring_implicit_data.cpp, Isosurfacing_3/contouring_mesh_offset.cpp, Isosurfacing_3/dual_contouring_octree.cpp, and Isosurfacing_3/marching_cubes.cpp.

Public Member Functions

 Marching_cubes_domain_3 (const Partition &partition, const ValueField &values, const EdgeIntersectionOracle &intersection_oracle=EdgeIntersectionOracle())
 constructs a domain that can be used with the Marching Cubes algorithm.
 

Constructor & Destructor Documentation

◆ Marching_cubes_domain_3()

template<typename Partition , typename ValueField , typename EdgeIntersectionOracle = CGAL::Isosurfacing::Linear_interpolation_edge_intersection>
CGAL::Isosurfacing::Marching_cubes_domain_3< Partition, ValueField, EdgeIntersectionOracle >::Marching_cubes_domain_3 ( const Partition &  partition,
const ValueField &  values,
const EdgeIntersectionOracle &  intersection_oracle = EdgeIntersectionOracle() 
)

constructs a domain that can be used with the Marching Cubes algorithm.

Parameters
partitionthe space partitioning data structure
valuesa continuous field of scalar values, defined over the geometric span of partition
intersection_oraclethe oracle for edge-isosurface intersection computation
Warning
the domain class keeps a reference to the partition, values and gradients objects. As such, users must ensure that the lifetimes of these objects exceed that of the domain object.