24 #include <gz/math/Pose3.hh>
25 #include <gz/utils/ImplPtr.hh>
38 inline namespace SDF_VERSION_NAMESPACE {
48 struct PoseRelativeToGraph;
49 struct FrameAttachedToGraph;
50 template <
typename T>
class ScopedGraph;
80 public:
Errors ValidateGraphs()
const;
85 public: std::string Name()
const;
90 public:
void SetName(
const std::string &_name);
96 public:
bool Static()
const;
102 public:
void SetStatic(
bool _static);
109 public:
bool SelfCollide()
const;
115 public:
void SetSelfCollide(
bool _selfCollide);
121 public:
bool AllowAutoDisable()
const;
127 public:
void SetAllowAutoDisable(
bool _allowAutoDisable);
133 public:
bool EnableWind()
const;
138 public:
void SetEnableWind(
bool _enableWind);
145 public: uint64_t LinkCount()
const;
152 public:
const Link *LinkByIndex(
const uint64_t _index)
const;
160 public:
Link *LinkByIndex(uint64_t _index);
167 public:
const Link *LinkByName(
const std::string &_name)
const;
174 public:
Link *LinkByName(
const std::string &_name);
181 public:
bool LinkNameExists(
const std::string &_name)
const;
188 public: uint64_t JointCount()
const;
195 public:
const Joint *JointByIndex(
const uint64_t _index)
const;
203 public:
Joint *JointByIndex(uint64_t _index);
210 public:
bool JointNameExists(
const std::string &_name)
const;
219 public:
const Joint *JointByName(
const std::string &_name)
const;
228 public:
Joint *JointByName(
const std::string &_name);
235 public: uint64_t FrameCount()
const;
244 public:
const Frame *FrameByIndex(
const uint64_t _index)
const;
253 public:
Frame *FrameByIndex(uint64_t _index);
261 public:
const Frame *FrameByName(
const std::string &_name)
const;
269 public:
Frame *FrameByName(
const std::string &_name);
276 public:
bool FrameNameExists(
const std::string &_name)
const;
283 public: uint64_t ModelCount()
const;
291 public:
const Model *ModelByIndex(
const uint64_t _index)
const;
299 public:
Model *ModelByIndex(uint64_t _index);
306 public:
bool ModelNameExists(
const std::string &_name)
const;
315 public:
const Model *ModelByName(
const std::string &_name)
const;
324 public:
Model *ModelByName(
const std::string &_name);
331 public:
const gz::math::Pose3d &RawPose()
const;
336 public:
void SetRawPose(
const gz::math::Pose3d &_pose);
340 public:
const Link *CanonicalLink()
const;
346 public:
const std::string &CanonicalLinkName()
const;
352 public:
void SetCanonicalLinkName(
const std::string &_canonicalLink);
358 public:
const std::string &PoseRelativeTo()
const;
364 public:
void SetPoseRelativeTo(
const std::string &_frame);
379 public:
const std::string &PlacementFrameName()
const;
384 public:
void SetPlacementFrameName(
const std::string &_name);
393 public: std::pair<const Link *, std::string> CanonicalLinkAndRelativeName()
400 public: uint64_t InterfaceModelCount()
const;
408 public: std::shared_ptr<const InterfaceModel> InterfaceModelByIndex(
409 const uint64_t _index)
const;
418 public:
const NestedInclude *InterfaceModelNestedIncludeByIndex(
419 const uint64_t _index)
const;
447 public:
bool NameExistsInFrameAttachedToGraph(
448 const std::string &_name)
const;
454 public:
bool AddLink(
const Link &_link);
460 public:
bool AddJoint(
const Joint &_joint);
466 public:
bool AddModel(
const Model &_model);
472 public:
bool AddFrame(
const Frame &_frame);
475 public:
void ClearLinks();
478 public:
void ClearJoints();
481 public:
void ClearModels();
484 public:
void ClearFrames();
488 public: std::string Uri()
const;
492 public:
void SetUri(
const std::string &_uri);
505 public:
void ClearPlugins();
509 public:
void AddPlugin(
const Plugin &_plugin);
516 private:
void SetPoseRelativeToGraph(
524 private:
void SetFrameAttachedToGraph(
529 private:
const std::vector<std::pair<std::optional<sdf::NestedInclude>,
539 friend struct ModelWrapper;
542 IGN_UTILS_IMPL_PTR(dataPtr)