00001 /*========================================================================= 00002 00003 Program: Visualization Toolkit 00004 Module: $RCSfile: vtkAbstractPropPicker.h,v $ 00005 Language: C++ 00006 00007 Copyright (c) 1993-2002 Ken Martin, Will Schroeder, Bill Lorensen 00008 All rights reserved. 00009 See Copyright.txt or http://www.kitware.com/Copyright.htm for details. 00010 00011 This software is distributed WITHOUT ANY WARRANTY; without even 00012 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 00013 PURPOSE. See the above copyright notice for more information. 00014 00015 =========================================================================*/ 00079 #ifndef __vtkAbstractPropPicker_h 00080 #define __vtkAbstractPropPicker_h 00081 00082 #include "vtkAbstractPicker.h" 00083 00084 class vtkProp; 00085 class vtkPropAssembly; 00086 class vtkAssembly; 00087 class vtkActor; 00088 class vtkVolume; 00089 class vtkProp3D; 00090 class vtkAssemblyPath; 00091 class vtkActor2D; 00092 00093 class VTK_RENDERING_EXPORT vtkAbstractPropPicker : public vtkAbstractPicker 00094 { 00095 public: 00096 vtkTypeRevisionMacro(vtkAbstractPropPicker,vtkAbstractPicker); 00097 void PrintSelf(ostream& os, vtkIndent indent); 00098 00100 00107 virtual void SetPath(vtkAssemblyPath*); 00108 vtkGetObjectMacro(Path,vtkAssemblyPath); 00110 00111 // The following are convenience methods to maintain API with older 00112 // versions of VTK, and to allow query for the return type of a pick. Note: 00113 // the functionality of these methods can also be obtained by using the 00114 // returned vtkAssemblyPath and using the IsA() to determine type. 00115 00118 virtual vtkProp *GetProp(); 00119 00122 virtual vtkProp3D *GetProp3D(); 00123 00126 virtual vtkActor *GetActor(); 00127 00130 virtual vtkActor2D *GetActor2D(); 00131 00134 virtual vtkVolume *GetVolume(); 00135 00141 virtual vtkAssembly *GetAssembly(); 00142 00148 virtual vtkPropAssembly *GetPropAssembly(); 00149 00150 protected: 00151 vtkAbstractPropPicker(); 00152 ~vtkAbstractPropPicker(); 00153 00154 void Initialize(); 00155 00156 vtkAssemblyPath *Path; //this is what is picked, and includes the prop 00157 private: 00158 vtkAbstractPropPicker(const vtkAbstractPropPicker&); // Not implemented. 00159 void operator=(const vtkAbstractPropPicker&); // Not implemented. 00160 }; 00161 00162 #endif