VTK
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 -------------------------------------------------------------------------*/
41 #ifndef vtkView_h
42 #define vtkView_h
43 
44 #include "vtkObject.h"
45 #include "vtkViewsCoreModule.h" // For export macro
46 
47 class vtkAlgorithmOutput;
48 class vtkCommand;
49 class vtkDataObject;
51 class vtkSelection;
52 class vtkViewTheme;
53 
54 class VTKVIEWSCORE_EXPORT vtkView : public vtkObject
55 {
56 public:
57  static vtkView* New();
58  vtkTypeMacro(vtkView, vtkObject);
59  void PrintSelf(ostream& os, vtkIndent indent) override;
60 
64  void AddRepresentation(vtkDataRepresentation* rep);
65 
69  void SetRepresentation(vtkDataRepresentation* rep);
70 
79  vtkDataRepresentation* AddRepresentationFromInputConnection(vtkAlgorithmOutput* conn);
80 
89  vtkDataRepresentation* SetRepresentationFromInputConnection(vtkAlgorithmOutput* conn);
90 
98  vtkDataRepresentation* AddRepresentationFromInput(vtkDataObject* input);
99 
107  vtkDataRepresentation* SetRepresentationFromInput(vtkDataObject* input);
108 
112  void RemoveRepresentation(vtkDataRepresentation* rep);
113 
117  void RemoveRepresentation(vtkAlgorithmOutput* rep);
118 
122  void RemoveAllRepresentations();
123 
127  int GetNumberOfRepresentations();
128 
132  vtkDataRepresentation* GetRepresentation(int index = 0);
133 
137  bool IsRepresentationPresent(vtkDataRepresentation* rep);
138 
142  virtual void Update();
143 
147  virtual void ApplyViewTheme(vtkViewTheme* vtkNotUsed(theme)) {}
148 
154  vtkCommand* GetObserver();
155 
157 
162  {
163  const char* Message;
164  double Progress;
166 
167  public:
168  ViewProgressEventCallData(const char* msg, double progress)
169  {
170  this->Message = msg;
171  this->Progress = progress;
172  }
173  ~ViewProgressEventCallData() { this->Message = nullptr; }
174 
178  const char* GetProgressMessage() const { return this->Message; }
179 
183  double GetProgress() const { return this->Progress; }
184  };
185 
195  void RegisterProgress(vtkObject* algorithm, const char* message = nullptr);
196 
200  void UnRegisterProgress(vtkObject* algorithm);
201 
202 protected:
203  vtkView();
204  ~vtkView() override;
205 
211  virtual void ProcessEvents(vtkObject* caller, unsigned long eventId, void* callData);
212 
219  virtual vtkDataRepresentation* CreateDefaultRepresentation(vtkAlgorithmOutput* conn);
220 
225  virtual void AddRepresentationInternal(vtkDataRepresentation* vtkNotUsed(rep)) {}
226  virtual void RemoveRepresentationInternal(vtkDataRepresentation* vtkNotUsed(rep)) {}
227 
229 
233  vtkSetMacro(ReuseSingleRepresentation, bool);
234  vtkGetMacro(ReuseSingleRepresentation, bool);
235  vtkBooleanMacro(ReuseSingleRepresentation, bool);
238 
239 private:
240  vtkView(const vtkView&) = delete;
241  void operator=(const vtkView&) = delete;
242 
243  class vtkImplementation;
244  vtkImplementation* Implementation;
245 
246  class Command;
247  friend class Command;
248  Command* Observer;
249 
250  class vtkInternal;
251  vtkInternal* Internal;
252 };
253 
254 #endif
vtkCommand
superclass for callback/observer methods
Definition: vtkCommand.h:375
vtkView::ReuseSingleRepresentation
bool ReuseSingleRepresentation
Definition: vtkView.h:235
vtkView::ViewProgressEventCallData::GetProgressMessage
const char * GetProgressMessage() const
Get the message.
Definition: vtkView.h:178
vtkView::ViewProgressEventCallData::GetProgress
double GetProgress() const
Get the progress value in range [0.0, 1.0].
Definition: vtkView.h:183
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:53
vtkView::AddRepresentationInternal
virtual void AddRepresentationInternal(vtkDataRepresentation *vtkNotUsed(rep))
Subclass "hooks" for notifying subclasses of vtkView when representations are added or removed.
Definition: vtkView.h:225
vtkSelection
data object that represents a "selection" in VTK.
Definition: vtkSelection.h:57
vtkView
The superclass for all views.
Definition: vtkView.h:54
vtkViewTheme
Sets theme colors for a graphical view.
Definition: vtkViewTheme.h:42
vtkView::ViewProgressEventCallData::ViewProgressEventCallData
ViewProgressEventCallData(const char *msg, double progress)
Definition: vtkView.h:168
vtkView::ViewProgressEventCallData::~ViewProgressEventCallData
~ViewProgressEventCallData()
Definition: vtkView.h:173
vtkDataRepresentation
The superclass for all representations.
Definition: vtkDataRepresentation.h:66
vtkView::ViewProgressEventCallData
A ptr to an instance of ViewProgressEventCallData is provided in the call data when vtkCommand::ViewP...
Definition: vtkView.h:161
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:147
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:226
vtkX3D::progress
Definition: vtkX3D.h:458
vtkDataObject
general representation of visualization data
Definition: vtkDataObject.h:58
vtkX3D::index
Definition: vtkX3D.h:252