VTK
vtkContextScene.h
Go to the documentation of this file.
1/*=========================================================================
2
3 Program: Visualization Toolkit
4 Module: vtkContextScene.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
29#ifndef vtkContextScene_h
30#define vtkContextScene_h
31
32#include "vtkRenderingContext2DModule.h" // For export macro
33#include "vtkObject.h"
34#include "vtkWeakPointer.h" // Needed for weak pointer to the window.
35#include "vtkVector.h" // For vtkVector return type.
36
37class vtkContext2D;
39class vtkTransform2D;
44
46
47class vtkRenderer;
49
50class VTKRENDERINGCONTEXT2D_EXPORT vtkContextScene : public vtkObject
51{
52public:
53 vtkTypeMacro(vtkContextScene, vtkObject);
54 virtual void PrintSelf(ostream &os, vtkIndent indent);
55
59 static vtkContextScene * New();
60
64 virtual bool Paint(vtkContext2D *painter);
65
70 unsigned int AddItem(vtkAbstractContextItem* item);
71
78
84 bool RemoveItem(unsigned int index);
85
91
95 unsigned int GetNumberOfItems();
96
101
106
108
111 vtkGetObjectMacro(AnnotationLink, vtkAnnotationLink);
113
115
118 vtkSetVector2Macro(Geometry, int);
120
122
125 vtkGetVector2Macro(Geometry, int);
127
129
132 vtkSetMacro(UseBufferId, bool);
134
136
139 vtkGetMacro(UseBufferId, bool);
141
145 virtual int GetViewWidth();
146
150 virtual int GetViewHeight();
151
156
161
163
168 vtkSetMacro(ScaleTiles, bool);
169 vtkGetMacro(ScaleTiles, bool);
170 vtkBooleanMacro(ScaleTiles, bool);
172
180
182
186 virtual void SetRenderer(vtkRenderer *renderer);
189
191
196 void SetDirty(bool isDirty);
197 bool GetDirty()const;
199
204
211
218
222 virtual void SetTransform(vtkTransform2D *transform);
223
228
232 bool HasTransform() { return this->Transform != 0; }
233
237 enum {
238 SELECTION_NONE = 0,
242 SELECTION_TOGGLE
243 };
244
245protected:
248
252 virtual bool ProcessSelectionEvent(unsigned int rect[5]);
253
257 virtual bool MouseMoveEvent(const vtkContextMouseEvent &event);
258
262 virtual bool ButtonPressEvent(const vtkContextMouseEvent &event);
263
267 virtual bool ButtonReleaseEvent(const vtkContextMouseEvent &event);
268
272 virtual bool DoubleClickEvent(const vtkContextMouseEvent &event);
273
277 virtual bool MouseWheelEvent(int delta, const vtkContextMouseEvent &event);
278
282 virtual bool KeyPressEvent(const vtkContextKeyEvent& keyEvent);
283
287 virtual bool KeyReleaseEvent(const vtkContextKeyEvent& keyEvent);
288
293 virtual void PaintIds();
294
299
306
312
317
319
320 // Store the chart dimensions - width, height of scene in pixels
321 int Geometry[2];
322
328
330
333 class Private;
334 Private *Storage;
336
343
345
347
350
352
355
357
362
363private:
364 vtkContextScene(const vtkContextScene &) VTK_DELETE_FUNCTION;
365 void operator=(const vtkContextScene &) VTK_DELETE_FUNCTION;
366
367 typedef bool (vtkAbstractContextItem::* MouseEvents)(const vtkContextMouseEvent&);
368 bool ProcessItem(vtkAbstractContextItem* cur,
369 const vtkContextMouseEvent& event,
370 MouseEvents eventPtr);
371 void EventCopy(const vtkContextMouseEvent &event);
372
373};
374
375#endif //vtkContextScene_h
2D array of ids, used for picking.
base class for items that are part of a vtkContextScene.
Class for drawing 2D primitives to a graphical context.
Definition: vtkContext2D.h:58
An interactor for chart views.
data structure to represent key events.
data structure to represent mouse events.
Private implementation for scene/items.
Provides a 2D scene for vtkContextItem objects.
unsigned int AddItem(vtkAbstractContextItem *item)
Add child items to this item.
bool RemoveItem(vtkAbstractContextItem *item)
Remove child item from this item.
virtual void SetTransform(vtkTransform2D *transform)
Set the transform for the scene.
virtual bool MouseWheelEvent(int delta, const vtkContextMouseEvent &event)
Process a mouse wheel event where delta is the movement forward or back.
virtual void SetAnnotationLink(vtkAnnotationLink *link)
Set the vtkAnnotationLink for the chart.
void ClearItems()
Remove all child items from this item.
vtkWeakPointer< vtkRenderer > Renderer
vtkAnnotationLink * AnnotationLink
virtual void PaintIds()
Paint the scene in a special mode to build a cache for picking.
void SetDirty(bool isDirty)
Inform the scene that something changed that requires a repaint of the scene.
unsigned int GetNumberOfItems()
Get the number of child items.
virtual void PrintSelf(ostream &os, vtkIndent indent)
Methods invoked by print to print information about the object including superclasses.
vtkAbstractContextBufferId * BufferId
void UpdateBufferId()
Make sure the buffer id used for picking is up-to-date.
virtual bool KeyPressEvent(const vtkContextKeyEvent &keyEvent)
Process a key press event.
virtual int GetViewHeight()
Get the height of the view.
bool RemoveItem(unsigned int index)
Remove child item from this item.
vtkWeakPointer< vtkContext2D > LastPainter
vtkWeakPointer< vtkContext2D > GetLastPainter()
Last painter used.
vtkVector2i GetLogicalTileScale()
The tile scale of the target vtkRenderWindow.
vtkTransform2D * GetTransform()
Get the transform for the scene.
bool GetDirty() const
vtkAbstractContextBufferId * GetBufferId()
Return buffer id.
int GetSceneHeight()
Get the height of the scene.
vtkAbstractContextItem * GetPickedItem()
Return the item under the mouse.
virtual bool Paint(vtkContext2D *painter)
Paint event for the chart, called whenever the chart needs to be drawn.
void ReleaseGraphicsResources()
Release graphics resources hold by the scene.
virtual bool DoubleClickEvent(const vtkContextMouseEvent &event)
Process a mouse button double click event.
virtual void SetRenderer(vtkRenderer *renderer)
This should not be necessary as the context view should take care of rendering.
vtkAbstractContextItem * GetItem(unsigned int index)
Get the item at the specified index.
virtual vtkRenderer * GetRenderer()
virtual int GetViewWidth()
Get the width of the view.
void TestBufferIdSupport()
Test if BufferId is supported by the OpenGL context.
vtkContextScenePrivate * Children
This structure provides a list of children, along with convenience functions to paint the children et...
bool HasTransform()
Check whether the scene has a transform.
virtual bool ProcessSelectionEvent(unsigned int rect[5])
Process a rubber band selection event.
int GetSceneWidth()
Get the width of the scene.
virtual bool MouseMoveEvent(const vtkContextMouseEvent &event)
Process a mouse move event.
vtkIdType GetPickedItem(int x, int y)
Return the item id under mouse cursor at position (x,y).
vtkTransform2D * Transform
The scene level transform.
virtual bool ButtonPressEvent(const vtkContextMouseEvent &event)
Process a mouse button press event.
virtual bool KeyReleaseEvent(const vtkContextKeyEvent &keyEvent)
Process a key release event.
static vtkContextScene * New()
Creates a 2D Painter object.
virtual bool ButtonReleaseEvent(const vtkContextMouseEvent &event)
Process a mouse button release event.
a simple class to control print indentation
Definition: vtkIndent.h:40
abstract base class for most VTK objects
Definition: vtkObject.h:60
abstract specification for renderers
Definition: vtkRenderer.h:64
describes linear transformations via a 3x3 matrix
Some derived classes for the different vectors commonly used.
Definition: vtkVector.h:328
Transform
Definition: ADIOSDefs.h:40
@ index
Definition: vtkX3D.h:246
vtkSetMacro(IgnoreDriverBugs, bool)
Updates the extensions string.
vtkBooleanMacro(IgnoreDriverBugs, bool)
Updates the extensions string.
int vtkIdType
Definition: vtkType.h:287