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 
28 #ifndef vtkContextScene_h
29 #define vtkContextScene_h
30 
31 #include "vtkRenderingContext2DModule.h" // For export macro
32 #include "vtkObject.h"
33 #include "vtkWeakPointer.h" // Needed for weak pointer to the window.
34 #include "vtkVector.h" // For vtkVector return type.
35 
36 class vtkContext2D;
38 class vtkTransform2D;
40 class vtkContextKeyEvent;
43 
44 class vtkAnnotationLink;
45 
46 class vtkRenderer;
48 
50 {
51 public:
53  virtual void PrintSelf(ostream &os, vtkIndent indent);
54 
56  static vtkContextScene * New();
57 
60  virtual bool Paint(vtkContext2D *painter);
61 
64  unsigned int AddItem(vtkAbstractContextItem* item);
65 
70 
74  bool RemoveItem(unsigned int index);
75 
79 
81  unsigned int GetNumberOfItems();
82 
84  void ClearItems();
85 
87  virtual void SetAnnotationLink(vtkAnnotationLink *link);
88 
90 
93 
95 
96  vtkSetVector2Macro(Geometry, int);
98 
100 
101  vtkGetVector2Macro(Geometry, int);
103 
105 
106  vtkSetMacro(UseBufferId, bool);
108 
110 
111  vtkGetMacro(UseBufferId, bool);
113 
115  virtual int GetViewWidth();
116 
118  virtual int GetViewHeight();
119 
122 
125 
127 
130  vtkSetMacro(ScaleTiles, bool);
131  vtkGetMacro(ScaleTiles, bool);
132  vtkBooleanMacro(ScaleTiles, bool);
134 
140 
143  virtual void SetRenderer(vtkRenderer *renderer);
144 
146 
149  void SetDirty(bool isDirty);
150  bool GetDirty()const;
152 
153 //BTX
156 
161 
166 
169 
172 
174  bool HasTransform() { return this->Transform != 0; }
175 
177 
178  enum {
179  SELECTION_NONE = 0,
183  SELECTION_TOGGLE
184  };
186 
187 protected:
190 
192  virtual bool ProcessSelectionEvent(unsigned int rect[5]);
193 
196 
199 
202 
205 
208  virtual bool MouseWheelEvent(int delta, const vtkContextMouseEvent &event);
209 
211  virtual bool KeyPressEvent(const vtkContextKeyEvent& keyEvent);
212 
214  virtual bool KeyReleaseEvent(const vtkContextKeyEvent& keyEvent);
215 
218  virtual void PaintIds();
219 
222 
227 
231 
234 
236 
237  // Store the chart dimensions - width, height of scene in pixels
238  int Geometry[2];
239 
243 
245 
246  class Private;
247  Private *Storage;
249 
254 
256 
258 
261 
263 
266 
268 
271 
272 private:
273  vtkContextScene(const vtkContextScene &); // Not implemented.
274  void operator=(const vtkContextScene &); // Not implemented.
275 
276  typedef bool (vtkAbstractContextItem::* MouseEvents)(const vtkContextMouseEvent&);
277  bool ProcessItem(vtkAbstractContextItem* cur,
279  MouseEvents eventPtr);
280  void EventCopy(const vtkContextMouseEvent &event);
281 //ETX
282 };
283 
284 #endif //vtkContextScene_h
vtkContextScene::GetLogicalTileScale
vtkVector2i GetLogicalTileScale()
vtkContextScene::SetRenderer
virtual void SetRenderer(vtkRenderer *renderer)
vtkContextScene::ReleaseGraphicsResources
void ReleaseGraphicsResources()
vtkContextMouseEvent
data structure to represent mouse events.
Definition: vtkContextMouseEvent.h:40
vtkGetObjectMacro
#define vtkGetObjectMacro(name, type)
Definition: vtkSetGet.h:232
vtkContextScene::Paint
virtual bool Paint(vtkContext2D *painter)
vtkContextScene::GetPickedItem
vtkAbstractContextItem * GetPickedItem()
vtkContextScene::SELECTION_ADDITION
@ SELECTION_ADDITION
Definition: vtkContextScene.h:181
vtkContextKeyEvent
data structure to represent key events.
Definition: vtkContextKeyEvent.h:34
vtkSetVector2Macro
#define vtkSetVector2Macro(name, type)
Definition: vtkSetGet.h:254
vtkContextScene::RemoveItem
bool RemoveItem(vtkAbstractContextItem *item)
vtkGetVector2Macro
#define vtkGetVector2Macro(name, type)
Definition: vtkSetGet.h:270
vtkContextScene::SELECTION_SUBTRACTION
@ SELECTION_SUBTRACTION
Definition: vtkContextScene.h:182
vtkIdType
int vtkIdType
Definition: vtkType.h:275
VTKRENDERINGCONTEXT2D_EXPORT
#define VTKRENDERINGCONTEXT2D_EXPORT
Definition: vtkRenderingContext2DModule.h:15
vtkAbstractContextItem
base class for items that are part of a vtkContextScene.
Definition: vtkAbstractContextItem.h:40
vtkTransform2D
describes linear transformations via a 3x3 matrix
Definition: vtkTransform2D.h:47
vtkContextScene::BufferId
vtkAbstractContextBufferId * BufferId
Definition: vtkContextScene.h:259
vtkContextScene::Children
vtkContextScenePrivate * Children
Definition: vtkContextScene.h:253
vtkContextScene::GetSceneHeight
int GetSceneHeight()
vtkContextScene::TestBufferIdSupport
void TestBufferIdSupport()
vtkTypeMacro
#define vtkTypeMacro(thisClass, superclass)
Definition: vtkSetGet.h:642
vtkContextScene::ButtonPressEvent
virtual bool ButtonPressEvent(const vtkContextMouseEvent &event)
vtkObject
abstract base class for most VTK objects
Definition: vtkObject.h:62
vtkContextScene::BufferIdDirty
bool BufferIdDirty
Definition: vtkContextScene.h:260
vtkVector.h
vtkContextScene::SetAnnotationLink
virtual void SetAnnotationLink(vtkAnnotationLink *link)
vtkContextScene::SetTransform
virtual void SetTransform(vtkTransform2D *transform)
vtkContextScene::GetPickedItem
vtkIdType GetPickedItem(int x, int y)
vtkgl::x
GLint GLint GLint GLint GLint x
Definition: vtkgl.h:11318
vtkContext2D
Class for drawing 2D primitives to a graphical context.
Definition: vtkContext2D.h:57
vtkContextScene::DoubleClickEvent
virtual bool DoubleClickEvent(const vtkContextMouseEvent &event)
vtkgl::event
struct _cl_event * event
Definition: vtkgl.h:14387
vtkX3D::Transform
@ Transform
Definition: vtkX3D.h:41
vtkContextScene::UseBufferId
bool UseBufferId
Definition: vtkContextScene.h:262
vtkContextScene::New
static vtkContextScene * New()
vtkAbstractContextBufferId
2D array of ids, used for picking.
Definition: vtkAbstractContextBufferId.h:46
vtkContextScene::BufferIdSupported
bool BufferIdSupported
Definition: vtkContextScene.h:265
vtkContextScene::GetLastPainter
vtkWeakPointer< vtkContext2D > GetLastPainter()
vtkContextScene
Provides a 2D scene for vtkContextItem objects.
Definition: vtkContextScene.h:50
vtkContextScene::Transform
vtkTransform2D * Transform
Definition: vtkContextScene.h:270
vtkContextScene::GetNumberOfItems
unsigned int GetNumberOfItems()
vtkContextScene::ClearItems
void ClearItems()
vtkContextScene::KeyPressEvent
virtual bool KeyPressEvent(const vtkContextKeyEvent &keyEvent)
vtkContextScene::GetViewWidth
virtual int GetViewWidth()
vtkContextScene::ScaleTiles
bool ScaleTiles
Definition: vtkContextScene.h:267
vtkIndent
a simple class to control print indentation
Definition: vtkIndent.h:39
vtkContextScene::SetDirty
void SetDirty(bool isDirty)
vtkContextScene::SELECTION_DEFAULT
@ SELECTION_DEFAULT
Definition: vtkContextScene.h:180
vtkWeakPointer.h
vtkContextScene::Storage
Private * Storage
Definition: vtkContextScene.h:246
vtkGetMacro
#define vtkGetMacro(name, type)
Definition: vtkSetGet.h:93
vtkContextScene::MouseWheelEvent
virtual bool MouseWheelEvent(int delta, const vtkContextMouseEvent &event)
vtkContextScene::PaintIds
virtual void PaintIds()
vtkContextScenePrivate
Private implementation for scene/items.
Definition: vtkContextScenePrivate.h:40
vtkContextScene::vtkContextScene
vtkContextScene()
vtkContextScene::GetBufferId
vtkAbstractContextBufferId * GetBufferId()
vtkObject.h
vtkBooleanMacro
vtkBooleanMacro(IgnoreDriverBugs, bool)
vtkSetMacro
vtkSetMacro(IgnoreDriverBugs, bool)
vtkContextScene::RemoveItem
bool RemoveItem(unsigned int index)
vtkgl::index
GLuint index
Definition: vtkgl.h:11983
vtkContextScene::AddItem
unsigned int AddItem(vtkAbstractContextItem *item)
vtkgl::y
GLint GLint GLint GLint GLint GLint y
Definition: vtkgl.h:11318
vtkContextInteractorStyle
An interactor for chart views It observes the user events (mouse events) and propagates them to the s...
Definition: vtkContextInteractorStyle.h:39
vtkRenderer
abstract specification for renderers
Definition: vtkRenderer.h:64
vtkContextScene::GetItem
vtkAbstractContextItem * GetItem(unsigned int index)
vtkContextScene::Renderer
vtkWeakPointer< vtkRenderer > Renderer
Definition: vtkContextScene.h:257
vtkContextScene::AnnotationLink
vtkAnnotationLink * AnnotationLink
Definition: vtkContextScene.h:235
vtkContextScene::UpdateBufferId
void UpdateBufferId()
vtkVector2i
Definition: vtkVector.h:266
vtkgl::transform
GLuint GLenum GLenum transform
Definition: vtkgl.h:16451
vtkContextScene::BufferIdSupportTested
bool BufferIdSupportTested
Definition: vtkContextScene.h:264
vtkContextScene::GetTransform
vtkTransform2D * GetTransform()
vtkContextScene::~vtkContextScene
~vtkContextScene()
vtkContextScene::PrintSelf
virtual void PrintSelf(ostream &os, vtkIndent indent)
vtkContextScene::HasTransform
bool HasTransform()
Definition: vtkContextScene.h:174
vtkContextScene::ProcessSelectionEvent
virtual bool ProcessSelectionEvent(unsigned int rect[5])
vtkContextScene::GetViewHeight
virtual int GetViewHeight()
vtkContextScene::MouseMoveEvent
virtual bool MouseMoveEvent(const vtkContextMouseEvent &event)
vtkContextScene::LastPainter
vtkWeakPointer< vtkContext2D > LastPainter
Definition: vtkContextScene.h:255
vtkRenderingContext2DModule.h
vtkContextScene::ButtonReleaseEvent
virtual bool ButtonReleaseEvent(const vtkContextMouseEvent &event)
vtkWeakPointer< vtkContext2D >
vtkContextScene::GetDirty
bool GetDirty() const
vtkContextScene::KeyReleaseEvent
virtual bool KeyReleaseEvent(const vtkContextKeyEvent &keyEvent)
vtkContextScene::GetSceneWidth
int GetSceneWidth()