vtk-m/vtkm/rendering/MapperGlyphBase.h
Manish Mathai 814ec27f1e Add MapperGlyphScalar and MapperGlyphVector mappers
These mappers can be used to render cell sets as glyphs. The following
glyph types are available for scalar fields:
 - Cube
 - Sphere
 - Axes
 - Quads

For vector fields:
 - Arrows
2022-06-15 15:19:53 -07:00

77 lines
2.1 KiB
C++

//============================================================================
// Copyright (c) Kitware, Inc.
// All rights reserved.
// See LICENSE.txt for details.
//
// This software is distributed WITHOUT ANY WARRANTY; without even
// the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
// PURPOSE. See the above copyright notice for more information.
//============================================================================
#ifndef vtk_m_rendering_MapperGlyphBase_h
#define vtk_m_rendering_MapperGlyphBase_h
#include <vtkm/cont/ColorTable.h>
#include <vtkm/rendering/Camera.h>
#include <vtkm/rendering/Mapper.h>
#include <memory>
namespace vtkm
{
namespace rendering
{
class CanvasRayTracer;
class VTKM_RENDERING_EXPORT MapperGlyphBase : public Mapper
{
public:
MapperGlyphBase();
virtual ~MapperGlyphBase();
void SetCanvas(vtkm::rendering::Canvas* canvas) override;
virtual vtkm::rendering::Canvas* GetCanvas() const override;
virtual bool GetUseCells() const;
virtual void SetUseCells();
virtual bool GetUseNodes() const;
virtual void SetUseNodes();
virtual bool GetUseStride() const;
virtual void SetUseStride(bool on);
virtual vtkm::Id GetStride() const;
virtual void SetStride(vtkm::Id stride);
virtual vtkm::Float32 GetBaseSize() const;
virtual void SetBaseSize(vtkm::Float32 size);
virtual bool GetScaleByValue() const;
virtual void SetScaleByValue(bool on);
virtual vtkm::Float32 GetScaleDelta() const;
virtual void SetScaleDelta(vtkm::Float32 delta);
virtual void SetCompositeBackground(bool on);
protected:
virtual vtkm::cont::DataSet FilterPoints(const vtkm::cont::UnknownCellSet& cellSet,
const vtkm::cont::CoordinateSystem& coords,
const vtkm::cont::Field& scalarField) const;
vtkm::rendering::CanvasRayTracer* Canvas;
bool CompositeBackground;
bool UseNodes;
bool UseStride;
vtkm::Id Stride;
bool ScaleByValue;
vtkm::Float32 BaseSize;
vtkm::Float32 ScaleDelta;
};
}
} //namespace vtkm::rendering
#endif //vtk_m_rendering_MapperGlyphBase_h