VTK  9.3.1
vtkView.h
Go to the documentation of this file.
1 // SPDX-FileCopyrightText: Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
2 // SPDX-FileCopyrightText: Copyright 2008 Sandia Corporation
3 // SPDX-License-Identifier: LicenseRef-BSD-3-Clause-Sandia-USGov
34 #ifndef vtkView_h
35 #define vtkView_h
36 
37 #include "vtkObject.h"
38 #include "vtkViewsCoreModule.h" // For export macro
39 
40 VTK_ABI_NAMESPACE_BEGIN
41 class vtkAlgorithmOutput;
42 class vtkCommand;
43 class vtkDataObject;
45 class vtkSelection;
46 class vtkViewTheme;
47 
48 class VTKVIEWSCORE_EXPORT vtkView : public vtkObject
49 {
50 public:
51  static vtkView* New();
52  vtkTypeMacro(vtkView, vtkObject);
53  void PrintSelf(ostream& os, vtkIndent indent) override;
54 
58  void AddRepresentation(vtkDataRepresentation* rep);
59 
63  void SetRepresentation(vtkDataRepresentation* rep);
64 
73  vtkDataRepresentation* AddRepresentationFromInputConnection(vtkAlgorithmOutput* conn);
74 
83  vtkDataRepresentation* SetRepresentationFromInputConnection(vtkAlgorithmOutput* conn);
84 
92  vtkDataRepresentation* AddRepresentationFromInput(vtkDataObject* input);
93 
101  vtkDataRepresentation* SetRepresentationFromInput(vtkDataObject* input);
102 
106  void RemoveRepresentation(vtkDataRepresentation* rep);
107 
111  void RemoveRepresentation(vtkAlgorithmOutput* rep);
112 
116  void RemoveAllRepresentations();
117 
121  int GetNumberOfRepresentations();
122 
126  vtkDataRepresentation* GetRepresentation(int index = 0);
127 
131  bool IsRepresentationPresent(vtkDataRepresentation* rep);
132 
136  virtual void Update();
137 
141  virtual void ApplyViewTheme(vtkViewTheme* vtkNotUsed(theme)) {}
142 
148  vtkCommand* GetObserver();
149 
151 
156  {
157  const char* Message;
158  double Progress;
160 
161  public:
162  ViewProgressEventCallData(const char* msg, double progress)
163  {
164  this->Message = msg;
165  this->Progress = progress;
166  }
167  ~ViewProgressEventCallData() { this->Message = nullptr; }
168 
172  const char* GetProgressMessage() const { return this->Message; }
173 
177  double GetProgress() const { return this->Progress; }
178  };
179 
189  void RegisterProgress(vtkObject* algorithm, const char* message = nullptr);
190 
194  void UnRegisterProgress(vtkObject* algorithm);
195 
196 protected:
197  vtkView();
198  ~vtkView() override;
199 
205  virtual void ProcessEvents(vtkObject* caller, unsigned long eventId, void* callData);
206 
213  virtual vtkDataRepresentation* CreateDefaultRepresentation(vtkAlgorithmOutput* conn);
214 
219  virtual void AddRepresentationInternal(vtkDataRepresentation* vtkNotUsed(rep)) {}
220  virtual void RemoveRepresentationInternal(vtkDataRepresentation* vtkNotUsed(rep)) {}
221 
223 
227  vtkSetMacro(ReuseSingleRepresentation, bool);
228  vtkGetMacro(ReuseSingleRepresentation, bool);
229  vtkBooleanMacro(ReuseSingleRepresentation, bool);
232 
233 private:
234  vtkView(const vtkView&) = delete;
235  void operator=(const vtkView&) = delete;
236 
237  class vtkImplementation;
238  vtkImplementation* Implementation;
239 
240  class Command;
241  friend class Command;
242  Command* Observer;
243 
244  class vtkInternal;
245  vtkInternal* Internal;
246 };
247 
248 VTK_ABI_NAMESPACE_END
249 #endif
virtual void ApplyViewTheme(vtkViewTheme *vtkNotUsed(theme))
Apply a theme to the view.
Definition: vtkView.h:141
abstract base class for most VTK objects
Definition: vtkObject.h:51
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
ViewProgressEventCallData(const char *msg, double progress)
Definition: vtkView.h:162
data object that represents a "selection" in VTK.
Definition: vtkSelection.h:49
virtual void AddRepresentationInternal(vtkDataRepresentation *vtkNotUsed(rep))
Subclass "hooks" for notifying subclasses of vtkView when representations are added or removed...
Definition: vtkView.h:219
Proxy object to connect input/output ports.
Sets theme colors for a graphical view.
Definition: vtkViewTheme.h:33
superclass for callback/observer methods
Definition: vtkCommand.h:383
The superclass for all views.
Definition: vtkView.h:48
a simple class to control print indentation
Definition: vtkIndent.h:28
A ptr to an instance of ViewProgressEventCallData is provided in the call data when vtkCommand::ViewP...
Definition: vtkView.h:155
const char * GetProgressMessage() const
Get the message.
Definition: vtkView.h:172
The superclass for all representations.
bool ReuseSingleRepresentation
Meant for use by subclasses and vtkRepresentation subclasses.
Definition: vtkView.h:229
static vtkObject * New()
Create an object with Debug turned off, modified time initialized to zero, and reference counting on...
general representation of visualization data
Definition: vtkDataObject.h:54
virtual void RemoveRepresentationInternal(vtkDataRepresentation *vtkNotUsed(rep))
Meant for use by subclasses and vtkRepresentation subclasses.
Definition: vtkView.h:220
double GetProgress() const
Get the progress value in range [0.0, 1.0].
Definition: vtkView.h:177