- /// Base interface
- virtual bool _UpdateResult( _TNode& n );
-
- /// Pure virtual interface: vertices
- virtual unsigned long _NumberOfVertices ( ) const;
- virtual TVertexValue _Value ( const TVertex& v ) const;
- virtual TResult _Result ( const TVertex& v ) const;
-
- /// Pure virtual interface: edges
- virtual double _Norm ( const TVertex& a, const TVertex& b ) const;
- virtual bool _Edge ( const TVertex& a, const TVertex& b ) const;
- virtual TCost _Cost ( const TVertex& a, const TVertex& b ) const;
-
- /// Pure virtual interface: neighborhood
- virtual void _Neighs ( const _TNode& n, _TNodes& N ) const;
- virtual void _NeighsInDim ( const _TNode& n,
- const unsigned int& d,
- _TNodes& N );
-
- /// Pure virtual interface: results
- virtual void _InitializeResults ( );
+ virtual void _BeforeGenerateData( );
+ virtual void _AfterGenerateData( );
+
+ // Graph-related abstract methods
+ virtual unsigned long _NumberOfVertices( ) const;
+ virtual const TValue& _VertexValue( const TVertex& v ) const;
+ virtual double _Distance(
+ const TVertex& a, const TVertex& b
+ ) const;
+ virtual bool _HasEdge( const TVertex& a, const TVertex& b ) const;
+ virtual void _Neighborhood(
+ _TVertices& neighborhood, const TVertex& v
+ ) const;
+
+ // Results-related abstract methods
+ virtual void _InitResults( );
+ virtual const TResult& _Result( const TVertex& v ) const;
+ virtual void _SetResult( const TVertex& v, const _TNode& n );