VTK-m  2.0
Public Member Functions | Private Member Functions | Private Attributes | List of all members
vtkm::filter::clean_grid::CleanGrid Class Reference

Clean a mesh to an unstructured grid. More...

#include <CleanGrid.h>

Inheritance diagram for vtkm::filter::clean_grid::CleanGrid:
vtkm::filter::FilterField vtkm::filter::Filter

Public Member Functions

VTKM_CONT bool GetCompactPointFields () const
 When the CompactPointFields flag is true, the filter will identify any points that are not used by the topology. More...
 
VTKM_CONT void SetCompactPointFields (bool flag)
 
VTKM_CONT bool GetMergePoints () const
 When the MergePoints flag is true, the filter will identify any coincident points and merge them together. More...
 
VTKM_CONT void SetMergePoints (bool flag)
 
VTKM_CONT vtkm::Float64 GetTolerance () const
 Defines the tolerance used when determining whether two points are considered coincident. More...
 
VTKM_CONT void SetTolerance (vtkm::Float64 tolerance)
 
VTKM_CONT bool GetToleranceIsAbsolute () const
 When ToleranceIsAbsolute is false (the default) then the tolerance is scaled by the diagonal of the bounds of the dataset. More...
 
VTKM_CONT void SetToleranceIsAbsolute (bool flag)
 
VTKM_CONT bool GetRemoveDegenerateCells () const
 Determine whether a cell is degenerate (that is, has repeated points that drops its dimensionalit) and removes them. More...
 
VTKM_CONT void SetRemoveDegenerateCells (bool flag)
 
VTKM_CONT bool GetFastMerge () const
 When FastMerge is true (the default), some corners are cut when computing coincident points. More...
 
VTKM_CONT void SetFastMerge (bool flag)
 
- Public Member Functions inherited from vtkm::filter::FilterField
 FilterField ()
 
VTKM_CONT void SetOutputFieldName (const std::string &name)
 
const VTKM_CONT std::string & GetOutputFieldName () const
 
VTKM_CONT void SetActiveField (const std::string &name, vtkm::cont::Field::Association association=vtkm::cont::Field::Association::Any)
 
void SetActiveField (vtkm::IdComponent index, const std::string &name, vtkm::cont::Field::Association association=vtkm::cont::Field::Association::Any)
 
const VTKM_CONT std::string & GetActiveFieldName (vtkm::IdComponent index=0) const
 
VTKM_CONT vtkm::cont::Field::Association GetActiveFieldAssociation (vtkm::IdComponent index=0) const
 
VTKM_CONT void SetActiveCoordinateSystem (vtkm::Id coord_idx)
 
VTKM_CONT void SetActiveCoordinateSystem (vtkm::IdComponent index, vtkm::Id coord_idx)
 
VTKM_CONT vtkm::Id GetActiveCoordinateSystemIndex () const
 
VTKM_CONT vtkm::Id GetActiveCoordinateSystemIndex (vtkm::IdComponent index) const
 
VTKM_CONT void SetUseCoordinateSystemAsField (bool val)
 
VTKM_CONT void SetUseCoordinateSystemAsField (vtkm::IdComponent index, bool val)
 
VTKM_CONT bool GetUseCoordinateSystemAsField (vtkm::IdComponent index=0) const
 
- Public Member Functions inherited from vtkm::filter::Filter
virtual VTKM_CONT ~Filter ()
 
virtual VTKM_CONT bool CanThread () const
 
VTKM_CONT void SetThreadsPerCPU (vtkm::Id numThreads)
 
VTKM_CONT void SetThreadsPerGPU (vtkm::Id numThreads)
 
VTKM_CONT vtkm::Id GetThreadsPerCPU () const
 
VTKM_CONT vtkm::Id GetThreadsPerGPU () const
 
VTKM_CONT bool GetRunMultiThreadedFilter () const
 
VTKM_CONT void SetRunMultiThreadedFilter (bool val)
 
void SetInvoker (vtkm::cont::Invoker inv)
 Specify the vtkm::cont::Invoker to be used to execute worklets by this filter instance. More...
 
