Jafar
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines
Node.hpp
00001 /* $Id$ */
00002 
00003 #ifndef _SPAF_GRAPH_NODE_HPP_
00004 #define _SPAF_GRAPH_NODE_HPP_
00005 
00006 #include <iostream>
00007 #include <list>
00008 #include <boost/graph/graph_concepts.hpp>
00009 
00010 namespace jafar {
00011   namespace spaf {
00012     class Feature;
00013   }
00014   namespace spafgraph {
00015     class Edge;
00016     class EdgeProximity;
00017     class NodeDescriptor;
00022     class Node {
00023       friend std::ostream& spafgraph::operator<<(std::ostream& s, const Node& n);
00024       friend class Graph;
00025       private:
00026         Node();
00027         Node(spaf::Feature* feature, Node* parent);
00028       public:
00029         ~Node();
00030       public:
00031         const spaf::Feature* feature() const;
00032         spaf::Feature* feature();
00033         const Edge* edgeParent() const;
00034         const std::list<EdgeProximity*>& edgesProximities() const;
00035         const std::list<Edge*>& edgesToUnCoarserLevel() const;
00036         const std::list<Edge*>& edgesToCoarserLevel() const;
00037         const std::list<Edge*>& edgesChildren() const;
00038         std::list<Edge*> edges() const;
00044         const EdgeProximity* edgeProximity( const Node* n ) const;
00045       public:
00050         EdgeProximity* addProximityWith( Node* n );
00051         NodeDescriptor* nodeDescriptor();
00052       public:
00053         Node* parent();
00054         const std::list<Node*>& children();
00055       protected:
00056         int id() const;
00057       private:
00058         void registerChild(Node* );
00059       private:
00060         struct Private;
00061         Private* const d;
00062     };
00063     std::ostream& operator<<(std::ostream& s, const Node&);
00064   }
00065 }
00066 
00067 #endif
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines

Generated on Wed Oct 15 2014 00:37:28 for Jafar by doxygen 1.7.6.1
LAAS-CNRS