VTK  9.1.0
vtkBillboardTextActor3D.h
Go to the documentation of this file.
1/*=========================================================================
2
3 Program: Visualization Toolkit
4 Module: vtkBillboardTextActor3D.h
5
6 Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
7 All rights reserved.
8 See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
9
10 This software is distributed WITHOUT ANY WARRANTY; without even
11 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
12 PURPOSE. See the above copyright notice for more information.
13
14=========================================================================*/
39#ifndef vtkBillboardTextActor3D_h
40#define vtkBillboardTextActor3D_h
41
42#include "vtkNew.h" // For.... vtkNew!
43#include "vtkProp3D.h"
44#include "vtkRenderingCoreModule.h" // For export macro
45#include "vtkSmartPointer.h" // For.... vtkSmartPointer!
46
47class vtkActor;
48class vtkImageData;
49class vtkPolyData;
51class vtkRenderer;
52class vtkTextProperty;
53class vtkTextRenderer;
54class vtkTexture;
55
56class VTKRENDERINGCORE_EXPORT vtkBillboardTextActor3D : public vtkProp3D
57{
58public:
61 void PrintSelf(ostream& os, vtkIndent indent) override;
62
72
78
83 void SetInput(const char* in);
84 vtkGetStringMacro(Input);
92 vtkGetVector2Macro(DisplayOffset, int);
93 vtkSetVector2Macro(DisplayOffset, int);
101 vtkGetObjectMacro(TextProperty, vtkTextProperty);
108 virtual void SetForceOpaque(bool opaque);
109 virtual bool GetForceOpaque();
110 virtual void ForceOpaqueOn();
111 virtual void ForceOpaqueOff();
112 virtual void SetForceTranslucent(bool trans);
113 virtual bool GetForceTranslucent();
114 virtual void ForceTranslucentOn();
115 virtual void ForceTranslucentOff();
122
127
133
135 double* GetBounds() override;
137
142 vtkGetVector3Macro(AnchorDC, double);
143
144protected:
147
149
151
154
157
158 // Used by the opaque pass to tell the translucent pass not to render.
160 bool IsValid();
161
162 // Used to sync the internal actor's state.
163 void PreRender();
164
165 // Text specification:
166 char* Input;
168
169 // Offset in display coordinates.
170 int DisplayOffset[2];
171
172 // Cached metadata to determine if things need rebuildin'
175
176 // We cache this so we can recompute the bounds between renders, if needed.
178
179 // Rendering stuffies
186
187 // Display coordinate for anchor position. Z value is in NDC.
188 // Cached for GL2PS export on OpenGL2:
189 double AnchorDC[3];
190
191private:
193 void operator=(const vtkBillboardTextActor3D&) = delete;
194};
195
196#endif // vtkBillboardTextActor3D_h
represents an object (geometry & properties) in a rendered scene
Definition: vtkActor.h:155
Renders pixel-aligned text, facing the camera, anchored at a 3D point.
void SetTextProperty(vtkTextProperty *tprop)
The vtkTextProperty object that controls the rendered text.
vtkNew< vtkTextRenderer > TextRenderer
virtual bool GetForceOpaque()
Force the actor to render during the opaque or translucent pass.
bool TextureIsStale(vtkRenderer *ren)
void SetInput(const char *in)
The UTF-8 encoded string to display.
double * GetBounds() override
Return a reference to the Prop3D's composite transform.
int RenderTranslucentPolygonalGeometry(vtkViewport *vp) override
Just render in translucent pass, since it can execute multiple times (depth peeling,...
virtual bool GetForceTranslucent()
Force the actor to render during the opaque or translucent pass.
int RenderOpaqueGeometry(vtkViewport *vp) override
Check/update geometry/texture in opaque pass, since it only happens once.
void ReleaseGraphicsResources(vtkWindow *win) override
WARNING: INTERNAL METHOD - NOT INTENDED FOR GENERAL USE Release any graphics resources that are being...
virtual void SetForceTranslucent(bool trans)
Force the actor to render during the opaque or translucent pass.
bool QuadIsStale(vtkRenderer *ren)
virtual void ForceOpaqueOff()
Force the actor to render during the opaque or translucent pass.
static vtkBillboardTextActor3D * New()
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
virtual void ForceOpaqueOn()
Force the actor to render during the opaque or translucent pass.
void GenerateQuad(vtkRenderer *ren)
vtkSmartPointer< vtkRenderer > RenderedRenderer
virtual void ForceTranslucentOff()
Force the actor to render during the opaque or translucent pass.
virtual void SetForceOpaque(bool opaque)
Force the actor to render during the opaque or translucent pass.
virtual void ForceTranslucentOn()
Force the actor to render during the opaque or translucent pass.
vtkNew< vtkImageData > Image
void GenerateTexture(vtkRenderer *ren)
vtkNew< vtkPolyDataMapper > QuadMapper
void UpdateInternals(vtkRenderer *ren)
void UpdateGeometry(vtkViewport *vp)
Updates the billboard geometry without performing any rendering, to assist GetActors().
vtkTypeBool HasTranslucentPolygonalGeometry() override
Defers to internal actor.
void GetActors(vtkPropCollection *) override
For some exporters and other other operations we must be able to collect all the actors or volumes.
~vtkBillboardTextActor3D() override
topologically and geometrically regular array of data
Definition: vtkImageData.h:157
a simple class to control print indentation
Definition: vtkIndent.h:113
map vtkPolyData to graphics primitives
concrete dataset represents vertices, lines, polygons, and triangle strips
Definition: vtkPolyData.h:195
represents an 3D object for placement in a rendered scene
Definition: vtkProp3D.h:93
an ordered list of Props
abstract specification for renderers
Definition: vtkRenderer.h:173
represent text properties.
Interface for generating images and path data from string data, using multiple backends.
handles properties associated with a texture map
Definition: vtkTexture.h:175
record modification and/or execution time
Definition: vtkTimeStamp.h:52
abstract specification for Viewports
Definition: vtkViewport.h:47
window superclass for vtkRenderWindow
Definition: vtkWindow.h:36
void GetBounds(T a, double bds[6])
int vtkTypeBool
Definition: vtkABI.h:69