VTKM_CONT void SetFieldsToPass (const vtkm::filter::FieldSelection &fieldsToPass)
 Specify which fields get passed from input to output. More...
 
VTKM_CONT void SetFieldsToPass (vtkm::filter::FieldSelection &&fieldsToPass)
 Specify which fields get passed from input to output. More...
 
VTKM_CONT void SetFieldsToPass (const vtkm::filter::FieldSelection &fieldsToPass, vtkm::filter::FieldSelection::Mode mode)
 Specify which fields get passed from input to output. More...
 
VTKM_CONT void SetFieldsToPass (std::initializer_list< std::string > fields, vtkm::filter::FieldSelection::Mode mode=vtkm::filter::FieldSelection::Mode::Select)
 Specify which fields get passed from input to output. More...
 
VTKM_CONT void SetFieldsToPass (std::initializer_list< std::pair< std::string, vtkm::cont::Field::Association >> fields, vtkm::filter::FieldSelection::Mode mode=vtkm::filter::FieldSelection::Mode::Select)
 Specify which fields get passed from input to output. More...
 
VTKM_CONT void SetFieldsToPass (const std::string &fieldname, vtkm::cont::Field::Association association, vtkm::filter::FieldSelection::Mode mode=vtkm::filter::FieldSelection::Mode::Select)
 Specify which fields get passed from input to output. More...
 
VTKM_CONT void SetFieldsToPass (const std::string &fieldname, vtkm::filter::FieldSelection::Mode mode)
 Specify which fields get passed from input to output. More...
 
const VTKM_CONT vtkm::filter::FieldSelectionGetFieldsToPass () const
 Specify which fields get passed from input to output. More...
 
VTKM_CONT vtkm::filter::FieldSelectionGetFieldsToPass ()
 Specify which fields get passed from input to output. More...
 
VTKM_CONT void SetPassCoordinateSystems (bool flag)
 Specify whether to always pass coordinate systems. More...
 
VTKM_CONT bool GetPassCoordinateSystems () const
 Specify whether to always pass coordinate systems. More...
 
VTKM_CONT vtkm::cont::DataSet Execute (const vtkm::cont::DataSet &input)
 
VTKM_CONT vtkm::cont::PartitionedDataSet Execute (const vtkm::cont::PartitionedDataSet &input)
 

Private Member Functions

VTKM_CONT vtkm::cont::DataSet DoExecute (const vtkm::cont::DataSet &inData) override
 
VTKM_CONT vtkm::cont::DataSet GenerateOutput (const vtkm::cont::DataSet &inData, vtkm::cont::CellSetExplicit<> &outputCellSet, clean_grid::SharedStates &worklets)
 

Private Attributes

bool CompactPointFields = true
 
bool MergePoints = true
 
vtkm::Float64 Tolerance = 1.0e-6
 
bool ToleranceIsAbsolute = false
 
bool RemoveDegenerateCells = true
 
bool FastMerge = true
 

Additional Inherited Members

- Protected Member Functions inherited from vtkm::filter::FilterField
const VTKM_CONT vtkm::cont::FieldGetFieldFromDataSet (const vtkm::cont::DataSet &input) const
 
const VTKM_CONT vtkm::cont::FieldGetFieldFromDataSet (vtkm::IdComponent index, const vtkm::cont::DataSet &input) const
 
template<typename Functor , typename... Args>
VTKM_CONT void CastAndCallScalarField (const vtkm::cont::UnknownArrayHandle &fieldArray, Functor &&functor, Args &&... args) const
 
template<typename Functor , typename... Args>
VTKM_CONT void CastAndCallScalarField (const vtkm::cont::Field &field, Functor &&functor, Args &&... args) const
 
template<vtkm::IdComponent VecSize, typename Functor , typename... Args>
VTKM_CONT void CastAndCallVecField (const vtkm::cont::UnknownArrayHandle &fieldArray, Functor &&functor, Args &&... args) const
 
