17 #ifndef GZ_RENDERING_SCENE_HH_
18 #define GZ_RENDERING_SCENE_HH_
24 #include <gz/common/Material.hh>
25 #include <gz/common/Mesh.hh>
26 #include <gz/common/Time.hh>
28 #include <gz/math/Color.hh>
30 #include "gz/rendering/config.hh"
35 #include "gz/rendering/Export.hh"
41 inline namespace IGNITION_RENDERING_VERSION_NAMESPACE {
49 class IGNITION_RENDERING_VISIBLE
Scene
55 public:
virtual void Load() = 0;
58 public:
virtual void Init() = 0;
61 public:
virtual void Fini() = 0;
69 public:
virtual unsigned int Id()
const = 0;
81 public:
virtual common::Time IGN_DEPRECATED(4) SimTime() const = 0;
85 public: virtual
std::chrono::steady_clock::duration
90 public: virtual
void IGN_DEPRECATED(4)
91 SetSimTime(const common::Time &_time) = 0;
95 public: virtual
void SetTime(
96 const
std::chrono::steady_clock::duration &_time) = 0;
110 const math::
Vector2i &_mousePos) = 0;
114 public: virtual math::Color AmbientLight() const = 0;
121 public: virtual
void SetAmbientLight(
double _r,
double _g,
double _b,
122 double _a = 1.0) = 0;
126 public: virtual
void SetAmbientLight(const math::Color &_color) = 0;
130 public: virtual math::Color BackgroundColor() const = 0;
137 public: virtual
void SetBackgroundColor(
double _r,
double _g,
double _b,
138 double _a = 1.0) = 0;
142 public: virtual
void SetBackgroundColor(const math::Color &_color) = 0;
146 public: virtual
bool IsGradientBackgroundColor() const = 0;
151 public: virtual
std::array<math::Color, 4>
152 GradientBackgroundColor() const = 0;
167 public: virtual
void SetGradientBackgroundColor(
168 const
std::array<math::Color, 4> &_colors) = 0;
173 public: virtual
void RemoveGradientBackgroundColor() = 0;
183 public: virtual
void SetBackgroundMaterial(
MaterialPtr _material) = 0;
188 public: virtual
unsigned int NodeCount() const = 0;
199 public: virtual
bool HasNodeId(
unsigned int _id) const = 0;
205 public: virtual
bool HasNodeName(const
std::
string &_name) const = 0;
211 public: virtual
NodePtr NodeById(
unsigned int _id) const = 0;
217 public: virtual
NodePtr NodeByName(const
std::
string &_name) const = 0;
223 public: virtual
NodePtr NodeByIndex(
unsigned int _index) const = 0;
232 public: virtual
void DestroyNode(
NodePtr _node,
233 bool _recursive = false) = 0;
239 public: virtual
void DestroyNodeById(
unsigned int _id) = 0;
245 public: virtual
void DestroyNodeByName(const
std::
string &_name) = 0;
251 public: virtual
void DestroyNodeByIndex(
unsigned int _index) = 0;
254 public: virtual
void DestroyNodes() = 0;
259 public: virtual
unsigned int LightCount() const = 0;
270 public: virtual
bool HasLightId(
unsigned int _id) const = 0;
276 public: virtual
bool HasLightName(const
std::
string &_name) const = 0;
282 public: virtual
LightPtr LightById(
unsigned int _id) const = 0;
289 const
std::
string &_name) const = 0;
295 public: virtual
LightPtr LightByIndex(
unsigned int _index) const = 0;
305 bool _recursive = false) = 0;
311 public: virtual
void DestroyLightById(
unsigned int _id) = 0;
317 public: virtual
void DestroyLightByName(const
std::
string &_name) = 0;
323 public: virtual
void DestroyLightByIndex(
unsigned int _index) = 0;
326 public: virtual
void DestroyLights() = 0;
331 public: virtual
unsigned int SensorCount() const = 0;
342 public: virtual
bool HasSensorId(
unsigned int _id) const = 0;
348 public: virtual
bool HasSensorName(const
std::
string &_name) const = 0;
354 public: virtual
SensorPtr SensorById(
unsigned int _id) const = 0;
361 const
std::
string &_name) const = 0;
367 public: virtual
SensorPtr SensorByIndex(
unsigned int _index) const = 0;
377 bool _recursive = false) = 0;
383 public: virtual
void DestroySensorById(
unsigned int _id) = 0;
389 public: virtual
void DestroySensorByName(const
std::
string &_name) = 0;
395 public: virtual
void DestroySensorByIndex(
unsigned int _index) = 0;
398 public: virtual
void DestroySensors() = 0;
403 public: virtual
unsigned int VisualCount() const = 0;
414 public: virtual
bool HasVisualId(
unsigned int _id) const = 0;
420 public: virtual
bool HasVisualName(const
std::
string &_name) const = 0;
426 public: virtual
VisualPtr VisualById(
unsigned int _id) const = 0;
433 const
std::
string &_name) const = 0;
439 public: virtual
VisualPtr VisualByIndex(
unsigned int _index) const = 0;
450 bool _recursive = false) = 0;
456 public: virtual
void DestroyVisualById(
unsigned int _id) = 0;
462 public: virtual
void DestroyVisualByName(const
std::
string &_name) = 0;
468 public: virtual
void DestroyVisualByIndex(
unsigned int _index) = 0;
471 public: virtual
void DestroyVisuals() = 0;
476 public: virtual
bool MaterialRegistered(
477 const
std::
string &_name) const = 0;
484 const
std::
string &_name) const = 0;
490 public: virtual
void RegisterMaterial(const
std::
string &_name,
496 public: virtual
void UnregisterMaterial(const
std::
string &_name) = 0;
499 public: virtual
void UnregisterMaterials() = 0;
506 public: virtual
void DestroyMaterials() = 0;
519 unsigned int _id) = 0;
527 const
std::
string &_name) = 0;
535 unsigned int _id, const
std::
string &_name) = 0;
548 unsigned int _id) = 0;
556 const
std::
string &_name) = 0;
564 unsigned int _id, const
std::
string &_name) = 0;
577 unsigned int _id) = 0;
585 const
std::
string &_name) = 0;
593 unsigned int _id, const
std::
string &_name) = 0;
606 unsigned int _id) = 0;
614 const
std::
string &_name) = 0;
622 unsigned int _id, const
std::
string &_name) = 0;
635 unsigned int _id) = 0;
643 const
std::
string &_name) = 0;
651 unsigned int _id, const
std::
string &_name) = 0;
664 unsigned int _id) = 0;
672 const
std::
string &_name) = 0;
680 unsigned int _id, const
std::
string &_name) = 0;
693 unsigned int _id) = 0;
701 const
std::
string &_name) = 0;
709 unsigned int _id, const
std::
string &_name) = 0;
722 unsigned int _id) = 0;
730 const
std::
string &_name) = 0;
738 unsigned int _id, const
std::
string &_name) = 0;
750 public: virtual
GpuRaysPtr CreateGpuRays(
unsigned int _id) = 0;
758 const
std::
string &_name) = 0;
766 unsigned int _id, const
std::
string &_name) = 0;
779 unsigned int _id) = 0;
787 const
std::
string &_name) = 0;
795 unsigned int _id, const
std::
string &_name) = 0;
808 unsigned int _id) = 0;
816 const
std::
string &_name) = 0;
824 unsigned int _id, const
std::
string &_name) = 0;
837 unsigned int _id) = 0;
845 const
std::
string &_name) = 0;
853 unsigned int _id, const
std::
string &_name) = 0;
866 unsigned int _id) = 0;
874 const
std::
string &_name) = 0;
882 unsigned int _id, const
std::
string &_name) = 0;
895 unsigned int _id) = 0;
903 const
std::
string &_name) = 0;
911 unsigned int _id, const
std::
string &_name) = 0;
924 unsigned int _id) = 0;
932 const
std::
string &_name) = 0;
940 unsigned int _id, const
std::
string &_name) = 0;
953 unsigned int _id) = 0;
961 const
std::
string &_name) = 0;
969 unsigned int _id, const
std::
string &_name) = 0;
982 unsigned int _id) = 0;
990 const
std::
string &_name) = 0;
998 unsigned int _id, const
std::
string &_name) = 0;
1032 public: virtual
MeshPtr CreateMesh(const
std::
string &_meshName) = 0;
1078 const
std::
string &_name) = 0;
1086 unsigned int _id, const
std::
string &_name) = 0;
1110 const common::
Material &_material) = 0;
1137 unsigned int _id) = 0;
1145 const
std::
string &_name) = 0;
1153 unsigned int _id, const
std::
string &_name) = 0;
1157 public: virtual
void SetSkyEnabled(
bool _enabled) = 0;
1161 public: virtual
bool SkyEnabled() const = 0;
1165 public: virtual
void PreRender() = 0;
1172 public: virtual
void PostRender() = 0;
1267 public: virtual
void SetCameraPassCountPerGpuFlush(uint8_t _numPass) = 0;
1273 public: virtual uint8_t CameraPassCountPerGpuFlush() const = 0;
1279 public: virtual
bool LegacyAutoGpuFlush() const = 0;
1284 public: virtual
void Clear() = 0;
1289 public: virtual
void Destroy() = 0;
Describes how a Heightmap should be loaded.
Definition: gz/rendering/HeightmapDescriptor.hh:147
Represents a surface material of a Geometry.
Definition: gz/rendering/Material.hh:49
Represents a collection of mesh geometries.
Definition: gz/rendering/Mesh.hh:39
An abstract interface to a concrete render-engine. A RenderEngine is responsible for initializing a r...
Definition: gz/rendering/RenderEngine.hh:37
Manages a single scene-graph. This class updates scene-wide properties and holds the root scene node....
Definition: gz/rendering/Scene.hh:50
virtual RenderEngine * Engine() const =0
Get the creating render-engine of the scene.
virtual void Init()=0
Initialize the scene.
virtual bool IsInitialized() const =0
Determine if the scene is initialized.
virtual void Load()=0
Load scene-specific resources.
virtual std::string Name() const =0
Get the name of the scene.
virtual ~Scene()
Deconstructor.
Definition: gz/rendering/Scene.hh:52
virtual unsigned int Id() const =0
Get the ID of the scene.
Describes how a Mesh should be loaded.
Definition: gz/rendering/MeshDescriptor.hh:45