00001 
00002 
00003 
00004 
00005 
00006 
00007 
00008 
00009 
00010 
00011 
00012 
00013 
00014 
00033 #ifndef __vtkPolyDataPointPlacer_h
00034 #define __vtkPolyDataPointPlacer_h
00035 
00036 #include "vtkPointPlacer.h"
00037 
00038 class vtkRenderer;
00039 class vtkPropCollection;
00040 class vtkProp;
00041 class vtkPropPicker;
00042 
00043 class VTK_WIDGETS_EXPORT vtkPolyDataPointPlacer : public vtkPointPlacer
00044 {
00045 public:
00047   static vtkPolyDataPointPlacer *New();
00048 
00050 
00051   vtkTypeMacro(vtkPolyDataPointPlacer,vtkPointPlacer);
00052   void PrintSelf(ostream& os, vtkIndent indent);
00054 
00055   
00056   
00057   
00058   virtual void AddProp( vtkProp * );
00059   virtual void RemoveViewProp(vtkProp *prop);
00060   virtual void RemoveAllProps();
00061   int          HasProp( vtkProp * );
00062   int          GetNumberOfProps();
00063 
00065 
00070   virtual int ComputeWorldPosition( vtkRenderer *ren,
00071                                     double displayPos[2], 
00072                                     double worldPos[3],
00073                                     double worldOrient[9] );
00075   
00077 
00080   virtual int ComputeWorldPosition( vtkRenderer *ren,
00081                                     double displayPos[2], 
00082                                     double refWorldPos[3],
00083                                     double worldPos[3],
00084                                     double worldOrient[9] );
00086   
00089   virtual int ValidateWorldPosition( double worldPos[3] );
00090   
00092   virtual int ValidateDisplayPosition( vtkRenderer *, double displayPos[2] );
00093   
00095 
00097   virtual int ValidateWorldPosition( double worldPos[3],
00098                                      double worldOrient[9] );
00100 
00102 
00103   vtkGetObjectMacro( PropPicker, vtkPropPicker );  
00105 
00106 protected:
00107   vtkPolyDataPointPlacer();
00108   ~vtkPolyDataPointPlacer();
00109 
00110   
00111   
00112   vtkPropCollection  *SurfaceProps;
00113   vtkPropPicker      *PropPicker;
00114   
00115 private:
00116   vtkPolyDataPointPlacer(const vtkPolyDataPointPlacer&);  
00117   void operator=(const vtkPolyDataPointPlacer&);  
00118 };
00119 
00120 #endif
00121