#ifndef __cpPlugins__DataObjects__BoundingBox__h__ #define __cpPlugins__DataObjects__BoundingBox__h__ #include #include #include #include namespace cpPlugins { namespace DataObjects { /** */ class cpPlugins_EXPORT BoundingBox : public cpPlugins::BaseObjects::DataObject { public: typedef BoundingBox Self; typedef cpPlugins::BaseObjects::DataObject Superclass; typedef itk::SmartPointer< Self > Pointer; typedef itk::SmartPointer< const Self > ConstPointer; public: itkNewMacro( Self ); itkTypeMacro( BoundingBox, DataObject ); cpPlugins_Id_Macro( BoundingBox, Object ); cpPlugins_Compatibility_Macro; public: void SetDataObject( DataObject* o ); virtual void SetITK( itk::LightObject* o ) cpPlugins_OVERRIDE; virtual void SetVTK( vtkObjectBase* o ) cpPlugins_OVERRIDE; void Copy( Self* other ); void Blend( Self* other ); template< class _TPoint > inline void SetMinimum( const _TPoint& p ); template< class _TPoint > inline void SetMaximum( const _TPoint& p ); template< class _TPoint > inline _TPoint GetMinimum( ) const; template< class _TPoint > inline _TPoint GetMaximum( ) const; protected: BoundingBox( ); virtual ~BoundingBox( ); void _UpdateVTK( ); template< class _TPoint > inline void _SetPoint( unsigned int m, const _TPoint& p ); template< class _TPoint > inline _TPoint _GetPoint( unsigned int m ) const; template< unsigned int _NDim > inline bool _ITKImage( itk::LightObject* o ); template< class _TScalar, unsigned int _NDim > inline bool _ITKPointSet( itk::LightObject* o ); private: // Purposely not implemented BoundingBox( const Self& ); Self& operator=( const Self& ); protected: std::vector< double > m_Points[ 2 ]; vtkSmartPointer< vtkOutlineSource > m_Outline; }; } // ecapseman } // ecapseman #include #endif // __cpPlugins__DataObjects__BoundingBox__h__ // eof - $RCSfile$