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,
272 protected:
virtual COMVisualPtr CreateCOMVisualImpl(
unsigned int _id,
286 protected:
virtual JointVisualPtr CreateJointVisualImpl(
unsigned int _id,
293 protected:
virtual LightVisualPtr CreateLightVisualImpl(
unsigned int _id,
296 public:
virtual SpotLightPtr CreateSpotLight()
override;
298 public:
virtual SpotLightPtr CreateSpotLight(
unsigned int _id)
override;
303 public:
virtual SpotLightPtr CreateSpotLight(
unsigned int _id,
306 public:
virtual CameraPtr CreateCamera()
override;
308 public:
virtual CameraPtr CreateCamera(
unsigned int _id)
override;
312 public:
virtual CameraPtr CreateCamera(
unsigned int _id,
317 public:
virtual DepthCameraPtr CreateDepthCamera(
const unsigned int _id)
323 public:
virtual DepthCameraPtr CreateDepthCamera(
const unsigned int _id,
331 const unsigned int _id)
override;
339 const unsigned int _id,
const std::string &_name)
override;
346 const unsigned int _id)
override;
354 const unsigned int _id,
const std::string &_name)
override;
361 const unsigned int _id)
override;
369 const unsigned int _id,
const std::string &_name)
override;
372 public:
virtual GpuRaysPtr CreateGpuRays()
override;
375 public:
virtual GpuRaysPtr CreateGpuRays(
const unsigned int _id)
override;
382 public:
virtual GpuRaysPtr CreateGpuRays(
const unsigned int _id,
385 public:
virtual VisualPtr CreateVisual()
override;
387 public:
virtual VisualPtr CreateVisual(
unsigned int _id)
override;
391 public:
virtual VisualPtr CreateVisual(
unsigned int _id,
396 public:
virtual ArrowVisualPtr CreateArrowVisual(
unsigned int _id)
402 public:
virtual ArrowVisualPtr CreateArrowVisual(
unsigned int _id,
407 public:
virtual AxisVisualPtr CreateAxisVisual(
unsigned int _id)
override;
412 public:
virtual AxisVisualPtr CreateAxisVisual(
unsigned int _id,
416 public:
virtual COMVisualPtr CreateCOMVisual()
override;
419 public:
virtual COMVisualPtr CreateCOMVisual(
unsigned int _id)
427 public:
virtual COMVisualPtr CreateCOMVisual(
unsigned int _id,
448 public:
virtual JointVisualPtr CreateJointVisual(
unsigned int _id)
456 public:
virtual JointVisualPtr CreateJointVisual(
unsigned int _id,
463 public:
virtual LightVisualPtr CreateLightVisual(
unsigned int _id)
471 public:
virtual LightVisualPtr CreateLightVisual(
unsigned int _id,
478 public:
virtual GizmoVisualPtr CreateGizmoVisual(
unsigned int _id)
486 public:
virtual GizmoVisualPtr CreateGizmoVisual(
unsigned int _id,
494 public:
virtual GeometryPtr CreateCylinder()
override;
496 public:
virtual GeometryPtr CreatePlane()
override;
498 public:
virtual GeometryPtr CreateSphere()
override;
507 public:
virtual CapsulePtr CreateCapsule()
override;
510 public:
virtual GridPtr CreateGrid()
override;
513 public:
virtual MarkerPtr CreateMarker()
override;
520 unsigned int _id)
override;
527 public:
virtual LidarVisualPtr CreateLidarVisual(
unsigned int _id,
535 public:
virtual WireBoxPtr CreateWireBox()
override;
538 public:
virtual TextPtr CreateText()
override;
551 public:
virtual RayQueryPtr CreateRayQuery()
override;
566 unsigned int _id,
const std::string &_name)
override;
569 public:
virtual void SetSkyEnabled(
bool _enabled)
override;
572 public:
virtual bool SkyEnabled()
const override;
574 public:
virtual void PreRender()
override;
576 public:
virtual void Clear()
override;
578 public:
virtual void Destroy()
override;
581 public:
virtual void PostRender()
override;
584 public:
virtual void SetCameraPassCountPerGpuFlush(
585 uint8_t _numPass)
override;
588 public:
virtual uint8_t CameraPassCountPerGpuFlush()
const override;
591 public:
virtual bool LegacyAutoGpuFlush()
const override;
593 protected:
virtual unsigned int CreateObjectId();
595 protected:
virtual std::string CreateObjectName(
unsigned int _id,
598 protected:
virtual bool RegisterLight(
LightPtr _light);
600 protected:
virtual bool RegisterSensor(
SensorPtr _vensor);
602 protected:
virtual bool RegisterVisual(
VisualPtr _visual);
607 protected:
virtual PointLightPtr CreatePointLightImpl(
unsigned int _id,
610 protected:
virtual SpotLightPtr CreateSpotLightImpl(
unsigned int _id,
613 protected:
virtual CameraPtr CreateCameraImpl(
unsigned int _id,
616 protected:
virtual DepthCameraPtr CreateDepthCameraImpl(
unsigned int _id,
628 ignerr <<
"Thermal camera not supported by: " 643 ignerr <<
"BoundingBox camera not supported by: " 659 ignerr <<
"Segmentation camera not supported by: " 672 ignerr <<
"GpuRays not supported by: " 677 protected:
virtual VisualPtr CreateVisualImpl(
unsigned int _id,
680 protected:
virtual ArrowVisualPtr CreateArrowVisualImpl(
unsigned int _id,
683 protected:
virtual AxisVisualPtr CreateAxisVisualImpl(
unsigned int _id,
694 ignerr <<
"GizmoVisual not supported by: " 699 protected:
virtual GeometryPtr CreateBoxImpl(
unsigned int _id,
702 protected:
virtual GeometryPtr CreateConeImpl(
unsigned int _id,
705 protected:
virtual GeometryPtr CreateCylinderImpl(
unsigned int _id,
708 protected:
virtual GeometryPtr CreatePlaneImpl(
unsigned int _id,
711 protected:
virtual GeometryPtr CreateSphereImpl(
unsigned int _id,
714 protected:
virtual MeshPtr CreateMeshImpl(
unsigned int _id,
722 protected:
virtual CapsulePtr CreateCapsuleImpl(
unsigned int _id,
729 protected:
virtual GridPtr CreateGridImpl(
unsigned int _id,
736 protected:
virtual MarkerPtr CreateMarkerImpl(
unsigned int _id,
743 protected:
virtual LidarVisualPtr CreateLidarVisualImpl(
unsigned int _id,
751 protected:
virtual HeightmapPtr CreateHeightmapImpl(
unsigned int _id,
759 protected:
virtual WireBoxPtr CreateWireBoxImpl(
unsigned int _id,
766 protected:
virtual TextPtr CreateTextImpl(
unsigned int _id,
769 protected:
virtual MaterialPtr CreateMaterialImpl(
unsigned int _id,
795 ignerr <<
"ParticleEmitter not supported by: " 808 protected:
virtual bool LoadImpl() = 0;
810 protected:
virtual bool InitImpl() = 0;
812 private:
virtual void CreateNodeStore();
814 private:
virtual void CreateMaterials();
821 private:
void DestroyNodeRecursive(
NodePtr _node,
824 protected:
unsigned int id;
832 protected:
std::chrono::steady_clock::duration time =
833 std::chrono::steady_clock::duration::zero();
835 protected:
bool loaded;
837 protected:
bool initialized;
840 protected: math::Color backgroundColor;
849 protected:
std::array<math::Color, 4> gradientBackgroundColor;
852 protected:
bool isGradientBackgroundColor = false;
857 private:
unsigned int nextObjectId;
859 IGN_COMMON_WARN_IGNORE__DLL_INTERFACE_MISSING
861 IGN_COMMON_WARN_RESUME__DLL_INTERFACE_MISSING
virtual BoundingBoxCameraPtr CreateBoundingBoxCameraImpl(unsigned int _id, const std::string &_name)
Implementation for creating a BoundingBox camera.
Definition: BaseScene.hh:637
virtual SegmentationCameraPtr CreateSegmentationCameraImpl(unsigned int _id, const std::string &_name)
Implementation for creating a segmentation camera.
Definition: BaseScene.hh:652
virtual ThermalCameraPtr CreateThermalCameraImpl(unsigned int _id, const std::string &_name)
Implementation for creating a thermal camera.
Definition: BaseScene.hh:622
virtual ParticleEmitterPtr CreateParticleEmitterImpl(unsigned int _id, const std::string &_name)
Implementation for creating a ParticleEmitter.
Definition: BaseScene.hh:790
Describes how a Mesh should be loaded.
Definition: MeshDescriptor.hh:44
shared_ptr< ParticleEmitter > ParticleEmitterPtr
Shared pointer to ParticleEmitter.
Definition: RenderTypes.hh:215
#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:689
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:827
Definition: BaseScene.hh:37
shared_ptr< GpuRays > GpuRaysPtr
Shared pointer to GpuRays.
Definition: RenderTypes.hh:127
Describes how a Heightmap should be loaded.
Definition: HeightmapDescriptor.hh:146
shared_ptr< SegmentationCamera > SegmentationCameraPtr
Shared pointer to Segmentation Camera.
Definition: RenderTypes.hh:123
unsigned int id
Definition: BaseScene.hh:824
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:667
shared_ptr< BoundingBoxCamera > BoundingBoxCameraPtr
Shared pointer to BoundingBoxCamera.
Definition: RenderTypes.hh:119
shared_ptr< GizmoVisual > GizmoVisualPtr
Shared pointer to GizmoVisual.
Definition: RenderTypes.hh:147
#define IGN_COMMON_WARN_IGNORE__DLL_INTERFACE_MISSING
shared_ptr< ThermalCamera > ThermalCameraPtr
Shared pointer to ThermalCamera.
Definition: RenderTypes.hh:115