VTK  9.0.1
vtkRenderView.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Visualization Toolkit
4  Module: vtkRenderView.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 =========================================================================*/
15 /*-------------------------------------------------------------------------
16  Copyright 2008 Sandia Corporation.
17  Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation,
18  the U.S. Government retains certain rights in this software.
19 -------------------------------------------------------------------------*/
34 #ifndef vtkRenderView_h
35 #define vtkRenderView_h
36 
37 #include "vtkRenderViewBase.h"
38 #include "vtkSmartPointer.h" // For SP ivars
39 #include "vtkViewsInfovisModule.h" // For export macro
40 
42 class vtkActor2D;
43 class vtkAlgorithmOutput;
44 class vtkArrayCalculator;
48 class vtkHoverWidget;
52 class vtkSelection;
53 class vtkTextProperty;
54 class vtkTexture;
55 class vtkTexturedActor2D;
57 
58 class VTKVIEWSINFOVIS_EXPORT vtkRenderView : public vtkRenderViewBase
59 {
60 public:
61  static vtkRenderView* New();
63  void PrintSelf(ostream& os, vtkIndent indent) override;
64 
70  void SetInteractor(vtkRenderWindowInteractor* interactor) override;
71 
75  virtual void SetInteractorStyle(vtkInteractorObserver* style);
76 
80  virtual vtkInteractorObserver* GetInteractorStyle();
81 
87  void SetRenderWindow(vtkRenderWindow* win) override;
88 
89  enum
90  {
93  INTERACTION_MODE_UNKNOWN
94  };
95 
96  void SetInteractionMode(int mode);
97  vtkGetMacro(InteractionMode, int);
98 
104  virtual void SetInteractionModeTo2D() { this->SetInteractionMode(INTERACTION_MODE_2D); }
105  virtual void SetInteractionModeTo3D() { this->SetInteractionMode(INTERACTION_MODE_3D); }
106 
111  void Render() override;
112 
116  void ApplyViewTheme(vtkViewTheme* theme) override;
117 
119 
123  virtual void SetTransform(vtkAbstractTransform* transform);
124  vtkGetObjectMacro(Transform, vtkAbstractTransform);
126 
128 
131  virtual void SetDisplayHoverText(bool b);
132  vtkGetMacro(DisplayHoverText, bool);
133  vtkBooleanMacro(DisplayHoverText, bool);
135 
136  enum
137  {
138  SURFACE = 0,
139  FRUSTUM = 1
140  };
141 
143 
150  vtkSetClampMacro(SelectionMode, int, 0, 1);
151  vtkGetMacro(SelectionMode, int);
152  void SetSelectionModeToSurface() { this->SetSelectionMode(SURFACE); }
153  void SetSelectionModeToFrustum() { this->SetSelectionMode(FRUSTUM); }
155 
161  virtual void AddLabels(vtkAlgorithmOutput* conn);
162 
166  virtual void RemoveLabels(vtkAlgorithmOutput* conn);
167 
169 
172  virtual void SetIconTexture(vtkTexture* texture);
173  vtkGetObjectMacro(IconTexture, vtkTexture);
175 
177 
180  vtkSetVector2Macro(IconSize, int);
181  vtkGetVector2Macro(IconSize, int);
183 
185 
189  vtkSetVector2Macro(DisplaySize, int);
190  int* GetDisplaySize();
191  void GetDisplaySize(int& dsx, int& dsy);
193 
194  enum
195  {
197  ALL
198  };
199 
201 
208  virtual void SetLabelPlacementMode(int mode);
209  virtual int GetLabelPlacementMode();
210  virtual void SetLabelPlacementModeToNoOverlap() { this->SetLabelPlacementMode(NO_OVERLAP); }
211  virtual void SetLabelPlacementModeToAll() { this->SetLabelPlacementMode(ALL); }
213 
214  enum
215  {
217  QT
218  };
219 
221 
226  virtual void SetLabelRenderMode(int mode);
227  virtual int GetLabelRenderMode();
228  virtual void SetLabelRenderModeToFreetype() { this->SetLabelRenderMode(FREETYPE); }
229  virtual void SetLabelRenderModeToQt() { this->SetLabelRenderMode(QT); }
231 
233 
236  void SetRenderOnMouseMove(bool b);
237  vtkGetMacro(RenderOnMouseMove, bool);
238  vtkBooleanMacro(RenderOnMouseMove, bool);
240 
241 protected:
242  vtkRenderView();
243  ~vtkRenderView() override;
244 
250  void ProcessEvents(vtkObject* caller, unsigned long eventId, void* callData) override;
251 
255  virtual void GenerateSelection(void* callData, vtkSelection* selection);
256 
260  void PrepareForRendering() override;
261 
265  virtual void UpdateHoverText();
266 
271  virtual void UpdateHoverWidgetState();
272 
277  void UpdatePickRender();
278 
286 
289  int IconSize[2];
290  int DisplaySize[2];
291 
294 
301 
302 private:
303  vtkRenderView(const vtkRenderView&) = delete;
304  void operator=(const vtkRenderView&) = delete;
305 };
306 
307 #endif
virtual void ApplyViewTheme(vtkViewTheme *vtkNotUsed(theme))
Apply a theme to the view.
Definition: vtkView.h:147
abstract base class for most VTK objects
Definition: vtkObject.h:53
actor that draws 2D data with texture support
void SetSelectionModeToFrustum()
Sets the selection mode for the render view.
virtual void Render()
Updates the representations, then calls Render() on the render window associated with this view...
perform mathematical operations on data in field data arrays
virtual void SetRenderWindow(vtkRenderWindow *win)
Set the render window for this view.
a actor that draws 2D data
Definition: vtkActor2D.h:39
vtkSmartPointer< vtkBalloonRepresentation > Balloon
draw text labels at 2D dataset points
data object that represents a "selection" in VTK.
Definition: vtkSelection.h:57
virtual void SetLabelPlacementModeToAll()
Label placement mode.
virtual void SetInteractionModeTo2D()
Set the interaction mode for the view.
A base view containing a renderer.
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
virtual void SetInteractor(vtkRenderWindowInteractor *)
The render window interactor.
Proxy object to connect input/output ports.
an abstract superclass for classes observing events invoked by vtkRenderWindowInteractor ...
void SetSelectionModeToSurface()
Sets the selection mode for the render view.
platform-independent render window interaction including picking and frame rate control.
Sets theme colors for a graphical view.
Definition: vtkViewTheme.h:42
virtual void ProcessEvents(vtkObject *caller, unsigned long eventId, void *callData)
Called to process events.
vtkAbstractTransform * Transform
vtkSmartPointer< vtkLabelPlacementMapper > LabelPlacementMapper
a simple class to control print indentation
Definition: vtkIndent.h:33
superclass for all geometric transformations
virtual void SetLabelPlacementModeToNoOverlap()
Label placement mode.
handles properties associated with a texture map
Definition: vtkTexture.h:65
vtkSmartPointer< vtkHoverWidget > HoverWidget
virtual void SetLabelRenderModeToFreetype()
Label render mode.
virtual void SetLabelRenderModeToQt()
Label render mode.
bool InHoverTextRender
bool PickRenderNeedsUpdate
virtual void PrepareForRendering()
Called by the view when the renderer is about to render.
represent text properties.
transform points into different coordinate systems
represent the vtkBalloonWidget
vtkSmartPointer< vtkHardwareSelector > Selector
create a window for renderers to draw into
vtkSmartPointer< vtkRenderer > LabelRenderer
invoke a vtkTimerEvent when hovering
A view containing a renderer.
Definition: vtkRenderView.h:58
vtkSmartPointer< vtkTexturedActor2D > LabelActor
virtual void SetInteractionModeTo3D()
static vtkRenderViewBase * New()
bool RenderOnMouseMove
Places and renders non-overlapping labels.
draw vtkPolyData onto the image plane
vtkTexture * IconTexture