1 //============================================================================ 2 // Copyright (c) Kitware, Inc. 3 // All rights reserved. 4 // See LICENSE.txt for details. 5 // 6 // This software is distributed WITHOUT ANY WARRANTY; without even 7 // the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 8 // PURPOSE. See the above copyright notice for more information. 9 //============================================================================ 10 #ifndef vtk_m_rendering_WorldAnnotator_h 11 #define vtk_m_rendering_WorldAnnotator_h 12 13 #include <vtkm/rendering/vtkm_rendering_export.h> 14 15 #include <vtkm/Types.h> 16 #include <vtkm/rendering/Canvas.h> 17 #include <vtkm/rendering/Color.h> 18 19 namespace vtkm 20 { 21 namespace rendering 22 { 23 24 class Canvas; 25 26 class VTKM_RENDERING_EXPORT WorldAnnotator 27 { 28 public: 29 WorldAnnotator(const vtkm::rendering::Canvas* canvas); 30 31 virtual ~WorldAnnotator(); 32 33 virtual void AddLine(const vtkm::Vec3f_64& point0, 34 const vtkm::Vec3f_64& point1, 35 vtkm::Float32 lineWidth, 36 const vtkm::rendering::Color& color, 37 bool inFront = false) const; 38 39 VTKM_CONT 40 void AddLine(vtkm::Float64 x0, 41 vtkm::Float64 y0, 42 vtkm::Float64 z0, 43 vtkm::Float64 x1, 44 vtkm::Float64 y1, 45 vtkm::Float64 z1, 46 vtkm::Float32 lineWidth, 47 const vtkm::rendering::Color& color, 48 bool inFront = false) const 49 { 50 this->AddLine( 51 vtkm::make_Vec(x0, y0, z0), vtkm::make_Vec(x1, y1, z1), lineWidth, color, inFront); 52 } 53 54 virtual void AddText(const vtkm::Vec3f_32& origin, 55 const vtkm::Vec3f_32& right, 56 const vtkm::Vec3f_32& up, 57 vtkm::Float32 scale, 58 const vtkm::Vec2f_32& anchor, 59 const vtkm::rendering::Color& color, 60 const std::string& text, 61 const vtkm::Float32 depth = 0.f) const; 62 63 VTKM_CONT AddText(vtkm::Float32 originX,vtkm::Float32 originY,vtkm::Float32 originZ,vtkm::Float32 rightX,vtkm::Float32 rightY,vtkm::Float32 rightZ,vtkm::Float32 upX,vtkm::Float32 upY,vtkm::Float32 upZ,vtkm::Float32 scale,vtkm::Float32 anchorX,vtkm::Float32 anchorY,const vtkm::rendering::Color & color,const std::string & text)64 void AddText(vtkm::Float32 originX, 65 vtkm::Float32 originY, 66 vtkm::Float32 originZ, 67 vtkm::Float32 rightX, 68 vtkm::Float32 rightY, 69 vtkm::Float32 rightZ, 70 vtkm::Float32 upX, 71 vtkm::Float32 upY, 72 vtkm::Float32 upZ, 73 vtkm::Float32 scale, 74 vtkm::Float32 anchorX, 75 vtkm::Float32 anchorY, 76 const vtkm::rendering::Color& color, 77 const std::string& text) const 78 { 79 this->AddText(vtkm::make_Vec(originX, originY, originZ), 80 vtkm::make_Vec(rightX, rightY, rightZ), 81 vtkm::make_Vec(upX, upY, upZ), 82 scale, 83 vtkm::make_Vec(anchorX, anchorY), 84 color, 85 text); 86 } 87 88 private: 89 const vtkm::rendering::Canvas* Canvas; 90 }; 91 } 92 } //namespace vtkm::rendering 93 94 #endif // vtk_m_rendering_WorldAnnotator_h 95