VTK
dox/Rendering/Core/vtkAbstractPropPicker.h
Go to the documentation of this file.
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