1 #ifndef __cpPlugins__DataObjects__BoundingBox__h__
2 #define __cpPlugins__DataObjects__BoundingBox__h__
5 #include <cpPlugins/BaseObjects/DataObject.h>
6 #include <vtkOutlineSource.h>
7 #include <vtkSmartPointer.h>
15 class cpPlugins_EXPORT BoundingBox
16 : public cpPlugins::BaseObjects::DataObject
19 typedef BoundingBox Self;
20 typedef cpPlugins::BaseObjects::DataObject Superclass;
21 typedef itk::SmartPointer< Self > Pointer;
22 typedef itk::SmartPointer< const Self > ConstPointer;
26 itkTypeMacro( BoundingBox, DataObject );
27 cpPlugins_Id_Macro( BoundingBox, Object );
28 cpPlugins_Compatibility_Macro;
31 void SetDataObject( DataObject* o );
32 virtual void SetITK( itk::LightObject* o ) cpPlugins_OVERRIDE;
33 virtual void SetVTK( vtkObjectBase* o ) cpPlugins_OVERRIDE;
35 void Copy( Self* other );
36 void Blend( Self* other );
38 template< class _TPoint >
39 inline void SetMinimum( const _TPoint& p );
41 template< class _TPoint >
42 inline void SetMaximum( const _TPoint& p );
44 template< class _TPoint >
45 inline _TPoint GetMinimum( ) const;
47 template< class _TPoint >
48 inline _TPoint GetMaximum( ) const;
52 virtual ~BoundingBox( );
56 template< class _TPoint >
57 inline void _SetPoint( unsigned int m, const _TPoint& p );
59 template< class _TPoint >
60 inline _TPoint _GetPoint( unsigned int m ) const;
62 template< unsigned int _NDim >
63 inline bool _ITKImage( itk::LightObject* o );
65 template< class _TScalar, unsigned int _NDim >
66 inline bool _ITKPointSet( itk::LightObject* o );
69 // Purposely not implemented
70 BoundingBox( const Self& );
71 Self& operator=( const Self& );
74 std::vector< double > m_Points[ 2 ];
75 vtkSmartPointer< vtkOutlineSource > m_Outline;
82 #include <cpPlugins/DataObjects/BoundingBox.hxx>
84 #endif // __cpPlugins__DataObjects__BoundingBox__h__