23 #include <ignition/math/Pose3.hh> 
   24 #include <ignition/utils/ImplPtr.hh> 
   28 #include "sdf/sdf_config.h" 
   34   inline namespace SDF_VERSION_NAMESPACE {
 
   44   struct PoseRelativeToGraph;
 
   45   struct FrameAttachedToGraph;
 
   46   template <
typename T> 
class ScopedGraph;
 
   74     public: 
Errors ValidateGraphs() 
const;
 
   79     public: std::string Name() 
const;
 
   84     public: 
void SetName(
const std::string &_name);
 
   90     public: 
bool Static() 
const;
 
   96     public: 
void SetStatic(
bool _static);
 
  103     public: 
bool SelfCollide() 
const;
 
  109     public: 
void SetSelfCollide(
bool _selfCollide);
 
  115     public: 
bool AllowAutoDisable() 
const;
 
  121     public: 
void SetAllowAutoDisable(
bool _allowAutoDisable);
 
  127     public: 
bool EnableWind() 
const;
 
  132     public: 
void SetEnableWind(
bool _enableWind);
 
  139     public: uint64_t LinkCount() 
const;
 
  146     public: 
const Link *LinkByIndex(
const uint64_t _index) 
const;
 
  153     public: 
const Link *LinkByName(
const std::string &_name) 
const;
 
  160     public: 
bool LinkNameExists(
const std::string &_name) 
const;
 
  167     public: uint64_t JointCount() 
const;
 
  174     public: 
const Joint *JointByIndex(
const uint64_t _index) 
const;
 
  181     public: 
bool JointNameExists(
const std::string &_name) 
const;
 
  190     public: 
const Joint *JointByName(
const std::string &_name) 
const;
 
  197     public: uint64_t FrameCount() 
const;
 
  206     public: 
const Frame *FrameByIndex(
const uint64_t _index) 
const;
 
  214     public: 
const Frame *FrameByName(
const std::string &_name) 
const;
 
  221     public: 
bool FrameNameExists(
const std::string &_name) 
const;
 
  228     public: uint64_t ModelCount() 
const;
 
  236     public: 
const Model *ModelByIndex(
const uint64_t _index) 
const;
 
  243     public: 
bool ModelNameExists(
const std::string &_name) 
const;
 
  252     public: 
const Model *ModelByName(
const std::string &_name) 
const;
 
  259     public: 
const ignition::math::Pose3d &RawPose() 
const;
 
  264     public: 
void SetRawPose(
const ignition::math::Pose3d &_pose);
 
  268     public: 
const Link *CanonicalLink() 
const;
 
  274     public: 
const std::string &CanonicalLinkName() 
const;
 
  280     public: 
void SetCanonicalLinkName(
const std::string &_canonicalLink);
 
  286     public: 
const std::string &PoseRelativeTo() 
const;
 
  292     public: 
void SetPoseRelativeTo(
const std::string &_frame);
 
  307     public: 
const std::string &PlacementFrameName() 
const;
 
  312     public: 
void SetPlacementFrameName(
const std::string &_name);
 
  321     public: std::pair<const Link *, std::string> CanonicalLinkAndRelativeName()
 
  328     public: uint64_t InterfaceModelCount() 
const;
 
  336     public: std::shared_ptr<const InterfaceModel> InterfaceModelByIndex(
 
  337                 const uint64_t _index) 
const;
 
  346     public: 
const NestedInclude *InterfaceModelNestedIncludeByIndex(
 
  347                 const uint64_t _index) 
const;
 
  354     private: 
void SetPoseRelativeToGraph(
 
  362     private: 
void SetFrameAttachedToGraph(
 
  372     IGN_UTILS_IMPL_PTR(dataPtr)