VTK-m
2.0
|
#include <VertexClustering.h>
Classes | |
class | Cid2PointIdWorklet |
class | Cid3HashWorklet |
class | Cid3UnhashWorklet |
struct | GridInfo |
class | IndexingWorklet |
pass 3 More... | |
class | MapCellsWorklet |
class | MapPointsWorklet |
Public Types | |
using | TypeInt64 = vtkm::List< vtkm::Int64 > |
Public Member Functions | |
template<typename UnknownCellSetType , typename DynamicCoordinateHandleType > | |
void | Run (const UnknownCellSetType &cellSet, const DynamicCoordinateHandleType &coordinates, const vtkm::Bounds &bounds, const vtkm::Id3 &nDivisions, vtkm::cont::UnknownCellSet &outCellSet, vtkm::cont::UnknownArrayHandle &outCoords) |
VertexClustering: Mesh simplification. More... | |
vtkm::cont::ArrayHandle< vtkm::Id > | GetPointIdMap () const |
vtkm::cont::ArrayHandle< vtkm::Id > | GetCellIdMap () const |
Private Attributes | |
vtkm::cont::ArrayHandle< vtkm::Id > | PointIdMap |
vtkm::cont::ArrayHandle< vtkm::Id > | CellIdMap |
using vtkm::worklet::VertexClustering::TypeInt64 = vtkm::List<vtkm::Int64> |
|
inline |
|
inline |
|
inline |
VertexClustering: Mesh simplification.
determine grid resolution for clustering
start algorithm
pass 1 : assign points with (cluster) ids based on the grid it falls in
map points
pass 2 : Choose a representative point from each cluster for the output:
Pass 3 : Decimated mesh generation For each original triangle, only output vertices from three different clusters
map each triangle vertex to the cluster id's of the cell vertices
preparation: Get the indexes of the clustered points to prepare for new cell array
map: convert each triangle vertices from original point id to the new cluster indexes If the triangle is degenerated, set the ids to <nPoints, nPoints, nPoints> This ensures it will be placed at the end of the array when sorted.
Create hashed array
output
|
private |
|
private |