14 #include <vtkCamera.h> 15 #include <vtkFollower.h> 17 #include <vtkPolyDataMapper.h> 18 #include <vtkProperty.h> 19 #include <vtkTextActor3D.h> 20 #include <vtkTextProperty.h> 21 #include <vtkVectorText.h> 52 m_textSource = vtkSmartPointer<vtkVectorText>::New();
55 vtkSmartPointer<vtkPolyDataMapper> mapper = vtkSmartPointer<vtkPolyDataMapper>::New();
56 mapper->SetInputConnection(m_textSource->GetOutputPort());
59 m_follower = vtkSmartPointer<vtkFollower>::New();
60 m_follower->SetMapper(mapper);
61 m_follower->GetProperty()->SetColor(1, 0, 0);
62 m_follower->SetScale(1);
74 vtkCamera *camera = vtkRender->GetActiveCamera();
76 if (camera !=
nullptr)
82 camera->GetViewUp(viewUp.GetDataPointer());
84 camera->GetDirectionOfProjection(cameraDirection.GetDataPointer());
86 vtkMath::Cross(cameraDirection.GetDataPointer(), viewUp.GetDataPointer(), viewRight.GetDataPointer());
88 pos3d = pos3d + viewRight * offset[0] + viewUp * offset[1] + cameraDirection * offset[2];
91 ls->
m_follower->SetPosition(pos3d.GetDataPointer());
93 float color[3] = {1, 1, 1};
97 ls->
m_follower->GetProperty()->SetColor(color[0], color[1], color[2]);
98 ls->
m_follower->GetProperty()->SetOpacity(opacity);
~TextAnnotation3D() override
virtual destructor in order to derive from this class
L * GetLocalStorage(mitk::BaseRenderer *forRenderer)
Retrieves a LocalStorage for a specific BaseRenderer.
void SetText(std::string text)
std::vector< mitk::BaseRenderer * > GetRegisteredBaseRenderer()
vtkRenderer * GetVtkRenderer() const
Organizes the rendering process.
bool IsGenerateDataRequired(mitk::BaseRenderer *renderer, mitk::Annotation *Annotation)
vtkSmartPointer< vtkVectorText > m_textSource
void UpdateVtkAnnotation(mitk::BaseRenderer *renderer) override
TextAnnotation3D()
explicit constructor which disallows implicit conversions
void SetColor(const mitk::Color &color, const std::string &propertyKey="color")
Convenience method for setting color properties (instances of ColorProperty)
~LocalStorage()
Default deconstructor of the local storage.
Internal class holding the mapper, actor, etc. for each of the render windows.
vtkSmartPointer< vtkFollower > m_follower
Actor of a 2D render window.
void SetOffsetVector(const Point3D &OffsetVector)
bool GetColor(float rgb[], const std::string &propertyKey="color") const
Convenience access method for color properties (instances of ColorProperty)
LocalStorage()
Default constructor of the local storage.
Point3D GetPosition3D() const
void RemoveFromBaseRenderer(BaseRenderer *renderer) override
Removes the Annotation from the specified renderer. It is not visible anymore then.
mitk::LocalStorageHandler< LocalStorage > m_LSH
The LocalStorageHandler holds all LocalStorages for the render windows.
std::string GetText() const
void SetPosition3D(const Point3D &position3D)
bool GetOpacity(float &opacity, const std::string &propertyKey="opacity") const
Convenience access method for opacity properties (instances of FloatProperty)
Point3D GetOffsetVector() const
void UpdateGenerateDataTime()
void SetFontSize(int fontSize)
vtkProp * GetVtkProp(BaseRenderer *renderer) const override
This method is implemented by the specific VTKAnnotation in order to create the element as a vtkProp...