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, bool high_precision=true)=0 |
| Computes the set of intersection points between a line and the surface. | |
| virtual next::Sequence< const Geom_edge & > | edges () |
| Returns a list of any geometry edges that require mesh edges to be snapped to them. | |
| virtual next::Sequence< Mat< 3 > > | points () |
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.
|
inlinevirtual |
Returns a list of any geometry edges that require mesh edges to be snapped to them.
Only used in 3D. Default implementation returns an empty sequence, but derived classes may override.
Reimplemented in hexed::brep::Geom_3d, and hexed::Compound_geom.
|
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::brep::Geom_2d, hexed::brep::Geom_3d, hexed::Compound_geom, hexed::Hypersphere, hexed::Simplex_geom< n_dim >, and hexed::Tree_curve_geom.
|
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::brep::Geom_2d, hexed::brep::Geom_3d, hexed::Compound_geom, hexed::Hypersphere, hexed::Simplex_geom< n_dim >, and hexed::Tree_curve_geom.