VTK  9.3.1
vtkPointPlacer.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
29 #ifndef vtkPointPlacer_h
30 #define vtkPointPlacer_h
31 
32 #include "vtkInteractionWidgetsModule.h" // For export macro
33 #include "vtkObject.h"
34 
35 VTK_ABI_NAMESPACE_BEGIN
36 class vtkRenderer;
37 
38 class VTKINTERACTIONWIDGETS_EXPORT vtkPointPlacer : public vtkObject
39 {
40 public:
44  static vtkPointPlacer* New();
45 
47 
50  vtkTypeMacro(vtkPointPlacer, vtkObject);
51  void PrintSelf(ostream& os, vtkIndent indent) override;
53 
61  virtual int ComputeWorldPosition(
62  vtkRenderer* ren, double displayPos[2], double worldPos[3], double worldOrient[9]);
63 
71  virtual int ComputeWorldPosition(vtkRenderer* ren, double displayPos[2], double refWorldPos[3],
72  double worldPos[3], double worldOrient[9]);
73 
78  virtual int ValidateWorldPosition(double worldPos[3]);
79 
83  virtual int ValidateDisplayPosition(vtkRenderer*, double displayPos[2]);
84 
89  virtual int ValidateWorldPosition(double worldPos[3], double worldOrient[9]);
90 
102  virtual int UpdateWorldPosition(vtkRenderer* ren, double worldPos[3], double worldOrient[9]);
103 
112  virtual int UpdateNodeWorldPosition(double worldPos[3], vtkIdType nodePointId);
113 
118  virtual int UpdateInternalState() { return 0; }
119 
121 
125  vtkSetClampMacro(PixelTolerance, int, 1, 100);
126  vtkGetMacro(PixelTolerance, int);
128 
130 
134  vtkSetClampMacro(WorldTolerance, double, 0.0, VTK_DOUBLE_MAX);
135  vtkGetMacro(WorldTolerance, double);
137 
138 protected:
139  vtkPointPlacer();
140  ~vtkPointPlacer() override;
141 
144 
145 private:
146  vtkPointPlacer(const vtkPointPlacer&) = delete;
147  void operator=(const vtkPointPlacer&) = delete;
148 };
149 
150 VTK_ABI_NAMESPACE_END
151 #endif
abstract base class for most VTK objects
Definition: vtkObject.h:51
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
#define VTK_DOUBLE_MAX
Definition: vtkType.h:154
abstract specification for renderers
Definition: vtkRenderer.h:61
int vtkIdType
Definition: vtkType.h:315
a simple class to control print indentation
Definition: vtkIndent.h:28
Abstract interface to translate 2D display positions to world coordinates.
virtual int UpdateInternalState()
Called by the representation to give the placer a chance to update itself.
static vtkObject * New()
Create an object with Debug turned off, modified time initialized to zero, and reference counting on...