vtk-m/vtkm/cont/CellSetStructured.h
2015-05-18 11:04:15 -04:00

56 lines
1.2 KiB
C++

#ifndef vtk_m_cont_CellSetStructured_h
#define vtk_m_cont_CellSetStructured_h
#include <vtkm/cont/CellSet.h>
#include <vtkm/RegularConnectivity.h>
#include <vtkm/RegularStructure.h>
namespace vtkm {
namespace cont {
template<vtkm::IdComponent Dimension>
class CellSetStructured : public CellSet
{
public:
CellSetStructured(const std::string &n)
: CellSet(n,Dimension)
{
}
virtual vtkm::Id GetNumCells()
{
return structure.GetNumberOfCells();
}
vtkm::RegularConnectivity<vtkm::cont::NODE,vtkm::cont::CELL,Dimension>
GetNodeToCellConnectivity()
{
vtkm::RegularConnectivity<vtkm::cont::NODE,vtkm::cont::CELL,Dimension> regConn;
regConn.SetNodeDimension(structure.nodeDims[0],
structure.nodeDims[1],
structure.nodeDims[2]);
return regConn;
}
vtkm::RegularConnectivity<vtkm::cont::CELL,vtkm::cont::NODE,Dimension>
GetCellToNodeConnectivity()
{
vtkm::RegularConnectivity<vtkm::cont::CELL,vtkm::cont::NODE,Dimension> regConn;
regConn.SetNodeDimension(structure.nodeDims[0],
structure.nodeDims[1],
structure.nodeDims[2]);
return regConn;
}
public:
vtkm::RegularStructure<Dimension> structure;
};
}
} // namespace vtkm::cont
#endif //vtk_m_cont_CellSetStructured_h