17 #ifndef IGNITION_RENDERING_BASE_BASESCENE_HH_ 18 #define IGNITION_RENDERING_BASE_BASESCENE_HH_ 34 inline namespace IGNITION_RENDERING_VERSION_NAMESPACE {
44 public:
virtual void Load()
override;
46 public:
virtual void Init()
override;
48 public:
virtual void Fini()
override;
50 public:
virtual bool IsLoaded()
const;
52 public:
virtual bool IsInitialized()
const override;
54 public:
virtual unsigned int Id()
const override;
58 public:
virtual void IGN_DEPRECATED(4)
61 public:
virtual common::Time IGN_DEPRECATED(4) SimTime()
const override;
63 public:
virtual std::chrono::steady_clock::duration Time()
66 public:
virtual void SetTime(
67 const std::chrono::steady_clock::duration &_time)
override;
69 public:
virtual void SetAmbientLight(
double _r,
double _g,
double _b,
70 double _a = 1.0)
override;
72 public:
virtual void SetAmbientLight(
const math::Color &_color)
75 public:
virtual math::Color BackgroundColor()
const override;
77 public:
virtual void SetBackgroundColor(
double _r,
double _g,
double _b,
78 double _a = 1.0)
override;
80 public:
virtual void SetBackgroundColor(
const math::Color &_color)
84 public:
virtual bool IsGradientBackgroundColor()
const override;
91 public:
virtual void SetGradientBackgroundColor(
95 public:
virtual void RemoveGradientBackgroundColor()
override;
97 public:
virtual unsigned int NodeCount()
const override;
99 public:
virtual bool HasNode(
ConstNodePtr _node)
const override;
101 public:
virtual bool HasNodeId(
unsigned int _id)
const override;
103 public:
virtual bool HasNodeName(
const std::string &_name)
const override;
105 public:
virtual NodePtr NodeById(
unsigned int _id)
const override;
110 public:
virtual NodePtr NodeByIndex(
unsigned int _index)
const override;
113 public:
virtual void DestroyNode(
NodePtr _node,
bool _recursive =
false)
116 public:
virtual void DestroyNodeById(
unsigned int _id)
override;
118 public:
virtual void DestroyNodeByName(
const std::string &_name)
override;
120 public:
virtual void DestroyNodeByIndex(
unsigned int _index)
override;
122 public:
virtual void DestroyNodes()
override;
124 public:
virtual unsigned int LightCount()
const override;
126 public:
virtual bool HasLight(
ConstLightPtr _light)
const override;
128 public:
virtual bool HasLightId(
unsigned int _id)
const override;
130 public:
virtual bool HasLightName(
const std::string &_name)
const 133 public:
virtual LightPtr LightById(
unsigned int _id)
const override;
138 public:
virtual LightPtr LightByIndex(
unsigned int _index)
const override;
141 public:
virtual void DestroyLight(
LightPtr _light,
142 bool _recursive =
false)
override;
144 public:
virtual void DestroyLightById(
unsigned int _id)
override;
146 public:
virtual void DestroyLightByName(
const std::string &_name)
149 public:
virtual void DestroyLightByIndex(
unsigned int _index)
override;
151 public:
virtual void DestroyLights()
override;
153 public:
virtual unsigned int SensorCount()
const override;
155 public:
virtual bool HasSensor(
ConstSensorPtr _sensor)
const override;
157 public:
virtual bool HasSensorId(
unsigned int _id)
const override;
159 public:
virtual bool HasSensorName(
const std::string &_name)
const 162 public:
virtual SensorPtr SensorById(
unsigned int _id)
const override;
167 public:
virtual SensorPtr SensorByIndex(
unsigned int _index)
const 171 public:
virtual void DestroySensor(
SensorPtr _sensor,
172 bool _recursive =
false)
override;
174 public:
virtual void DestroySensorById(
unsigned int _id)
override;
176 public:
virtual void DestroySensorByName(
const std::string &_name)
179 public:
virtual void DestroySensorByIndex(
unsigned int _index)
override;
181 public:
virtual void DestroySensors()
override;
183 public:
virtual unsigned int VisualCount()
const override;
185 public:
virtual bool HasVisual(
ConstVisualPtr _visual)
const override;
187 public:
virtual bool HasVisualId(
unsigned int _id)
const override;
189 public:
virtual bool HasVisualName(
const std::string &_name)
const 192 public:
virtual VisualPtr VisualById(
unsigned int _id)
const override;
197 public:
virtual VisualPtr VisualByIndex(
unsigned int _index)
const 205 public:
virtual void DestroyVisual(
VisualPtr _visual,
206 bool _recursive =
false)
override;
208 public:
virtual void DestroyVisualById(
unsigned int _id)
override;
210 public:
virtual void DestroyVisualByName(
const std::string &_name)
213 public:
virtual void DestroyVisualByIndex(
unsigned int _index)
override;
215 public:
virtual void DestroyVisuals()
override;
217 public:
virtual bool MaterialRegistered(
const std::string &_name)
const 223 public:
virtual void RegisterMaterial(
const std::string &_name,
226 public:
virtual void UnregisterMaterial(
const std::string &_name)
229 public:
virtual void UnregisterMaterials()
override;
232 public:
virtual void DestroyMaterial(
MaterialPtr _material)
override;
235 public:
virtual void DestroyMaterials()
override;
240 unsigned int _id)
override;
246 unsigned int _id,
const std::string &_name)
override;
250 public:
virtual PointLightPtr CreatePointLight(
unsigned int _id)
override;
255 public:
virtual PointLightPtr CreatePointLight(
unsigned int _id,
258 public:
virtual SpotLightPtr CreateSpotLight()
override;
260 public:
virtual SpotLightPtr CreateSpotLight(
unsigned int _id)
override;
265 public:
virtual SpotLightPtr CreateSpotLight(
unsigned int _id,
268 public:
virtual CameraPtr CreateCamera()
override;
270 public:
virtual CameraPtr CreateCamera(
unsigned int _id)
override;
274 public:
virtual CameraPtr CreateCamera(
unsigned int _id,
279 public:
virtual DepthCameraPtr CreateDepthCamera(
const unsigned int _id)
285 public:
virtual DepthCameraPtr CreateDepthCamera(
const unsigned int _id,
293 const unsigned int _id)
override;
301 const unsigned int _id,
const std::string &_name)
override;
304 public:
virtual GpuRaysPtr CreateGpuRays()
override;
307 public:
virtual GpuRaysPtr CreateGpuRays(
const unsigned int _id)
override;
314 public:
virtual GpuRaysPtr CreateGpuRays(
const unsigned int _id,
317 public:
virtual VisualPtr CreateVisual()
override;
319 public:
virtual VisualPtr CreateVisual(
unsigned int _id)
override;
323 public:
virtual VisualPtr CreateVisual(
unsigned int _id,
328 public:
virtual ArrowVisualPtr CreateArrowVisual(
unsigned int _id)
334 public:
virtual ArrowVisualPtr CreateArrowVisual(
unsigned int _id,
339 public:
virtual AxisVisualPtr CreateAxisVisual(
unsigned int _id)
override;
344 public:
virtual AxisVisualPtr CreateAxisVisual(
unsigned int _id,
352 public:
virtual GizmoVisualPtr CreateGizmoVisual(
unsigned int _id)
360 public:
virtual GizmoVisualPtr CreateGizmoVisual(
unsigned int _id,
368 public:
virtual GeometryPtr CreateCylinder()
override;
370 public:
virtual GeometryPtr CreatePlane()
override;
372 public:
virtual GeometryPtr CreateSphere()
override;
381 public:
virtual GridPtr CreateGrid()
override;
384 public:
virtual MarkerPtr CreateMarker()
override;
391 unsigned int _id)
override;
398 public:
virtual LidarVisualPtr CreateLidarVisual(
unsigned int _id,
402 public:
virtual WireBoxPtr CreateWireBox()
override;
405 public:
virtual TextPtr CreateText()
override;
418 public:
virtual RayQueryPtr CreateRayQuery()
override;
433 unsigned int _id,
const std::string &_name)
override;
435 public:
virtual void PreRender()
override;
437 public:
virtual void Clear()
override;
439 public:
virtual void Destroy()
override;
441 protected:
virtual unsigned int CreateObjectId();
443 protected:
virtual std::string CreateObjectName(
unsigned int _id,
446 protected:
virtual bool RegisterLight(
LightPtr _light);
448 protected:
virtual bool RegisterSensor(
SensorPtr _vensor);
450 protected:
virtual bool RegisterVisual(
VisualPtr _visual);
455 protected:
virtual PointLightPtr CreatePointLightImpl(
unsigned int _id,
458 protected:
virtual SpotLightPtr CreateSpotLightImpl(
unsigned int _id,
461 protected:
virtual CameraPtr CreateCameraImpl(
unsigned int _id,
464 protected:
virtual DepthCameraPtr CreateDepthCameraImpl(
unsigned int _id,
473 ignerr <<
"Thermal camera not supported by: " 484 ignerr <<
"GpuRays not supported by: " 489 protected:
virtual VisualPtr CreateVisualImpl(
unsigned int _id,
492 protected:
virtual ArrowVisualPtr CreateArrowVisualImpl(
unsigned int _id,
495 protected:
virtual AxisVisualPtr CreateAxisVisualImpl(
unsigned int _id,
504 ignerr <<
"GizmoVisual not supported by: " 509 protected:
virtual GeometryPtr CreateBoxImpl(
unsigned int _id,
512 protected:
virtual GeometryPtr CreateConeImpl(
unsigned int _id,
515 protected:
virtual GeometryPtr CreateCylinderImpl(
unsigned int _id,
518 protected:
virtual GeometryPtr CreatePlaneImpl(
unsigned int _id,
521 protected:
virtual GeometryPtr CreateSphereImpl(
unsigned int _id,
524 protected:
virtual MeshPtr CreateMeshImpl(
unsigned int _id,
532 protected:
virtual GridPtr CreateGridImpl(
unsigned int _id,
539 protected:
virtual MarkerPtr CreateMarkerImpl(
unsigned int _id,
546 protected:
virtual LidarVisualPtr CreateLidarVisualImpl(
unsigned int _id,
553 protected:
virtual WireBoxPtr CreateWireBoxImpl(
unsigned int _id,
560 protected:
virtual TextPtr CreateTextImpl(
unsigned int _id,
563 protected:
virtual MaterialPtr CreateMaterialImpl(
unsigned int _id,
587 ignerr <<
"ParticleEmitter not supported by: " 600 protected:
virtual bool LoadImpl() = 0;
602 protected:
virtual bool InitImpl() = 0;
604 private:
virtual void CreateNodeStore();
606 private:
virtual void CreateMaterials();
613 private:
void DestroyNodeRecursive(
NodePtr _node,
616 protected:
unsigned int id;
622 protected:
std::chrono::steady_clock::duration time =
623 std::chrono::steady_clock::duration::zero();
625 protected:
bool loaded;
627 protected:
bool initialized;
630 protected: math::Color backgroundColor;
639 protected:
std::array<math::Color, 4> gradientBackgroundColor;
642 protected:
bool isGradientBackgroundColor = false;
644 private:
unsigned int nextObjectId;
shared_ptr< ParticleEmitter > ParticleEmitterPtr
Definition: RenderTypes.hh:174
Describes how a Mesh should be loaded.
Definition: MeshDescriptor.hh:44
virtual GpuRaysPtr CreateGpuRaysImpl(unsigned int, const std::string &)
Implementation for creating GpuRays sensor.
Definition: BaseScene.hh:481
shared_ptr< GizmoVisual > GizmoVisualPtr
Definition: RenderTypes.hh:126
virtual GizmoVisualPtr CreateGizmoVisualImpl(unsigned int, const std::string &)
Implementation for creating a GizmoVisual.
Definition: BaseScene.hh:501
Manages a single scene-graph. This class updates scene-wide properties and holds the root scene node...
Definition: Scene.hh:48
std::string name
Definition: BaseScene.hh:618
Definition: BaseScene.hh:36
shared_ptr< ThermalCamera > ThermalCameraPtr
Definition: RenderTypes.hh:106
shared_ptr< GpuRays > GpuRaysPtr
Definition: RenderTypes.hh:110
virtual ParticleEmitterPtr CreateParticleEmitterImpl(unsigned int, const std::string &)
Implementation for creating a ParticleEmitter.
Definition: BaseScene.hh:584
unsigned int id
Definition: BaseScene.hh:616
Represents a surface material of a Geometry.
Definition: Material.hh:47
virtual ThermalCameraPtr CreateThermalCameraImpl(unsigned int, const std::string &)
Implementation for creating a thermal camera.
Definition: BaseScene.hh:470