X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=lib%2FcpExtensions%2FDataStructures%2FPolyLineParametricPath.hxx;fp=lib%2FcpExtensions%2FDataStructures%2FPolyLineParametricPath.hxx;h=0000000000000000000000000000000000000000;hb=2e142df11d6f312a2a2b5097b8da73571ed523e8;hp=635c8b7829b494f029315473df3c67f808da14b6;hpb=61b3659afe961ed248f30e26f9ca8f28fcfafddc;p=cpPlugins.git diff --git a/lib/cpExtensions/DataStructures/PolyLineParametricPath.hxx b/lib/cpExtensions/DataStructures/PolyLineParametricPath.hxx deleted file mode 100644 index 635c8b7..0000000 --- a/lib/cpExtensions/DataStructures/PolyLineParametricPath.hxx +++ /dev/null @@ -1,215 +0,0 @@ -#ifndef __cpExtensions__DataStructures__PolyLineParametricPath__hxx__ -#define __cpExtensions__DataStructures__PolyLineParametricPath__hxx__ - -#include -#include - -// ------------------------------------------------------------------------- -template< unsigned int _VDim > -void cpExtensions::DataStructures::PolyLineParametricPath< _VDim >:: -AddVertex( const TContinuousIndex& vertex ) -{ - this->Superclass::AddVertex( vertex ); - this->m_Bezier->AddPoint( - this->GetPoint( this->GetSize( ) - 1 ).GetVectorFromOrigin( ) - ); - this->Modified( ); -} - -// ------------------------------------------------------------------------- -template< unsigned int _VDim > -unsigned long cpExtensions::DataStructures::PolyLineParametricPath< _VDim >:: -GetSize( ) const -{ - return( this->GetVertexList( )->Size( ) ); -} - -// ------------------------------------------------------------------------- -template< unsigned int _VDim > -typename cpExtensions::DataStructures::PolyLineParametricPath< _VDim >:: -TContinuousIndex -cpExtensions::DataStructures::PolyLineParametricPath< _VDim >:: -GetContinuousVertex( unsigned long i ) const -{ - return( this->GetVertexList( )->GetElement( i ) ); -} - -// ------------------------------------------------------------------------- -template< unsigned int _VDim > -typename cpExtensions::DataStructures::PolyLineParametricPath< _VDim >:: -TIndex cpExtensions::DataStructures::PolyLineParametricPath< _VDim >:: -GetVertex( unsigned long i ) const -{ - TContinuousIndex cidx = this->GetContinuousVertex( i ); - TIndex idx; - for( unsigned int d = 0; d < _VDim; ++d ) - idx[ d ] = cidx[ d ]; - return( idx ); -} - -// ------------------------------------------------------------------------- -template< unsigned int _VDim > -typename cpExtensions::DataStructures::PolyLineParametricPath< _VDim >:: -TPoint cpExtensions::DataStructures::PolyLineParametricPath< _VDim >:: -GetPoint( unsigned long i ) const -{ - typedef typename TPoint::CoordRepType _TCoordRep; - TPoint pnt; - TContinuousIndex idx = this->GetVertex( i ); - for( unsigned int r = 0; r < _VDim; ++r ) - { - _TCoordRep sum = itk::NumericTraits< _TCoordRep >::ZeroValue( ); - for( unsigned int c = 0; c < _VDim; ++c ) - sum += this->m_IndexToPhysicalPoint( r, c ) * idx[ c ]; - pnt[ r ] = sum + this->m_Origin[ r ]; - - } // rof - return( pnt ); -} - -// ------------------------------------------------------------------------- -template< unsigned int _VDim > -typename cpExtensions::DataStructures::PolyLineParametricPath< _VDim >:: -TPoint cpExtensions::DataStructures::PolyLineParametricPath< _VDim >:: -GetSmoothPoint( double u ) const -{ - TPoint p; - p.Fill( 0 ); - p += this->m_Bezier->Evaluate( u ); - return( p ); -} - -// ------------------------------------------------------------------------- -template< unsigned int _VDim > -void cpExtensions::DataStructures::PolyLineParametricPath< _VDim >:: -SetSpacing( const TSpacing& spac ) -{ - if( this->m_Spacing != spac ) - { - this->m_Spacing = spac; - this->_ComputeIndexToPhysicalPointMatrices( ); - this->Modified( ); - - } // fi -} - -// ------------------------------------------------------------------------- -template< unsigned int _VDim > -void cpExtensions::DataStructures::PolyLineParametricPath< _VDim >:: -SetSpacing( const double spac[ _VDim ] ) -{ - this->SetSpacing( TSpacing( spac ) ); -} - -// ------------------------------------------------------------------------- -template< unsigned int _VDim > -void cpExtensions::DataStructures::PolyLineParametricPath< _VDim >:: -SetSpacing( const float spac[ _VDim ] ) -{ - TSpacing s; - for( unsigned int d = 0; d < _VDim; ++d ) - s[ d ] = spac[ d ]; - this->SetSpacing( s ); -} - -// ------------------------------------------------------------------------- -template< unsigned int _VDim > -void cpExtensions::DataStructures::PolyLineParametricPath< _VDim >:: -SetOrigin( const double ori[ _VDim ] ) -{ - this->SetOrigin( TPoint( ori ) ); -} - -// ------------------------------------------------------------------------- -template< unsigned int _VDim > -void cpExtensions::DataStructures::PolyLineParametricPath< _VDim >:: -SetOrigin( const float ori[ _VDim ] ) -{ - this->SetOrigin( TPoint( ori ) ); -} - -// ------------------------------------------------------------------------- -template< unsigned int _VDim > -void cpExtensions::DataStructures::PolyLineParametricPath< _VDim >:: -SetDirection( const TDirection& dir ) -{ - bool modified = false; - for( unsigned int r = 0; r < _VDim; r++ ) - { - for( unsigned int c = 0; c < _VDim; c++ ) - { - if( - itk::Math::NotExactlyEquals( - this->m_Direction[ r ][ c ], dir[ r ][ c ] - ) - ) - { - this->m_Direction[ r ][ c ] = dir[ r ][ c ]; - modified = true; - } // fi - - } // rof - - } // rof - if( modified ) - { - this->_ComputeIndexToPhysicalPointMatrices( ); - this->m_InverseDirection = this->m_Direction.GetInverse( ); - this->Modified( ); - - } // fi -} - -// ------------------------------------------------------------------------- -template< unsigned int _VDim > -cpExtensions::DataStructures::PolyLineParametricPath< _VDim >:: -PolyLineParametricPath( ) - : Superclass( ) -{ - this->m_Bezier = TBezier::New( ); - - this->m_Spacing.Fill( 1.0 ); - this->m_Origin.Fill( 0.0 ); - this->m_Direction.SetIdentity( ); - this->m_InverseDirection.SetIdentity( ); - this->m_IndexToPhysicalPoint.SetIdentity( ); - this->m_PhysicalPointToIndex.SetIdentity( ); -} - -// ------------------------------------------------------------------------- -template< unsigned int _VDim > -cpExtensions::DataStructures::PolyLineParametricPath< _VDim >:: -~PolyLineParametricPath( ) -{ -} - -// ------------------------------------------------------------------------- -template< unsigned int _VDim > -void cpExtensions::DataStructures::PolyLineParametricPath< _VDim >:: -_ComputeIndexToPhysicalPointMatrices( ) -{ - TDirection scale; - scale.Fill( 0.0 ); - for( unsigned int i = 0; i < _VDim; i++ ) - { - if( this->m_Spacing[ i ] == 0.0 ) - itkExceptionMacro( - "A spacing of 0 is not allowed: Spacing is " << this->m_Spacing - ); - scale[ i ][ i ] = this->m_Spacing[ i ]; - - } // rof - - if( vnl_determinant( this->m_Direction.GetVnlMatrix( ) ) == 0.0 ) - itkExceptionMacro( - << "Bad direction, determinant is 0. Direction is " - << this->m_Direction - ); - this->m_IndexToPhysicalPoint = this->m_Direction * scale; - this->m_PhysicalPointToIndex = this->m_IndexToPhysicalPoint.GetInverse( ); - this->Modified( ); -} - -#endif // __cpExtensions__DataStructures__PolyLineParametricPath__hxx__ - -// eof - $RCSfile$