CGAL 6.1 - 3D Isosurfacing

Loading...
Searching...
No Matches
List of all members | Public Member Functions
CGAL::Isosurfacing::Dual_contouring_domain_3< Partition, ValueField, GradientField, EdgeIntersectionOracle > Class Template Reference
Reference Manual » Isosurfacing Domains

`#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

  Partition | must be a model of `IsosurfacingPartition_3`
  ValueField | must be a model of `IsosurfacingValueField_3`
  GradientField | must be a model of `IsosurfacingGradientField_3`
  EdgeIntersectionOracle | must 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, Isosurfacing_3/contouring_octree.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

  partition | the space partitioning data structure
  values | a continuous field of scalar values, defined over the geometric span of `partition`
  gradients | a continuous field of normalized vectors, defined over the geometric span of `partition`
  intersection_oracle | the 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.