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     GZ_UTILS_IMPL_PTR(dataPtr)