#ifndef __cpExtensions__DataStructures__Skeleton__hxx__ #define __cpExtensions__DataStructures__Skeleton__hxx__ // ------------------------------------------------------------------------- template< unsigned int _VDim > void cpExtensions::DataStructures::Skeleton< _VDim >:: AddBranch( TPath* path ) { // Check inputs if( path == NULL ) return; unsigned long size = path->GetSize( ); if( size == 0 ) return; TIndex a = path->GetVertex( 0 ); TIndex b = path->GetVertex( size - 1 ); if( this->HasEdge( a, b ) ) return; // Add path this->SetVertex( a, a ); this->SetVertex( b, b ); this->AddEdge( a, b, path ); this->AddEdge( b, a, path ); // TODO: this->Modified( ); } // ------------------------------------------------------------------------- template< unsigned int _VDim > const typename cpExtensions::DataStructures::Skeleton< _VDim >:: TPath* cpExtensions::DataStructures::Skeleton< _VDim >:: GetBranch( const TIndex& a, const TIndex& b ) const { static const TPath* null_path = NULL; if( this->HasEdge( a, b ) ) return( this->GetEdges( a, b ).front( ) ); else return( null_path ); } // ------------------------------------------------------------------------- template< unsigned int _VDim > cpExtensions::DataStructures::Skeleton< _VDim >:: Skeleton( ) : Superclass( ) { } // ------------------------------------------------------------------------- template< unsigned int _VDim > cpExtensions::DataStructures::Skeleton< _VDim >:: ~Skeleton( ) { } #endif // __cpExtensions__DataStructures__Skeleton__hxx__ // eof - $RCSfile$