Wildmeshing Toolkit
Loading...
Searching...
No Matches
Public Member Functions | Private Attributes | List of all members
wmtk::components::tracking::TetLocator Class Reference

#include <volume_io.hpp>

Public Member Functions

 TetLocator (std::shared_ptr< const TetMeshData > m)
 Shares the mesh, so a locator copied or moved keeps finding in it.
 
const TetMeshData & mesh () const
 
std::pair< int64_t, Eigen::Vector4d > locate (const Eigen::Vector3d &p) const
 
std::pair< int64_t, Eigen::Vector4d > locate (const Eigen::Vector3d &p, uint32_t group) const
 
bool in_group (const Eigen::Vector3d &p, uint32_t group) const
 

Private Attributes

std::shared_ptr< const TetMeshData > m_mesh
 
Eigen::Vector3d m_lo = Eigen::Vector3d::Zero()
 
double m_h = 1
 
double m_eps = 0
 A rounding of the largest tet: the farthest a point is from a tet it is a rounding off.
 
std::array< int64_t, 3 > m_n = {{1, 1, 1}}
 
std::vector< std::vector< uint32_t > > m_cells
 

Detailed Description

Point location in a tet mesh, by a grid over the tets' boxes: the tet holding a point, exactly (volume::locate_in's rules), or one it is out of by a rounding – across a side of the grid's cells, or of the mesh's box, too.

Member Function Documentation

◆ in_group()

bool wmtk::components::tracking::TetLocator::in_group ( const Eigen::Vector3d &  p,
uint32_t  group 
) const

Whether a tet in group set group holds p, its faces included, to a rounding: a point on a face between two regions is in both.

◆ locate() [1/2]

std::pair< int64_t, Eigen::Vector4d > wmtk::components::tracking::TetLocator::locate ( const Eigen::Vector3d &  p) const

The tet and the point's barycentric coordinates in it; tet -1 if no tet is near, or p is not a number.

◆ locate() [2/2]

std::pair< int64_t, Eigen::Vector4d > wmtk::components::tracking::TetLocator::locate ( const Eigen::Vector3d &  p,
uint32_t  group 
) const

locate(), preferring a tet in group set group among those holding p to a rounding (a point on a face between two regions); any tet if none of the group does.


The documentation for this class was generated from the following files: