Polaris: SimEdge.h Source File

SimEdge.h

Go to the documentation of this file.
00001 #ifndef _SIMEDGE_H
00002 #define _SIMEDGE_H
00003 ///
00004 /// \class SimEdge 
00005 /// \brief a class for edges of undirected graphs
00006 /// \defgroup Base
00007 /// \ingroup Base
00008 ///  General utility routines
00009 /// \see SimEdge.h
00010 /// \see SimEdge.cc
00011 /// \see SimEdge.h
00012 ///
00013 /// \endcode
00014 /// \section Description Description
00015 /// This module contains the structures needed to represent
00016 /// an edge in a Similarity graph.  See the classes SimGraph and SimBiGraph.
00017 /// Consider an edge as connecting two nodes, node 1 and node 2.
00018 ///
00019 /// The edge consists of pointers to the two access descriptors
00020 /// involved, a similarity type and an array to indicate
00021 /// the matching of dimensions between the two descriptors.
00022 ///
00023 /// \endcode
00024 /// \section KNOWN KNOWN/POSSIBLE BUGS/LIMITATIONS
00025 ///
00026 #ifdef POLARIS_GNU_PRAGMAS
00027 #pragma interface
00028 #endif
00029 ///
00030 #include "ClassNames.h"
00031 #include "Listable.h"
00032 #include "AbstractAccess.h"
00033 #include "SimEdgeKernel.h"
00034 ///
00035 class SimEdge : public Listable {
00036 
00037  protected:
00038     AbstractAccess * _node_1;
00039     AbstractAccess * _node_2;
00040     int _index1;
00041     int _index2;
00042     SimEdgeKernel * _edge;
00043 
00044  public:
00045     SimEdge( );
00046     SimEdge( int index1, int index2, 
00047         AbstractAccess * node1, AbstractAccess * node2,
00048         SimEdgeKernel * edge);
00049     ~SimEdge( );
00050 
00051     AbstractAccess * node_1( ) const;   ///< return descriptor pointer
00052     AbstractAccess * node_2( ) const;   ///< return descriptor pointer
00053     int index1( ) const;              ///< return index
00054     int index2( ) const;              ///< return index
00055     SimEdgeKernel * edge( ) const;      ///< return edge kernel pointer
00056     SimilarityType type( ) const;       ///< return the similarity type
00057 
00058     char * type_name() const;         ///< return the name of the enclosed type
00059 
00060     ///< This one is to satisfy Listable
00061     virtual void    print(ostream & o) const;
00062 
00063     virtual SimEdge *clone() const;
00064     virtual Listable *listable_clone() const;
00065 
00066     friend ostream & operator << (ostream & o, const SimEdge & ad);
00067 };
00068 
00069 #endif
00070 
 © 1995-2005 University of Illinois, Urbana-Champaign. All rights reserved.  Fri Mar 25 23:06:07 2005