VTK-m  2.1
Public Member Functions | Private Member Functions | Private Attributes | List of all members
vtkm::filter::entity_extraction::ExtractGeometry Class Reference

Extract a subset of geometry based on an implicit function. More...

#include <ExtractGeometry.h>

Inheritance diagram for vtkm::filter::entity_extraction::ExtractGeometry:
vtkm::filter::Filter

Public Member Functions

void SetImplicitFunction (const vtkm::ImplicitFunctionGeneral &func)
 Specifies the implicit function to be used to perform extract geometry. More...
 
const vtkm::ImplicitFunctionGeneralGetImplicitFunction () const
 
bool GetExtractInside () const
 Specify the region of the implicit function to keep cells. More...
 
void SetExtractInside (bool value)
 Specify the region of the implicit function to keep cells. More...
 
void ExtractInsideOn ()
 Specify the region of the implicit function to keep cells. More...
 
void ExtractInsideOff ()
 Specify the region of the implicit function to keep cells. More...
 
bool GetExtractBoundaryCells () const
 Specify whether cells on the boundary should be extracted. More...
 
void SetExtractBoundaryCells (bool value)
 Specify whether cells on the boundary should be extracted. More...
 
void ExtractBoundaryCellsOn ()
 Specify whether cells on the boundary should be extracted. More...
 
void ExtractBoundaryCellsOff ()
 Specify whether cells on the boundary should be extracted. More...
 
bool GetExtractOnlyBoundaryCells () const
 Specify whether to extract cells only on the boundary. More...
 
void SetExtractOnlyBoundaryCells (bool value)
 GetExtractOnlyBoundaryCells. More...
 
void ExtractOnlyBoundaryCellsOn ()
 GetExtractOnlyBoundaryCells. More...
 
void ExtractOnlyBoundaryCellsOff ()
 GetExtractOnlyBoundaryCells. More...
 
- Public Member Functions inherited from vtkm::filter::Filter
 Filter ()
 
virtual ~Filter ()
 
vtkm::cont::DataSet Execute (const vtkm::cont::DataSet &input)
 Executes the filter on the input and produces a result dataset. More...
 
vtkm::cont::PartitionedDataSet Execute (const vtkm::cont::PartitionedDataSet &input)
 Executes the filter on the input PartitionedDataSet and produces a result PartitionedDataSet. More...
 
void SetFieldsToPass (const vtkm::filter::FieldSelection &fieldsToPass)
 Specify which fields get passed from input to output. More...
 
void SetFieldsToPass (vtkm::filter::FieldSelection &&fieldsToPass)
 Specify which fields get passed from input to output. More...
 
void SetFieldsToPass (const vtkm::filter::FieldSelection &fieldsToPass, vtkm::filter::FieldSelection::Mode mode)
 
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...
 
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...
 
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...
 
void SetFieldsToPass (const std::string &fieldname, vtkm::filter::FieldSelection::Mode mode)
 Specify which fields get passed from input to output. More...
 
const vtkm::filter::FieldSelectionGetFieldsToPass () const
 Specify which fields get passed from input to output. More...
 
vtkm::filter::FieldSelectionGetFieldsToPass ()
 Specify which fields get passed from input to output. More...
 
void SetPassCoordinateSystems (bool flag)
 Specify whether to always pass coordinate systems. More...
 
bool GetPassCoordinateSystems () const
 Specify whether to always pass coordinate systems. More...
 
void SetOutputFieldName (const std::string &name)
 Specifies the name of the output field generated. More...
 
const std::string & GetOutputFieldName () const
 Specifies the name of the output field generated. More...
 
void SetActiveField (const std::string &name, vtkm::cont::Field::Association association=vtkm::cont::Field::Association::Any)
 Specifies a field to operate on. More...
 
void SetActiveField (vtkm::IdComponent index, const std::string &name, vtkm::cont::Field::Association association=vtkm::cont::Field::Association::Any)
 Specifies a field to operate on. More...
 
const std::string & GetActiveFieldName (vtkm::IdComponent index=0) const
 Specifies a field to operate on. More...
 
vtkm::cont::Field::Association GetActiveFieldAssociation (vtkm::IdComponent index=0) const
 Specifies a field to operate on. More...
 
void SetActiveCoordinateSystem (vtkm::Id coord_idx)
 Specifies the coordinate system index to make active to use when processing the input vtkm::cont::DataSet. More...
 
void SetActiveCoordinateSystem (vtkm::IdComponent index, vtkm::Id coord_idx)
 Specifies the coordinate system index to make active to use when processing the input vtkm::cont::DataSet. More...
 
vtkm::Id GetActiveCoordinateSystemIndex (vtkm::IdComponent index=0) const
 Specifies the coordinate system index to make active to use when processing the input vtkm::cont::DataSet. More...
 
void SetUseCoordinateSystemAsField (bool val)
 Specifies whether to use point coordinates as the input field. More...
 
