VTK  9.0.1
vtkView.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Visualization Toolkit
4  Module: vtkView.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 -------------------------------------------------------------------------*/
50 #ifndef vtkView_h
51 #define vtkView_h
52 
53 #include "vtkObject.h"
54 #include "vtkViewsCoreModule.h" // For export macro
55 
56 class vtkAlgorithmOutput;
57 class vtkCommand;
58 class vtkDataObject;
60 class vtkSelection;
61 class vtkViewTheme;
62 
63 class VTKVIEWSCORE_EXPORT vtkView : public vtkObject
64 {
65 public:
66  static vtkView* New();
67  vtkTypeMacro(vtkView, vtkObject);
68  void PrintSelf(ostream& os, vtkIndent indent) override;
69 
73  void AddRepresentation(vtkDataRepresentation* rep);
74 
78  void SetRepresentation(vtkDataRepresentation* rep);
79 
88  vtkDataRepresentation* AddRepresentationFromInputConnection(vtkAlgorithmOutput* conn);
89 
98  vtkDataRepresentation* SetRepresentationFromInputConnection(vtkAlgorithmOutput* conn);
99 
107  vtkDataRepresentation* AddRepresentationFromInput(vtkDataObject* input);
108 
116  vtkDataRepresentation* SetRepresentationFromInput(vtkDataObject* input);
117 
121  void RemoveRepresentation(vtkDataRepresentation* rep);
122 
126  void RemoveRepresentation(vtkAlgorithmOutput* rep);
127 
131  void RemoveAllRepresentations();
132 
136  int GetNumberOfRepresentations();
137 
141  vtkDataRepresentation* GetRepresentation(int index = 0);
142 
146  bool IsRepresentationPresent(vtkDataRepresentation* rep);
147 
151  virtual void Update();
152 
156  virtual void ApplyViewTheme(vtkViewTheme* vtkNotUsed(theme)) {}
157 
163  vtkCommand* GetObserver();
164 
166 
171  {
172  const char* Message;
173  double Progress;
175 
176  public:
177  ViewProgressEventCallData(const char* msg, double progress)
178  {
179  this->Message = msg;
180  this->Progress = progress;
181  }
182  ~ViewProgressEventCallData() { this->Message = nullptr; }
183 
187  const char* GetProgressMessage() const { return this->Message; }
188 
192  double GetProgress() const { return this->Progress; }
193  };
194 
204  void RegisterProgress(vtkObject* algorithm, const char* message = nullptr);
205 
209  void UnRegisterProgress(vtkObject* algorithm);
210 
211 protected:
212  vtkView();
213  ~vtkView() override;
214 
220  virtual void ProcessEvents(vtkObject* caller, unsigned long eventId, void* callData);
221 
228  virtual vtkDataRepresentation* CreateDefaultRepresentation(vtkAlgorithmOutput* conn);
229 
234  virtual void AddRepresentationInternal(vtkDataRepresentation* vtkNotUsed(rep)) {}
235  virtual void RemoveRepresentationInternal(vtkDataRepresentation* vtkNotUsed(rep)) {}
236 
238 
242  vtkSetMacro(ReuseSingleRepresentation, bool);
243  vtkGetMacro(ReuseSingleRepresentation, bool);
244  vtkBooleanMacro(ReuseSingleRepresentation, bool);
247 
248 private:
249  vtkView(const vtkView&) = delete;
250  void operator=(const vtkView&) = delete;
251 
252  class vtkImplementation;
253  vtkImplementation* Implementation;
254 
255  class Command;
256  friend class Command;
257  Command* Observer;
258 
259  class vtkInternal;
260  vtkInternal* Internal;
261 };
262 
263 #endif
vtkCommand
superclass for callback/observer methods
Definition: vtkCommand.h:377
vtkView::ReuseSingleRepresentation
bool ReuseSingleRepresentation
Definition: vtkView.h:244
vtkView::ViewProgressEventCallData::GetProgressMessage
const char * GetProgressMessage() const
Get the message.
Definition: vtkView.h:187
vtkView::ViewProgressEventCallData::GetProgress
double GetProgress() const
Get the progress value in range [0.0, 1.0].
Definition: vtkView.h:192
vtkObject::New
static vtkObject * New()
Create an object with Debug turned off, modified time initialized to zero, and reference counting on.
vtkObject
abstract base class for most VTK objects
Definition: vtkObject.h:62
vtkView::AddRepresentationInternal
virtual void AddRepresentationInternal(vtkDataRepresentation *vtkNotUsed(rep))
Subclass "hooks" for notifying subclasses of vtkView when representations are added or removed.
Definition: vtkView.h:234
vtkSelection
data object that represents a "selection" in VTK.
Definition: vtkSelection.h:57
vtkView
The superclass for all views.
Definition: vtkView.h:63
vtkViewTheme
Sets theme colors for a graphical view.
Definition: vtkViewTheme.h:42
vtkView::ViewProgressEventCallData::ViewProgressEventCallData
ViewProgressEventCallData(const char *msg, double progress)
Definition: vtkView.h:177
vtkView::ViewProgressEventCallData::~ViewProgressEventCallData
~ViewProgressEventCallData()
Definition: vtkView.h:182
vtkDataRepresentation
The superclass for all representations.
Definition: vtkDataRepresentation.h:72
vtkView::ViewProgressEventCallData
A ptr to an instance of ViewProgressEventCallData is provided in the call data when vtkCommand::ViewP...
Definition: vtkView.h:170
vtkIndent
a simple class to control print indentation
Definition: vtkIndent.h:33
vtkView::ApplyViewTheme
virtual void ApplyViewTheme(vtkViewTheme *vtkNotUsed(theme))
Apply a theme to the view.
Definition: vtkView.h:156
vtkObject::PrintSelf
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
vtkObject.h
vtkAlgorithmOutput
Proxy object to connect input/output ports.
Definition: vtkAlgorithmOutput.h:36
vtkView::RemoveRepresentationInternal
virtual void RemoveRepresentationInternal(vtkDataRepresentation *vtkNotUsed(rep))
Definition: vtkView.h:235
vtkX3D::progress
@ progress
Definition: vtkX3D.h:458
vtkDataObject
general representation of visualization data
Definition: vtkDataObject.h:59
vtkX3D::index
@ index
Definition: vtkX3D.h:252