template<vtkm::IdComponent VecSize, typename Functor , typename... Args>
VTKM_CONT void CastAndCallVecField (const vtkm::cont::Field &field, Functor &&functor, Args &&... args) const
 
VTKM_CONT vtkm::cont::DataSet CreateResultField (const vtkm::cont::DataSet &inDataSet, const vtkm::cont::Field &resultField) const
 Create the output data set for DoExecute More...
 
VTKM_CONT vtkm::cont::DataSet CreateResultField (const vtkm::cont::DataSet &inDataSet, const std::string &resultFieldName, vtkm::cont::Field::Association resultFieldAssociation, const vtkm::cont::UnknownArrayHandle &resultFieldArray) const
 Create the output data set for DoExecute More...
 
VTKM_CONT vtkm::cont::DataSet CreateResultFieldPoint (const vtkm::cont::DataSet &inDataSet, const std::string &resultFieldName, const vtkm::cont::UnknownArrayHandle &resultFieldArray) const
 Create the output data set for DoExecute More...
 
VTKM_CONT vtkm::cont::DataSet CreateResultFieldCell (const vtkm::cont::DataSet &inDataSet, const std::string &resultFieldName, const vtkm::cont::UnknownArrayHandle &resultFieldArray) const
 Create the output data set for DoExecute More...
 
- Protected Member Functions inherited from vtkm::filter::Filter
VTKM_CONT vtkm::cont::DataSet CreateResult (const vtkm::cont::DataSet &inDataSet) const
 Create the output data set for DoExecute. More...
 
VTKM_CONT vtkm::cont::PartitionedDataSet CreateResult (const vtkm::cont::PartitionedDataSet &input, const vtkm::cont::PartitionedDataSet &resultPartitions) const
 Create the output data set for DoExecute. More...
 
template<typename FieldMapper >
VTKM_CONT vtkm::cont::PartitionedDataSet CreateResult (const vtkm::cont::PartitionedDataSet &input, const vtkm::cont::PartitionedDataSet &resultPartitions, FieldMapper &&fieldMapper) const
 Create the output data set for DoExecute. More...
 
template<typename FieldMapper >
VTKM_CONT vtkm::cont::DataSet CreateResult (const vtkm::cont::DataSet &inDataSet, const vtkm::cont::UnknownCellSet &resultCellSet, FieldMapper &&fieldMapper) const
 Create the output data set for DoExecute. More...
 
virtual VTKM_CONT vtkm::cont::PartitionedDataSet DoExecutePartitions (const vtkm::cont::PartitionedDataSet &inData)
 
template<typename FieldMapper >
VTKM_CONT vtkm::cont::DataSet CreateResultCoordinateSystem (const vtkm::cont::DataSet &inDataSet, const vtkm::cont::UnknownCellSet &resultCellSet, const vtkm::cont::CoordinateSystem &resultCoordSystem, FieldMapper &&fieldMapper) const
 Create the output data set for DoExecute. More...
 
template<typename FieldMapper >
VTKM_CONT vtkm::cont::DataSet CreateResultCoordinateSystem (const vtkm::cont::DataSet &inDataSet, const vtkm::cont::UnknownCellSet &resultCellSet, const std::string &coordsName, const vtkm::cont::UnknownArrayHandle &coordsData, FieldMapper &&fieldMapper) const
 Create the output data set for DoExecute. More...
 
- Protected Attributes inherited from vtkm::filter::Filter
vtkm::cont::Invoker Invoke
 

Detailed Description

Clean a mesh to an unstructured grid.

This filter takes a data set and essentially copies it into a new data set. The newly constructed data set will have the same cells as the input and the topology will be stored in a CellSetExplicit<>. The filter will also optionally remove all unused points.

Note that the result of CleanGrid is not necessarily smaller than the input. For example, "cleaning" a data set with a CellSetStructured topology will actually result in a much larger data set.

Todo:
Add a feature to merge points that are coincident or within a tolerance.

Member Function Documentation

◆ DoExecute()

VTKM_CONT vtkm::cont::DataSet vtkm::filter::clean_grid::CleanGrid::DoExecute ( const vtkm::cont::DataSet inData)
overrideprivatevirtual

Implements vtkm::filter::Filter.

◆ GenerateOutput()

VTKM_CONT vtkm::cont::DataSet vtkm::filter::clean_grid::CleanGrid::GenerateOutput ( const vtkm::cont::DataSet inData,
vtkm::cont::CellSetExplicit<> &  outputCellSet,
clean_grid::SharedStates &  worklets 
)
private

◆ GetCompactPointFields()

VTKM_CONT bool vtkm::filter::clean_grid::CleanGrid::GetCompactPointFields ( ) const
inline

When the CompactPointFields flag is true, the filter will identify any points that are not used by the topology.

This is on by default.

◆ GetFastMerge()

VTKM_CONT bool vtkm::filter::clean_grid::CleanGrid::GetFastMerge ( ) const
inline

When FastMerge is true (the default), some corners are cut when computing coincident points.

The point merge will go faster but the tolerance will not be strictly followed.

◆ GetMergePoints()

VTKM_CONT bool vtkm::filter::clean_grid::CleanGrid::GetMergePoints ( ) const
inline

When the MergePoints flag is true, the filter will identify any coincident points and merge them together.

The distance two points can be to considered coincident is set with the tolerance flags. This is on by default.

◆ GetRemoveDegenerateCells()

VTKM_CONT bool vtkm::filter::clean_grid::CleanGrid::GetRemoveDegenerateCells ( ) const
inline

Determine whether a cell is degenerate (that is, has repeated points that drops its dimensionalit) and removes them.

This is on by default.

◆ GetTolerance()

VTKM_CONT vtkm::Float64 vtkm::filter::clean_grid::CleanGrid::GetTolerance ( ) const
inline

Defines the tolerance used when determining whether two points are considered coincident.

If the ToleranceIsAbsolute flag is false (the default), then this tolerance is scaled by the diagonal of the points.

◆ GetToleranceIsAbsolute()

VTKM_CONT bool vtkm::filter::clean_grid::CleanGrid::GetToleranceIsAbsolute ( ) const
inline

When ToleranceIsAbsolute is false (the default) then the tolerance is scaled by the diagonal of the bounds of the dataset.

If true, then the tolerance is taken as the actual distance to use.

◆ SetCompactPointFields()

VTKM_CONT void vtkm::filter::clean_grid::CleanGrid::SetCompactPointFields ( bool  flag)
inline

◆ SetFastMerge()

VTKM_CONT void vtkm::filter::clean_grid::CleanGrid::SetFastMerge ( bool  flag)
inline

◆ SetMergePoints()

VTKM_CONT void vtkm::filter::clean_grid::CleanGrid::SetMergePoints ( bool  flag)
inline

◆ SetRemoveDegenerateCells()

VTKM_CONT void vtkm::filter::clean_grid::CleanGrid::SetRemoveDegenerateCells ( bool  flag)
inline

◆ SetTolerance()

VTKM_CONT void vtkm::filter::clean_grid::CleanGrid::SetTolerance ( vtkm::Float64  tolerance)
inline

◆ SetToleranceIsAbsolute()

VTKM_CONT void vtkm::filter::clean_grid::CleanGrid::SetToleranceIsAbsolute ( bool  flag)
inline

Member Data Documentation

◆ CompactPointFields

bool vtkm::filter::clean_grid::CleanGrid::CompactPointFields = true
private

◆ FastMerge

bool vtkm::filter::clean_grid::CleanGrid::FastMerge = true
private

◆ MergePoints

bool vtkm::filter::clean_grid::CleanGrid::MergePoints = true
private

◆ RemoveDegenerateCells

bool vtkm::filter::clean_grid::CleanGrid::RemoveDegenerateCells = true
private

◆ Tolerance

vtkm::Float64 vtkm::filter::clean_grid::CleanGrid::Tolerance = 1.0e-6
private

◆ ToleranceIsAbsolute

bool vtkm::filter::clean_grid::CleanGrid::ToleranceIsAbsolute = false
private

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