|
FiberVISH 0.2
Fish - The Fiber Bundle API for the Vish Visualization Shell
|
Helper class for computing local coordinates of a curvilinear block. More...
#include <TreeCellMapper.hpp>
Public Member Functions | |
| TreeCellMapper (RefPtr< MemArray< 3, point > > crds, tvector range_scale=tvector(1., 1., 1.), double epsilon=1./50, unsigned spread=13) | |
| Computed cell diagonal maximum and sets up the KDTree if not already found in the interface of the coordinate array. | |
| unsigned | localCoordinates (point &uvw, tvector &cell_size, const point &p) |
| Function to compute local coordaintes based on the projective method ( planar faces only!! ). | |
| void | setQueryScale (tvector &scale) |
Static Public Member Functions | |
| static double | maxi (const double a, const double b) |
| static void | maxVec (double &max_len, tvector &max_vec, const tvector &v) |
Helper class for computing local coordinates of a curvilinear block.
Search is sped up by using a KDTree for cell finding. Cell-MultiIndices are inserted into a tree at cell mid-points and are queried by the half of the maximum of all the cell diagonals. An epsilon widens the range check of a valid local coordinate to -eps ... 1+eps.
| TreeCellMapper::TreeCellMapper | ( | RefPtr< MemArray< 3, point > > | crds, |
| tvector | range_scale = tvector(1.,1.,1.), |
||
| double | epsilon = 1./50, |
||
| unsigned | spread = 13 |
||
| ) |
Computed cell diagonal maximum and sets up the KDTree if not already found in the interface of the coordinate array.
| [in] | crds | 3D curvilinear coordinates of a block. |
| [in] | epsilon | Epsilon to widen valid local coordinates. |
References std::cout, and std::endl().
Function to compute local coordaintes based on the projective method ( planar faces only!! ).
It uses aeries cuboidToCube() function. Local coordinates at the block boundary in the epsilon region are corrected to being located directly on the boundary.
| [in] | p | Point in world coordinates. |
| [out] | uvw | Point in local array coordaintes. |
References std::abs(), std::cout, and std::endl().