VTK  9.7.1
vtkAbstractPropPicker.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
52 #ifndef vtkAbstractPropPicker_h
53 #define vtkAbstractPropPicker_h
54 
55 #include "vtkAbstractPicker.h"
56 #include "vtkRenderingCoreModule.h" // For export macro
57 #include "vtkWrappingHints.h" // For VTK_MARSHALAUTO
58 
59 VTK_ABI_NAMESPACE_BEGIN
60 class vtkProp;
61 class vtkPropAssembly;
62 class vtkAssembly;
63 class vtkActor;
64 class vtkVolume;
65 class vtkProp3D;
66 class vtkAssemblyPath;
67 class vtkActor2D;
68 
69 class VTKRENDERINGCORE_EXPORT VTK_MARSHALAUTO vtkAbstractPropPicker : public vtkAbstractPicker
70 {
71 public:
73  void PrintSelf(ostream& os, vtkIndent indent) override;
74 
76 
84  virtual void SetPath(vtkAssemblyPath*);
85  vtkGetObjectMacro(Path, vtkAssemblyPath);
87 
88  // The following are convenience methods to maintain API with older
89  // versions of VTK, and to allow query for the return type of a pick. Note:
90  // the functionality of these methods can also be obtained by using the
91  // returned vtkAssemblyPath and using the IsA() to determine type.
92 
97  virtual vtkProp* GetViewProp();
98 
102  virtual vtkProp3D* GetProp3D();
103 
107  virtual vtkActor* GetActor();
108 
113  virtual vtkActor2D* GetActor2D();
114 
118  virtual vtkVolume* GetVolume();
119 
126  virtual vtkAssembly* GetAssembly();
127 
135  virtual vtkPropAssembly* GetPropAssembly();
136 
137 protected:
139  ~vtkAbstractPropPicker() override;
140 
141  void Initialize() override;
142 
143  vtkAssemblyPath* Path; // this is what is picked, and includes the prop
144 private:
146  void operator=(const vtkAbstractPropPicker&) = delete;
147 };
148 
149 VTK_ABI_NAMESPACE_END
150 #endif
abstract superclass for all actors, volumes and annotations
Definition: vtkProp.h:49
represents a volume (data & properties) in a rendered scene
Definition: vtkVolume.h:40
represents an object (geometry & properties) in a rendered scene
Definition: vtkActor.h:41
a actor that draws 2D data
Definition: vtkActor2D.h:35
create hierarchies of props
virtual void Initialize()
represents an 3D object for placement in a rendered scene
Definition: vtkProp3D.h:39
a list of nodes that form an assembly path
a simple class to control print indentation
Definition: vtkIndent.h:28
create hierarchies of vtkProp3Ds (transformable props)
Definition: vtkAssembly.h:61
abstract API for pickers that can pick an instance of vtkProp
define API for picking subclasses
#define VTK_MARSHALAUTO
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.