+++ /dev/null
-#ifndef __cpExtensions__DataStructures__Simple3DCurve__h__
-#define __cpExtensions__DataStructures__Simple3DCurve__h__
-
-#include <cpExtensions/Config.h>
-#include <itkDataObject.h>
-#include <itkObjectFactory.h>
-#include <itkMatrix.h>
-#include <itkPoint.h>
-
-namespace cpExtensions
-{
- namespace DataStructures
- {
- /**
- */
- template< class _TScalar >
- class cpExtensions_EXPORT Simple3DCurve
- : public itk::DataObject
- {
- public:
- typedef Simple3DCurve Self;
- typedef itk::DataObject Superclass;
- typedef itk::SmartPointer< Self > Pointer;
- typedef itk::SmartPointer< const Self > ConstPointer;
-
- typedef _TScalar TScalar;
- typedef itk::Matrix< TScalar, 3, 3 > TMatrix;
- typedef itk::Point< TScalar, 3 > TPoint;
- typedef typename TPoint::VectorType TVector;
-
- public:
- itkNewMacro( Self );
- itkTypeMacro( Simple3DCurve, itk::DataObject );
-
- public:
- template< class _TVector >
- inline void AddPoint( const _TVector& v )
- {
- TPoint p;
- p[ 0 ] = v[ 0 ];
- p[ 1 ] = v[ 1 ];
- p[ 2 ] = v[ 2 ];
- this->m_Points.push_back( p );
- this->Modified( );
- }
-
- virtual void Modified( ) const cpExtensions_OVERRIDE;
- void Clear( );
- unsigned long GetNumberOfPoints( ) const;
- const TMatrix& GetFrame( unsigned int id ) const;
- const TPoint& GetPoint( unsigned int id ) const;
- TVector GetVector( unsigned int id ) const;
-
- protected:
- Simple3DCurve( );
- virtual ~Simple3DCurve( );
-
- private:
- // Purposely not implemented
- Simple3DCurve( const Self& other );
- Self& operator=( const Self& other );
-
- protected:
- std::vector< TPoint > m_Points;
- mutable std::vector< TMatrix > m_Frames;
- mutable bool m_FramesUpdated;
- };
-
- } // ecapseman
-
-} // ecapseman
-
-#endif // __cpExtensions__DataStructures__Simple3DCurve__h__
-
-// eof - $RCSfile$