VTK  9.3.20240329
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 
59 
64 
74 
84 
93 
102 
107 
112 
117 
122 
127 
132 
136  virtual void Update();
137 
141  virtual void ApplyViewTheme(vtkViewTheme* vtkNotUsed(theme)) {}
142 
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:
198  ~vtkView() override;
199 
205  virtual void ProcessEvents(vtkObject* caller, unsigned long eventId, void* callData);
206 
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
Proxy object to connect input/output ports.
superclass for callback/observer methods
Definition: vtkCommand.h:384
general representation of visualization data
The superclass for all representations.
a simple class to control print indentation
Definition: vtkIndent.h:108
abstract base class for most VTK objects
Definition: vtkObject.h:162
data object that represents a "selection" in VTK.
Definition: vtkSelection.h:159
Sets theme colors for a graphical view.
Definition: vtkViewTheme.h:123
A ptr to an instance of ViewProgressEventCallData is provided in the call data when vtkCommand::ViewP...
Definition: vtkView.h:156
double GetProgress() const
Get the progress value in range [0.0, 1.0].
Definition: vtkView.h:177
ViewProgressEventCallData(const char *msg, double progress)
Definition: vtkView.h:162
const char * GetProgressMessage() const
Get the message.
Definition: vtkView.h:172
The superclass for all views.
Definition: vtkView.h:49
virtual void ApplyViewTheme(vtkViewTheme *vtkNotUsed(theme))
Apply a theme to the view.
Definition: vtkView.h:141
vtkDataRepresentation * AddRepresentationFromInputConnection(vtkAlgorithmOutput *conn)
Convenience method which creates a simple representation with the connection and adds it to the view.
static vtkView * New()
void RemoveRepresentation(vtkAlgorithmOutput *rep)
Removes any representation with this connection from the view.
void UnRegisterProgress(vtkObject *algorithm)
Unregister objects previously registered with RegisterProgress.
vtkDataRepresentation * AddRepresentationFromInput(vtkDataObject *input)
Convenience method which creates a simple representation with the specified input and adds it to the ...
virtual void Update()
Update the view.
virtual vtkDataRepresentation * CreateDefaultRepresentation(vtkAlgorithmOutput *conn)
Create a default vtkDataRepresentation for the given vtkAlgorithmOutput.
vtkDataRepresentation * SetRepresentationFromInputConnection(vtkAlgorithmOutput *conn)
Convenience method which sets the representation with the connection and adds it to the view.
virtual void AddRepresentationInternal(vtkDataRepresentation *vtkNotUsed(rep))
Subclass "hooks" for notifying subclasses of vtkView when representations are added or removed.
Definition: vtkView.h:219
vtkDataRepresentation * GetRepresentation(int index=0)
The representation at a specified index.
virtual void ProcessEvents(vtkObject *caller, unsigned long eventId, void *callData)
Called to process events.
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
void RegisterProgress(vtkObject *algorithm, const char *message=nullptr)
Meant for use by subclasses and vtkRepresentation subclasses.
~vtkView() override
Meant for use by subclasses and vtkRepresentation subclasses.
int GetNumberOfRepresentations()
Returns the number of representations from first port(0) in this view.
void RemoveAllRepresentations()
Removes all representations from the view.
vtkDataRepresentation * SetRepresentationFromInput(vtkDataObject *input)
Convenience method which sets the representation to the specified input and adds it to the view.
vtkView()
Meant for use by subclasses and vtkRepresentation subclasses.
virtual void RemoveRepresentationInternal(vtkDataRepresentation *vtkNotUsed(rep))
Meant for use by subclasses and vtkRepresentation subclasses.
Definition: vtkView.h:220
void SetRepresentation(vtkDataRepresentation *rep)
Set the representation to the view.
void RemoveRepresentation(vtkDataRepresentation *rep)
Removes the representation from the view.
bool IsRepresentationPresent(vtkDataRepresentation *rep)
Check to see if a representation is present in the view.
vtkCommand * GetObserver()
Returns the observer that the subclasses can use to listen to additional events.
void AddRepresentation(vtkDataRepresentation *rep)
Adds the representation to the view.
bool ReuseSingleRepresentation
Meant for use by subclasses and vtkRepresentation subclasses.
Definition: vtkView.h:229
@ index
Definition: vtkX3D.h:246
@ progress
Definition: vtkX3D.h:452