1 #ifndef __CPPLUGINS__BOUNDINGBOX__H__
2 #define __CPPLUGINS__BOUNDINGBOX__H__
5 #include <cpPlugins/DataObject.h>
11 class cpPlugins_EXPORT BoundingBox
15 typedef BoundingBox Self;
16 typedef DataObject Superclass;
17 typedef itk::SmartPointer< Self > Pointer;
18 typedef itk::SmartPointer< const Self > ConstPointer;
22 itkTypeMacro( BoundingBox, DataObject );
23 cpPlugins_Id_Macro( BoundingBox, Object );
26 void SetDataObject( DataObject* o );
27 virtual void SetITK( itk::LightObject* o ) ITK_OVERRIDE;
28 virtual void SetVTK( vtkObjectBase* o ) ITK_OVERRIDE;
30 void Copy( Self* other );
31 void Blend( Self* other );
33 template< class _TPoint >
34 inline void SetMinimum( const _TPoint& p );
36 template< class _TPoint >
37 inline void SetMaximum( const _TPoint& p );
39 template< class _TPoint >
40 inline _TPoint GetMinimum( ) const;
42 template< class _TPoint >
43 inline _TPoint GetMaximum( ) const;
47 virtual ~BoundingBox( );
49 template< class _TPoint >
50 inline void _SetPoint( unsigned int m, const _TPoint& p );
52 template< class _TPoint >
53 inline _TPoint _GetPoint( unsigned int m ) const;
55 template< unsigned int _NDim >
56 inline bool _ITKImage( itk::LightObject* o );
58 template< class _TScalar, unsigned int _NDim >
59 inline bool _ITKPointSet( itk::LightObject* o );
62 // Purposely not implemented
63 BoundingBox( const Self& );
64 Self& operator=( const Self& );
67 std::vector< double > m_Points[ 2 ];
72 #include <cpPlugins/BoundingBox.hxx>
74 #endif // __CPPLUGINS__BOUNDINGBOX__H__