|
using | Face = typename EBGeometry::DCEL::FaceT< T, Meta > |
| Alias for DCEL face type.
|
|
using | Mesh = typename EBGeometry::DCEL::MeshT< T, Meta > |
| Alias for DCEL mesh type.
|
|
using | Root = typename EBGeometry::BVH::LinearBVH< T, Face, BV, K > |
| Alias for which BVH root node.
|
|
using | Node = typename Root::LinearNode |
| Alias for linearized BVH.
|
|
|
| FastCompactMeshSDF ()=delete |
| Default disallowed constructor.
|
|
| FastCompactMeshSDF (const std::shared_ptr< Mesh > &a_mesh, const BVH::Build a_build=BVH::Build::TopDown) noexcept |
| Full constructor. Takes the input mesh and creates the BVH. More...
|
|
virtual | ~FastCompactMeshSDF ()=default |
| Destructor.
|
|
virtual T | signedDistance (const Vec3T< T > &a_point) const noexcept override |
| Value function. More...
|
|
virtual std::vector< std::pair< std::shared_ptr< const Face >, T > > | getClosestFaces (const Vec3T< T > &a_point, const bool a_sorted) const noexcept |
| Get the closest faces to the input point. More...
|
|
virtual std::shared_ptr< Root > & | getRoot () noexcept |
| Get the bounding volume hierarchy enclosing the mesh.
|
|
virtual const std::shared_ptr< Root > & | getRoot () const noexcept |
| Get the bounding volume hierarchy enclosing the mesh.
|
|
BV | computeBoundingVolume () const noexcept |
| Compute bounding volume for this mesh.
|
|
| SignedDistanceFunction ()=default |
| Disallowed, use the full constructor.
|
|
virtual | ~SignedDistanceFunction ()=default |
| Destructor (does nothing)
|
|
virtual T | value (const Vec3T< T > &a_point) const noexcept override final |
| Implementation of ImplicitFunction::value. More...
|
|
virtual Vec3T< T > | normal (const Vec3T< T > &a_point, const T &a_delta) const noexcept |
| Signed distance normal vector. More...
|
|
| ImplicitFunction ()=default |
| Disallowed, use the full constructor.
|
|
virtual | ~ImplicitFunction ()=default |
| Destructor (does nothing)
|
|
T | operator() (const Vec3T< T > &a_point) const noexcept |
| Alternative signature for the value function. More...
|
|
template<class BV > |
BV | approximateBoundingVolumeOctree (const Vec3T< T > &a_initialLowCorner, const Vec3T< T > &a_initialHighCorner, const unsigned int a_maxTreeDepth, const T &a_safety=0.0) const noexcept |
| Compute an approximation to the bounding volume for the implicit surface, using octrees. More...
|
|
template<class T, class Meta, class BV, size_t K>
class FastCompactMeshSDF< T, Meta, BV, K >
Signed distance function for a DCEL mesh. This class uses the compact BVH representation.
template<class T , class Meta , class BV , size_t K>
virtual std::vector<std::pair<std::shared_ptr<const Face>, T> > FastCompactMeshSDF< T, Meta, BV, K >::getClosestFaces |
( |
const Vec3T< T > & |
a_point, |
|
|
const bool |
a_sorted |
|
) |
| const |
|
virtualnoexcept |
Get the closest faces to the input point.
This returns a list of candidate faces that are close to the input point. The returned argment consists of the faces and the unsigned distance to the face.
- Parameters
-
[in] | a_point | Input point |
[in] | a_sorted | Sort the output vector by distance or not. Closest go first. |
- Returns
- List of candidate faces (potentially sorted)