28 #ifndef GUM_NODE_GRAPH_PART_H 29 #define GUM_NODE_GRAPH_PART_H 41 #ifndef DOXYGEN_SHOULD_SKIP_THIS 45 class NodeGraphPartTestSuite;
121 void _setPos(
NodeId id) noexcept;
124 void _validate() noexcept;
197 void whenNodeDeleted(
const void* src,
NodeId id);
289 bool holes_resize_policy =
true);
333 template <
typename T >
351 std::vector< NodeId > addNodes(
Size n);
358 virtual void addNodeWithId(
const NodeId id);
365 virtual void eraseNode(
const NodeId id);
368 bool existsNode(
const NodeId id)
const;
371 bool exists(
const NodeId id)
const;
374 bool emptyNodes()
const;
380 virtual void clearNodes();
383 virtual void clear();
386 Size sizeNodes()
const;
424 std::
string toString() const;
436 template < typename VAL >
438 Size size = 0) const;
451 template < typename VAL >
457 template < typename VAL >
458 List< VAL > listMapNodes(VAL (*f)(const NodeId&)) const;
468 friend class gum_tests::NodeGraphPartTestSuite;
471 void __updateEndIteratorSafe();
478 void __eraseHole(NodeId
id);
482 void __addHole(NodeId
id);
490 bool __inHoles(NodeId
id) const;
493 Size __sizeHoles() const;
506 bool __holes_resize_policy;
509 NodeGraphPartIteratorSafe __endIteratorSafe;
520 #ifndef GUM_NO_INLINE 522 #endif // GUM_NOINLINE 526 #endif // GUM_NODE_GRAPH_PART_H std::forward_iterator_tag iterator_category
types for STL compliance
Copyright 2005-2020 Pierre-Henri WUILLEMIN () et Christophe GONZALES () info_at_agrum_dot_org.
value_type & reference
types for STL compliance
Copyright 2005-2020 Pierre-Henri WUILLEMIN () et Christophe GONZALES () info_at_agrum_dot_org.
NodeGraphPartIterator NodeConstIterator
NodeId value_type
types for STL compliance
NodeGraphPartIteratorSafe NodeIteratorSafe
Generic doubly linked lists.
Copyright 2005-2020 Pierre-Henri WUILLEMIN () et Christophe GONZALES () info_at_agrum_dot_org.
The class for generic Hash Tables.
Copyright 2005-2020 Pierre-Henri WUILLEMIN () et Christophe GONZALES () info_at_agrum_dot_org.
NodeGraphPartIteratorSafe NodeConstIteratorSafe
Unsafe iterator on the node set of a graph.
Signaler1< NodeId > onNodeAdded
const value_type * const_pointer
types for STL compliance
bool operator==(const TiXmlString &a, const TiXmlString &b)
std::ptrdiff_t difference_type
types for STL compliance
Class for node sets in graph.
const value_type & const_reference
types for STL compliance
NodeGraphPartIterator NodeIterator
NodeId nextNodeId()
Returns the next value of an unique counter for PRM's node id.
bool operator!=(const TiXmlString &a, const TiXmlString &b)
Copyright 2005-2020 Pierre-Henri WUILLEMIN () et Christophe GONZALES () info_at_agrum_dot_org.
std::size_t Size
In aGrUM, hashed values are unsigned long int.
Signaler1< NodeId > onNodeDeleted
Safe iterator on the node set of a graph.
Size NodeId
Type for node ids.
Every class who would catch signal from signaler should derive from Listener.
value_type * pointer
types for STL compliance
Copyright 2005-2020 Pierre-Henri WUILLEMIN () et Christophe GONZALES () info_at_agrum_dot_org.