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;
100 public:
virtual unsigned int NodeCount()
const override;
102 public:
virtual bool HasNode(
ConstNodePtr _node)
const override;
104 public:
virtual bool HasNodeId(
unsigned int _id)
const override;
106 public:
virtual bool HasNodeName(
const std::string &_name)
const override;
108 public:
virtual NodePtr NodeById(
unsigned int _id)
const override;
113 public:
virtual NodePtr NodeByIndex(
unsigned int _index)
const override;
116 public:
virtual void DestroyNode(
NodePtr _node,
bool _recursive =
false)
119 public:
virtual void DestroyNodeById(
unsigned int _id)
override;
121 public:
virtual void DestroyNodeByName(
const std::string &_name)
override;
123 public:
virtual void DestroyNodeByIndex(
unsigned int _index)
override;
125 public:
virtual void DestroyNodes()
override;
127 public:
virtual unsigned int LightCount()
const override;
129 public:
virtual bool HasLight(
ConstLightPtr _light)
const override;
131 public:
virtual bool HasLightId(
unsigned int _id)
const override;
133 public:
virtual bool HasLightName(
const std::string &_name)
const 136 public:
virtual LightPtr LightById(
unsigned int _id)
const override;
141 public:
virtual LightPtr LightByIndex(
unsigned int _index)
const override;
144 public:
virtual void DestroyLight(
LightPtr _light,
145 bool _recursive =
false)
override;
147 public:
virtual void DestroyLightById(
unsigned int _id)
override;
149 public:
virtual void DestroyLightByName(
const std::string &_name)
152 public:
virtual void DestroyLightByIndex(
unsigned int _index)
override;
154 public:
virtual void DestroyLights()
override;
156 public:
virtual unsigned int SensorCount()
const override;
158 public:
virtual bool HasSensor(
ConstSensorPtr _sensor)
const override;
160 public:
virtual bool HasSensorId(
unsigned int _id)
const override;
162 public:
virtual bool HasSensorName(
const std::string &_name)
const 165 public:
virtual SensorPtr SensorById(
unsigned int _id)
const override;
170 public:
virtual SensorPtr SensorByIndex(
unsigned int _index)
const 174 public:
virtual void DestroySensor(
SensorPtr _sensor,
175 bool _recursive =
false)
override;
177 public:
virtual void DestroySensorById(
unsigned int _id)
override;
179 public:
virtual void DestroySensorByName(
const std::string &_name)
182 public:
virtual void DestroySensorByIndex(
unsigned int _index)
override;
184 public:
virtual void DestroySensors()
override;
186 public:
virtual unsigned int VisualCount()
const override;
188 public:
virtual bool HasVisual(
ConstVisualPtr _visual)
const override;
190 public:
virtual bool HasVisualId(
unsigned int _id)
const override;
192 public:
virtual bool HasVisualName(
const std::string &_name)
const 195 public:
virtual VisualPtr VisualById(
unsigned int _id)
const override;
200 public:
virtual VisualPtr VisualByIndex(
unsigned int _index)
const 208 public:
virtual void DestroyVisual(
VisualPtr _visual,
209 bool _recursive =
false)
override;
211 public:
virtual void DestroyVisualById(
unsigned int _id)
override;
213 public:
virtual void DestroyVisualByName(
const std::string &_name)
216 public:
virtual void DestroyVisualByIndex(
unsigned int _index)
override;
218 public:
virtual void DestroyVisuals()
override;
220 public:
virtual bool MaterialRegistered(
const std::string &_name)
const 226 public:
virtual void RegisterMaterial(
const std::string &_name,
229 public:
virtual void UnregisterMaterial(
const std::string &_name)
232 public:
virtual void UnregisterMaterials()
override;
235 public:
virtual void DestroyMaterial(
MaterialPtr _material)
override;
238 public:
virtual void DestroyMaterials()
override;
243 unsigned int _id)
override;
249 unsigned int _id,
const std::string &_name)
override;
253 public:
virtual PointLightPtr CreatePointLight(
unsigned int _id)
override;
258 public:
virtual PointLightPtr CreatePointLight(
unsigned int _id,
261 public:
virtual SpotLightPtr CreateSpotLight()
override;
263 public:
virtual SpotLightPtr CreateSpotLight(
unsigned int _id)
override;
268 public:
virtual SpotLightPtr CreateSpotLight(
unsigned int _id,
271 public:
virtual CameraPtr CreateCamera()
override;
273 public:
virtual CameraPtr CreateCamera(
unsigned int _id)
override;
277 public:
virtual CameraPtr CreateCamera(
unsigned int _id,
282 public:
virtual DepthCameraPtr CreateDepthCamera(
const unsigned int _id)
288 public:
virtual DepthCameraPtr CreateDepthCamera(
const unsigned int _id,
296 const unsigned int _id)
override;
304 const unsigned int _id,
const std::string &_name)
override;
307 public:
virtual GpuRaysPtr CreateGpuRays()
override;
310 public:
virtual GpuRaysPtr CreateGpuRays(
const unsigned int _id)
override;
317 public:
virtual GpuRaysPtr CreateGpuRays(
const unsigned int _id,
320 public:
virtual VisualPtr CreateVisual()
override;
322 public:
virtual VisualPtr CreateVisual(
unsigned int _id)
override;
326 public:
virtual VisualPtr CreateVisual(
unsigned int _id,
331 public:
virtual ArrowVisualPtr CreateArrowVisual(
unsigned int _id)
337 public:
virtual ArrowVisualPtr CreateArrowVisual(
unsigned int _id,
342 public:
virtual AxisVisualPtr CreateAxisVisual(
unsigned int _id)
override;
347 public:
virtual AxisVisualPtr CreateAxisVisual(
unsigned int _id,
355 public:
virtual GizmoVisualPtr CreateGizmoVisual(
unsigned int _id)
363 public:
virtual GizmoVisualPtr CreateGizmoVisual(
unsigned int _id,
371 public:
virtual GeometryPtr CreateCylinder()
override;
373 public:
virtual GeometryPtr CreatePlane()
override;
375 public:
virtual GeometryPtr CreateSphere()
override;
384 public:
virtual GridPtr CreateGrid()
override;
387 public:
virtual MarkerPtr CreateMarker()
override;
394 unsigned int _id)
override;
401 public:
virtual LidarVisualPtr CreateLidarVisual(
unsigned int _id,
405 public:
virtual WireBoxPtr CreateWireBox()
override;
408 public:
virtual TextPtr CreateText()
override;
421 public:
virtual RayQueryPtr CreateRayQuery()
override;
436 unsigned int _id,
const std::string &_name)
override;
438 public:
virtual void PreRender()
override;
440 public:
virtual void Clear()
override;
442 public:
virtual void Destroy()
override;
444 protected:
virtual unsigned int CreateObjectId();
446 protected:
virtual std::string CreateObjectName(
unsigned int _id,
449 protected:
virtual bool RegisterLight(
LightPtr _light);
451 protected:
virtual bool RegisterSensor(
SensorPtr _vensor);
453 protected:
virtual bool RegisterVisual(
VisualPtr _visual);
458 protected:
virtual PointLightPtr CreatePointLightImpl(
unsigned int _id,
461 protected:
virtual SpotLightPtr CreateSpotLightImpl(
unsigned int _id,
464 protected:
virtual CameraPtr CreateCameraImpl(
unsigned int _id,
467 protected:
virtual DepthCameraPtr CreateDepthCameraImpl(
unsigned int _id,
476 ignerr <<
"Thermal camera not supported by: " 487 ignerr <<
"GpuRays not supported by: " 492 protected:
virtual VisualPtr CreateVisualImpl(
unsigned int _id,
495 protected:
virtual ArrowVisualPtr CreateArrowVisualImpl(
unsigned int _id,
498 protected:
virtual AxisVisualPtr CreateAxisVisualImpl(
unsigned int _id,
507 ignerr <<
"GizmoVisual not supported by: " 512 protected:
virtual GeometryPtr CreateBoxImpl(
unsigned int _id,
515 protected:
virtual GeometryPtr CreateConeImpl(
unsigned int _id,
518 protected:
virtual GeometryPtr CreateCylinderImpl(
unsigned int _id,
521 protected:
virtual GeometryPtr CreatePlaneImpl(
unsigned int _id,
524 protected:
virtual GeometryPtr CreateSphereImpl(
unsigned int _id,
527 protected:
virtual MeshPtr CreateMeshImpl(
unsigned int _id,
535 protected:
virtual GridPtr CreateGridImpl(
unsigned int _id,
542 protected:
virtual MarkerPtr CreateMarkerImpl(
unsigned int _id,
549 protected:
virtual LidarVisualPtr CreateLidarVisualImpl(
unsigned int _id,
556 protected:
virtual WireBoxPtr CreateWireBoxImpl(
unsigned int _id,
563 protected:
virtual TextPtr CreateTextImpl(
unsigned int _id,
566 protected:
virtual MaterialPtr CreateMaterialImpl(
unsigned int _id,
590 ignerr <<
"ParticleEmitter not supported by: " 603 protected:
virtual bool LoadImpl() = 0;
605 protected:
virtual bool InitImpl() = 0;
607 private:
virtual void CreateNodeStore();
609 private:
virtual void CreateMaterials();
616 private:
void DestroyNodeRecursive(
NodePtr _node,
619 protected:
unsigned int id;
627 protected:
std::chrono::steady_clock::duration time =
628 std::chrono::steady_clock::duration::zero();
630 protected:
bool loaded;
632 protected:
bool initialized;
635 protected: math::Color backgroundColor;
644 protected:
std::array<math::Color, 4> gradientBackgroundColor;
647 protected:
bool isGradientBackgroundColor = false;
649 private:
unsigned int nextObjectId;
651 IGN_COMMON_WARN_IGNORE__DLL_INTERFACE_MISSING
653 IGN_COMMON_WARN_RESUME__DLL_INTERFACE_MISSING
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:484
#define IGN_COMMON_WARN_RESUME__DLL_INTERFACE_MISSING
shared_ptr< GizmoVisual > GizmoVisualPtr
Definition: RenderTypes.hh:126
virtual GizmoVisualPtr CreateGizmoVisualImpl(unsigned int, const std::string &)
Implementation for creating a GizmoVisual.
Definition: BaseScene.hh:504
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:622
Definition: BaseScene.hh:37
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:587
unsigned int id
Definition: BaseScene.hh:619
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:473
#define IGN_COMMON_WARN_IGNORE__DLL_INTERFACE_MISSING