CGAL 6.0 - 3D Isosurfacing
Loading...
Searching...
No Matches
CGAL::Isosurfacing::Linear_interpolation_edge_intersection Struct Reference

#include <CGAL/Isosurfacing_3/edge_intersection_oracles_3.h>

Definition

The class Linear_interpolation_edge_intersection uses linear interpolation to find the intersection point between an edge and the isosurface.

Is model of
IsosurfacingEdgeIntersectionOracle_3

This class is for example suitable when interpolated discrete values are being used.

See also
CGAL::Isosurfacing::Dichotomy_edge_intersection
CGAL::Isosurfacing::Marching_cubes_domain_3
CGAL::Isosurfacing::Dual_contouring_domain_3
CGAL::Isosurfacing::Interpolated_discrete_values_3

Public Member Functions

template<typename Domain >
bool operator() (const typename Domain::Geom_traits::Point_3 &p_0, const typename Domain::Geom_traits::Point_3 &p_1, const typename Domain::Geom_traits::FT val_0, const typename Domain::Geom_traits::FT val_1, const Domain &domain, const typename Domain::Geom_traits::FT isovalue, typename Domain::Geom_traits::Point_3 &p) const
 computes the intersection point between an edge and the isosurface.
 

Member Function Documentation

◆ operator()()

template<typename Domain >
bool CGAL::Isosurfacing::Linear_interpolation_edge_intersection::operator() ( const typename Domain::Geom_traits::Point_3 &  p_0,
const typename Domain::Geom_traits::Point_3 &  p_1,
const typename Domain::Geom_traits::FT  val_0,
const typename Domain::Geom_traits::FT  val_1,
const Domain &  domain,
const typename Domain::Geom_traits::FT  isovalue,
typename Domain::Geom_traits::Point_3 &  p 
) const

computes the intersection point between an edge and the isosurface.

Template Parameters
Domainmust be a model of IsosurfacingDomain_3
Parameters
p_0the location of the first vertex of the edge
p_1the location of the second vertex of the edge
val_0the value at the first vertex of the edge
val_1the value at the second vertex of the edge
domainthe isosurfacing domain
isovaluethe isovalue defining the isosurface with which we seek an intersection
pthe intersection point, if it exists
Returns
true if the intersection point exists, false otherwise