VTK
|
00001 /*========================================================================= 00002 00003 Program: Visualization Toolkit 00004 Module: vtkAbstractPropPicker.h 00005 00006 Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen 00007 All rights reserved. 00008 See Copyright.txt or http://www.kitware.com/Copyright.htm for details. 00009 00010 This software is distributed WITHOUT ANY WARRANTY; without even 00011 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 00012 PURPOSE. See the above copyright notice for more information. 00013 00014 =========================================================================*/ 00063 #ifndef __vtkAbstractPropPicker_h 00064 #define __vtkAbstractPropPicker_h 00065 00066 #include "vtkRenderingCoreModule.h" // For export macro 00067 #include "vtkAbstractPicker.h" 00068 00069 class vtkProp; 00070 class vtkPropAssembly; 00071 class vtkAssembly; 00072 class vtkActor; 00073 class vtkVolume; 00074 class vtkProp3D; 00075 class vtkAssemblyPath; 00076 class vtkActor2D; 00077 00078 class VTKRENDERINGCORE_EXPORT vtkAbstractPropPicker : public vtkAbstractPicker 00079 { 00080 public: 00081 vtkTypeMacro(vtkAbstractPropPicker,vtkAbstractPicker); 00082 void PrintSelf(ostream& os, vtkIndent indent); 00083 00085 00092 virtual void SetPath(vtkAssemblyPath*); 00093 vtkGetObjectMacro(Path,vtkAssemblyPath); 00095 00096 // The following are convenience methods to maintain API with older 00097 // versions of VTK, and to allow query for the return type of a pick. Note: 00098 // the functionality of these methods can also be obtained by using the 00099 // returned vtkAssemblyPath and using the IsA() to determine type. 00100 00103 virtual vtkProp* GetViewProp(); 00104 00107 virtual vtkProp3D *GetProp3D(); 00108 00111 virtual vtkActor *GetActor(); 00112 00115 virtual vtkActor2D *GetActor2D(); 00116 00119 virtual vtkVolume *GetVolume(); 00120 00126 virtual vtkAssembly *GetAssembly(); 00127 00133 virtual vtkPropAssembly *GetPropAssembly(); 00134 00135 protected: 00136 vtkAbstractPropPicker(); 00137 ~vtkAbstractPropPicker(); 00138 00139 void Initialize(); 00140 00141 vtkAssemblyPath *Path; //this is what is picked, and includes the prop 00142 private: 00143 vtkAbstractPropPicker(const vtkAbstractPropPicker&); // Not implemented. 00144 void operator=(const vtkAbstractPropPicker&); // Not implemented. 00145 }; 00146 00147 #endif