void SetUseCoordinateSystemAsField (vtkm::IdComponent index, bool val)
 Specifies whether to use point coordinates as the input field. More...
 
bool GetUseCoordinateSystemAsField (vtkm::IdComponent index=0) const
 Specifies whether to use point coordinates as the input field. More...
 
vtkm::IdComponent GetNumberOfActiveFields () const
 Return the number of active fields currently set. More...
 
virtual bool CanThread () const
 Returns whether the filter can execute on partitions in concurrent threads. More...
 
void SetThreadsPerCPU (vtkm::Id numThreads)
 
void SetThreadsPerGPU (vtkm::Id numThreads)
 
vtkm::Id GetThreadsPerCPU () const
 
vtkm::Id GetThreadsPerGPU () const
 
bool GetRunMultiThreadedFilter () const
 
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...
 

Private Member Functions

vtkm::cont::DataSet DoExecute (const vtkm::cont::DataSet &input) override
 

Private Attributes

bool ExtractInside = true
 
bool ExtractBoundaryCells = false
 
bool ExtractOnlyBoundaryCells = false
 
vtkm::ImplicitFunctionGeneral Function
 

Additional Inherited Members

- Protected Member Functions inherited from vtkm::filter::Filter
vtkm::cont::DataSet CreateResult (const vtkm::cont::DataSet &inDataSet) const
 Create the output data set for DoExecute. More...
 
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::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::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::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...
 
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::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::DataSet CreateResult (const vtkm::cont::DataSet &inDataSet, const vtkm::cont::UnknownCellSet &resultCellSet, FieldMapper &&fieldMapper) const
 Create the output data set for DoExecute. More...
 
template<typename FieldMapper >
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::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...
 
const vtkm::cont::FieldGetFieldFromDataSet (const vtkm::cont::DataSet &input) const
 Retrieve an input field from a vtkm::cont::DataSet object. More...
 
const vtkm::cont::FieldGetFieldFromDataSet (vtkm::IdComponent index, const vtkm::cont::DataSet &input) const
 Retrieve an input field from a vtkm::cont::DataSet object. More...
 
virtual vtkm::cont::PartitionedDataSet DoExecutePartitions (const vtkm::cont::PartitionedDataSet &inData)
 
template<typename Functor , typename... Args>
void CastAndCallScalarField (const vtkm::cont::UnknownArrayHandle &fieldArray, Functor &&functor, Args &&... args) const
 Convenience method to get the array from a filter's input scalar field. More...
 
template<typename Functor , typename... Args>
void CastAndCallScalarField (const vtkm::cont::Field &field, Functor &&functor, Args &&... args) const
 Convenience method to get the array from a filter's input scalar field. More...
 
template<vtkm::IdComponent VecSize, typename Functor , typename... Args>
void CastAndCallVecField (const vtkm::cont::UnknownArrayHandle &fieldArray, Functor &&functor, Args &&... args) const
 Convenience method to get the array from a filter's input vector field. More...
 
template<vtkm::IdComponent VecSize, typename Functor , typename... Args>
void CastAndCallVecField (const vtkm::cont::Field &field, Functor &&functor, Args &&... args) const
 Convenience method to get the array from a filter's input vector field. More...
 
template<typename Functor , typename... Args>
void CastAndCallVariableVecField (const vtkm::cont::UnknownArrayHandle &fieldArray, Functor &&functor, Args &&... args) const
 This method is like CastAndCallVecField except that it can be used for a field of unknown vector size (or scalars). More...
 
template<typename Functor , typename... Args>
void CastAndCallVariableVecField (const vtkm::cont::Field &field, Functor &&functor, Args &&... args) const
 This method is like CastAndCallVecField except that it can be used for a field of unknown vector size (or scalars). More...
 
- Protected Attributes inherited from vtkm::filter::Filter
vtkm::cont::Invoker Invoke
 

Detailed Description

Extract a subset of geometry based on an implicit function.

Extracts from its input geometry all cells that are either completely inside or outside of a specified implicit function. Any type of data can be input to this filter.

To use this filter you must specify an implicit function. You must also specify whether to extract cells laying inside or outside of the implicit function. (The inside of an implicit function is the negative values region.) An option exists to extract cells that are neither inside or outside (i.e., boundary).

This differs from vtkm::filter::contour::ClipWithImplicitFunction in that vtkm::filter::contour::ClipWithImplicitFunction will subdivide boundary cells into new cells whereas this filter will not, producing a more "crinkly" output.

Member Function Documentation

◆ DoExecute()

vtkm::cont::DataSet vtkm::filter::entity_extraction::ExtractGeometry::DoExecute ( const vtkm::cont::DataSet input)
overrideprivatevirtual

Implements vtkm::filter::Filter.

◆ ExtractBoundaryCellsOff()

void vtkm::filter::entity_extraction::ExtractGeometry::ExtractBoundaryCellsOff ( )
inline

Specify whether cells on the boundary should be extracted.

