VTK-m
2.3
|
Contour filter interface. More...
#include <AbstractContour.h>
Public Member Functions | |
void | SetNumberOfIsoValues (vtkm::Id num) |
vtkm::Id | GetNumberOfIsoValues () const |
void | SetIsoValue (vtkm::Float64 v) |
Set a field value on which to extract a contour. More... | |
void | SetIsoValue (vtkm::Id index, vtkm::Float64 v) |
Set a field value on which to extract a contour. More... | |
void | SetIsoValues (const std::vector< vtkm::Float64 > &values) |
Set multiple iso values at once. More... | |
vtkm::Float64 | GetIsoValue (vtkm::Id index=0) const |
Return a value used to contour the mesh. More... | |
void | SetGenerateNormals (bool flag) |
Set whether normals should be generated. More... | |
bool | GetGenerateNormals () const |
Get whether normals should be generated. More... | |
void | SetAddInterpolationEdgeIds (bool flag) |
Set whether to append the ids of the intersected edges to the vertices of the isosurface triangles. More... | |
bool | GetAddInterpolationEdgeIds () const |
Get whether to append the ids of the intersected edges to the vertices of the isosurface triangles. More... | |
void | SetComputeFastNormals (bool flag) |
Set whether the fast path should be used for normals computation. More... | |
bool | GetComputeFastNormals () const |
Get whether the fast path should be used for normals computation. More... | |
void | SetNormalArrayName (const std::string &name) |
Set the name of the field for the generated normals. More... | |
const std::string & | GetNormalArrayName () const |
Get the name of the field for the generated normals. More... | |
void | SetInputCellDimension (vtkm::filter::contour::ContourDimension dimension) |
Specify the dimension of cells on which to operate the contour. More... | |
vtkm::filter::contour::ContourDimension | GetInputCellDimension () const |
Specify the dimension of cells on which to operate the contour. More... | |
void | SetInputCellDimensionToAuto () |
Specifies an automatic selection of the input cell dimension. More... | |
void | SetInputCellDimensionToAll () |
Specifies a combination of all possible contours. More... | |
void | SetInputCellDimensionToPolyhedra () |
Specifies running contours on polyhedra. More... | |
void | SetInputCellDimensionToPolygons () |
Specifies running contours on polygons. More... | |
void | SetInputCellDimensionToLines () |
Specifies running contours on lines. More... | |
void | SetMergeDuplicatePoints (bool on) |
Set whether the points generated should be unique for every triangle or will duplicate points be merged together. More... | |
bool | GetMergeDuplicatePoints () const |
Get whether the points generated should be unique for every triangle or will duplicate points be merged together. More... | |
![]() | |
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::FieldSelection & | GetFieldsToPass () const |
Specify which fields get passed from input to output. More... | |
vtkm::filter::FieldSelection & | GetFieldsToPass () |
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... | |
Protected Member Functions | |
void | ExecuteGenerateNormals (vtkm::cont::DataSet &output, const vtkm::cont::ArrayHandle< vtkm::Vec3f > &normals) |
template<typename WorkletType > | |
void | ExecuteAddInterpolationEdgeIds (vtkm::cont::DataSet &output, WorkletType &worklet) |
virtual vtkm::cont::DataSet | DoExecute (const vtkm::cont::DataSet &result)=0 |
![]() | |
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::Field & | GetFieldFromDataSet (const vtkm::cont::DataSet &input) const |
Retrieve an input field from a vtkm::cont::DataSet object. More... | |
const vtkm::cont::Field & | GetFieldFromDataSet (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... | |
Static Protected Member Functions | |
template<typename WorkletType > | |
static bool | DoMapField (vtkm::cont::DataSet &result, const vtkm::cont::Field &field, WorkletType &worklet) |
Map a given field to the output DataSet , depending on its type. More... | |
Protected Attributes | |
std::vector< vtkm::Float64 > | IsoValues |
bool | GenerateNormals = true |
bool | ComputeFastNormals = false |
vtkm::filter::contour::ContourDimension | InputCellDimension |
bool | AddInterpolationEdgeIds = false |
bool | MergeDuplicatedPoints = true |
std::string | NormalArrayName = "normals" |
std::string | InterpolationEdgeIdsArrayName = "edgeIds" |
![]() | |
vtkm::cont::Invoker | Invoke |
Contour filter interface.
Provides common configuration & execution methods for contour filters Only the method DoExecute
executing the contour algorithm needs to be implemented
|
protectedpure virtual |
|
inlinestaticprotected |
Map a given field to the output DataSet
, depending on its type.
The worklet needs to implement ProcessPointField
to process point fields as arrays and GetCellIdMap
function giving the cell id mapping from input to output
|
inlineprotected |
|
inlineprotected |
|
inline |
Get whether to append the ids of the intersected edges to the vertices of the isosurface triangles.
|
inline |
Get whether the fast path should be used for normals computation.
|
inline |
Get whether normals should be generated.
|
inline |
Specify the dimension of cells on which to operate the contour.
The contour filters operate on cells of a particular dimension (i.e., polyhedra, polygons, or lines) and generate simplicies of one less dimension (i.e., triangles, lines, or vertices). The default is vtkm::filter::contour::ContourDimension::Auto
.
|
inline |
Return a value used to contour the mesh.
|
inline |
Get whether the points generated should be unique for every triangle or will duplicate points be merged together.
|
inline |
Get the name of the field for the generated normals.
|
inline |
|
inline |
Set whether to append the ids of the intersected edges to the vertices of the isosurface triangles.
Off by default.
|
inline |
Set whether the fast path should be used for normals computation.
When this flag is off (the default), the generated normals are based on the gradient of the field being contoured and can be quite expensive to compute. When the flag is on, a faster method that computes the normals based on the faces of the isosurface mesh is used, but the normals do not look as good as the gradient based normals.
This flag has no effect if SetGenerateNormals
is false.
|
inline |
Set whether normals should be generated.
Normals are used in shading calculations during rendering and can make the surface appear more smooth.
Off by default.
|
inline |
Specify the dimension of cells on which to operate the contour.
The contour filters operate on cells of a particular dimension (i.e., polyhedra, polygons, or lines) and generate simplicies of one less dimension (i.e., triangles, lines, or vertices). The default is vtkm::filter::contour::ContourDimension::Auto
.
|
inline |
Specifies a combination of all possible contours.
This option runs contour on all possible dimension types and then merges all contours together.
|
inline |
Specifies an automatic selection of the input cell dimension.
This option first tries to contour polyhedra. If any polyhedra have the contour, that is used. Otherwise, it tries to contour polygons. If that fails, lines are contoured.
|
inline |
Specifies running contours on lines.
This option runs contour on lines, generating vertices.
|
inline |
Specifies running contours on polygons.
This option runs contour on polygons, generating lines.
|
inline |
Specifies running contours on polyhedra.
This option runs contour on polyhedra, generating triangles.
|
inline |
Set a field value on which to extract a contour.
This form of the method is usually used when only one contour is being extracted.
|
inline |
Set a field value on which to extract a contour.
This form is used to specify multiple contours. The method is called multiple times with different index parameters.
|
inline |
Set multiple iso values at once.
The iso values can be specified as either a std::vector
or an initializer list. So, both
and
work.
|
inline |
Set whether the points generated should be unique for every triangle or will duplicate points be merged together.
Duplicate points are identified by the unique edge it was generated from.
Because the contour filter (like all filters in VTK-m) runs in parallel, parallel threads can (and often do) create duplicate versions of points. When this flag is set to true, a secondary operation will find all duplicated points and combine them together. If false, points will be duplicated. In addition to requiring more storage, duplicated points mean that triangles next to each other will not be considered adjecent to subsequent filters.
|
inline |
Set the name of the field for the generated normals.
|
inline |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |