CGAL 6.1 - 3D Isosurfacing

Loading...
Searching...
No Matches
Modules | Classes | Functions
Isosurfacing Domains
Reference Manual

##

This group encapsulates the classes that can be used to represent a complete domain (partition and fields), to be used by the isosurfacing methods of this package.

## Modules
| Isosurfacing Domain Helpers

## Classes
class | CGAL::Isosurfacing::Dual_contouring_domain_3< Partition, ValueField, GradientField, EdgeIntersectionOracle >
| A domain that can be used as input in the Dual Contouring algorithm. More...
class | CGAL::Isosurfacing::Marching_cubes_domain_3< Partition, ValueField, EdgeIntersectionOracle >
| A domain that can be used with the Marching Cubes algorithm. More...

## Functions
template<typename Partition , typename ValueField , typename GradientField , typename EdgeIntersectionOracle = Dichotomy_edge_intersection>
Dual_contouring_domain_3< Partition, ValueField, GradientField, EdgeIntersectionOracle > | CGAL::Isosurfacing::create_dual_contouring_domain_3 (const Partition &partition, const ValueField &values, const GradientField &gradients, const EdgeIntersectionOracle &intersection_oracle=EdgeIntersectionOracle())
| creates a new instance of a domain that can be used with the Dual Contouring algorithm.
template<typename Partition , typename ValueField , typename EdgeIntersectionOracle = Linear_interpolation_edge_intersection>
Marching_cubes_domain_3< Partition, ValueField, EdgeIntersectionOracle > | CGAL::Isosurfacing::create_marching_cubes_domain_3 (const Partition &partition, const ValueField &values, const EdgeIntersectionOracle &intersection_oracle=EdgeIntersectionOracle())
| creates a new instance of a domain that can be used with the Marching Cubes algorithm.

## Function Documentation

## ◆ create_dual_contouring_domain_3()

template<typename Partition , typename ValueField , typename GradientField , typename EdgeIntersectionOracle = Dichotomy_edge_intersection>

Dual_contouring_domain_3< Partition, ValueField, GradientField, EdgeIntersectionOracle > CGAL::Isosurfacing::create_dual_contouring_domain_3 | ( | const Partition & | partition,
|  | const ValueField & | values,
|  | const GradientField & | gradients,
|  | const EdgeIntersectionOracle & | intersection_oracle = `EdgeIntersectionOracle()`
| ) |  |

`#include <CGAL/Isosurfacing_3/Dual_contouring_domain_3.h>`

creates a new instance of a domain that can be used with the Dual Contouring algorithm.

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`

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.

Examples
  Isosurfacing_3/dual_contouring.cpp.

## ◆ create_marching_cubes_domain_3()

template<typename Partition , typename ValueField , typename EdgeIntersectionOracle = Linear_interpolation_edge_intersection>

Marching_cubes_domain_3< Partition, ValueField, EdgeIntersectionOracle > CGAL::Isosurfacing::create_marching_cubes_domain_3 | ( | const Partition & | partition,
|  | const ValueField & | values,
|  | const EdgeIntersectionOracle & | intersection_oracle = `EdgeIntersectionOracle()`
| ) |  |

`#include <CGAL/Isosurfacing_3/Marching_cubes_domain_3.h>`

creates a new instance of a domain that can be used with the Marching Cubes algorithm.

Template Parameters

  Partition | must be a model of `IsosurfacingPartition_3`
  ValueField | must be a model of `IsosurfacingValueField_3`
  EdgeIntersectionOracle | must be a model of `IsosurfacingEdgeIntersectionOracle_3`

Parameters

  partition | the space partitioning data structure
  values | a continuous field of scalar values, 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.

Examples
  Isosurfacing_3/marching_cubes.cpp.