VTK  9.0.1
vtkAbstractContextItem.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Visualization Toolkit
4  Module: vtkContextItem.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 
27 #ifndef vtkAbstractContextItem_h
28 #define vtkAbstractContextItem_h
29 
30 #include "vtkObject.h"
31 #include "vtkRenderingContext2DModule.h" // For export macro
32 
33 class vtkContext2D;
35 class vtkContextKeyEvent;
36 class vtkContextScene;
38 class vtkVector2f;
39 
40 class VTKRENDERINGCONTEXT2D_EXPORT vtkAbstractContextItem : public vtkObject
41 {
42 public:
44  void PrintSelf(ostream& os, vtkIndent indent) override;
45 
51  virtual void Update();
52 
56  virtual bool Paint(vtkContext2D* painter);
57 
62  virtual bool PaintChildren(vtkContext2D* painter);
63 
68  virtual void ReleaseGraphicsResources();
69 
74  vtkIdType AddItem(vtkAbstractContextItem* item);
75 
81  bool RemoveItem(vtkAbstractContextItem* item);
82 
88  bool RemoveItem(vtkIdType index);
89 
95 
100  vtkIdType GetItemIndex(vtkAbstractContextItem* item);
101 
105  vtkIdType GetNumberOfItems();
106 
110  void ClearItems();
111 
117  vtkIdType Raise(vtkIdType index);
118 
125  virtual vtkIdType StackAbove(vtkIdType index, vtkIdType under);
126 
132  vtkIdType Lower(vtkIdType index);
133 
140  virtual vtkIdType StackUnder(vtkIdType child, vtkIdType above);
141 
145  virtual bool Hit(const vtkContextMouseEvent& mouse);
146 
151  virtual vtkAbstractContextItem* GetPickedItem(const vtkContextMouseEvent& mouse);
152 
158  virtual bool MouseEnterEvent(const vtkContextMouseEvent& mouse);
159 
165  virtual bool MouseMoveEvent(const vtkContextMouseEvent& mouse);
166 
172  virtual bool MouseLeaveEvent(const vtkContextMouseEvent& mouse);
173 
179  virtual bool MouseButtonPressEvent(const vtkContextMouseEvent& mouse);
180 
186  virtual bool MouseButtonReleaseEvent(const vtkContextMouseEvent& mouse);
187 
193  virtual bool MouseDoubleClickEvent(const vtkContextMouseEvent& mouse);
194 
200  virtual bool MouseWheelEvent(const vtkContextMouseEvent& mouse, int delta);
201 
205  virtual bool KeyPressEvent(const vtkContextKeyEvent& key);
206 
210  virtual bool KeyReleaseEvent(const vtkContextKeyEvent& key);
211 
215  virtual void SetScene(vtkContextScene* scene);
216 
220  vtkContextScene* GetScene() { return this->Scene; }
221 
226  virtual void SetParent(vtkAbstractContextItem* parent);
227 
232  vtkAbstractContextItem* GetParent() { return this->Parent; }
233 
237  virtual vtkVector2f MapToParent(const vtkVector2f& point);
238 
242  virtual vtkVector2f MapFromParent(const vtkVector2f& point);
243 
247  virtual vtkVector2f MapToScene(const vtkVector2f& point);
248 
252  virtual vtkVector2f MapFromScene(const vtkVector2f& point);
253 
255 
258  vtkGetMacro(Visible, bool);
260 
262 
266  vtkSetMacro(Visible, bool);
268 
270 
273  vtkGetMacro(Interactive, bool);
275 
277 
280  vtkSetMacro(Interactive, bool);
282 
283 protected:
285  ~vtkAbstractContextItem() override;
286 
291 
296 
303 
307  bool Visible;
308 
313 
314 private:
316  void operator=(const vtkAbstractContextItem&) = delete;
317 };
318 
319 #endif // vtkContextItem_h
vtkContextMouseEvent
data structure to represent mouse events.
Definition: vtkContextMouseEvent.h:34
vtkContextKeyEvent
data structure to represent key events.
Definition: vtkContextKeyEvent.h:34
vtkAbstractContextItem::GetScene
vtkContextScene * GetScene()
Get the vtkContextScene for the item, always set for an item in a scene.
Definition: vtkAbstractContextItem.h:220
vtkAbstractContextItem::Scene
vtkContextScene * Scene
Point to the scene the item is on - can be null.
Definition: vtkAbstractContextItem.h:290
vtkIdType
int vtkIdType
Definition: vtkType.h:338
vtkAbstractContextItem
base class for items that are part of a vtkContextScene.
Definition: vtkAbstractContextItem.h:40
vtkX3D::key
@ key
Definition: vtkX3D.h:263
vtkObject
abstract base class for most VTK objects
Definition: vtkObject.h:62
vtkContext2D
Class for drawing 2D primitives to a graphical context.
Definition: vtkContext2D.h:52
vtkAbstractContextItem::Parent
vtkAbstractContextItem * Parent
Point to the parent item - can be null.
Definition: vtkAbstractContextItem.h:295
vtkX3D::point
@ point
Definition: vtkX3D.h:242
vtkContextScene
Provides a 2D scene for vtkContextItem objects.
Definition: vtkContextScene.h:47
vtkAbstractContextItem::Visible
bool Visible
Store the visibility of the item (default is true).
Definition: vtkAbstractContextItem.h:307
vtkIndent
a simple class to control print indentation
Definition: vtkIndent.h:33
vtkX3D::Scene
@ Scene
Definition: vtkX3D.h:160
vtkObject::PrintSelf
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
vtkContextScenePrivate
Private implementation for scene/items.
Definition: vtkContextScenePrivate.h:40
vtkObject.h
vtkAbstractContextItem::Children
vtkContextScenePrivate * Children
This structure provides a list of children, along with convenience functions to paint the children et...
Definition: vtkAbstractContextItem.h:302
vtkAbstractContextItem::GetParent
vtkAbstractContextItem * GetParent()
Get the parent item.
Definition: vtkAbstractContextItem.h:232
vtkX3D::index
@ index
Definition: vtkX3D.h:252
vtkAbstractContextItem::Interactive
bool Interactive
Store whether the item should respond to interactions (default is true).
Definition: vtkAbstractContextItem.h:312
vtkVector2f
Definition: vtkVector.h:432