|
CGAL 6.2 - 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