VTK  9.3.0
vtkSeedRepresentation.h
Go to the documentation of this file.
1 // SPDX-FileCopyrightText: Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
2 // SPDX-License-Identifier: BSD-3-Clause
28 #ifndef vtkSeedRepresentation_h
29 #define vtkSeedRepresentation_h
30 
31 #include "vtkInteractionWidgetsModule.h" // For export macro
33 
34 VTK_ABI_NAMESPACE_BEGIN
35 class vtkHandleList;
37 
38 class VTKINTERACTIONWIDGETS_EXPORT vtkSeedRepresentation : public vtkWidgetRepresentation
39 {
40 public:
45 
47 
51  void PrintSelf(ostream& os, vtkIndent indent) override;
53 
55 
61  virtual void GetSeedWorldPosition(unsigned int seedNum, double pos[3]);
62  virtual void SetSeedWorldPosition(unsigned int seedNum, double pos[3]);
63  virtual void SetSeedDisplayPosition(unsigned int seedNum, double pos[3]);
64  virtual void GetSeedDisplayPosition(unsigned int seedNum, double pos[3]);
66 
71 
81 
88 
90 
93  vtkHandleRepresentation* GetHandleRepresentation() { return this->HandleRepresentation; };
95 
97 
102  vtkSetClampMacro(Tolerance, int, 1, 100);
103  vtkGetMacro(Tolerance, int);
105 
106  // Used to communicate about the state of the representation
107  enum
108  {
109  Outside = 0,
110  NearSeed
111  };
112 
114 
118  virtual int GetActiveHandle();
119  virtual void SetActiveHandle(int handleId);
120  // Returns the id of the seed created, -1 on failure. e is the display position.
121  virtual int CreateHandle(double e[2]);
122  // Delete last handle created
123  virtual void RemoveLastHandle();
124  // Delete the currently active handle
125  virtual void RemoveActiveHandle();
127 
131  virtual void RemoveHandle(int n);
132 
134 
137  void BuildRepresentation() override;
138  int ComputeInteractionState(int X, int Y, int modify = 0) override;
139  void GetActors(vtkPropCollection*) override;
141 
142 protected:
145 
146  // The handle and the rep used to close the handles
148  vtkHandleList* Handles;
149 
150  // Selection tolerance for the handles
152 
153  // The active seed (handle) based on the last ComputeInteractionState()
155 
156 private:
158  void operator=(const vtkSeedRepresentation&) = delete;
159 };
160 
161 VTK_ABI_NAMESPACE_END
162 #endif
abstract class for representing widget handles
a simple class to control print indentation
Definition: vtkIndent.h:38
an ordered list of Props
represent the vtkSeedWidget
virtual int CreateHandle(double e[2])
These are methods specific to vtkSeedRepresentation and which are invoked from vtkSeedWidget.
int GetNumberOfSeeds()
Return the number of seeds (or handles) that have been created.
~vtkSeedRepresentation() override
virtual void SetActiveHandle(int handleId)
These are methods specific to vtkSeedRepresentation and which are invoked from vtkSeedWidget.
virtual void GetSeedWorldPosition(unsigned int seedNum, double pos[3])
Methods to Set/Get the coordinates of seed points defining this representation.
virtual int GetActiveHandle()
These are methods specific to vtkSeedRepresentation and which are invoked from vtkSeedWidget.
vtkHandleRepresentation * HandleRepresentation
virtual void SetSeedWorldPosition(unsigned int seedNum, double pos[3])
Methods to Set/Get the coordinates of seed points defining this representation.
void BuildRepresentation() override
These are methods that satisfy vtkWidgetRepresentation's API.
static vtkSeedRepresentation * New()
Instantiate class.
vtkHandleRepresentation * GetHandleRepresentation(unsigned int num)
Get the handle representations used for a particular seed.
virtual void RemoveLastHandle()
These are methods specific to vtkSeedRepresentation and which are invoked from vtkSeedWidget.
virtual void RemoveHandle(int n)
Remove the nth handle.
void SetHandleRepresentation(vtkHandleRepresentation *handle)
This method is used to specify the type of handle representation to use for the internal vtkHandleWid...
void GetActors(vtkPropCollection *) override
These are methods that satisfy vtkWidgetRepresentation's API.
virtual void RemoveActiveHandle()
These are methods specific to vtkSeedRepresentation and which are invoked from vtkSeedWidget.
int ComputeInteractionState(int X, int Y, int modify=0) override
These are methods that satisfy vtkWidgetRepresentation's API.
void PrintSelf(ostream &os, vtkIndent indent) override
Standard VTK methods.
virtual void SetSeedDisplayPosition(unsigned int seedNum, double pos[3])
Methods to Set/Get the coordinates of seed points defining this representation.
virtual void GetSeedDisplayPosition(unsigned int seedNum, double pos[3])
Methods to Set/Get the coordinates of seed points defining this representation.
vtkHandleRepresentation * GetHandleRepresentation()
Returns the model HandleRepresentation.
abstract class defines interface between the widget and widget representation classes