graph.h
Go to the documentation of this file.
1 
26 #ifndef TESSERACT_SCENE_GRAPH_GRAPH_H
27 #define TESSERACT_SCENE_GRAPH_GRAPH_H
28 
31 #include <boost/serialization/export.hpp>
32 #include <boost/graph/adjacency_list.hpp> // for customizable graphs
33 #include <boost/graph/properties.hpp>
34 #include <string>
35 #include <unordered_map>
36 #include <Eigen/Geometry>
38 
39 #include <tesseract_common/fwd.h>
40 
41 #ifndef SWIG
42 
43 namespace boost::serialization
44 {
45 class access;
46 }
47 
48 /* definition of basic boost::graph properties */
49 namespace boost
50 {
51 enum vertex_link_t : std::uint8_t
52 {
54 };
55 enum vertex_link_visible_t : std::uint8_t
56 {
58 };
60 {
62 };
63 enum edge_joint_t : std::uint8_t
64 {
66 };
67 enum graph_root_t : std::uint8_t
68 {
70 };
71 
72 BOOST_INSTALL_PROPERTY(vertex, link);
73 BOOST_INSTALL_PROPERTY(vertex, link_visible);
74 BOOST_INSTALL_PROPERTY(vertex, link_collision_enabled);
75 BOOST_INSTALL_PROPERTY(edge, joint);
76 BOOST_INSTALL_PROPERTY(graph, root);
77 } // namespace boost
78 
79 #endif // SWIG
80 
81 namespace tesseract_scene_graph
82 {
83 class Link;
84 class Joint;
85 class JointLimits;
86 
87 #ifndef SWIG
88 
90 using GraphProperty =
91  boost::property<boost::graph_name_t, std::string, boost::property<boost::graph_root_t, std::string>>;
92 
94 using VertexProperty = boost::property<
96  std::shared_ptr<Link>,
97  boost::property<boost::vertex_link_visible_t, bool, boost::property<boost::vertex_link_collision_enabled_t, bool>>>;
98 
104 using EdgeProperty =
105  boost::property<boost::edge_joint_t, std::shared_ptr<Joint>, boost::property<boost::edge_weight_t, double>>;
106 
107 using Graph = boost::
108  adjacency_list<boost::listS, boost::listS, boost::bidirectionalS, VertexProperty, EdgeProperty, GraphProperty>;
109 
110 #endif // SWIG
111 
114 {
116  std::vector<std::string> links;
117 
119  std::vector<std::string> joints;
120 
122  std::vector<std::string> active_joints;
123 };
124 
126 #ifndef SWIG
127  : public Graph,
128  public boost::noncopyable
129 #endif // SWIG
130 {
131 public:
132  using Vertex = SceneGraph::vertex_descriptor;
133  using Edge = SceneGraph::edge_descriptor;
134 
135  using Ptr = std::shared_ptr<SceneGraph>;
136  using ConstPtr = std::shared_ptr<const SceneGraph>;
137  using UPtr = std::unique_ptr<SceneGraph>;
138  using ConstUPtr = std::unique_ptr<const SceneGraph>;
139 
140  SceneGraph(const std::string& name = "");
141  ~SceneGraph() = default;
142  // SceneGraphs are non-copyable
143  SceneGraph(const SceneGraph& other) = delete;
144  SceneGraph& operator=(const SceneGraph& other) = delete;
145 
146  SceneGraph(SceneGraph&& other) noexcept;
147  SceneGraph& operator=(SceneGraph&& other) noexcept;
148 
153  SceneGraph::UPtr clone() const;
154 
156  void clear();
157 
162  void setName(const std::string& name);
163 
168  const std::string& getName() const;
169 
175  bool setRoot(const std::string& name);
176 
181  const std::string& getRoot() const;
182 
192  bool addLink(const Link& link, bool replace_allowed = false);
193 
203  bool addLink(const Link& link, const Joint& joint);
204 
210  std::shared_ptr<const Link> getLink(const std::string& name) const;
211 
216  std::vector<std::shared_ptr<const Link>> getLinks() const;
217 
222  std::vector<std::shared_ptr<const Link>> getLeafLinks() const;
223 
233  bool removeLink(const std::string& name, bool recursive = false);
234 
241  bool moveLink(const Joint& joint);
242 
247  void setLinkVisibility(const std::string& name, bool visibility);
248 
253  bool getLinkVisibility(const std::string& name) const;
254 
259  void setLinkCollisionEnabled(const std::string& name, bool enabled);
260 
265  bool getLinkCollisionEnabled(const std::string& name) const;
266 
273  bool addJoint(const Joint& joint);
274 
280  std::shared_ptr<const Joint> getJoint(const std::string& name) const;
281 
288  bool removeJoint(const std::string& name, bool recursive = false);
289 
296  bool moveJoint(const std::string& name, const std::string& parent_link);
297 
302  std::vector<std::shared_ptr<const Joint>> getJoints() const;
303 
308  std::vector<std::shared_ptr<const Joint>> getActiveJoints() const;
309 
315  bool changeJointOrigin(const std::string& name, const Eigen::Isometry3d& new_origin);
316 
323  bool changeJointLimits(const std::string& name, const JointLimits& limits);
324 
331  bool changeJointPositionLimits(const std::string& name, double lower, double upper);
332 
339  bool changeJointVelocityLimits(const std::string& name, double limit);
340 
347  bool changeJointAccelerationLimits(const std::string& name, double limit);
348 
355  bool changeJointJerkLimits(const std::string& name, double limit);
356 
362  std::shared_ptr<const JointLimits> getJointLimits(const std::string& name);
363 
368  void setAllowedCollisionMatrix(std::shared_ptr<tesseract_common::AllowedCollisionMatrix> acm);
369 
376  void addAllowedCollision(const std::string& link_name1, const std::string& link_name2, const std::string& reason);
377 
383  void removeAllowedCollision(const std::string& link_name1, const std::string& link_name2);
384 
389  void removeAllowedCollision(const std::string& link_name);
390 
392  void clearAllowedCollisions();
393 
400  bool isCollisionAllowed(const std::string& link_name1, const std::string& link_name2) const;
401 
406  std::shared_ptr<const tesseract_common::AllowedCollisionMatrix> getAllowedCollisionMatrix() const;
407 
412  std::shared_ptr<tesseract_common::AllowedCollisionMatrix> getAllowedCollisionMatrix();
413 
419  std::shared_ptr<const Link> getSourceLink(const std::string& joint_name) const;
420 
426  std::shared_ptr<const Link> getTargetLink(const std::string& joint_name) const;
427 
437  std::vector<std::shared_ptr<const Joint>> getInboundJoints(const std::string& link_name) const;
438 
448  std::vector<std::shared_ptr<const Joint>> getOutboundJoints(const std::string& link_name) const;
449 
454  bool isAcyclic() const;
455 
460  bool isTree() const;
461 
466  bool isEmpty() const;
467 
473  std::vector<std::string> getAdjacentLinkNames(const std::string& name) const;
474 
480  std::vector<std::string> getInvAdjacentLinkNames(const std::string& name) const;
481 
487  std::vector<std::string> getLinkChildrenNames(const std::string& name) const;
488 
494  std::vector<std::string> getJointChildrenNames(const std::string& name) const;
495 
502  std::unordered_map<std::string, std::string> getAdjacencyMap(const std::vector<std::string>& link_names) const;
503 
510  std::vector<std::string> getJointChildrenNames(const std::vector<std::string>& names) const;
511 
516  void saveDOT(const std::string& path) const;
517 
524  ShortestPath getShortestPath(const std::string& root, const std::string& tip) const;
525 
526 #ifndef SWIG
527 
532  Vertex getVertex(const std::string& name) const;
533 
539  Edge getEdge(const std::string& name) const;
540 #endif
541 
551  bool insertSceneGraph(const tesseract_scene_graph::SceneGraph& scene_graph, const std::string& prefix = "");
552 
563  bool insertSceneGraph(const tesseract_scene_graph::SceneGraph& scene_graph,
564  const tesseract_scene_graph::Joint& joint,
565  const std::string& prefix = "");
566 
567  bool operator==(const SceneGraph& rhs) const;
568  bool operator!=(const SceneGraph& rhs) const;
569 
570 protected:
580  bool addLinkHelper(const std::shared_ptr<Link>& link_ptr, bool replace_allowed = false);
581 
588  bool addJointHelper(const std::shared_ptr<Joint>& joint_ptr);
589 
590 private:
591  std::unordered_map<std::string, std::pair<std::shared_ptr<Link>, Vertex>> link_map_;
592  std::unordered_map<std::string, std::pair<std::shared_ptr<Joint>, Edge>> joint_map_;
593  std::shared_ptr<tesseract_common::AllowedCollisionMatrix> acm_;
594 
597 
606  std::vector<std::string> getLinkChildrenHelper(Vertex start_vertex) const;
607 
610  template <class Archive>
611  void save(Archive& ar, const unsigned int version) const; // NOLINT
612 
613  template <class Archive>
614  void load(Archive& ar, const unsigned int version); // NOLINT
615 
616  template <class Archive>
617  void serialize(Archive& ar, const unsigned int version); // NOLINT
618 };
619 
620 std::ostream& operator<<(std::ostream& os, const ShortestPath& path);
621 
622 } // namespace tesseract_scene_graph
623 
624 BOOST_CLASS_EXPORT_KEY(tesseract_scene_graph::SceneGraph)
625 
626 #endif // TESSERACT_SCENE_GRAPH_GRAPH_H
tesseract_scene_graph::SceneGraph::link_map_
std::unordered_map< std::string, std::pair< std::shared_ptr< Link >, Vertex > > link_map_
Definition: graph.h:591
tesseract_scene_graph::Graph
boost::adjacency_list< boost::listS, boost::listS, boost::bidirectionalS, VertexProperty, EdgeProperty, GraphProperty > Graph
Definition: graph.h:108
boost::edge_joint
@ edge_joint
Definition: graph.h:65
boost::vertex_link_collision_enabled_t
vertex_link_collision_enabled_t
Definition: graph.h:59
tesseract_scene_graph::SceneGraph::getLinkChildrenHelper
std::vector< std::string > getLinkChildrenHelper(Vertex start_vertex) const
Get the children of a vertex starting with start_vertex.
Definition: graph.cpp:1273
tesseract_scene_graph::SceneGraph::save
void save(Archive &ar, const unsigned int version) const
Definition: graph.cpp:1322
tesseract_scene_graph::SceneGraph::setRoot
bool setRoot(const std::string &name)
Sets the root link name (aka. World Coordinate Frame)
Definition: graph.cpp:256
tesseract_scene_graph::GraphProperty
boost::property< boost::graph_name_t, std::string, boost::property< boost::graph_root_t, std::string > > GraphProperty
Defines the boost graph property.
Definition: graph.h:91
tesseract_scene_graph::SceneGraph::getLinkCollisionEnabled
bool getLinkCollisionEnabled(const std::string &name) const
Get whether a link should be considered during collision checking.
Definition: graph.cpp:453
tesseract_scene_graph::SceneGraph::Vertex
SceneGraph::vertex_descriptor Vertex
Definition: graph.h:132
tesseract_scene_graph::SceneGraph::clone
SceneGraph::UPtr clone() const
Clone the scene graph.
Definition: graph.cpp:216
tesseract_scene_graph::SceneGraph::saveDOT
void saveDOT(const std::string &path) const
Saves Graph as Graph Description Language (DOT)
Definition: graph.cpp:977
tesseract_scene_graph::SceneGraph::setLinkCollisionEnabled
void setLinkCollisionEnabled(const std::string &name, bool enabled)
Set whether a link should be considered during collision checking.
Definition: graph.cpp:446
tesseract_scene_graph::SceneGraph::changeJointVelocityLimits
bool changeJointVelocityLimits(const std::string &name, double limit)
Changes the velocity limits associated with a joint.
Definition: graph.cpp:684
tesseract_scene_graph::SceneGraph::getLinks
std::vector< std::shared_ptr< const Link > > getLinks() const
Get a vector links in the scene graph.
Definition: graph.cpp:341
tesseract_scene_graph::SceneGraph::access
friend class boost::serialization::access
Definition: graph.h:608
tesseract_scene_graph::SceneGraph::changeJointLimits
bool changeJointLimits(const std::string &name, const JointLimits &limits)
Changes the limits of a joint. The JointLimits::Ptr remains the same, but the values passed in are as...
Definition: graph.cpp:631
tesseract_scene_graph::SceneGraph::isTree
bool isTree() const
Determine if the graph is a tree.
Definition: graph.cpp:879
tesseract_scene_graph::SceneGraph::changeJointPositionLimits
bool changeJointPositionLimits(const std::string &name, double lower, double upper)
Changes the position limits associated with a joint.
Definition: graph.cpp:661
tesseract_scene_graph::ShortestPath::active_joints
std::vector< std::string > active_joints
A list of active joints along the shortest path.
Definition: graph.h:122
tesseract_scene_graph::SceneGraph::getJoints
std::vector< std::shared_ptr< const Joint > > getJoints() const
Get a vector of joints in the scene graph.
Definition: graph.cpp:585
boost::vertex_link
@ vertex_link
Definition: graph.h:53
boost::vertex_link_collision_enabled
@ vertex_link_collision_enabled
Definition: graph.h:61
tesseract_scene_graph::SceneGraph::getAllowedCollisionMatrix
std::shared_ptr< const tesseract_common::AllowedCollisionMatrix > getAllowedCollisionMatrix() const
Get the allowed collision matrix.
Definition: graph.cpp:798
tesseract_scene_graph::SceneGraph::addAllowedCollision
void addAllowedCollision(const std::string &link_name1, const std::string &link_name2, const std::string &reason)
Disable collision between two collision objects.
Definition: graph.cpp:777
tesseract_scene_graph::SceneGraph::getJointLimits
std::shared_ptr< const JointLimits > getJointLimits(const std::string &name)
Gets the limits of the joint specified by name.
Definition: graph.cpp:758
tesseract_scene_graph::SceneGraph::Edge
SceneGraph::edge_descriptor Edge
Definition: graph.h:133
boost
TESSERACT_COMMON_IGNORE_WARNINGS_PUSH
#define TESSERACT_COMMON_IGNORE_WARNINGS_PUSH
tesseract_scene_graph::EdgeProperty
boost::property< boost::edge_joint_t, std::shared_ptr< Joint >, boost::property< boost::edge_weight_t, double > > EdgeProperty
EdgeProperty.
Definition: graph.h:105
tesseract_scene_graph::SceneGraph::moveJoint
bool moveJoint(const std::string &name, const std::string &parent_link)
Move joint to new parent link.
Definition: graph.cpp:557
tesseract_scene_graph::SceneGraph
Definition: graph.h:125
tesseract_common::Serialization
tesseract_scene_graph::SceneGraph::getOutboundJoints
std::vector< std::shared_ptr< const Joint > > getOutboundJoints(const std::string &link_name) const
Get outbound joints for a link.
Definition: graph.cpp:839
tesseract_scene_graph::SceneGraph::operator==
bool operator==(const SceneGraph &rhs) const
Definition: graph.cpp:1299
tesseract_scene_graph::SceneGraph::addLink
bool addLink(const Link &link, bool replace_allowed=false)
Adds a link to the graph.
Definition: graph.cpp:273
tesseract_scene_graph::SceneGraph::addJointHelper
bool addJointHelper(const std::shared_ptr< Joint > &joint_ptr)
Adds joint to the graph.
Definition: graph.cpp:466
boost::BOOST_INSTALL_PROPERTY
BOOST_INSTALL_PROPERTY(vertex, link)
tesseract_scene_graph::SceneGraph::UPtr
std::unique_ptr< SceneGraph > UPtr
Definition: graph.h:137
tesseract_scene_graph::SceneGraph::getAdjacentLinkNames
std::vector< std::string > getAdjacentLinkNames(const std::string &name) const
Get a vector of adjacent link names provided a link name.
Definition: graph.cpp:897
tesseract_scene_graph::SceneGraph::getName
const std::string & getName() const
Sets the graph name.
Definition: graph.cpp:251
tesseract_scene_graph::SceneGraph::getInvAdjacentLinkNames
std::vector< std::string > getInvAdjacentLinkNames(const std::string &name) const
Geta a vectpr pf inverse adjacent link names provided a link name.
Definition: graph.cpp:907
tesseract_scene_graph::SceneGraph::removeAllowedCollision
void removeAllowedCollision(const std::string &link_name1, const std::string &link_name2)
Remove disabled collision pair from allowed collision matrix.
Definition: graph.cpp:784
tesseract_scene_graph::SceneGraph::ConstPtr
std::shared_ptr< const SceneGraph > ConstPtr
Definition: graph.h:136
tesseract_scene_graph::SceneGraph::isCollisionAllowed
bool isCollisionAllowed(const std::string &link_name1, const std::string &link_name2) const
Check if two links are allowed to be in collision.
Definition: graph.cpp:793
tesseract_scene_graph::SceneGraph::removeJoint
bool removeJoint(const std::string &name, bool recursive=false)
Removes a joint from the graph.
Definition: graph.cpp:534
boost::vertex_link_t
vertex_link_t
Definition: graph.h:51
tesseract_scene_graph::SceneGraph::acm_
std::shared_ptr< tesseract_common::AllowedCollisionMatrix > acm_
Definition: graph.h:593
boost::vertex_link_visible_t
vertex_link_visible_t
Definition: graph.h:55
tesseract_scene_graph::SceneGraph::changeJointOrigin
bool changeJointOrigin(const std::string &name, const Eigen::Isometry3d &new_origin)
Changes the "origin" transform of the joint and recomputes the associated edge.
Definition: graph.cpp:608
tesseract_scene_graph::SceneGraph::moveLink
bool moveLink(const Joint &joint)
Move link defined by provided joint This deletes all inbound joints on the parent link defined by the...
Definition: graph.cpp:408
tesseract_scene_graph::VertexProperty
boost::property< boost::vertex_link_t, std::shared_ptr< Link >, boost::property< boost::vertex_link_visible_t, bool, boost::property< boost::vertex_link_collision_enabled_t, bool > >> VertexProperty
Defines the boost graph vertex property.
Definition: graph.h:97
boost::edge_joint_t
edge_joint_t
Definition: graph.h:63
tesseract_scene_graph::SceneGraph::getEdge
Edge getEdge(const std::string &name) const
Get the graph edge by name.
Definition: graph.cpp:1118
tesseract_scene_graph::SceneGraph::getShortestPath
ShortestPath getShortestPath(const std::string &root, const std::string &tip) const
Get the shortest path between two links.
Definition: graph.cpp:1008
tesseract_scene_graph::SceneGraph::addJoint
bool addJoint(const Joint &joint)
Adds joint to the graph.
Definition: graph.cpp:460
tesseract_scene_graph::SceneGraph::setAllowedCollisionMatrix
void setAllowedCollisionMatrix(std::shared_ptr< tesseract_common::AllowedCollisionMatrix > acm)
Set the allowed collision matrix.
Definition: graph.cpp:772
tesseract_scene_graph::SceneGraph::getInboundJoints
std::vector< std::shared_ptr< const Joint > > getInboundJoints(const std::string &link_name) const
Get inbound joints for a link.
Definition: graph.cpp:819
tesseract_scene_graph::SceneGraph::~SceneGraph
~SceneGraph()=default
tesseract_scene_graph::SceneGraph::getLinkVisibility
bool getLinkVisibility(const std::string &name) const
Get a given links visibility setting.
Definition: graph.cpp:439
tesseract_scene_graph::SceneGraph::getSourceLink
std::shared_ptr< const Link > getSourceLink(const std::string &joint_name) const
Get the source link (parent link) for a joint.
Definition: graph.cpp:805
boost::graph_root
@ graph_root
Definition: graph.h:69
tesseract_scene_graph::SceneGraph::getJointChildrenNames
std::vector< std::string > getJointChildrenNames(const std::string &name) const
Get all children link names for a given joint name.
Definition: graph.cpp:927
boost::serialization
tesseract_scene_graph::SceneGraph::insertSceneGraph
bool insertSceneGraph(const tesseract_scene_graph::SceneGraph &scene_graph, const std::string &prefix="")
Merge a graph into the current graph.
Definition: graph.cpp:1158
tesseract_scene_graph::SceneGraph::load
void load(Archive &ar, const unsigned int version)
Definition: graph.cpp:1330
tesseract_scene_graph::SceneGraph::getActiveJoints
std::vector< std::shared_ptr< const Joint > > getActiveJoints() const
Get a vector of active joints in the scene graph.
Definition: graph.cpp:595
tesseract_scene_graph::SceneGraph::getTargetLink
std::shared_ptr< const Link > getTargetLink(const std::string &joint_name) const
Get the target link (child link) for a joint.
Definition: graph.cpp:812
tesseract_scene_graph::SceneGraph::ConstUPtr
std::unique_ptr< const SceneGraph > ConstUPtr
Definition: graph.h:138
tesseract_scene_graph::ShortestPath
Holds the shortest path information.
Definition: graph.h:113
tesseract_scene_graph::JointLimits
Definition: joint.h:92
tesseract_scene_graph::ShortestPath::joints
std::vector< std::string > joints
A list of joints along the shortest path.
Definition: graph.h:119
fwd.h
boost::graph_root_t
graph_root_t
Definition: graph.h:67
boost::vertex_link_visible
@ vertex_link_visible
Definition: graph.h:57
tesseract_scene_graph::SceneGraph::addLinkHelper
bool addLinkHelper(const std::shared_ptr< Link > &link_ptr, bool replace_allowed=false)
Adds a link to the graph.
Definition: graph.cpp:302
tesseract_scene_graph::Joint
Definition: joint.h:272
tesseract_scene_graph::SceneGraph::clearAllowedCollisions
void clearAllowedCollisions()
Remove all allowed collisions.
Definition: graph.cpp:791
tesseract_scene_graph::SceneGraph::isEmpty
bool isEmpty() const
Check if the graph is empty.
Definition: graph.cpp:859
TESSERACT_COMMON_IGNORE_WARNINGS_POP
#define TESSERACT_COMMON_IGNORE_WARNINGS_POP
tesseract_scene_graph::SceneGraph::setName
void setName(const std::string &name)
Sets the graph name.
Definition: graph.cpp:246
tesseract_scene_graph::SceneGraph::operator!=
bool operator!=(const SceneGraph &rhs) const
Definition: graph.cpp:1319
tesseract_scene_graph::SceneGraph::getRoot
const std::string & getRoot() const
Gets the root link name (aka. World Coordinate Frame)
Definition: graph.cpp:268
tesseract_scene_graph::SceneGraph::getJoint
std::shared_ptr< const Joint > getJoint(const std::string &name) const
Get a joint in the graph.
Definition: graph.cpp:525
tesseract_scene_graph::operator<<
std::ostream & operator<<(std::ostream &os, const ShortestPath &path)
Definition: graph.cpp:1345
tesseract_scene_graph::SceneGraph::changeJointJerkLimits
bool changeJointJerkLimits(const std::string &name, double limit)
Changes the jerk limits associated with a joint.
Definition: graph.cpp:732
tesseract_scene_graph::SceneGraph::getLeafLinks
std::vector< std::shared_ptr< const Link > > getLeafLinks() const
Get a vector leaf links in the scene graph.
Definition: graph.cpp:351
tesseract_scene_graph::SceneGraph::removeLink
bool removeLink(const std::string &name, bool recursive=false)
Removes a link from the graph.
Definition: graph.cpp:364
tesseract_scene_graph::SceneGraph::joint_map_
std::unordered_map< std::string, std::pair< std::shared_ptr< Joint >, Edge > > joint_map_
Definition: graph.h:592
tesseract_scene_graph::SceneGraph::rebuildLinkAndJointMaps
void rebuildLinkAndJointMaps()
The rebuild the link and joint map by extraction information from the graph.
Definition: graph.cpp:1249
tesseract_scene_graph::SceneGraph::setLinkVisibility
void setLinkVisibility(const std::string &name, bool visibility)
Set a links visibility.
Definition: graph.cpp:432
tesseract_scene_graph::SceneGraph::serialize
void serialize(Archive &ar, const unsigned int version)
Definition: graph.cpp:1340
tesseract_scene_graph::SceneGraph::changeJointAccelerationLimits
bool changeJointAccelerationLimits(const std::string &name, double limit)
Changes the acceleration limits associated with a joint.
Definition: graph.cpp:705
tesseract_scene_graph::SceneGraph::getLink
std::shared_ptr< const Link > getLink(const std::string &name) const
Get a link in the graph.
Definition: graph.cpp:332
tesseract_scene_graph::ShortestPath::links
std::vector< std::string > links
a list of links along the shortest path
Definition: graph.h:116
tesseract_scene_graph::SceneGraph::getAdjacencyMap
std::unordered_map< std::string, std::string > getAdjacencyMap(const std::vector< std::string > &link_names) const
Create mapping between links in the scene to the provided links if they are directly affected if the ...
Definition: graph.cpp:948
tesseract_scene_graph::SceneGraph::getVertex
Vertex getVertex(const std::string &name) const
Get the graph vertex by name.
Definition: graph.cpp:1109
macros.h
tesseract_scene_graph::SceneGraph::Ptr
std::shared_ptr< SceneGraph > Ptr
Definition: graph.h:135
tesseract_scene_graph
Definition: fwd.h:32
tesseract_scene_graph::SceneGraph::isAcyclic
bool isAcyclic() const
Determine if the graph contains cycles.
Definition: graph.cpp:861
tesseract_scene_graph::SceneGraph::SceneGraph
SceneGraph(const std::string &name="")
Definition: graph.cpp:189
tesseract_scene_graph::SceneGraph::operator=
SceneGraph & operator=(const SceneGraph &other)=delete
tesseract_scene_graph::SceneGraph::clear
void clear()
Clear the scene graph.
Definition: graph.cpp:238
tesseract_scene_graph::SceneGraph::getLinkChildrenNames
std::vector< std::string > getLinkChildrenNames(const std::string &name) const
Get all children for a given link name.
Definition: graph.cpp:917


tesseract_scene_graph
Author(s): Levi Armstrong
autogenerated on Sun May 18 2025 03:01:49