|
Wildmeshing Toolkit
|
#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 |
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.
| 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.
| 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.
| 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.