VTK  9.0.1
vtkFlagpoleLabel.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Visualization Toolkit
4  Module: vtkFlagpoleLabel.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 =========================================================================*/
25 #ifndef vtkFlagpoleLabel_h
26 #define vtkFlagpoleLabel_h
27 
28 #include "vtkActor.h"
29 #include "vtkNew.h" // For.... vtkNew!
30 #include "vtkRenderingCoreModule.h" // For export macro
31 #include "vtkSmartPointer.h" // For.... vtkSmartPointer!
32 
33 class vtkActor;
34 class vtkImageData;
35 class vtkLineSource;
36 class vtkPolyData;
37 class vtkPolyDataMapper;
38 class vtkRenderer;
39 class vtkTextProperty;
40 class vtkTextRenderer;
41 
42 class VTKRENDERINGCORE_EXPORT vtkFlagpoleLabel : public vtkActor
43 {
44 public:
45  static vtkFlagpoleLabel* New();
46  vtkTypeMacro(vtkFlagpoleLabel, vtkActor);
47  void PrintSelf(ostream& os, vtkIndent indent) override;
48 
53  void SetInput(const char* in);
54  vtkGetStringMacro(Input);
62  vtkGetObjectMacro(TextProperty, vtkTextProperty);
69  void SetForceOpaque(bool opaque) override;
70  bool GetForceOpaque() override;
71  void ForceOpaqueOn() override;
72  void ForceOpaqueOff() override;
73  void SetForceTranslucent(bool trans) override;
74  bool GetForceTranslucent() override;
75  void ForceTranslucentOn() override;
76  void ForceTranslucentOff() override;
83 
87  int RenderOpaqueGeometry(vtkViewport* vp) override;
88 
94 
95  void ReleaseGraphicsResources(vtkWindow* win) override;
96  double* GetBounds() override;
98 
102  vtkGetVector3Macro(BasePosition, double);
103  void SetBasePosition(double x, double y, double z);
104 
108  vtkGetVector3Macro(TopPosition, double);
109  void SetTopPosition(double x, double y, double z);
110 
116  vtkGetMacro(FlagSize, double);
117  vtkSetMacro(FlagSize, double);
118 
119 protected:
121  ~vtkFlagpoleLabel() override;
122 
123  bool InputIsValid();
124 
126 
129 
132 
133  // Used by the opaque pass to tell the translucent pass not to render.
134  void Invalidate();
135  bool IsValid();
136 
137  // Used to sync the internal actor's state.
138  void PreRender();
139 
140  // Text specification:
141  char* Input;
143 
144  // Cached metadata to determine if things need rebuildin'
147 
148  // We cache this so we can recompute the bounds between renders, if needed.
150 
151  // Rendering stuffies
157 
161 
162  double TopPosition[3];
163  double BasePosition[3];
164  double FlagSize;
165 
166 private:
167  vtkFlagpoleLabel(const vtkFlagpoleLabel&) = delete;
168  void operator=(const vtkFlagpoleLabel&) = delete;
169 };
170 
171 #endif // vtkFlagpoleLabel_h
vtkPolyDataMapper
map vtkPolyData to graphics primitives
Definition: vtkPolyDataMapper.h:37
vtkFlagpoleLabel::RenderedRenderer
vtkSmartPointer< vtkRenderer > RenderedRenderer
Definition: vtkFlagpoleLabel.h:149
vtkFlagpoleLabel::LineSource
vtkNew< vtkLineSource > LineSource
Definition: vtkFlagpoleLabel.h:159
vtkFlagpoleLabel::GetBounds
double * GetBounds() override
Get the bounds for this Prop as (Xmin,Xmax,Ymin,Ymax,Zmin,Zmax).
vtkFlagpoleLabel::RenderTranslucentPolygonalGeometry
int RenderTranslucentPolygonalGeometry(vtkViewport *vp) override
Just render in translucent pass, since it can execute multiple times (depth peeling,...
vtkFlagpoleLabel::SetForceOpaque
void SetForceOpaque(bool opaque) override
Force the actor to render during the opaque or translucent pass.
vtkFlagpoleLabel::ReleaseGraphicsResources
void ReleaseGraphicsResources(vtkWindow *win) override
Release any graphics resources that are being consumed by this actor.
vtkFlagpoleLabel::vtkFlagpoleLabel
vtkFlagpoleLabel()
vtkFlagpoleLabel::IsValid
bool IsValid()
vtkFlagpoleLabel::InputMTime
vtkTimeStamp InputMTime
Definition: vtkFlagpoleLabel.h:146
vtkFlagpoleLabel::TextureIsStale
bool TextureIsStale(vtkRenderer *ren)
vtkTimeStamp
record modification and/or execution time
Definition: vtkTimeStamp.h:33
vtkFlagpoleLabel::QuadIsStale
bool QuadIsStale(vtkRenderer *ren)
vtkFlagpoleLabel::Image
vtkNew< vtkImageData > Image
Definition: vtkFlagpoleLabel.h:153
vtkSmartPointer< vtkRenderer >
vtkFlagpoleLabel::SetInput
void SetInput(const char *in)
The UTF-8 encoded string to display.
vtkFlagpoleLabel::PrintSelf
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
vtkFlagpoleLabel::Invalidate
void Invalidate()
vtkFlagpoleLabel::SetTopPosition
void SetTopPosition(double x, double y, double z)
vtkFlagpoleLabel::Quad
vtkNew< vtkPolyData > Quad
Definition: vtkFlagpoleLabel.h:154
vtkFlagpoleLabel::New
static vtkFlagpoleLabel * New()
vtkFlagpoleLabel::HasTranslucentPolygonalGeometry
vtkTypeBool HasTranslucentPolygonalGeometry() override
Defers to internal actor.
vtkFlagpoleLabel::GenerateQuad
void GenerateQuad(vtkRenderer *ren)
vtkProp3D::GetBounds
double * GetBounds() override=0
Get the bounds for this Prop as (Xmin,Xmax,Ymin,Ymax,Zmin,Zmax).
vtkWindow
window superclass for vtkRenderWindow
Definition: vtkWindow.h:35
vtkFlagpoleLabel::PoleMapper
vtkNew< vtkPolyDataMapper > PoleMapper
Definition: vtkFlagpoleLabel.h:158
vtkFlagpoleLabel::UpdateInternals
void UpdateInternals(vtkRenderer *ren)
vtkFlagpoleLabel::GetForceTranslucent
bool GetForceTranslucent() override
Force the actor to render during the opaque or translucent pass.
vtkFlagpoleLabel::ForceOpaqueOn
void ForceOpaqueOn() override
Force the actor to render during the opaque or translucent pass.
vtkFlagpoleLabel::QuadActor
vtkNew< vtkActor > QuadActor
Definition: vtkFlagpoleLabel.h:156
vtkFlagpoleLabel::SetBasePosition
void SetBasePosition(double x, double y, double z)
vtkFlagpoleLabel::GetForceOpaque
bool GetForceOpaque() override
Force the actor to render during the opaque or translucent pass.
vtkFlagpoleLabel::RenderedDPI
int RenderedDPI
Definition: vtkFlagpoleLabel.h:145
vtkActor
represents an object (geometry & properties) in a rendered scene
Definition: vtkActor.h:46
vtkImageData
topologically and geometrically regular array of data
Definition: vtkImageData.h:42
vtkIndent
a simple class to control print indentation
Definition: vtkIndent.h:34
vtkFlagpoleLabel::ForceTranslucentOn
void ForceTranslucentOn() override
Force the actor to render during the opaque or translucent pass.
vtkFlagpoleLabel::ForceOpaqueOff
void ForceOpaqueOff() override
Force the actor to render during the opaque or translucent pass.
vtkSmartPointer.h
vtkActor.h
vtkFlagpoleLabel::FlagSize
double FlagSize
Definition: vtkFlagpoleLabel.h:164
vtkNew< vtkTextRenderer >
vtkFlagpoleLabel::GenerateTexture
void GenerateTexture(vtkRenderer *ren)
vtkLineSource
create a line defined by two end points
Definition: vtkLineSource.h:61
vtkViewport
abstract specification for Viewports
Definition: vtkViewport.h:45
vtkFlagpoleLabel::TextProperty
vtkTextProperty * TextProperty
Definition: vtkFlagpoleLabel.h:142
vtkFlagpoleLabel::PreRender
void PreRender()
vtkTextProperty
represent text properties.
Definition: vtkTextProperty.h:34
vtkFlagpoleLabel
Renders a flagpole (line) with a label at the top that faces the camera.
Definition: vtkFlagpoleLabel.h:43
vtkFlagpoleLabel::SetTextProperty
void SetTextProperty(vtkTextProperty *tprop)
The vtkTextProperty object that controls the rendered text.
vtkFlagpoleLabel::PoleActor
vtkNew< vtkActor > PoleActor
Definition: vtkFlagpoleLabel.h:160
vtkNew.h
vtkFlagpoleLabel::RenderOpaqueGeometry
int RenderOpaqueGeometry(vtkViewport *vp) override
Check/update geometry/texture in opaque pass, since it only happens once.
vtkTextRenderer
Interface for generating images and path data from string data, using multiple backends.
Definition: vtkTextRenderer.h:74
vtkRenderer
abstract specification for renderers
Definition: vtkRenderer.h:59
vtkPolyData
concrete dataset represents vertices, lines, polygons, and triangle strips
Definition: vtkPolyData.h:85
vtkFlagpoleLabel::InputIsValid
bool InputIsValid()
vtkFlagpoleLabel::ForceTranslucentOff
void ForceTranslucentOff() override
Force the actor to render during the opaque or translucent pass.
vtkFlagpoleLabel::~vtkFlagpoleLabel
~vtkFlagpoleLabel() override
vtkFlagpoleLabel::SetForceTranslucent
void SetForceTranslucent(bool trans) override
Force the actor to render during the opaque or translucent pass.
vtkFlagpoleLabel::TextRenderer
vtkNew< vtkTextRenderer > TextRenderer
Definition: vtkFlagpoleLabel.h:152
vtkFlagpoleLabel::QuadMapper
vtkNew< vtkPolyDataMapper > QuadMapper
Definition: vtkFlagpoleLabel.h:155
vtkTypeBool
int vtkTypeBool
Definition: vtkABI.h:69
vtkFlagpoleLabel::Input
char * Input
Definition: vtkFlagpoleLabel.h:141