VTK-m  2.0
Classes | Static Public Member Functions | Static Private Member Functions | Static Private Attributes | List of all members
vtkm::worklet::OrientPointAndCellNormals Class Reference

Orients normals to point outside of the dataset. More...

#include <OrientPointAndCellNormals.h>

Classes

class  WorkletMarkActiveCells
 
class  WorkletMarkActivePoints
 
class  WorkletMarkSourcePoints
 
class  WorkletProcessCellNormals
 
class  WorkletProcessPointNormals
 

Static Public Member Functions

template<typename CellSetType , typename CoordsCompType , typename CoordsStorageType , typename PointNormalCompType , typename PointNormalStorageType , typename CellNormalCompType , typename CellNormalStorageType >
static VTKM_CONT void Run (const CellSetType &cells, const vtkm::cont::ArrayHandle< vtkm::Vec< CoordsCompType, 3 >, CoordsStorageType > &coords, vtkm::cont::ArrayHandle< vtkm::Vec< PointNormalCompType, 3 >, PointNormalStorageType > &pointNormals, vtkm::cont::ArrayHandle< vtkm::Vec< CellNormalCompType, 3 >, CellNormalStorageType > &cellNormals)
 

Static Private Member Functions

template<typename T >
static VTKM_EXEC bool SameDirection (const vtkm::Vec< T, 3 > &v1, const vtkm::Vec< T, 3 > &v2)
 
template<typename T >
static VTKM_EXEC bool Align (vtkm::Vec< T, 3 > &normal, const vtkm::Vec< T, 3 > &ref)
 

Static Private Attributes

static constexpr vtkm::Id INVALID_ID = -1
 

Detailed Description

Orients normals to point outside of the dataset.

This requires a closed manifold surface or else the behavior is undefined. This requires an unstructured cellset as input.

Member Function Documentation

◆ Align()

template<typename T >
static VTKM_EXEC bool vtkm::worklet::OrientPointAndCellNormals::Align ( vtkm::Vec< T, 3 > &  normal,
const vtkm::Vec< T, 3 > &  ref 
)
inlinestaticprivate

◆ Run()

template<typename CellSetType , typename CoordsCompType , typename CoordsStorageType , typename PointNormalCompType , typename PointNormalStorageType , typename CellNormalCompType , typename CellNormalStorageType >
static VTKM_CONT void vtkm::worklet::OrientPointAndCellNormals::Run ( const CellSetType &  cells,
const vtkm::cont::ArrayHandle< vtkm::Vec< CoordsCompType, 3 >, CoordsStorageType > &  coords,
vtkm::cont::ArrayHandle< vtkm::Vec< PointNormalCompType, 3 >, PointNormalStorageType > &  pointNormals,
vtkm::cont::ArrayHandle< vtkm::Vec< CellNormalCompType, 3 >, CellNormalStorageType > &  cellNormals 
)
inlinestatic

◆ SameDirection()

template<typename T >
static VTKM_EXEC bool vtkm::worklet::OrientPointAndCellNormals::SameDirection ( const vtkm::Vec< T, 3 > &  v1,
const vtkm::Vec< T, 3 > &  v2 
)
inlinestaticprivate

Member Data Documentation

◆ INVALID_ID

constexpr vtkm::Id vtkm::worklet::OrientPointAndCellNormals::INVALID_ID = -1
staticconstexprprivate

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