The implicit function used to extract geometry is likely to intersect some of the cells of the input. If this flag is true, then any cells intersected by the implicit function are extracted and included in the output. This flag is false by default.

◆ ExtractBoundaryCellsOn()

void vtkm::filter::entity_extraction::ExtractGeometry::ExtractBoundaryCellsOn ( )
inline

Specify whether cells on the boundary should be extracted.

The implicit function used to extract geometry is likely to intersect some of the cells of the input. If this flag is true, then any cells intersected by the implicit function are extracted and included in the output. This flag is false by default.

◆ ExtractInsideOff()

void vtkm::filter::entity_extraction::ExtractGeometry::ExtractInsideOff ( )
inline

Specify the region of the implicit function to keep cells.

Determines whether to extract the geometry that is on the inside of the implicit function (where the function is less than 0) or the outside (where the function is greater than 0). This flag is true by default (i.e., the interior of the implicit function will be extracted).

◆ ExtractInsideOn()

void vtkm::filter::entity_extraction::ExtractGeometry::ExtractInsideOn ( )
inline

Specify the region of the implicit function to keep cells.

Determines whether to extract the geometry that is on the inside of the implicit function (where the function is less than 0) or the outside (where the function is greater than 0). This flag is true by default (i.e., the interior of the implicit function will be extracted).

◆ ExtractOnlyBoundaryCellsOff()

void vtkm::filter::entity_extraction::ExtractGeometry::ExtractOnlyBoundaryCellsOff ( )
inline

GetExtractOnlyBoundaryCells.

◆ ExtractOnlyBoundaryCellsOn()

void vtkm::filter::entity_extraction::ExtractGeometry::ExtractOnlyBoundaryCellsOn ( )
inline

GetExtractOnlyBoundaryCells.

◆ GetExtractBoundaryCells()

bool vtkm::filter::entity_extraction::ExtractGeometry::GetExtractBoundaryCells ( ) const
inline

Specify whether cells on the boundary should be extracted.

The implicit function used to extract geometry is likely to intersect some of the cells of the input. If this flag is true, then any cells intersected by the implicit function are extracted and included in the output. This flag is false by default.

◆ GetExtractInside()

bool vtkm::filter::entity_extraction::ExtractGeometry::GetExtractInside ( ) const
inline

Specify the region of the implicit function to keep cells.

Determines whether to extract the geometry that is on the inside of the implicit function (where the function is less than 0) or the outside (where the function is greater than 0). This flag is true by default (i.e., the interior of the implicit function will be extracted).

◆ GetExtractOnlyBoundaryCells()

bool vtkm::filter::entity_extraction::ExtractGeometry::GetExtractOnlyBoundaryCells ( ) const
inline

Specify whether to extract cells only on the boundary.

When this flag is off (the default), this filter extract the geometry in the region specified by the implicit function. When this flag is on, then only those cells that intersect the surface of the implicit function are extracted.

◆ GetImplicitFunction()

const vtkm::ImplicitFunctionGeneral& vtkm::filter::entity_extraction::ExtractGeometry::GetImplicitFunction ( ) const
inline

◆ SetExtractBoundaryCells()

void vtkm::filter::entity_extraction::ExtractGeometry::SetExtractBoundaryCells ( bool  value)
inline

Specify whether cells on the boundary should be extracted.

The implicit function used to extract geometry is likely to intersect some of the cells of the input. If this flag is true, then any cells intersected by the implicit function are extracted and included in the output. This flag is false by default.

◆ SetExtractInside()

void vtkm::filter::entity_extraction::ExtractGeometry::SetExtractInside ( bool  value)
inline

Specify the region of the implicit function to keep cells.

Determines whether to extract the geometry that is on the inside of the implicit function (where the function is less than 0) or the outside (where the function is greater than 0). This flag is true by default (i.e., the interior of the implicit function will be extracted).

◆ SetExtractOnlyBoundaryCells()

void vtkm::filter::entity_extraction::ExtractGeometry::SetExtractOnlyBoundaryCells ( bool  value)
inline

GetExtractOnlyBoundaryCells.

◆ SetImplicitFunction()

void vtkm::filter::entity_extraction::ExtractGeometry::SetImplicitFunction ( const vtkm::ImplicitFunctionGeneral func)
inline

Specifies the implicit function to be used to perform extract geometry.

Only a limited number of implicit functions are supported. See vtkm::ImplicitFunctionGeneral for information on which ones.

Member Data Documentation

◆ ExtractBoundaryCells

bool vtkm::filter::entity_extraction::ExtractGeometry::ExtractBoundaryCells = false
private

◆ ExtractInside

bool vtkm::filter::entity_extraction::ExtractGeometry::ExtractInside = true
private

◆ ExtractOnlyBoundaryCells

bool vtkm::filter::entity_extraction::ExtractGeometry::ExtractOnlyBoundaryCells = false
private

◆ Function

vtkm::ImplicitFunctionGeneral vtkm::filter::entity_extraction::ExtractGeometry::Function
private

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