945 } |
945 } |
946 }; |
946 }; |
947 |
947 |
948 }; |
948 }; |
949 |
949 |
950 /// \brief An empty non-static undirected graph class. |
|
951 /// |
|
952 /// This class provides everything that \ref BpUGraph does. |
|
953 /// Additionally it enables building graphs from scratch. |
|
954 class ExtendableBpUGraph : public BpUGraph { |
|
955 public: |
|
956 |
|
957 /// \brief Add a new ANode to the graph. |
|
958 /// |
|
959 /// Add a new ANode to the graph. |
|
960 /// \return the new node. |
|
961 Node addANode(); |
|
962 |
|
963 /// \brief Add a new ANode to the graph. |
|
964 /// |
|
965 /// Add a new ANode to the graph. |
|
966 /// \return the new node. |
|
967 Node addBNode(); |
|
968 |
|
969 /// \brief Add a new undirected edge to the graph. |
|
970 /// |
|
971 /// Add a new undirected edge to the graph. One of the nodes |
|
972 /// should be ANode and the other should be BNode. |
|
973 /// \pre The nodes are not in the same nodeset. |
|
974 /// \return the new edge. |
|
975 UEdge addEdge(const Node& from, const Node& to); |
|
976 |
|
977 /// \brief Resets the graph. |
|
978 /// |
|
979 /// This function deletes all undirected edges and nodes of the graph. |
|
980 /// It also frees the memory allocated to store them. |
|
981 void clear() { } |
|
982 |
|
983 template <typename Graph> |
|
984 struct Constraints { |
|
985 void constraints() {} |
|
986 }; |
|
987 |
|
988 }; |
|
989 |
|
990 /// \brief An empty erasable undirected graph class. |
|
991 /// |
|
992 /// This class is an extension of \ref ExtendableBpUGraph. It makes it |
|
993 /// possible to erase undirected edges or nodes. |
|
994 class ErasableBpUGraph : public ExtendableBpUGraph { |
|
995 public: |
|
996 |
|
997 /// \brief Deletes a node. |
|
998 /// |
|
999 /// Deletes a node. |
|
1000 /// |
|
1001 void erase(Node) { } |
|
1002 /// \brief Deletes an undirected edge. |
|
1003 /// |
|
1004 /// Deletes an undirected edge. |
|
1005 /// |
|
1006 void erase(UEdge) { } |
|
1007 |
|
1008 template <typename Graph> |
|
1009 struct Constraints { |
|
1010 void constraints() {} |
|
1011 }; |
|
1012 |
|
1013 }; |
|
1014 |
950 |
1015 /// @} |
951 /// @} |
1016 |
952 |
1017 } |
953 } |
1018 |
954 |