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

#include <CGAL/Isosurfacing_3/Dual_contouring_domain_3.h>

Definition

template<typename Partition, typename ValueField, typename GradientField, typename EdgeIntersectionOracle = Dichotomy_edge_intersection>
class CGAL::Isosurfacing::Dual_contouring_domain_3< Partition, ValueField, GradientField, EdgeIntersectionOracle >

A domain that can be used as input in the Dual Contouring algorithm.

Is model of
IsosurfacingDomainWithGradient_3

This class is essentially a wrapper around the different bricks provided by its template parameters: Partition provides the spatial partitioning, ValueField and GradientField the values and gradients 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
GradientFieldmust be a model of IsosurfacingGradientField_3
EdgeIntersectionOraclemust be a model of IsosurfacingEdgeIntersectionOracle_3
See also
CGAL::Isosurfacing::dual_contouring()
CGAL::Isosurfacing::Marching_cubes_domain_3()
Examples
Isosurfacing_3/contouring_implicit_data.cpp, Isosurfacing_3/contouring_mesh_offset.cpp, and Isosurfacing_3/dual_contouring.cpp.

Public Member Functions

 Dual_contouring_domain_3 (const Partition &partition, const ValueField &values, const GradientField &gradients, const EdgeIntersectionOracle &intersection_oracle=EdgeIntersectionOracle())
 constructs a domain that can be used with the Dual Contouring algorithm.
 

Constructor & Destructor Documentation

◆ Dual_contouring_domain_3()

template<typename Partition , typename ValueField , typename GradientField , typename EdgeIntersectionOracle = Dichotomy_edge_intersection>
CGAL::Isosurfacing::Dual_contouring_domain_3< Partition, ValueField, GradientField, EdgeIntersectionOracle >::Dual_contouring_domain_3 ( const Partition &  partition,
const ValueField &  values,
const GradientField &  gradients,
const EdgeIntersectionOracle &  intersection_oracle = EdgeIntersectionOracle() 
)

constructs a domain that can be used with the Dual Contouring algorithm.

Parameters
partitionthe space partitioning data structure
valuesa continuous field of scalar values, defined over the geometric span of partition
gradientsa continuous field of normalized vectors, 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.