VTK  9.3.20240424
vtkBillboardTextActor3D.h
Go to the documentation of this file.
1// SPDX-FileCopyrightText: Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
2// SPDX-License-Identifier: BSD-3-Clause
30#ifndef vtkBillboardTextActor3D_h
31#define vtkBillboardTextActor3D_h
32
33#include "vtkNew.h" // For.... vtkNew!
34#include "vtkProp3D.h"
35#include "vtkRenderingCoreModule.h" // For export macro
36#include "vtkSmartPointer.h" // For.... vtkSmartPointer!
37
38VTK_ABI_NAMESPACE_BEGIN
39class vtkActor;
40class vtkImageData;
41class vtkPolyData;
43class vtkRenderer;
44class vtkTextProperty;
45class vtkTextRenderer;
46class vtkTexture;
47
48class VTKRENDERINGCORE_EXPORT vtkBillboardTextActor3D : public vtkProp3D
49{
50public:
53 void PrintSelf(ostream& os, vtkIndent indent) override;
54
64
70
75 void SetInput(const char* in);
76 vtkGetStringMacro(Input);
84 vtkGetVector2Macro(DisplayOffset, int);
85 vtkSetVector2Macro(DisplayOffset, int);
93 vtkGetObjectMacro(TextProperty, vtkTextProperty);
100 virtual void SetForceOpaque(bool opaque);
101 virtual bool GetForceOpaque();
102 virtual void ForceOpaqueOn();
103 virtual void ForceOpaqueOff();
104 virtual void SetForceTranslucent(bool trans);
105 virtual bool GetForceTranslucent();
106 virtual void ForceTranslucentOn();
107 virtual void ForceTranslucentOff();
114
119
125
127 double* GetBounds() override;
128 using Superclass::GetBounds;
129
134 vtkGetVector3Macro(AnchorDC, double);
135
136protected:
139
141
143
146
149
150 // Used by the opaque pass to tell the translucent pass not to render.
152 bool IsValid();
153
154 // Used to sync the internal actor's state.
155 void PreRender();
156
157 // Text specification:
158 char* Input;
160
161 // Offset in display coordinates.
162 int DisplayOffset[2];
163
164 // Cached metadata to determine if things need rebuildin'
167
168 // We cache this so we can recompute the bounds between renders, if needed.
170
171 // Rendering stuffies
178
179 // Display coordinate for anchor position. Z value is in NDC.
180 // Cached for GL2PS export on OpenGL2:
181 double AnchorDC[3];
182
183private:
185 void operator=(const vtkBillboardTextActor3D&) = delete;
186};
187
188VTK_ABI_NAMESPACE_END
189#endif // vtkBillboardTextActor3D_h
represents an object (geometry & properties) in a rendered scene
Definition vtkActor.h:151
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.
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
a simple class to control print indentation
Definition vtkIndent.h:108
Allocate and hold a VTK object.
Definition vtkNew.h:160
map vtkPolyData to graphics primitives
concrete dataset represents vertices, lines, polygons, and triangle strips
represents an 3D object for placement in a rendered scene
Definition vtkProp3D.h:89
an ordered list of Props
abstract specification for renderers
Hold a reference to a vtkObjectBase instance.
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:167
record modification and/or execution time
abstract specification for Viewports
Definition vtkViewport.h:65
window superclass for vtkRenderWindow
Definition vtkWindow.h:48
int vtkTypeBool
Definition vtkABI.h:64