28 #ifndef GUM_VARIABLE_NODE_MAP_H 29 #define GUM_VARIABLE_NODE_MAP_H 34 #include <agrum/agrum.h> 36 #include <agrum/tools/core/bijection.h> 37 #include <agrum/tools/graphs/graphElements.h> 38 #include <agrum/tools/variables/discreteVariable.h> 48 class VariableNodeMap {
59 VariableNodeMap(
const VariableNodeMap& source);
65 VariableNodeMap& operator=(
const VariableNodeMap& source);
76 const DiscreteVariable& get(NodeId id)
const;
80 NodeId get(
const DiscreteVariable& var)
const;
83 bool exists(NodeId id)
const;
86 bool exists(
const DiscreteVariable& var)
const;
94 NodeId insert(NodeId id,
const DiscreteVariable& var);
98 void erase(NodeId id);
102 void erase(
const DiscreteVariable& var);
107 void changeName(NodeId id,
const std::string& new_name);
113 std::string toString()
const;
121 const std::string& name(NodeId id)
const;
129 const std::string& name(
const DiscreteVariable& var)
const;
140 const DiscreteVariable& operator[](NodeId id)
const;
144 NodeId operator[](
const DiscreteVariable& var)
const;
154 NodeId idFromName(
const std::string& name)
const;
155 const DiscreteVariable& variableFromName(
const std::string& name)
const;
161 void _copy_(
const VariableNodeMap& source);
164 Bijection< NodeId,
const DiscreteVariable* > _nodes2vars_;
167 Bijection< std::string, NodeId > _names2nodes_;
172 std::ostream& operator<<(std::ostream&,
const VariableNodeMap&);
176 #ifndef GUM_NO_INLINE 177 # include <agrum/tools/graphicalModels/variableNodeMap_inl.h>