29 #include <agrum/PRM/elements/PRMClassElement.h> 30 #include <agrum/PRM/elements/PRMClassElementContainer.h> 35 template <
typename GUM_SCALAR >
67 "illegal call to ClassElementContainer copy constructor");
75 }
catch (
NotFound&) {
return false; }
92 "given id is not an PRMAttribute or an PRMAggregate");
111 "given ClassElement<GUM_SCALAR> is not an " 112 "PRMAttribute or an PRMAggregate");
121 }
catch (
NotFound&) {
return true; }
138 "this ClassElement<GUM_SCALAR> does not have any IO flags");
150 "this ClassElement<GUM_SCALAR> does not have any IO flags");
174 }
catch (
NotFound&) {
return false; }
182 }
catch (
NotFound&) {
return false; }
194 template <
typename GUM_SCALAR >
198 std::string tab =
" ";
199 output <<
"digraph \"" << container.name() <<
"\" {" << std::endl;
201 for (
const auto node: container.containerDag().nodes()) {
202 if (container.containerDag().children(node).size() > 0) {
203 for (
const auto chi: container.containerDag().children(node)) {
204 output << tab <<
"\"" << container.get(node).name() <<
"\" -> " 205 <<
"\"" << container.get(chi).name() <<
"\";" << std::endl;
207 }
else if (container.containerDag().parents(node).size() == 0) {
208 output << tab <<
"\"" << container.get(node).name() <<
"\";" << std::endl;
212 output <<
"}" << std::endl;
INLINE void emplace(Args &&... args)
std::ostream & operator<<(std::ostream &output, const gum::prm::PRMClassElementContainer< GUM_SCALAR > &container)
An << operator for PRMClassElementContainer. Output in the graphviz-dot format.
ParamScopeData(const std::string &s, const PRMReferenceSlot< GUM_SCALAR > &ref, Idx d)