mirror of
https://gitlab.kitware.com/vtk/vtk-m
synced 2024-09-19 10:35:42 +00:00
3e1339f9a7
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.
136 lines
3.8 KiB
C++
136 lines
3.8 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_View_h
|
|
#define vtk_m_rendering_View_h
|
|
|
|
#include <vtkm/rendering/vtkm_rendering_export.h>
|
|
|
|
#include <vtkm/rendering/Camera.h>
|
|
#include <vtkm/rendering/Canvas.h>
|
|
#include <vtkm/rendering/Color.h>
|
|
#include <vtkm/rendering/Mapper.h>
|
|
#include <vtkm/rendering/Scene.h>
|
|
#include <vtkm/rendering/TextAnnotation.h>
|
|
|
|
#include <functional>
|
|
#include <memory>
|
|
|
|
namespace vtkm
|
|
{
|
|
namespace rendering
|
|
{
|
|
|
|
class VTKM_RENDERING_EXPORT View
|
|
{
|
|
struct InternalData;
|
|
|
|
public:
|
|
View(const vtkm::rendering::Scene& scene,
|
|
const vtkm::rendering::Mapper& mapper,
|
|
const vtkm::rendering::Canvas& canvas,
|
|
const vtkm::rendering::Color& backgroundColor = vtkm::rendering::Color(0, 0, 0, 1),
|
|
const vtkm::rendering::Color& foregroundColor = vtkm::rendering::Color(1, 1, 1, 1));
|
|
|
|
View(const vtkm::rendering::Scene& scene,
|
|
const vtkm::rendering::Mapper& mapper,
|
|
const vtkm::rendering::Canvas& canvas,
|
|
const vtkm::rendering::Camera& camera,
|
|
const vtkm::rendering::Color& backgroundColor = vtkm::rendering::Color(0, 0, 0, 1),
|
|
const vtkm::rendering::Color& foregroundColor = vtkm::rendering::Color(1, 1, 1, 1));
|
|
|
|
virtual ~View();
|
|
|
|
VTKM_CONT
|
|
const vtkm::rendering::Scene& GetScene() const;
|
|
VTKM_CONT
|
|
vtkm::rendering::Scene& GetScene();
|
|
VTKM_CONT
|
|
void SetScene(const vtkm::rendering::Scene& scene);
|
|
|
|
VTKM_CONT
|
|
const vtkm::rendering::Mapper& GetMapper() const;
|
|
VTKM_CONT
|
|
vtkm::rendering::Mapper& GetMapper();
|
|
|
|
VTKM_CONT
|
|
const vtkm::rendering::Canvas& GetCanvas() const;
|
|
VTKM_CONT
|
|
vtkm::rendering::Canvas& GetCanvas();
|
|
|
|
VTKM_CONT
|
|
const vtkm::rendering::WorldAnnotator& GetWorldAnnotator() const;
|
|
|
|
VTKM_CONT
|
|
const vtkm::rendering::Camera& GetCamera() const;
|
|
VTKM_CONT
|
|
vtkm::rendering::Camera& GetCamera();
|
|
VTKM_CONT
|
|
void SetCamera(const vtkm::rendering::Camera& camera);
|
|
|
|
VTKM_CONT
|
|
const vtkm::rendering::Color& GetBackgroundColor() const;
|
|
|
|
VTKM_CONT
|
|
void SetBackgroundColor(const vtkm::rendering::Color& color);
|
|
|
|
VTKM_CONT
|
|
void SetForegroundColor(const vtkm::rendering::Color& color);
|
|
|
|
VTKM_CONT
|
|
bool GetWorldAnnotationsEnabled() const { return this->WorldAnnotationsEnabled; }
|
|
|
|
VTKM_CONT
|
|
void SetWorldAnnotationsEnabled(bool val) { this->WorldAnnotationsEnabled = val; }
|
|
|
|
VTKM_CONT void SetRenderAnnotationsEnabled(bool val) { this->RenderAnnotationsEnabled = val; }
|
|
VTKM_CONT bool GetRenderAnnotationsEnabled() { return this->RenderAnnotationsEnabled; }
|
|
|
|
virtual void Paint() = 0;
|
|
virtual void RenderScreenAnnotations() = 0;
|
|
virtual void RenderWorldAnnotations() = 0;
|
|
|
|
void RenderAnnotations();
|
|
|
|
void SaveAs(const std::string& fileName) const;
|
|
|
|
VTKM_CONT
|
|
void SetAxisColor(vtkm::rendering::Color c);
|
|
|
|
VTKM_CONT
|
|
void ClearTextAnnotations();
|
|
|
|
VTKM_CONT
|
|
void AddTextAnnotation(std::unique_ptr<vtkm::rendering::TextAnnotation> ann);
|
|
|
|
VTKM_CONT
|
|
void ClearAdditionalAnnotations();
|
|
|
|
VTKM_CONT
|
|
void AddAdditionalAnnotation(std::function<void(void)> ann);
|
|
|
|
protected:
|
|
void SetupForWorldSpace(bool viewportClip = true);
|
|
|
|
void SetupForScreenSpace(bool viewportClip = false);
|
|
|
|
|
|
vtkm::rendering::Color AxisColor = vtkm::rendering::Color::white;
|
|
bool WorldAnnotationsEnabled = true;
|
|
bool RenderAnnotationsEnabled = true;
|
|
|
|
private:
|
|
std::shared_ptr<InternalData> Internal;
|
|
};
|
|
|
|
} // namespace vtkm::rendering
|
|
} // namespace vtkm
|
|
|
|
#endif //vtk_m_rendering_View_h
|