23 #include <ignition/math/SphericalCoordinates.hh> 
   24 #include <ignition/math/Vector3.hh> 
   25 #include <ignition/utils/ImplPtr.hh> 
   41   inline namespace SDF_VERSION_NAMESPACE {
 
   53   struct PoseRelativeToGraph;
 
   54   struct FrameAttachedToGraph;
 
   55   template <
typename T> 
class ScopedGraph;
 
   83     public: 
Errors ValidateGraphs() 
const;
 
   87     public: std::string Name() 
const;
 
   91     public: 
void SetName(
const std::string &_name);
 
   97     public: std::string AudioDevice() 
const;
 
  103     public: 
void SetAudioDevice(
const std::string &_device);
 
  109     public: ignition::math::Vector3d WindLinearVelocity() 
const;
 
  115     public: 
void SetWindLinearVelocity(
const ignition::math::Vector3d &_wind);
 
  122     public: ignition::math::Vector3d Gravity() 
const;
 
  127     public: 
void SetGravity(
const ignition::math::Vector3d &_gravity);
 
  135     public: ignition::math::Vector3d MagneticField() 
const;
 
  143     public: 
void SetMagneticField(
const ignition::math::Vector3d &_mag);
 
  147     public: 
const ignition::math::SphericalCoordinates *
 
  148         SphericalCoordinates() 
const;
 
  152     public: 
void SetSphericalCoordinates(
 
  153         const ignition::math::SphericalCoordinates &_coord);
 
  160     public: uint64_t ModelCount() 
const;
 
  168     public: 
const Model *ModelByIndex(
const uint64_t _index) 
const;
 
  176     public: 
Model *ModelByIndex(uint64_t _index);
 
  185     public: 
const Model *ModelByName(
const std::string &_name) 
const;
 
  194     public: 
Model *ModelByName(
const std::string &_name);
 
  201     public: 
bool ModelNameExists(
const std::string &_name) 
const;
 
  207     public: 
bool AddModel(
const Model &_model);
 
  213     public: 
bool AddActor(
const Actor &_actor);
 
  219     public: 
bool AddLight(
const Light &_light);
 
  225     public: 
bool AddPhysics(
const Physics &_physics);
 
  231     public: 
bool AddFrame(
const Frame &_frame);
 
  234     public: 
void ClearModels();
 
  237     public: 
void ClearActors();
 
  240     public: 
void ClearLights();
 
  243     public: 
void ClearPhysics();
 
  246     public: 
void ClearFrames();
 
  250     public: uint64_t ActorCount() 
const;
 
  257     public: 
const Actor *ActorByIndex(
const uint64_t _index) 
const;
 
  264     public: 
Actor *ActorByIndex(uint64_t _index);
 
  269     public: 
bool ActorNameExists(
const std::string &_name) 
const;
 
  276     public: uint64_t FrameCount() 
const;
 
  285     public: 
const Frame *FrameByIndex(
const uint64_t _index) 
const;
 
  294     public: 
Frame *FrameByIndex(uint64_t _index);
 
  302     public: 
const Frame *FrameByName(
const std::string &_name) 
const;
 
  310     public: 
Frame *FrameByName(
const std::string &_name);
 
  317     public: 
bool FrameNameExists(
const std::string &_name) 
const;
 
  321     public: uint64_t LightCount() 
const;
 
  328     public: 
const Light *LightByIndex(
const uint64_t _index) 
const;
 
  335     public: 
Light *LightByIndex(uint64_t _index);
 
  340     public: 
bool LightNameExists(
const std::string &_name) 
const;
 
  360     public: 
void SetGui(
const sdf::Gui &_gui);
 
  370     public: 
void SetScene(
const sdf::Scene &_scene);
 
  380     public: uint64_t PhysicsCount() 
const;
 
  388     public: 
const Physics *PhysicsByIndex(
const uint64_t _index) 
const;
 
  396     public: 
Physics *PhysicsByIndex(uint64_t _index);
 
  400     public: 
const Physics *PhysicsDefault() 
const;
 
  405     public: 
bool PhysicsNameExists(
const std::string &_name) 
const;
 
  411     public: uint64_t InterfaceModelCount() 
const;
 
  419     public: std::shared_ptr<const InterfaceModel> InterfaceModelByIndex(
 
  420                 const uint64_t _index) 
const;
 
  429     public: 
const NestedInclude* InterfaceModelNestedIncludeByIndex(
 
  430                 const uint64_t _index) 
const;
 
  439         const OutputConfig &_config = OutputConfig::GlobalConfig()) 
const;
 
  452     public: 
void ClearPlugins();
 
  456     public: 
void AddPlugin(
const Plugin &_plugin);
 
  462     private: 
void SetPoseRelativeToGraph(
 
  469     private: 
void SetFrameAttachedToGraph(
 
  477     IGN_UTILS_IMPL_PTR(dataPtr)