Represents a surface geometry implicitly for meshing. More...
#include <Surface_geom.hpp>
Public Member Functions | |
virtual Nearest_point< dyn > | nearest_point (Mat<> point, double max_distance=huge, double distance_guess=huge)=0 |
Computes the point on the surface which is nearest to point within max_distance . | |
virtual std::vector< double > | intersections (Mat<> point0, Mat<> point1)=0 |
Computes the set of intersection points between a line and the surface. | |
Represents a surface geometry implicitly for meshing.
Abstract class which represents geometry by supporting the operations Surface_geom::nearest_point
and Surface_geom::intersections
. Either of these operations fully defines the surface geometry and each could, in theory, be defined in terms of the other. However, in practice they are defined separately so that derived classes can implement each in the most efficient and robust way possible. It is the responsibility of the derived class to ensure that they are mutually consistent. The derived class may impose dimensionality restrictions on the arguments. Implementations must be thread-safe.
|
pure virtual |
Computes the set of intersection points between a line and the surface.
The line is defined parametrically to be the set of points \( [\text{point0}] + t [\text{point1}] \) for all \( t \in \mathbb{R} \). Returns the (potentially empty) set of \( t \) values where the line intersects the surface.
Implemented in hexed::Compound_geom, hexed::Hypersphere, hexed::Occt::Geom, and hexed::Simplex_geom< n_dim >.
|
pure virtual |
Computes the point on the surface which is nearest to point
within max_distance
.
If no point is found, returns an empty Nearest_point
.
point | The point you want to find the nearest point to. |
max_distance | Only consider points within max_distance of point . |
distance_guess | If you have some reason to suspect the nearest point is within a certain distance of the input point, you can pass it to this parameter as a hint to possibly improve performance. |
Implemented in hexed::Compound_geom, hexed::Hypersphere, hexed::Occt::Geom, and hexed::Simplex_geom< n_dim >.