00001 
00002 
00003 
00004 
00005 
00006 
00007 
00008 
00009 
00010 
00011 
00012 
00013 
00014 
00025 #ifndef __vtkImageActorPointPlacer_h
00026 #define __vtkImageActorPointPlacer_h
00027 
00028 #include "vtkPointPlacer.h"
00029 
00030 class vtkBoundedPlanePointPlacer;
00031 class vtkImageActor;
00032 class vtkRenderer;
00033 
00034 class VTK_WIDGETS_EXPORT vtkImageActorPointPlacer : public vtkPointPlacer
00035 {
00036 public:
00038   static vtkImageActorPointPlacer *New();
00039 
00041 
00042   vtkTypeRevisionMacro(vtkImageActorPointPlacer,vtkPointPlacer);
00043   void PrintSelf(ostream& os, vtkIndent indent);
00045 
00047 
00053   int ComputeWorldPosition( vtkRenderer *ren,
00054                             double displayPos[2], 
00055                             double worldPos[3],
00056                             double worldOrient[9] );
00058   
00060 
00062   int ComputeWorldPosition( vtkRenderer *ren,
00063                             double displayPos[2], 
00064                             double refWorldPos[2],
00065                             double worldPos[3],
00066                             double worldOrient[9] );
00068   
00072   int ValidateWorldPosition( double worldPos[3] );
00073   
00075 
00077   int ValidateWorldPosition( double worldPos[3],
00078                              double worldOrient[9]);
00080   
00081 
00083 
00086   int UpdateWorldPosition( vtkRenderer *ren,
00087                            double worldPos[3],
00088                            double worldOrient[9]);
00090 
00096   int UpdateInternalState();
00097 
00099 
00103   void SetImageActor( vtkImageActor * );
00104   vtkGetObjectMacro( ImageActor, vtkImageActor );
00106 
00108 
00113   vtkSetVector6Macro( Bounds, double );
00114   vtkGetVector6Macro( Bounds, double );
00116   
00117 protected:
00118   vtkImageActorPointPlacer();
00119   ~vtkImageActorPointPlacer();
00120 
00121 
00122   
00123   
00124   vtkImageActor *ImageActor;
00125   
00126   
00127   vtkBoundedPlanePointPlacer *Placer;
00128   
00129   
00130   
00131   double SavedBounds[6];
00132 
00133   
00134   double Bounds[6];
00135   
00136 private:
00137   vtkImageActorPointPlacer(const vtkImageActorPointPlacer&);  
00138   void operator=(const vtkImageActorPointPlacer&);  
00139 };
00140 
00141 #endif