#ifndef __cpExtensions__Interaction__ImageSlicePointPlacer__h__ #define __cpExtensions__Interaction__ImageSlicePointPlacer__h__ #include #include class vtkBoundedPlanePointPlacer; class vtkImageSlice; class vtkRenderer; namespace cpExtensions { namespace Interaction { /** */ class cpExtensions_EXPORT ImageSlicePointPlacer : public vtkPointPlacer { public: typedef ImageSlicePointPlacer Self; vtkTypeMacro( ImageSlicePointPlacer, vtkPointPlacer ); vtkGetObjectMacro( ImageSlice, vtkImageSlice ); vtkSetVector6Macro( Bounds, double ); vtkGetVector6Macro( Bounds, double ); public: static Self* New( ); int ComputeWorldPosition( vtkRenderer* ren, double displayPos[ 2 ], double worldPos[ 3 ], double worldOrient[ 9 ] ); int ComputeWorldPosition( vtkRenderer* ren, double displayPos[ 2 ], double refWorldPos[ 2 ], double worldPos[ 3 ], double worldOrient[ 9 ] ); int ValidateWorldPosition( double worldPos[ 3 ] ); int ValidateWorldPosition( double worldPos[ 3 ], double worldOrient[ 9 ] ); int UpdateWorldPosition( vtkRenderer* ren, double worldPos[ 3 ], double worldOrient[ 9 ] ); int UpdateInternalState( ); void SetImageSlice( vtkImageSlice* slice ); virtual void SetWorldTolerance( double tol ); protected: ImageSlicePointPlacer( ); virtual ~ImageSlicePointPlacer( ); private: // Purposely not implemented ImageSlicePointPlacer( const Self& ); Self& operator=( const Self& ); protected: vtkImageSlice* ImageSlice; vtkBoundedPlanePointPlacer* Placer; double SavedBounds[ 6 ]; double Bounds[ 6 ]; }; } // ecapseman } // ecapseman #endif // __cpExtensions__Interaction__ImageSlicePointPlacer__h__ // eof - $RCSfile$