vtk-m/vtkm/rendering/TextAnnotation.h
Kenneth Moreland 3e1339f9a7 Remove deprecated features from VTK-m
With the major revision 2.0 of VTK-m, many items previously marked as
deprecated were removed. If updating to a new version of VTK-m, it is
recommended to first update to VTK-m 1.9, which will include the deprecated
features but provide warnings (with the right compiler) that will point to
the replacement code. Once the deprecations have been fixed, updating to
2.0 should be smoother.
2022-11-17 07:12:31 -06:00

83 lines
2.4 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_TextAnnotation_h
#define vtk_m_rendering_TextAnnotation_h
#include <vtkm/rendering/vtkm_rendering_export.h>
#include <vtkm/rendering/Camera.h>
#include <vtkm/rendering/Canvas.h>
#include <vtkm/rendering/WorldAnnotator.h>
namespace vtkm
{
namespace rendering
{
class VTKM_RENDERING_EXPORT TextAnnotation
{
public:
enum struct HorizontalAlignment
{
Left,
HCenter,
Right
};
enum struct VerticalAlignment
{
Bottom,
VCenter,
Top
};
static constexpr HorizontalAlignment Left = HorizontalAlignment::Left;
static constexpr HorizontalAlignment HCenter = HorizontalAlignment::HCenter;
static constexpr HorizontalAlignment Right = HorizontalAlignment::Right;
static constexpr VerticalAlignment Bottom = VerticalAlignment::Bottom;
static constexpr VerticalAlignment VCenter = VerticalAlignment::VCenter;
static constexpr VerticalAlignment Top = VerticalAlignment::Top;
protected:
std::string Text;
Color TextColor;
vtkm::Float32 Scale;
vtkm::Vec2f_32 Anchor;
public:
TextAnnotation(const std::string& text,
const vtkm::rendering::Color& color,
vtkm::Float32 scalar);
virtual ~TextAnnotation();
void SetText(const std::string& text);
const std::string& GetText() const;
/// Set the anchor point relative to the box containing the text. The anchor
/// is scaled in both directions to the range [-1,1] with -1 at the lower
/// left and 1 at the upper right.
///
void SetRawAnchor(const vtkm::Vec2f_32& anchor);
void SetRawAnchor(vtkm::Float32 h, vtkm::Float32 v);
void SetAlignment(HorizontalAlignment h, VerticalAlignment v);
void SetScale(vtkm::Float32 scale);
virtual void Render(const vtkm::rendering::Camera& camera,
const vtkm::rendering::WorldAnnotator& worldAnnotator,
vtkm::rendering::Canvas& canvas) const = 0;
};
}
} //namespace vtkm::rendering
#endif //vtk_m_rendering_TextAnnotation_h