vtkMultiSliceContextItem.h
Go to the documentation of this file.
1 // SPDX-FileCopyrightText: Copyright (c) Kitware Inc.
2 // SPDX-FileCopyrightText: Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
3 // SPDX-License-Identifier: BSD-3-Clause
8 #ifndef vtkMultiSliceContextItem_h
9 #define vtkMultiSliceContextItem_h
10 
11 #include "vtkCommand.h" // needed for vtkCommand::UserEvent.
12 #include "vtkContextItem.h"
13 #include "vtkRemotingViewsModule.h" // needed for export macro
14 
15 class vtkAxis;
16 
18 {
19 public:
20  static vtkMultiSliceContextItem* New();
22  void PrintSelf(ostream& os, vtkIndent indent) override;
23 
29  bool Paint(vtkContext2D* painter) override;
30 
36  vtkAxis* GetAxis();
37 
42  void SetActiveSize(int size);
43 
47  void SetEdgeMargin(int margin);
48 
53  int GetActiveSliceIndex();
54 
58  bool Hit(const vtkContextMouseEvent& mouse) override;
59 
65  bool MouseButtonPressEvent(const vtkContextMouseEvent& mouse) override;
66 
72  bool MouseButtonReleaseEvent(const vtkContextMouseEvent& mouse) override;
73 
79  bool MouseDoubleClickEvent(const vtkContextMouseEvent& mouse) override;
80 
86  bool MouseMoveEvent(const vtkContextMouseEvent& mouse) override;
87 
92  const double* GetVisibleSlices(int& nbSlices) const;
93 
97  const double* GetSlices(int& nbSlices) const;
98 
103  void SetSlices(double* values, bool* visibility, int numberOfSlices);
104 
108  double GetSliceValue(int sliceIndex);
109 
113  int GetNumberOfSlices();
114 
115  // Events files when slices are modified by interaction.
116  enum
117  {
118  AddSliceEvent = vtkCommand::UserEvent + 1,
119  RemoveSliceEvent = vtkCommand::UserEvent + 2,
120  ModifySliceEvent = vtkCommand::UserEvent + 3
121  };
122 
123 protected:
124  double ScreenToRange(float position);
125  double ComputeEpsilon(int numberOfPixel = 5);
126  void forceRender();
127 
129  ~vtkMultiSliceContextItem() override;
130 
131 private:
133  void operator=(const vtkMultiSliceContextItem&) = delete;
134 
135  struct vtkInternal;
136  vtkInternal* Internal;
137 };
138 
139 #endif
#define VTKREMOTINGVIEWS_EXPORT
virtual bool MouseButtonPressEvent(const vtkContextMouseEvent &mouse)
virtual bool Paint(vtkContext2D *painter)
virtual bool MouseButtonReleaseEvent(const vtkContextMouseEvent &mouse)
virtual bool MouseMoveEvent(const vtkContextMouseEvent &mouse)
virtual bool Hit(const vtkContextMouseEvent &mouse)
virtual void PrintSelf(ostream &os, vtkIndent indent)
static vtkObject * New()
virtual bool MouseDoubleClickEvent(const vtkContextMouseEvent &mouse)
void operator=(const vtkObjectBase &)