00001 /*========================================================================= 00002 00003 Program: Visualization Toolkit 00004 Module: $RCSfile: vtkAbstractPropPicker.h,v $ 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 =========================================================================*/ 00075 #ifndef __vtkAbstractPropPicker_h 00076 #define __vtkAbstractPropPicker_h 00077 00078 #include "vtkAbstractPicker.h" 00079 00080 class vtkProp; 00081 class vtkPropAssembly; 00082 class vtkAssembly; 00083 class vtkActor; 00084 class vtkVolume; 00085 class vtkProp3D; 00086 class vtkAssemblyPath; 00087 class vtkActor2D; 00088 00089 class VTK_RENDERING_EXPORT vtkAbstractPropPicker : public vtkAbstractPicker 00090 { 00091 public: 00092 vtkTypeRevisionMacro(vtkAbstractPropPicker,vtkAbstractPicker); 00093 void PrintSelf(ostream& os, vtkIndent indent); 00094 00096 00103 virtual void SetPath(vtkAssemblyPath*); 00104 vtkGetObjectMacro(Path,vtkAssemblyPath); 00106 00107 // The following are convenience methods to maintain API with older 00108 // versions of VTK, and to allow query for the return type of a pick. Note: 00109 // the functionality of these methods can also be obtained by using the 00110 // returned vtkAssemblyPath and using the IsA() to determine type. 00111 00114 virtual vtkProp *GetProp(); 00115 00118 virtual vtkProp3D *GetProp3D(); 00119 00122 virtual vtkActor *GetActor(); 00123 00126 virtual vtkActor2D *GetActor2D(); 00127 00130 virtual vtkVolume *GetVolume(); 00131 00137 virtual vtkAssembly *GetAssembly(); 00138 00144 virtual vtkPropAssembly *GetPropAssembly(); 00145 00146 protected: 00147 vtkAbstractPropPicker(); 00148 ~vtkAbstractPropPicker(); 00149 00150 void Initialize(); 00151 00152 vtkAssemblyPath *Path; //this is what is picked, and includes the prop 00153 private: 00154 vtkAbstractPropPicker(const vtkAbstractPropPicker&); // Not implemented. 00155 void operator=(const vtkAbstractPropPicker&); // Not implemented. 00156 }; 00157 00158 #endif