+++ /dev/null
-#ifndef __cpInstances__BoundingBox__h__
-#define __cpInstances__BoundingBox__h__
-
-#define ITK_MANUAL_INSTANTIATION
-#include <cpInstances/cpPluginsDataObjects_Export.h>
-#include <vector>
-#include <cpPlugins/Pipeline/DataObject.h>
-#include <vtkOutlineSource.h>
-#include <vtkSmartPointer.h>
-
-namespace cpInstances
-{
- namespace DataObjects
- {
- /**
- */
- class cpPluginsDataObjects_EXPORT BoundingBox
- : public cpPlugins::Pipeline::DataObject
- {
- public:
- typedef BoundingBox Self;
- typedef cpPlugins::Pipeline::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 );
-
- void Copy( Self* other );
- void Blend( Self* other );
-
- template< class _TPoint >
- inline void SetMinimum( const _TPoint& p )
- {
- this->_SetPoint( 0, p );
- }
-
- template< class _TPoint >
- inline void SetMaximum( const _TPoint& p )
- {
- this->_SetPoint( 1, p );
- }
-
- template< class _TPoint >
- inline _TPoint GetMinimum( ) const
- {
- return( this->_GetPoint< _TPoint >( 0 ) );
- }
-
- template< class _TPoint >
- inline _TPoint GetMaximum( ) const
- {
- return( this->_GetPoint< _TPoint >( 1 ) );
- }
-
- protected:
- BoundingBox( );
- virtual ~BoundingBox( );
-
- void _UpdateVTK( );
-
- template< class _TPoint >
- inline void _SetPoint( unsigned int m, const _TPoint& p )
- {
- this->m_Points[ m ].clear( );
- for( unsigned int d = 0; d < _TPoint::PointDimension; ++d )
- this->m_Points[ m ].push_back( double( p[ d ] ) );
- this->_UpdateVTK( );
- this->Modified( );
- }
-
- template< class _TPoint >
- inline _TPoint _GetPoint( unsigned int m ) const
- {
- unsigned int dim = this->m_Points[ m ].size( );
- dim =
- ( _TPoint::PointDimension < dim )? _TPoint::PointDimension: dim;
- _TPoint p;
- p.Fill( 0 );
- for( unsigned int d = 0; d < dim; ++d )
- p[ d ] = this->m_Points[ m ][ d ];
- return( p );
- }
-
- private:
- // Purposely not implemented
- BoundingBox( const Self& );
- Self& operator=( const Self& );
-
- protected:
- std::vector< double > m_Points[ 2 ];
- vtkSmartPointer< vtkOutlineSource > m_Outline;
- };
-
- } // ecapseman
-
-} // ecapseman
-
-#endif // __cpInstances__BoundingBox__h__
-
-// eof - $RCSfile$