VTK
vtkDataRepresentation.h
Go to the documentation of this file.
1/*=========================================================================
2
3 Program: Visualization Toolkit
4 Module: vtkDataRepresentation.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-------------------------------------------------------------------------*/
53#ifndef vtkDataRepresentation_h
54#define vtkDataRepresentation_h
55
56#include "vtkViewsCoreModule.h" // For export macro
58
62class vtkDataObject;
63class vtkSelection;
64class vtkStringArray;
66class vtkView;
67class vtkViewTheme;
68
69class VTKVIEWSCORE_EXPORT vtkDataRepresentation : public vtkPassInputTypeAlgorithm
70{
71public:
74 void PrintSelf(ostream& os, vtkIndent indent);
75
81 { return this->Superclass::GetInputConnection(port, index); }
82
89 { return this->AnnotationLinkInternal; }
91
96 virtual void ApplyViewTheme(vtkViewTheme* vtkNotUsed(theme)) { }
97
108 void Select(vtkView* view, vtkSelection* selection)
109 { this->Select(view, selection, false); }
110 void Select(vtkView* view, vtkSelection* selection, bool extend);
111
123 void Annotate(vtkView* view, vtkAnnotationLayers* annotations)
124 { this->Annotate(view, annotations, false); }
125 void Annotate(vtkView* view, vtkAnnotationLayers* annotations, bool extend);
126
128
132 vtkSetMacro(Selectable, bool);
133 vtkGetMacro(Selectable, bool);
134 vtkBooleanMacro(Selectable, bool);
136
145 { this->UpdateSelection(selection, false); }
146 void UpdateSelection(vtkSelection* selection, bool extend);
147
156 { this->UpdateAnnotations(annotations, false); }
157 void UpdateAnnotations(vtkAnnotationLayers* annotations, bool extend);
158
165 { return this->GetInternalAnnotationOutputPort(0); }
167 { return this->GetInternalAnnotationOutputPort(port, 0); }
169
176 { return this->GetInternalSelectionOutputPort(0); }
178 { return this->GetInternalSelectionOutputPort(port, 0); }
180
187 { return this->GetInternalOutputPort(0); }
189 { return this->GetInternalOutputPort(port, 0); }
191
193
201 vtkSetMacro(SelectionType, int);
202 vtkGetMacro(SelectionType, int);
204
206
210 vtkGetObjectMacro(SelectionArrayNames, vtkStringArray);
212
214
217 virtual void SetSelectionArrayName(const char* name);
218 virtual const char* GetSelectionArrayName();
220
230
231protected:
234
245 virtual int RequestData(
249 { return 1; }
250
254 virtual void ProcessEvents(vtkObject *caller, unsigned long eventId, void *callData);
255
257
263
264 // Whether is represenation can handle a selection.
266
271
276
277 friend class vtkView;
278 friend class vtkRenderView;
279 class Command;
280 friend class Command;
281 Command* Observer;
282
283 // ------------------------------------------------------------------------
284 // Methods to override in subclasses
285 // ------------------------------------------------------------------------
286
292 virtual bool AddToView(vtkView* vtkNotUsed(view)) { return true; }
293
299 virtual bool RemoveFromView(vtkView* vtkNotUsed(view)) { return true; }
300
307
309 void SetInternalInput(int port, int conn, vtkTrivialProducer* producer);
310
311private:
312 vtkDataRepresentation(const vtkDataRepresentation&) VTK_DELETE_FUNCTION;
313 void operator=(const vtkDataRepresentation&) VTK_DELETE_FUNCTION;
314
315 class Internals;
316 Internals* Implementation;
317
318};
319
320#endif
Proxy object to connect input/output ports.
vtkAlgorithmOutput * GetInputConnection(int port, int index)
Get the algorithm output port connected to an input port.
Stores a ordered collection of annotation sets.
general representation of visualization data
Definition: vtkDataObject.h:65
The superclass for all representations.
virtual vtkAlgorithmOutput * GetInternalOutputPort()
Retrieves an output port for the input data object at the specified port and connection index.
virtual int RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *)
Subclasses should override this to connect inputs to the internal pipeline as necessary.
vtkAlgorithmOutput * GetInputConnection(int port=0, int index=0)
Convenience override method for obtaining the input connection without specifying the port or index.
vtkAnnotationLink * AnnotationLinkInternal
virtual vtkAlgorithmOutput * GetInternalAnnotationOutputPort(int port, int conn)
int SelectionType
The selection type created by the view.
virtual bool RemoveFromView(vtkView *vtkNotUsed(view))
Removes the representation to the view.
void Annotate(vtkView *view, vtkAnnotationLayers *annotations)
Analogous to Select().
void SetAnnotationLink(vtkAnnotationLink *link)
virtual vtkAlgorithmOutput * GetInternalSelectionOutputPort()
The output port that contains the selection associated with the current annotation (normally the inte...
virtual vtkAlgorithmOutput * GetInternalOutputPort(int port, int conn)
virtual void SetSelectionArrayNames(vtkStringArray *names)
If a VALUES selection, the arrays used to produce a selection.
static vtkDataRepresentation * New()
virtual void ApplyViewTheme(vtkViewTheme *vtkNotUsed(theme))
Apply a theme to this representation.
void UpdateAnnotations(vtkAnnotationLayers *annotations, bool extend)
virtual vtkAlgorithmOutput * GetInternalSelectionOutputPort(int port)
void UpdateAnnotations(vtkAnnotationLayers *annotations)
Updates the selection in the selection link and fires a selection change event.
vtkStringArray * SelectionArrayNames
If a VALUES selection, the array names used in the selection.
virtual void ProcessEvents(vtkObject *caller, unsigned long eventId, void *callData)
Clear the input shallow copy caches if the algorithm is in "release data" mode.
virtual vtkAlgorithmOutput * GetInternalAnnotationOutputPort(int port)
virtual vtkAnnotationLayers * ConvertAnnotations(vtkView *view, vtkAnnotationLayers *annotations)
Analogous to ConvertSelection(), allows subclasses to manipulate annotations before passing them off ...
virtual void SetAnnotationLinkInternal(vtkAnnotationLink *link)
The annotation link for this representation.
virtual vtkSelection * ConvertSelection(vtkView *view, vtkSelection *selection)
Convert the selection to a type appropriate for sharing with other representations through vtkAnnotat...
void Select(vtkView *view, vtkSelection *selection, bool extend)
void UpdateSelection(vtkSelection *selection)
Updates the selection in the selection link and fires a selection change event.
virtual bool AddToView(vtkView *vtkNotUsed(view))
Adds the representation to the view.
virtual vtkAlgorithmOutput * GetInternalAnnotationOutputPort()
The output port that contains the annotations whose selections are localized for a particular input d...
void Select(vtkView *view, vtkSelection *selection)
The view calls this method when a selection occurs.
virtual vtkAlgorithmOutput * GetInternalSelectionOutputPort(int port, int conn)
void UpdateSelection(vtkSelection *selection, bool extend)
virtual void SetSelectionArrayName(const char *name)
If a VALUES selection, the array used to produce a selection.
virtual vtkAlgorithmOutput * GetInternalOutputPort(int port)
vtkAnnotationLink * GetAnnotationLink()
The annotation link for this representation.
void Annotate(vtkView *view, vtkAnnotationLayers *annotations, bool extend)
vtkTrivialProducer * GetInternalInput(int port, int conn)
void SetInternalInput(int port, int conn, vtkTrivialProducer *producer)
void PrintSelf(ostream &os, vtkIndent indent)
Methods invoked by print to print information about the object including superclasses.
virtual const char * GetSelectionArrayName()
a simple class to control print indentation
Definition: vtkIndent.h:40
Store zero or more vtkInformation instances.
Store vtkAlgorithm input/output information.
abstract base class for most VTK objects
Definition: vtkObject.h:60
Superclass for algorithms that produce output of the same type as input.
A view containing a renderer.
Definition: vtkRenderView.h:62
A node in a selection tree.
Definition: vtkSelection.h:44
a vtkAbstractArray subclass for strings
Producer for stand-alone data objects.
Sets theme colors for a graphical view.
Definition: vtkViewTheme.h:49
The superclass for all views.
Definition: vtkView.h:61
@ port
Definition: vtkX3D.h:447
@ name
Definition: vtkX3D.h:219
@ index
Definition: vtkX3D.h:246
vtkSetMacro(IgnoreDriverBugs, bool)
Updates the extensions string.
vtkBooleanMacro(IgnoreDriverBugs, bool)
Updates the extensions string.