CGAL 6.0 - 3D Isosurfacing
|
#include <CGAL/Isosurfacing_3/edge_intersection_oracles_3.h>
The class Dichotomy_edge_intersection
uses a dichotomy to find the intersection point between an edge and the isosurface.
IsosurfacingEdgeIntersectionOracle_3
This class is for example suitable to be used as the EdgeIntersectionOracle
template parameter of isosurfacing domain classes when values are computed using an implicit function.
Public Member Functions | |
Dichotomy_edge_intersection (unsigned int max_iterations=10, double relative_eps=1e-7) | |
Constructor, enabling setting up the two criteria which can stop the dichotomy: either a threshold on the value (i.e., the difference between the isovalue and the value at the current point is smaller than relative_eps * isovalue ), or a maximum number of iterations. | |
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. | |
Public Attributes | |
unsigned int | m_max_iterations |
double | m_relative_eps |
bool CGAL::Isosurfacing::Dichotomy_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.
The result (if it exists) is stored in p
.
Domain | must be a model of IsosurfacingDomain_3 |
p_0 | the location of the first vertex of the edge |
p_1 | the location of the second vertex of the edge |
val_0 | the value at the first vertex of the edge |
val_1 | the value at the second vertex of the edge |
domain | the isosurfacing domain |
isovalue | the isovalue defining the isosurface with which we seek an intersection |
p | the intersection point, if it exists |
true
if the intersection point exists, false
otherwise