MAGiC  V5.0
Mailleurs Automatiques de Géometries intégrés à la Cao
hypergraphlib_arc.h
Aller à la documentation de ce fichier.
1 //####//------------------------------------------------------------
2 //####//------------------------------------------------------------
3 //####// MAGiC
4 //####// Jean Christophe Cuilliere et Vincent FRANCOIS
5 //####// Departement de Genie Mecanique - UQTR
6 //####//------------------------------------------------------------
7 //####// MAGIC est un projet de recherche de l equipe ERICCA
8 //####// du departement de genie mecanique de l Universite du Quebec a Trois Rivieres
9 //####// http://www.uqtr.ca/ericca
10 //####// http://www.uqtr.ca/
11 //####//------------------------------------------------------------
12 //####//------------------------------------------------------------
13 //####//
14 //####// hypergraphlib_arc.h
15 //####//
16 //####//------------------------------------------------------------
17 //####//------------------------------------------------------------
18 //####// COPYRIGHT 2000-2024
19 //####// jeu 13 jun 2024 11:54:00 EDT
20 //####//------------------------------------------------------------
21 //####//------------------------------------------------------------
22 #ifndef ARC_H
23 #define ARC_H
24 
26 #include <map>
27 #include <vector>
28 
29 #define ARC_FOR_EACH_NODE_CONST(A,N)\
30 for(HypergraphLib::Arc::MultimapNodesById::const_iterator N = A->Nodes().begin();\
31 N != A->Nodes().end(); N++)
32 
33 namespace HypergraphLib {
34 
35 class Node;
36 
38 public:
39  typedef std::multimap < int, Node * > MultimapNodesById;
40  typedef std::pair < int, Node * > Int_Node_Pair;
41 
45  Arc(Graph* __owner, int __id);
46 
51  Arc(Graph* __owner, int __id, const std::vector <int> & __nodesId);
52 
56  Arc(const Arc &, Graph * __owner=0);
57  ~Arc();
58 
62  MultimapNodesById & Nodes();
63 
67  void Add (Node *);
68 
74  int Remove (int __id);
75  int Remove (Node * __node);
76 
80  int Rank() const;
81 
87  int NodeCount(int) const;
88 
90  Node * First() const;
92  Node * Last() const;
94  bool IsLoopOfNode(int __NodeId);
97  bool IsLoop();
98 
99 private:
101 };
102 
103 }
104 
105 #endif
HypergraphLib::Arc::MultimapNodesById
std::multimap< int, Node * > MultimapNodesById
Definition: hypergraphlib_arc.h:39
hypergraphlib_graphobject.h
HypergraphLib::Arc
Definition: hypergraphlib_arc.h:37
HypergraphLib
Definition: hypergraphlib_arc.cpp:32
HypergraphLib::Arc::_nodes
MultimapNodesById _nodes
Definition: hypergraphlib_arc.h:100
HYPERGRAPHLIB_ITEM
#define HYPERGRAPHLIB_ITEM
Definition: hypergraphlib_platform.h:36
HypergraphLib::GraphObject
Definition: hypergraphlib_graphobject.h:31
HypergraphLib::Node
Definition: hypergraphlib_node.h:35
HypergraphLib::Arc::Int_Node_Pair
std::pair< int, Node * > Int_Node_Pair
Definition: hypergraphlib_arc.h:40