17 #ifndef IGNITION_RENDERING_BASE_BASESCENE_HH_ 18 #define IGNITION_RENDERING_BASE_BASESCENE_HH_ 35 inline namespace IGNITION_RENDERING_VERSION_NAMESPACE {
47 public:
virtual void Load()
override;
49 public:
virtual void Init()
override;
51 public:
virtual void Fini()
override;
53 public:
virtual bool IsLoaded()
const;
55 public:
virtual bool IsInitialized()
const override;
57 public:
virtual unsigned int Id()
const override;
61 public:
virtual void IGN_DEPRECATED(4)
64 public:
virtual common::Time IGN_DEPRECATED(4) SimTime()
const override;
66 public:
virtual std::chrono::steady_clock::duration Time()
69 public:
virtual void SetTime(
70 const std::chrono::steady_clock::duration &_time)
override;
72 public:
virtual void SetAmbientLight(
double _r,
double _g,
double _b,
73 double _a = 1.0)
override;
75 public:
virtual void SetAmbientLight(
const math::Color &_color)
78 public:
virtual math::Color BackgroundColor()
const override;
80 public:
virtual void SetBackgroundColor(
double _r,
double _g,
double _b,
81 double _a = 1.0)
override;
83 public:
virtual void SetBackgroundColor(
const math::Color &_color)
87 public:
virtual bool IsGradientBackgroundColor()
const override;
94 public:
virtual void SetGradientBackgroundColor(
98 public:
virtual void RemoveGradientBackgroundColor()
override;
101 public:
virtual MaterialPtr BackgroundMaterial()
const override;
104 public:
virtual void SetBackgroundMaterial(
MaterialPtr _material)
107 public:
virtual unsigned int NodeCount()
const override;
109 public:
virtual bool HasNode(
ConstNodePtr _node)
const override;
111 public:
virtual bool HasNodeId(
unsigned int _id)
const override;
113 public:
virtual bool HasNodeName(
const std::string &_name)
const override;
115 public:
virtual NodePtr NodeById(
unsigned int _id)
const override;
120 public:
virtual NodePtr NodeByIndex(
unsigned int _index)
const override;
123 public:
virtual void DestroyNode(
NodePtr _node,
bool _recursive =
false)
126 public:
virtual void DestroyNodeById(
unsigned int _id)
override;
128 public:
virtual void DestroyNodeByName(
const std::string &_name)
override;
130 public:
virtual void DestroyNodeByIndex(
unsigned int _index)
override;
132 public:
virtual void DestroyNodes()
override;
134 public:
virtual unsigned int LightCount()
const override;
136 public:
virtual bool HasLight(
ConstLightPtr _light)
const override;
138 public:
virtual bool HasLightId(
unsigned int _id)
const override;
140 public:
virtual bool HasLightName(
const std::string &_name)
const 143 public:
virtual LightPtr LightById(
unsigned int _id)
const override;
148 public:
virtual LightPtr LightByIndex(
unsigned int _index)
const override;
151 public:
virtual void DestroyLight(
LightPtr _light,
152 bool _recursive =
false)
override;
154 public:
virtual void DestroyLightById(
unsigned int _id)
override;
156 public:
virtual void DestroyLightByName(
const std::string &_name)
159 public:
virtual void DestroyLightByIndex(
unsigned int _index)
override;
161 public:
virtual void DestroyLights()
override;
163 public:
virtual unsigned int SensorCount()
const override;
165 public:
virtual bool HasSensor(
ConstSensorPtr _sensor)
const override;
167 public:
virtual bool HasSensorId(
unsigned int _id)
const override;
169 public:
virtual bool HasSensorName(
const std::string &_name)
const 172 public:
virtual SensorPtr SensorById(
unsigned int _id)
const override;
177 public:
virtual SensorPtr SensorByIndex(
unsigned int _index)
const 181 public:
virtual void DestroySensor(
SensorPtr _sensor,
182 bool _recursive =
false)
override;
184 public:
virtual void DestroySensorById(
unsigned int _id)
override;
186 public:
virtual void DestroySensorByName(
const std::string &_name)
189 public:
virtual void DestroySensorByIndex(
unsigned int _index)
override;
191 public:
virtual void DestroySensors()
override;
193 public:
virtual unsigned int VisualCount()
const override;
195 public:
virtual bool HasVisual(
ConstVisualPtr _visual)
const override;
197 public:
virtual bool HasVisualId(
unsigned int _id)
const override;
199 public:
virtual bool HasVisualName(
const std::string &_name)
const 202 public:
virtual VisualPtr VisualById(
unsigned int _id)
const override;
207 public:
virtual VisualPtr VisualByIndex(
unsigned int _index)
const 215 public:
virtual void DestroyVisual(
VisualPtr _visual,
216 bool _recursive =
false)
override;
218 public:
virtual void DestroyVisualById(
unsigned int _id)
override;
220 public:
virtual void DestroyVisualByName(
const std::string &_name)
223 public:
virtual void DestroyVisualByIndex(
unsigned int _index)
override;
225 public:
virtual void DestroyVisuals()
override;
227 public:
virtual bool MaterialRegistered(
const std::string &_name)
const 233 public:
virtual void RegisterMaterial(
const std::string &_name,
236 public:
virtual void UnregisterMaterial(
const std::string &_name)
239 public:
virtual void UnregisterMaterials()
override;
242 public:
virtual void DestroyMaterial(
MaterialPtr _material)
override;
245 public:
virtual void DestroyMaterials()
override;
250 unsigned int _id)
override;
256 unsigned int _id,
const std::string &_name)
override;
260 public:
virtual PointLightPtr CreatePointLight(
unsigned int _id)
override;
265 public:
virtual PointLightPtr CreatePointLight(
unsigned int _id,
271 protected:
virtual LightVisualPtr CreateLightVisualImpl(
unsigned int _id,
274 public:
virtual SpotLightPtr CreateSpotLight()
override;
276 public:
virtual SpotLightPtr CreateSpotLight(
unsigned int _id)
override;
281 public:
virtual SpotLightPtr CreateSpotLight(
unsigned int _id,
284 public:
virtual CameraPtr CreateCamera()
override;
286 public:
virtual CameraPtr CreateCamera(
unsigned int _id)
override;
290 public:
virtual CameraPtr CreateCamera(
unsigned int _id,
295 public:
virtual DepthCameraPtr CreateDepthCamera(
const unsigned int _id)
301 public:
virtual DepthCameraPtr CreateDepthCamera(
const unsigned int _id,
309 const unsigned int _id)
override;
317 const unsigned int _id,
const std::string &_name)
override;
320 public:
virtual GpuRaysPtr CreateGpuRays()
override;
323 public:
virtual GpuRaysPtr CreateGpuRays(
const unsigned int _id)
override;
330 public:
virtual GpuRaysPtr CreateGpuRays(
const unsigned int _id,
333 public:
virtual VisualPtr CreateVisual()
override;
335 public:
virtual VisualPtr CreateVisual(
unsigned int _id)
override;
339 public:
virtual VisualPtr CreateVisual(
unsigned int _id,
344 public:
virtual ArrowVisualPtr CreateArrowVisual(
unsigned int _id)
350 public:
virtual ArrowVisualPtr CreateArrowVisual(
unsigned int _id,
355 public:
virtual AxisVisualPtr CreateAxisVisual(
unsigned int _id)
override;
360 public:
virtual AxisVisualPtr CreateAxisVisual(
unsigned int _id,
367 public:
virtual LightVisualPtr CreateLightVisual(
unsigned int _id)
375 public:
virtual LightVisualPtr CreateLightVisual(
unsigned int _id,
382 public:
virtual GizmoVisualPtr CreateGizmoVisual(
unsigned int _id)
390 public:
virtual GizmoVisualPtr CreateGizmoVisual(
unsigned int _id,
398 public:
virtual GeometryPtr CreateCylinder()
override;
400 public:
virtual GeometryPtr CreatePlane()
override;
402 public:
virtual GeometryPtr CreateSphere()
override;
411 public:
virtual CapsulePtr CreateCapsule()
override;
414 public:
virtual GridPtr CreateGrid()
override;
417 public:
virtual MarkerPtr CreateMarker()
override;
424 unsigned int _id)
override;
431 public:
virtual LidarVisualPtr CreateLidarVisual(
unsigned int _id,
439 public:
virtual WireBoxPtr CreateWireBox()
override;
442 public:
virtual TextPtr CreateText()
override;
455 public:
virtual RayQueryPtr CreateRayQuery()
override;
470 unsigned int _id,
const std::string &_name)
override;
473 public:
virtual void SetSkyEnabled(
bool _enabled)
override;
476 public:
virtual bool SkyEnabled()
const override;
478 public:
virtual void PreRender()
override;
480 public:
virtual void Clear()
override;
482 public:
virtual void Destroy()
override;
484 protected:
virtual unsigned int CreateObjectId();
486 protected:
virtual std::string CreateObjectName(
unsigned int _id,
489 protected:
virtual bool RegisterLight(
LightPtr _light);
491 protected:
virtual bool RegisterSensor(
SensorPtr _vensor);
493 protected:
virtual bool RegisterVisual(
VisualPtr _visual);
498 protected:
virtual PointLightPtr CreatePointLightImpl(
unsigned int _id,
501 protected:
virtual SpotLightPtr CreateSpotLightImpl(
unsigned int _id,
504 protected:
virtual CameraPtr CreateCameraImpl(
unsigned int _id,
507 protected:
virtual DepthCameraPtr CreateDepthCameraImpl(
unsigned int _id,
519 ignerr <<
"Thermal camera not supported by: " 532 ignerr <<
"GpuRays not supported by: " 537 protected:
virtual VisualPtr CreateVisualImpl(
unsigned int _id,
540 protected:
virtual ArrowVisualPtr CreateArrowVisualImpl(
unsigned int _id,
543 protected:
virtual AxisVisualPtr CreateAxisVisualImpl(
unsigned int _id,
554 ignerr <<
"GizmoVisual not supported by: " 559 protected:
virtual GeometryPtr CreateBoxImpl(
unsigned int _id,
562 protected:
virtual GeometryPtr CreateConeImpl(
unsigned int _id,
565 protected:
virtual GeometryPtr CreateCylinderImpl(
unsigned int _id,
568 protected:
virtual GeometryPtr CreatePlaneImpl(
unsigned int _id,
571 protected:
virtual GeometryPtr CreateSphereImpl(
unsigned int _id,
574 protected:
virtual MeshPtr CreateMeshImpl(
unsigned int _id,
582 protected:
virtual CapsulePtr CreateCapsuleImpl(
unsigned int _id,
589 protected:
virtual GridPtr CreateGridImpl(
unsigned int _id,
596 protected:
virtual MarkerPtr CreateMarkerImpl(
unsigned int _id,
603 protected:
virtual LidarVisualPtr CreateLidarVisualImpl(
unsigned int _id,
611 protected:
virtual HeightmapPtr CreateHeightmapImpl(
unsigned int _id,
619 protected:
virtual WireBoxPtr CreateWireBoxImpl(
unsigned int _id,
626 protected:
virtual TextPtr CreateTextImpl(
unsigned int _id,
629 protected:
virtual MaterialPtr CreateMaterialImpl(
unsigned int _id,
655 ignerr <<
"ParticleEmitter not supported by: " 668 protected:
virtual bool LoadImpl() = 0;
670 protected:
virtual bool InitImpl() = 0;
672 private:
virtual void CreateNodeStore();
674 private:
virtual void CreateMaterials();
681 private:
void DestroyNodeRecursive(
NodePtr _node,
684 protected:
unsigned int id;
692 protected:
std::chrono::steady_clock::duration time =
693 std::chrono::steady_clock::duration::zero();
695 protected:
bool loaded;
697 protected:
bool initialized;
700 protected: math::Color backgroundColor;
709 protected:
std::array<math::Color, 4> gradientBackgroundColor;
712 protected:
bool isGradientBackgroundColor = false;
717 private:
unsigned int nextObjectId;
719 IGN_COMMON_WARN_IGNORE__DLL_INTERFACE_MISSING
721 IGN_COMMON_WARN_RESUME__DLL_INTERFACE_MISSING
virtual ThermalCameraPtr CreateThermalCameraImpl(unsigned int _id, const std::string &_name)
Implementation for creating a thermal camera.
Definition: BaseScene.hh:513
virtual ParticleEmitterPtr CreateParticleEmitterImpl(unsigned int _id, const std::string &_name)
Implementation for creating a ParticleEmitter.
Definition: BaseScene.hh:650
Describes how a Mesh should be loaded.
Definition: MeshDescriptor.hh:44
shared_ptr< ParticleEmitter > ParticleEmitterPtr
Shared pointer to ParticleEmitter.
Definition: RenderTypes.hh:190
#define IGN_COMMON_WARN_RESUME__DLL_INTERFACE_MISSING
virtual GizmoVisualPtr CreateGizmoVisualImpl(unsigned int _id, const std::string &_name)
Implementation for creating a GizmoVisual.
Definition: BaseScene.hh:549
Manages a single scene-graph. This class updates scene-wide properties and holds the root scene node...
Definition: Scene.hh:49
std::string name
Definition: BaseScene.hh:687
Definition: BaseScene.hh:37
shared_ptr< GpuRays > GpuRaysPtr
Shared pointer to GpuRays.
Definition: RenderTypes.hh:114
Describes how a Heightmap should be loaded.
Definition: HeightmapDescriptor.hh:146
unsigned int id
Definition: BaseScene.hh:684
Represents a surface material of a Geometry.
Definition: Material.hh:47
virtual GpuRaysPtr CreateGpuRaysImpl(unsigned int _id, const std::string &_name)
Implementation for creating GpuRays sensor.
Definition: BaseScene.hh:527
shared_ptr< GizmoVisual > GizmoVisualPtr
Shared pointer to GizmoVisual.
Definition: RenderTypes.hh:130
#define IGN_COMMON_WARN_IGNORE__DLL_INTERFACE_MISSING
shared_ptr< ThermalCamera > ThermalCameraPtr
Shared pointer to ThermalCamera.
Definition: RenderTypes.hh:110