VTK-m
2.2
|
Provides a neighborhood's placement with respect to the mesh's boundary. More...
#include <BoundaryState.h>
Public Member Functions | |
BoundaryState (const vtkm::Id3 &ijk, const vtkm::Id3 &pdims) | |
const vtkm::Id3 & | GetCenterIndex () const |
Returns the center index of the neighborhood. More... | |
bool | IsRadiusInXBoundary (vtkm::IdComponent radius) const |
Returns true if a neighborhood of the given radius is contained within the bounds of the cell set in the X, Y, or Z direction. More... | |
bool | IsRadiusInYBoundary (vtkm::IdComponent radius) const |
Returns true if a neighborhood of the given radius is contained within the bounds of the cell set in the X, Y, or Z direction. More... | |
bool | IsRadiusInZBoundary (vtkm::IdComponent radius) const |
Returns true if a neighborhood of the given radius is contained within the bounds of the cell set in the X, Y, or Z direction. More... | |
bool | IsRadiusInBoundary (vtkm::IdComponent radius) const |
Returns true if a neighborhood of the given radius is contained within the bounds of the cell set. More... | |
bool | IsNeighborInXBoundary (vtkm::IdComponent offset) const |
Returns true if the neighbor at the specified offset is contained within the bounds of the cell set in the X, Y, or Z direction. More... | |
bool | IsNeighborInYBoundary (vtkm::IdComponent offset) const |
Returns true if the neighbor at the specified offset is contained within the bounds of the cell set in the X, Y, or Z direction. More... | |
bool | IsNeighborInZBoundary (vtkm::IdComponent offset) const |
Returns true if the neighbor at the specified offset is contained within the bounds of the cell set in the X, Y, or Z direction. More... | |
bool | IsNeighborInBoundary (const vtkm::IdComponent3 &neighbor) const |
Returns true if the neighbor at the specified offset vector is contained within the bounds of the cell set. More... | |
vtkm::IdComponent3 | MinNeighborIndices (vtkm::IdComponent radius) const |
Returns the minimum neighborhood indices that are within the bounds of the data. More... | |
vtkm::IdComponent3 | MaxNeighborIndices (vtkm::IdComponent radius) const |
Returns the minimum neighborhood indices that are within the bounds of the data. More... | |
vtkm::Id3 | NeighborIndexToFullIndexClamp (const vtkm::IdComponent3 &neighbor) const |
Takes a local neighborhood index (in the ranges of -neighborhood size to neighborhood size) and returns the ijk of the equivalent point in the full data set. More... | |
vtkm::Id3 | NeighborIndexToFullIndexClamp (vtkm::IdComponent neighborI, vtkm::IdComponent neighborJ, vtkm::IdComponent neighborK) const |
Takes a local neighborhood index (in the ranges of -neighborhood size to neighborhood size) and returns the ijk of the equivalent point in the full data set. More... | |
vtkm::Id3 | NeighborIndexToFullIndex (const vtkm::IdComponent3 &neighbor) const |
Takes a local neighborhood index (in the ranges of -neighborhood size to neighborhood size) and returns the ijk of the equivalent point in the full data set. More... | |
vtkm::Id3 | NeighborIndexToFullIndex (vtkm::IdComponent neighborI, vtkm::IdComponent neighborJ, vtkm::IdComponent neighborK) const |
Takes a local neighborhood index (in the ranges of -neighborhood size to neighborhood size) and returns the ijk of the equivalent point in the full data set. More... | |
vtkm::IdComponent3 | ClampNeighborIndex (const vtkm::IdComponent3 &neighbor) const |
Takes a local neighborhood index (in the ranges of -neighborhood size to neighborhood size), clamps it to the dataset bounds, and returns a new neighborhood index. More... | |
vtkm::IdComponent3 | ClampNeighborIndex (vtkm::IdComponent neighborI, vtkm::IdComponent neighborJ, vtkm::IdComponent neighborK) const |
Takes a local neighborhood index (in the ranges of -neighborhood size to neighborhood size), clamps it to the dataset bounds, and returns a new neighborhood index. More... | |
vtkm::Id | NeighborIndexToFlatIndexClamp (const vtkm::IdComponent3 &neighbor) const |
Takes a local neighborhood index (in the ranges of -neighborhood size to neighborhood size) and returns the flat index of the equivalent point in the full data set. More... | |
vtkm::Id | NeighborIndexToFlatIndexClamp (vtkm::IdComponent neighborI, vtkm::IdComponent neighborJ, vtkm::IdComponent neighborK) const |
Takes a local neighborhood index (in the ranges of -neighborhood size to neighborhood size) and returns the flat index of the equivalent point in the full data set. More... | |
vtkm::Id | NeighborIndexToFlatIndex (const vtkm::IdComponent3 &neighbor) const |
Takes a local neighborhood index (in the ranges of -neighborhood size to neighborhood size) and returns the flat index of the equivalent point in the full data set. More... | |
vtkm::Id | NeighborIndexToFlatIndex (vtkm::IdComponent neighborI, vtkm::IdComponent neighborJ, vtkm::IdComponent neighborK) const |
Takes a local neighborhood index (in the ranges of -neighborhood size to neighborhood size) and returns the flat index of the equivalent point in the full data set. More... | |
Public Attributes | |
vtkm::Id3 | IJK |
The 3D index of the visited element. More... | |
vtkm::Id3 | PointDimensions |
The dimensions of the elements in the mesh. More... | |
Provides a neighborhood's placement with respect to the mesh's boundary.
BoundaryState
provides functionality for vtkm::worklet::WorkletPointNeighborhood
algorithms to determine if they are operating on a point near the boundary. It allows you to query about overlaps of the neighborhood and the mesh boundary. It also helps convert local neighborhood ids to the corresponding location in the mesh.
This class is typically constructed using the Boundary
tag in an ExecutionSignature
. There is little reason to construct this in user code.
|
inline |
Takes a local neighborhood index (in the ranges of -neighborhood size to neighborhood size), clamps it to the dataset bounds, and returns a new neighborhood index.
For example, if given a neighbor index that is past the minimum x range of the data, the neighbor index of the minimum x boundary is returned.
|
inline |
Takes a local neighborhood index (in the ranges of -neighborhood size to neighborhood size), clamps it to the dataset bounds, and returns a new neighborhood index.
For example, if given a neighbor index that is past the minimum x range of the data, the neighbor index of the minimum x boundary is returned.
|
inline |
Returns the center index of the neighborhood.
This is typically the position of the invocation of the worklet given this boundary condition.
|
inline |
Returns true if the neighbor at the specified offset vector is contained within the bounds of the cell set.
Returns false if the neighbor falls outside of the boundary of the data.
|
inline |
Returns true if the neighbor at the specified offset is contained within the bounds of the cell set in the X, Y, or Z direction.
Returns false if the neighbor falls outside of the boundary of the data in the X, Y, or Z direction.
|
inline |
Returns true if the neighbor at the specified offset is contained within the bounds of the cell set in the X, Y, or Z direction.
Returns false if the neighbor falls outside of the boundary of the data in the X, Y, or Z direction.
|
inline |
Returns true if the neighbor at the specified offset is contained within the bounds of the cell set in the X, Y, or Z direction.
Returns false if the neighbor falls outside of the boundary of the data in the X, Y, or Z direction.
|
inline |
Returns true if a neighborhood of the given radius is contained within the bounds of the cell set.
Returns false if the neighborhood extends outside of the boundary of the data.
The radius defines the size of the neighborhood in terms of how far away it extends from the center. So if there is a radius of 1, the neighborhood extends 1 unit away from the center in each direction and is 3x3x3. If there is a radius of 2, the neighborhood extends 2 units for a size of 5x5x5.
|
inline |
Returns true if a neighborhood of the given radius is contained within the bounds of the cell set in the X, Y, or Z direction.
Returns false if the neighborhood extends outside of the boundary of the data in the X, Y, or Z direction.
The radius defines the size of the neighborhood in terms of how far away it extends from the center. So if there is a radius of 1, the neighborhood extends 1 unit away from the center in each direction and is 3x3x3. If there is a radius of 2, the neighborhood extends 2 units for a size of 5x5x5.
|
inline |
Returns true if a neighborhood of the given radius is contained within the bounds of the cell set in the X, Y, or Z direction.
Returns false if the neighborhood extends outside of the boundary of the data in the X, Y, or Z direction.
The radius defines the size of the neighborhood in terms of how far away it extends from the center. So if there is a radius of 1, the neighborhood extends 1 unit away from the center in each direction and is 3x3x3. If there is a radius of 2, the neighborhood extends 2 units for a size of 5x5x5.
|
inline |
Returns true if a neighborhood of the given radius is contained within the bounds of the cell set in the X, Y, or Z direction.
Returns false if the neighborhood extends outside of the boundary of the data in the X, Y, or Z direction.
The radius defines the size of the neighborhood in terms of how far away it extends from the center. So if there is a radius of 1, the neighborhood extends 1 unit away from the center in each direction and is 3x3x3. If there is a radius of 2, the neighborhood extends 2 units for a size of 5x5x5.
|
inline |
Returns the minimum neighborhood indices that are within the bounds of the data.
Given a radius for the neighborhood, returns a vtkm::IdComponent3
for the "upper right" (maximum) index. If the visited point is in the middle of the mesh, the returned triplet is the positive radius for all components. But if the visited point is near the mesh boundary, then the maximum index will be clipped.
For example, if the visited point is at [5,5,5] in a 10 by 10 by 10 mesh and MaxNeighborIndices(2)
is called, then [2,2,2] is returned. However, if the visited point is at [7, 8, 9] in the same mesh and MaxNeighborIndices(2)
is called, then [2, 1, 0] is returned.
|
inline |
Returns the minimum neighborhood indices that are within the bounds of the data.
Given a radius for the neighborhood, returns a vtkm::IdComponent3
for the "lower left" (minimum) index. If the visited point is in the middle of the mesh, the returned triplet is the negative radius for all components. But if the visited point is near the mesh boundary, then the minimum index will be clipped.
For example, if the visited point is at [5,5,5] and MinNeighborIndices(2)
is called, then [-2,-2,-2] is returned. However, if the visited point is at [0,1,2] and MinNeighborIndices(2)
is called, then [0,-1,-2] is returned.
|
inline |
Takes a local neighborhood index (in the ranges of -neighborhood size to neighborhood size) and returns the flat index of the equivalent point in the full data set.
If the given value is out of range, the result is undefined.
|
inline |
Takes a local neighborhood index (in the ranges of -neighborhood size to neighborhood size) and returns the flat index of the equivalent point in the full data set.
If the given value is out of range, the result is undefined.
|
inline |
Takes a local neighborhood index (in the ranges of -neighborhood size to neighborhood size) and returns the flat index of the equivalent point in the full data set.
If the given value is out of range, the value is clamped to the nearest boundary. For example, if given a neighbor index that is past the minimum x range of the data, the index at the minimum x boundary is returned.
|
inline |
Takes a local neighborhood index (in the ranges of -neighborhood size to neighborhood size) and returns the flat index of the equivalent point in the full data set.
If the given value is out of range, the value is clamped to the nearest boundary. For example, if given a neighbor index that is past the minimum x range of the data, the index at the minimum x boundary is returned.
|
inline |
Takes a local neighborhood index (in the ranges of -neighborhood size to neighborhood size) and returns the ijk of the equivalent point in the full data set.
If the given value is out of range, the returned value is undefined.
|
inline |
Takes a local neighborhood index (in the ranges of -neighborhood size to neighborhood size) and returns the ijk of the equivalent point in the full data set.
If the given value is out of range, the returned value is undefined.
|
inline |
Takes a local neighborhood index (in the ranges of -neighborhood size to neighborhood size) and returns the ijk of the equivalent point in the full data set.
If the given value is out of range, the value is clamped to the nearest boundary. For example, if given a neighbor index that is past the minimum x range of the data, the index at the minimum x boundary is returned.
|
inline |
Takes a local neighborhood index (in the ranges of -neighborhood size to neighborhood size) and returns the ijk of the equivalent point in the full data set.
If the given value is out of range, the value is clamped to the nearest boundary. For example, if given a neighbor index that is past the minimum x range of the data, the index at the minimum x boundary is returned.
vtkm::Id3 vtkm::exec::BoundaryState::IJK |
The 3D index of the visited element.
vtkm::Id3 vtkm::exec::BoundaryState::PointDimensions |
The dimensions of the elements in the mesh.