Gazebo Rendering

API Reference

7.4.2

Manages a single scene-graph. This class updates scene-wide properties and holds the root scene node. A Scene also serves as a factory for all scene objects. More...

#include <gz/rendering/Scene.hh>

Public Member Functions

virtual ~Scene ()
 Destructor. More...
 
virtual math::Color AmbientLight () const =0
 Get the scene ambient light color. More...
 
virtual math::Color BackgroundColor () const =0
 Get the scene background color. More...
 
virtual MaterialPtr BackgroundMaterial () const =0
 Get the scene background material e.g. a material with skybox cubemap texture. More...
 
virtual uint8_t CameraPassCountPerGpuFlush () const =0
 Returns the value set in SetCameraPassCountPerGpuFlush. More...
 
virtual void Clear ()=0
 Remove and destroy all objects from the scene graph. This does not completely destroy scene resources, so new objects can be created and added to the scene afterwards. More...
 
virtual ArrowVisualPtr CreateArrowVisual ()=0
 Create new arrow visual. A unique ID and name will automatically be assigned to the visual. More...
 
virtual ArrowVisualPtr CreateArrowVisual (const std::string &_name)=0
 Create new arrow visual with the given name. A unique ID will automatically be assigned to the visual. If the given name is already in use, NULL will be returned. More...
 
virtual ArrowVisualPtr CreateArrowVisual (unsigned int _id)=0
 Create new arrow visual with the given ID. A unique name will automatically be assigned to the visual. If the given ID is already in use, NULL will be returned. More...
 
virtual ArrowVisualPtr CreateArrowVisual (unsigned int _id, const std::string &_name)=0
 Create new arrow visual with the given name. If either the given ID or name is already in use, NULL will be returned. More...
 
virtual AxisVisualPtr CreateAxisVisual ()=0
 Create new axis visual. A unique ID and name will automatically be assigned to the visual. More...
 
virtual AxisVisualPtr CreateAxisVisual (const std::string &_name)=0
 Create new axis visual with the given name. A unique ID will automatically be assigned to the visual. If the given name is already in use, NULL will be returned. More...
 
virtual AxisVisualPtr CreateAxisVisual (unsigned int _id)=0
 Create new axis visual with the given ID. A unique name will automatically be assigned to the visual. If the given ID is already in use, NULL will be returned. More...
 
virtual AxisVisualPtr CreateAxisVisual (unsigned int _id, const std::string &_name)=0
 Create new axis visual with the given name. If either the given ID or name is already in use, NULL will be returned. More...
 
virtual BoundingBoxCameraPtr CreateBoundingBoxCamera ()=0
 Create new BoundingBox camera. A unique ID and name will automatically be assigned to the camera. More...
 
virtual BoundingBoxCameraPtr CreateBoundingBoxCamera (const std::string &_name)=0
 Create new BoundingBox camera with the given name. A unique ID will automatically be assigned to the camera. If the given name is already in use, NULL will be returned. More...
 
virtual BoundingBoxCameraPtr CreateBoundingBoxCamera (unsigned int _id)=0
 Create new BoundingBox camera with the given ID. A unique name will automatically be assigned to the camera. If the given ID is already in use, NULL will be returned. More...
 
virtual BoundingBoxCameraPtr CreateBoundingBoxCamera (unsigned int _id, const std::string &_name)=0
 Create new BoundingBox camera with the given ID & name. If either the given ID or name is already in use, will return NULL. More...
 
virtual GeometryPtr CreateBox ()=0
 Create new box geometry. More...
 
virtual CameraPtr CreateCamera ()=0
 Create new camera. A unique ID and name will automatically be assigned to the camera. More...
 
virtual CameraPtr CreateCamera (const std::string &_name)=0
 Create new camera with the given name. A unique ID will automatically be assigned to the camera. If the given name is already in use, NULL will be returned. More...
 
virtual CameraPtr CreateCamera (unsigned int _id)=0
 Create new camera with the given ID. A unique name will automatically be assigned to the camera. If the given ID is already in use, NULL will be returned. More...
 
virtual CameraPtr CreateCamera (unsigned int _id, const std::string &_name)=0
 Create new camera with the given name. If either the given ID or name is already in use, NULL will be returned. More...
 
virtual CapsulePtr CreateCapsule ()=0
 Create new capsule geometry. More...
 
virtual COMVisualPtr CreateCOMVisual ()=0
 Create new CoM visual. A unique ID and name will automatically be assigned to the CoM visual. More...
 
virtual COMVisualPtr CreateCOMVisual (const std::string &_name)=0
 Create new CoM visual with the given name. A unique ID will automatically be assigned to the visual. If the given name is already in use, NULL will be returned. More...
 
virtual COMVisualPtr CreateCOMVisual (unsigned int _id)=0
 Create new CoM visual with the given ID. A unique name will automatically be assigned to the visual. If the given ID is already in use, NULL will be returned. More...
 
virtual COMVisualPtr CreateCOMVisual (unsigned int _id, const std::string &_name)=0
 Create new CoM visual with the given name. If either the given ID or name is already in use, NULL will be returned. More...
 
virtual GeometryPtr CreateCone ()=0
 Create new cone geometry. More...
 
virtual GeometryPtr CreateCylinder ()=0
 Create new cylinder geometry. More...
 
virtual DepthCameraPtr CreateDepthCamera ()=0
 Create new depth camera. A unique ID and name will automatically be assigned to the camera. More...
 
virtual DepthCameraPtr CreateDepthCamera (const std::string &_name)=0
 Create new depth camera with the given name. A unique ID will automatically be assigned to the camera. If the given name is already in use, NULL will be returned. More...
 
virtual DepthCameraPtr CreateDepthCamera (unsigned int _id)=0
 Create new depth camera with the given ID. A unique name will automatically be assigned to the camera. If the given ID is already in use, NULL will be returned. More...
 
virtual DepthCameraPtr CreateDepthCamera (unsigned int _id, const std::string &_name)=0
 Create new depth camera with the given name. If either the given ID or name is already in use, NULL will be returned. More...
 
virtual DirectionalLightPtr CreateDirectionalLight ()=0
 Create new directional light. A unique ID and name will automatically be assigned to the light. More...
 
virtual DirectionalLightPtr CreateDirectionalLight (const std::string &_name)=0
 Create new directional light with the given name. A unique ID will automatically be assigned to the light. If the given name is already in use, NULL will be returned. More...
 
virtual DirectionalLightPtr CreateDirectionalLight (unsigned int _id)=0
 Create new directional light with the given ID. A unique name will automatically be assigned to the light. If the given ID is already in use, NULL will be returned. More...
 
virtual DirectionalLightPtr CreateDirectionalLight (unsigned int _id, const std::string &_name)=0
 Create new directional light with the given name. If either the given ID or name is already in use, NULL will be returned. More...
 
virtual GizmoVisualPtr CreateGizmoVisual ()=0
 Create new gizmo visual. A unique ID and name will automatically be assigned to the visual. More...
 
virtual GizmoVisualPtr CreateGizmoVisual (const std::string &_name)=0
 Create new gizmo visual with the given name. A unique ID will automatically be assigned to the visual. If the given name is already in use, NULL will be returned. More...
 
virtual GizmoVisualPtr CreateGizmoVisual (unsigned int _id)=0
 Create new gizmo visual with the given ID. A unique name will automatically be assigned to the visual. If the given ID is already in use, NULL will be returned. More...
 
virtual GizmoVisualPtr CreateGizmoVisual (unsigned int _id, const std::string &_name)=0
 Create new gizmo visual with the given name. If either the given ID or name is already in use, NULL will be returned. More...
 
virtual GpuRaysPtr CreateGpuRays ()=0
 Create new gpu rays caster. A unique ID and name will automatically be assigned to the gpu rays caster. More...
 
virtual GpuRaysPtr CreateGpuRays (const std::string &_name)=0
 Create new gpu rays caster with the given name. A unique ID will automatically be assigned to the gpu rays caster. If the given name is already in use, NULL will be returned. More...
 
virtual GpuRaysPtr CreateGpuRays (unsigned int _id)=0
 Create new gpu rays caster with the given ID. A unique name will automatically be assigned to the gpu rays caster. If the given ID is already in use, NULL will be returned. More...
 
virtual GpuRaysPtr CreateGpuRays (unsigned int _id, const std::string &_name)=0
 Create new gpu rays caster with the given name. If either the given ID or name is already in use, NULL will be returned. More...
 
virtual GridPtr CreateGrid ()=0
 Create new grid geometry. More...
 
virtual HeightmapPtr CreateHeightmap (const HeightmapDescriptor &_desc)=0
 Create new heightmap geomerty. The rendering::Heightmap will be created from the given HeightmapDescriptor. More...
 
virtual InertiaVisualPtr CreateInertiaVisual ()=0
 Create new inertia visual. A unique ID and name will automatically be assigned to the inertia visual. More...
 
virtual InertiaVisualPtr CreateInertiaVisual (const std::string &_name)=0
 Create new inertia visual with the given name. A unique ID will automatically be assigned to the visual. If the given name is already in use, NULL will be returned. More...
 
virtual InertiaVisualPtr CreateInertiaVisual (unsigned int _id)=0
 Create new inertia visual with the given ID. A unique name will automatically be assigned to the visual. If the given ID is already in use, NULL will be returned. More...
 
virtual InertiaVisualPtr CreateInertiaVisual (unsigned int _id, const std::string &_name)=0
 Create new inertia visual with the given name. If either the given ID or name is already in use, NULL will be returned. More...
 
virtual JointVisualPtr CreateJointVisual ()=0
 Create new joint visual. A unique ID and name will automatically be assigned to the Joint visual. More...
 
virtual JointVisualPtr CreateJointVisual (const std::string &_name)=0
 Create new joint visual with the given name. A unique ID will automatically be assigned to the visual. If the given name is already in use, NULL will be returned. More...
 
virtual JointVisualPtr CreateJointVisual (unsigned int _id)=0
 Create new joint visual with the given ID. A unique name will automatically be assigned to the visual. If the given ID is already in use, NULL will be returned. More...
 
virtual JointVisualPtr CreateJointVisual (unsigned int _id, const std::string &_name)=0
 Create new joint visual with the given name. If either the given ID or name is already in use, NULL will be returned. More...
 
virtual LidarVisualPtr CreateLidarVisual ()=0
 Create new lidar visual. A unique ID and name will automatically be assigned to the lidar visual. More...
 
virtual LidarVisualPtr CreateLidarVisual (const std::string &_name)=0
 Create new lidar visual with the given name. A unique ID will automatically be assigned to the lidar visual. If the given name is already in use, NULL will be returned. More...
 
virtual LidarVisualPtr CreateLidarVisual (unsigned int _id)=0
 Create new lidar visual with the given ID. A unique name will automatically be assigned to the lidar visual. If the given ID is already in use, NULL will be returned. More...
 
virtual LidarVisualPtr CreateLidarVisual (unsigned int _id, const std::string &_name)=0
 Create new lidar visual with the given name. If either the given ID or name is already in use, NULL will be returned. More...
 
virtual LightVisualPtr CreateLightVisual ()=0
 Create new light visual. A unique ID and name will automatically be assigned to the light visual. More...
 
virtual LightVisualPtr CreateLightVisual (const std::string &_name)=0
 Create new light visual with the given name. A unique ID will automatically be assigned to the visual. If the given name is already in use, NULL will be returned. More...
 
virtual LightVisualPtr CreateLightVisual (unsigned int _id)=0
 Create new light visual with the given ID. A unique name will automatically be assigned to the visual. If the given ID is already in use, NULL will be returned. More...
 
virtual LightVisualPtr CreateLightVisual (unsigned int _id, const std::string &_name)=0
 Create new light visual with the given name. If either the given ID or name is already in use, NULL will be returned. More...
 
virtual MarkerPtr CreateMarker ()=0
 Create new marker geometry. More...
 
virtual MaterialPtr CreateMaterial (const common::Material &_material)=0
 Create new material from the reference common::Material. More...
 
virtual MaterialPtr CreateMaterial (const std::string &_name="")=0
 Create new material with the given name. Created material will have default properties. More...
 
virtual MeshPtr CreateMesh (const common::Mesh *_mesh)=0
 Create new mesh geomerty. The rendering::Mesh will be created from the given common::Mesh. All sub-meshes will be loaded into this created mesh, uncentered. More...
 
virtual MeshPtr CreateMesh (const MeshDescriptor &_desc)=0
 Create new mesh geometry. The rendering::Mesh will be created from the given common::Mesh specified in the MeshDescriptor. Sub-meshes will be loaded and centered according to the descriptor. More...
 
virtual MeshPtr CreateMesh (const std::string &_meshName)=0
 Create new mesh geomerty. The rendering::Mesh will be created from a common::Mesh retrieved from common::MeshManager using the given mesh name. If no mesh exists by this name, NULL will be returned. All sub-meshes will be loaded into the created mesh, uncentered. More...
 
virtual ParticleEmitterPtr CreateParticleEmitter ()=0
 Create new particle emitter. A unique ID and name will automatically be assigned to the visual. More...
 
virtual ParticleEmitterPtr CreateParticleEmitter (const std::string &_name)=0
 Create new particle emitter with the given name. A unique ID will automatically be assigned to the visual. If the given name is already in use, NULL will be returned. More...
 
virtual ParticleEmitterPtr CreateParticleEmitter (unsigned int _id)=0
 Create new particle emitter with the given ID. A unique name will automatically be assigned to the visual. If the given ID is already in use, NULL will be returned. More...
 
virtual ParticleEmitterPtr CreateParticleEmitter (unsigned int _id, const std::string &_name)=0
 Create new particle emitter with the given name. If either the given ID or name is already in use, NULL will be returned. More...
 
virtual GeometryPtr CreatePlane ()=0
 Create new plane geometry. More...
 
virtual PointLightPtr CreatePointLight ()=0
 Create new point light. A unique ID and name will automatically be assigned to the light. More...
 
virtual PointLightPtr CreatePointLight (const std::string &_name)=0
 Create new point light with the given name. A unique ID will automatically be assigned to the light. If the given name is already in use, NULL will be returned. More...
 
virtual PointLightPtr CreatePointLight (unsigned int _id)=0
 Create new point light with the given ID. A unique name will automatically be assigned to the light. If the given ID is already in use, NULL will be returned. More...
 
virtual PointLightPtr CreatePointLight (unsigned int _id, const std::string &_name)=0
 Create new point light with the given name. If either the given ID or name is already in use, NULL will be returned. More...
 
virtual RayQueryPtr CreateRayQuery ()=0
 Create new ray query. More...
 
virtual RenderTexturePtr CreateRenderTexture ()=0
 Create new render texture. More...
 
virtual RenderWindowPtr CreateRenderWindow ()=0
 Create new render window. This feature is render engine dependent. If the engine does not support attaching to a windowing system then it should behave as a a render texture. More...
 
virtual SegmentationCameraPtr CreateSegmentationCamera ()=0
 Create new segmentation camera. A unique ID and name will automatically be assigned to the camera. More...
 
virtual SegmentationCameraPtr CreateSegmentationCamera (const std::string &_name)=0
 Create new segmentation camera with the given name. A unique ID will automatically be assigned to the camera. If the given name is already in use, NULL will be returned. More...
 
virtual SegmentationCameraPtr CreateSegmentationCamera (unsigned int _id)=0
 Create new segmentation camera with the given ID. A unique name will automatically be assigned to the camera. If the given ID is already in use, NULL will be returned. More...
 
virtual SegmentationCameraPtr CreateSegmentationCamera (unsigned int _id, const std::string &_name)=0
 Create new segmentation camera with the given name and ID. If either the given ID or name is already in use, will return NULL. More...
 
virtual GeometryPtr CreateSphere ()=0
 Create new sphere or ellipsoid geometry This method allow to create ellipsoid too, because it can be scaled in 3 dimensions. More...
 
virtual SpotLightPtr CreateSpotLight ()=0
 Create new spotlight. A unique ID and name will automatically be assigned to the light. More...
 
virtual SpotLightPtr CreateSpotLight (const std::string &_name)=0
 Create new spotlight with the given name. A unique ID will automatically be assigned to the light. If the given name is already in use, NULL will be returned. More...
 
virtual SpotLightPtr CreateSpotLight (unsigned int _id)=0
 Create new spotlight with the given ID. A unique name will automatically be assigned to the light. If the given ID is already in use, NULL will be returned. More...
 
virtual SpotLightPtr CreateSpotLight (unsigned int _id, const std::string &_name)=0
 Create new spotlight with the given name. If either the given ID or name is already in use, NULL will be returned. More...
 
virtual TextPtr CreateText ()=0
 Create new text geometry. More...
 
virtual ThermalCameraPtr CreateThermalCamera ()=0
 Create new thermal camera. A unique ID and name will automatically be assigned to the camera. More...
 
virtual ThermalCameraPtr CreateThermalCamera (const std::string &_name)=0
 Create new thermal camera with the given name. A unique ID will automatically be assigned to the camera. If the given name is already in use, NULL will be returned. More...
 
virtual ThermalCameraPtr CreateThermalCamera (unsigned int _id)=0
 Create new thermal camera with the given ID. A unique name will automatically be assigned to the camera. If the given ID is already in use, NULL will be returned. More...
 
virtual ThermalCameraPtr CreateThermalCamera (unsigned int _id, const std::string &_name)=0
 Create new thermal camera with the given name. If either the given ID or name is already in use, NULL will be returned. More...
 
virtual VisualPtr CreateVisual ()=0
 Create new visual. A unique ID and name will automatically be assigned to the visual. More...
 
virtual VisualPtr CreateVisual (const std::string &_name)=0
 Create new visual with the given name. A unique ID will automatically be assigned to the visual. If the given name is already in use, NULL will be returned. More...
 
virtual VisualPtr CreateVisual (unsigned int _id)=0
 Create new visual with the given ID. A unique name will automatically be assigned to the visual. If the given ID is already in use, NULL will be returned. More...
 
virtual VisualPtr CreateVisual (unsigned int _id, const std::string &_name)=0
 Create new visual with the given name. If either the given ID or name is already in use, NULL will be returned. More...
 
virtual WideAngleCameraPtr CreateWideAngleCamera ()=0
 Create new wide angle camera. A unique ID and name will automatically be assigned to the camera. More...
 
virtual WideAngleCameraPtr CreateWideAngleCamera (const std::string &_name)=0
 Create new wide angle camera with the given name. A unique ID will automatically be assigned to the camera. If the given name is already in use, NULL will be returned. More...
 
virtual WideAngleCameraPtr CreateWideAngleCamera (unsigned int _id)=0
 Create wide angle camera with the given ID. A unique name will automatically be assigned to the camera. If the given ID is already in use, NULL will be returned. More...
 
virtual WideAngleCameraPtr CreateWideAngleCamera (unsigned int _id, const std::string &_name)=0
 Create new wide angle camera with the given name and ID. If either the given ID or name is already in use, will return NULL. More...
 
virtual WireBoxPtr CreateWireBox ()=0
 Create new wire box geometry. More...
 
virtual void Destroy ()=0
 Completely destroy the scene an all its resources. Continued use of this scene after its destruction will result in undefined behavior. More...
 
virtual void DestroyLight (LightPtr _light, bool _recursive=false)=0
 Destroy given light. If the given light is not managed by this scene, no work will be done. Depending on the _recursive argument, this function will either detach all child nodes from the scene graph or recursively destroy them. More...
 
virtual void DestroyLightById (unsigned int _id)=0
 Destroy light with the given id. If no light exists with the given id, no work will be done. All children of the light will consequently be detached from the scene graph, but not destroyed. More...
 
virtual void DestroyLightByIndex (unsigned int _index)=0
 Destroy light at the given index. If no light exists at the given index, no work will be done. All children of the light will consequently be detached from the scene graph, but not destroyed. More...
 
virtual void DestroyLightByName (const std::string &_name)=0
 Destroy light with the given name. If no light exists with the given name, no work will be done. All children of the light will consequently be detached from the scene graph, but not destroyed. More...
 
virtual void DestroyLights ()=0
 Destroy all lights manages by this scene. More...
 
virtual void DestroyMaterial (MaterialPtr _material)=0
 Unregister and destroy a material. More...
 
virtual void DestroyMaterials ()=0
 Unregister and destroys all registered materials. More...
 
virtual void DestroyNode (NodePtr _node, bool _recursive=false)=0
 Destroy given node. If the given node is not managed by this scene, no work will be done. Depending on the _recursive argument, this function will either detach all child nodes from the scene graph or recursively destroy them. More...
 
virtual void DestroyNodeById (unsigned int _id)=0
 Destroy node with the given id. If no node exists with the given id, no work will be done. All children of the node will consequently be detached from the scene graph, but not destroyed. More...
 
virtual void DestroyNodeByIndex (unsigned int _index)=0
 Destroy node at the given index. If no node exists at the given index, no work will be done. All children of the node will consequently be detached from the scene graph, but not destroyed. More...
 
virtual void DestroyNodeByName (const std::string &_name)=0
 Destroy node with the given name. If no node exists with the given name, no work will be done. All children of the node will consequently be detached from the scene graph, but not destroyed. More...
 
virtual void DestroyNodes ()=0
 Destroy all nodes manages by this scene. More...
 
virtual void DestroySensor (SensorPtr _sensor, bool _recursive=false)=0
 Destroy given sensor. If the given sensor is not managed by this scene, no work will be done. Depending on the _recursive argument, this function will either detach all child nodes from the scene graph or recursively destroy them. More...
 
virtual void DestroySensorById (unsigned int _id)=0
 Destroy sensor with the given id. If no sensor exists with the given id, no work will be done. All children of the sensor will consequently be detached from the scene graph, but not destroyed. More...
 
virtual void DestroySensorByIndex (unsigned int _index)=0
 Destroy sensor at the given index. If no sensor exists at the given index, no work will be done. All children of the sensor will consequently be detached from the scene graph, but not destroyed. More...
 
virtual void DestroySensorByName (const std::string &_name)=0
 Destroy sensor with the given name. If no sensor exists with the given name, no work will be done. All children of the sensor will consequently be detached from the scene graph, but not destroyed. More...
 
virtual void DestroySensors ()=0
 Destroy all sensors manages by this scene. More...
 
virtual void DestroyVisual (VisualPtr _node, bool _recursive=false)=0
 Destroy given node. If the given node is not managed by this scene, no work will be done. Depending on the _recursive argument, this function will either detach all child nodes from the scene graph or recursively destroy them. consequently be detached from the scene graph, but not destroyed. More...
 
virtual void DestroyVisualById (unsigned int _id)=0
 Destroy node with the given id. If no node exists with the given id, no work will be done. All children of the node will consequently be detached from the scene graph, but not destroyed. More...
 
virtual void DestroyVisualByIndex (unsigned int _index)=0
 Destroy node at the given index. If no node exists at the given index, no work will be done. All children of the node will consequently be detached from the scene graph, but not destroyed. More...
 
virtual void DestroyVisualByName (const std::string &_name)=0
 Destroy node with the given name. If no node exists with the given name, no work will be done. All children of the node will consequently be detached from the scene graph, but not destroyed. More...
 
virtual void DestroyVisuals ()=0
 Destroy all nodes manages by this scene. More...
 
virtual RenderEngineEngine () const =0
 Get the creating render-engine of the scene. More...
 
SceneExtExtension () const
 Get scene extention APIs This provides new Scene APIs that are experimental. More...
 
virtual void Fini ()=0
 
virtual std::array< math::Color, 4 > GradientBackgroundColor () const =0
 Get the scene gradient background color. More...
 
virtual bool HasLight (ConstLightPtr _light) const =0
 Determine if the given light is managed by this Scene. More...
 
virtual bool HasLightId (unsigned int _id) const =0
 Determine if a given light with the given id is managed by this Scene. More...
 
virtual bool HasLightName (const std::string &_name) const =0
 Determine if a given light with the given name is managed by this Scene. More...
 
virtual bool HasNode (ConstNodePtr _node) const =0
 Determine if the given node is managed by this Scene. More...
 
virtual bool HasNodeId (unsigned int _id) const =0
 Determine if a given node with the given id is managed by this Scene. More...
 
virtual bool HasNodeName (const std::string &_name) const =0
 Determine if a given node with the given name is managed by this Scene. More...
 
virtual bool HasSensor (ConstSensorPtr _sensor) const =0
 Determine if the given sensor is managed by this Scene. More...
 
virtual bool HasSensorId (unsigned int _id) const =0
 Determine if a given sensor with the given id is managed by this Scene. More...
 
virtual bool HasSensorName (const std::string &_name) const =0
 Determine if a given sensor with the given name is managed by this Scene. More...
 
virtual bool HasVisual (ConstVisualPtr _node) const =0
 Determine if the given node is managed by this Scene. More...
 
virtual bool HasVisualId (unsigned int _id) const =0
 Determine if a given node with the given id is managed by this Scene. More...
 
virtual bool HasVisualName (const std::string &_name) const =0
 Determine if a given node with the given name is managed by this Scene. More...
 
virtual unsigned int Id () const =0
 Get the ID of the scene. More...
 
virtual void Init ()=0
 Initialize the scene. More...
 
virtual bool IsGradientBackgroundColor () const =0
 Whether the scene has a gradient background or not (solid) More...
 
virtual bool IsInitialized () const =0
 Determine if the scene is initialized. More...
 
virtual bool LegacyAutoGpuFlush () const =0
 Checks if SetCameraPassCountPerGpuFlush is 0. More...
 
virtual LightPtr LightById (unsigned int _id) const =0
 Get light with the given id. If no light exists with the given id, NULL will be returned. More...
 
virtual LightPtr LightByIndex (unsigned int _index) const =0
 Get light at the given index. If no light exists at the given index, NULL will be returned. More...
 
virtual LightPtr LightByName (const std::string &_name) const =0
 Get light with the given name. If no light exists with the given name, NULL will be returned. More...
 
virtual unsigned int LightCount () const =0
 Get the number of lights managed by this scene. Note these lights may not be directly or indirectly attached to the root light. More...
 
virtual void Load ()=0
 Load scene-specific resources. More...
 
virtual MaterialPtr Material (const std::string &_name) const =0
 Get material registered under the given name. If no material is registered under the given name, NULL will be returned. More...
 
virtual bool MaterialRegistered (const std::string &_name) const =0
 Determine if a material is registered under the given name. More...
 
virtual std::string Name () const =0
 Get the name of the scene. More...
 
virtual NodePtr NodeById (unsigned int _id) const =0
 Get node with the given id. If no node exists with the given id, NULL will be returned. More...
 
virtual NodePtr NodeByIndex (unsigned int _index) const =0
 Get node at the given index. If no node exists at the given index, NULL will be returned. More...
 
virtual NodePtr NodeByName (const std::string &_name) const =0
 Get node with the given name. If no node exists with the given name, NULL will be returned. More...
 
virtual unsigned int NodeCount () const =0
 Get the number of nodes managed by this scene. Note these nodes may not be directly or indirectly attached to the root node. More...
 
virtual void PostRender ()=0
 Call this function after you're done updating ALL cameras. More...
 
virtual void PreRender ()=0
 Prepare scene for rendering. The scene will flushing any scene changes by traversing scene-graph, calling PreRender on all objects. More...
 
virtual void RegisterMaterial (const std::string &_name, MaterialPtr _material)=0
 Register a new material under the given name. If the name is already in use, no work will be done. More...
 
virtual void RemoveGradientBackgroundColor ()=0
 Remove the scene gradient background color. More...
 
virtual VisualPtr RootVisual () const =0
 Get root Visual node. All nodes that are desired to be rendered in a scene should be added to this Visual or one of its ancestors in the scene-graph. Nodes created by this Scene will not be added to the scene by default. More...
 
virtual SensorPtr SensorById (unsigned int _id) const =0
 Get sensor with the given id. If no sensor exists with the given id, NULL will be returned. More...
 
virtual SensorPtr SensorByIndex (unsigned int _index) const =0
 Get sensor at the given index. If no sensor exists at the given index, NULL will be returned. More...
 
virtual SensorPtr SensorByName (const std::string &_name) const =0
 Get sensor with the given name. If no sensor exists with the given name, NULL will be returned. More...
 
virtual unsigned int SensorCount () const =0
 Get the number of sensors managed by this scene. Note these sensors may not be directly or indirectly attached to the root sensor. More...
 
virtual void SetAmbientLight (const math::Color &_color)=0
 Set the scene ambient light color. More...
 
virtual void SetAmbientLight (double _r, double _g, double _b, double _a=1.0)=0
 Set the scene ambient light color. More...
 
virtual void SetBackgroundColor (const math::Color &_color)=0
 Set the scene background color. More...
 
virtual void SetBackgroundColor (double _r, double _g, double _b, double _a=1.0)=0
 Set the scene background color. More...
 
virtual void SetBackgroundMaterial (MaterialPtr _material)=0
 Set the scene background material e.g. a material with skybox cubemap texture. More...
 
virtual void SetCameraPassCountPerGpuFlush (uint8_t _numPass)=0
 The ideal render loop is as follows: More...
 
virtual void SetGradientBackgroundColor (const std::array< math::Color, 4 > &_colors)=0
 Set a custom gradient background color on top of the regular background. Default should be black. More...
 
virtual void SetSkyEnabled (bool _enabled)=0
 Enable sky in the scene. More...
 
virtual void SetTime (const std::chrono::steady_clock::duration &_time)=0
 Set the last simulation update time. More...
 
virtual bool SkyEnabled () const =0
 Get whether the sky is enabled in the scene. More...
 
virtual std::chrono::steady_clock::duration Time () const =0
 Get the last simulation update time. More...
 
virtual void UnregisterMaterial (const std::string &_name)=0
 Unregister material registered under the given name. If no material is registered under this name, no work will be done. More...
 
virtual void UnregisterMaterials ()=0
 Unregister all registered materials. More...
 
virtual VisualPtr VisualAt (const CameraPtr &_camera, const math::Vector2i &_mousePos)=0
 Get a visual at a mouse position. More...
 
virtual VisualPtr VisualById (unsigned int _id) const =0
 Get node with the given id. If no node exists with the given id, NULL will be returned. More...
 
virtual VisualPtr VisualByIndex (unsigned int _index) const =0
 Get node at the given index. If no node exists at the given index, NULL will be returned. More...
 
virtual VisualPtr VisualByName (const std::string &_name) const =0
 Get node with the given name. If no node exists with the given name, NULL will be returned. More...
 
virtual unsigned int VisualCount () const =0
 Get the number of nodes managed by this scene. Note these nodes may not be directly or indirectly attached to the root node. More...
 

Protected Member Functions

void SetExtension (SceneExt *_ext)
 Set the scene extention API This is called by underlying render engines. More...
 

Detailed Description

Manages a single scene-graph. This class updates scene-wide properties and holds the root scene node. A Scene also serves as a factory for all scene objects.

Constructor & Destructor Documentation

◆ ~Scene()

virtual ~Scene ( )
virtual

Destructor.

Member Function Documentation

◆ AmbientLight()

virtual math::Color AmbientLight ( ) const
pure virtual

Get the scene ambient light color.

Returns
The scene ambient light color

◆ BackgroundColor()

virtual math::Color BackgroundColor ( ) const
pure virtual

Get the scene background color.

Returns
The scene background color

Referenced by BaseRenderTarget< OgreObject >::BackgroundColor().

◆ BackgroundMaterial()

virtual MaterialPtr BackgroundMaterial ( ) const
pure virtual

Get the scene background material e.g. a material with skybox cubemap texture.

Returns
Material of the background

◆ CameraPassCountPerGpuFlush()

virtual uint8_t CameraPassCountPerGpuFlush ( ) const
pure virtual

Returns the value set in SetCameraPassCountPerGpuFlush.

Returns
Value in range [0; 255]. ALWAYS returns 0 for plugins that ignore SetCameraPassCountPerGpuFlush

◆ Clear()

virtual void Clear ( )
pure virtual

Remove and destroy all objects from the scene graph. This does not completely destroy scene resources, so new objects can be created and added to the scene afterwards.

◆ CreateArrowVisual() [1/4]

virtual ArrowVisualPtr CreateArrowVisual ( )
pure virtual

Create new arrow visual. A unique ID and name will automatically be assigned to the visual.

Returns
The created arrow visual

Referenced by BaseJointVisual< Ogre2Visual >::CreateAxis(), and BaseAxisVisual< Ogre2Visual >::Init().

◆ CreateArrowVisual() [2/4]

virtual ArrowVisualPtr CreateArrowVisual ( const std::string _name)
pure virtual

Create new arrow visual with the given name. A unique ID will automatically be assigned to the visual. If the given name is already in use, NULL will be returned.

Parameters
[in]_nameName of the new arrow visual
Returns
The created arrow visual

◆ CreateArrowVisual() [3/4]

virtual ArrowVisualPtr CreateArrowVisual ( unsigned int  _id)
pure virtual

Create new arrow visual with the given ID. A unique name will automatically be assigned to the visual. If the given ID is already in use, NULL will be returned.

Parameters
[in]_idID of the new arrow visual
Returns
The created arrow visual

◆ CreateArrowVisual() [4/4]

virtual ArrowVisualPtr CreateArrowVisual ( unsigned int  _id,
const std::string _name 
)
pure virtual

Create new arrow visual with the given name. If either the given ID or name is already in use, NULL will be returned.

Parameters
[in]_idID of the new arrow visual
[in]_nameName of the new arrow visual
Returns
The created arrow visual

◆ CreateAxisVisual() [1/4]

virtual AxisVisualPtr CreateAxisVisual ( )
pure virtual

Create new axis visual. A unique ID and name will automatically be assigned to the visual.

Returns
The created axis visual

Referenced by BaseJointVisual< Ogre2Visual >::Init().

◆ CreateAxisVisual() [2/4]

virtual AxisVisualPtr CreateAxisVisual ( const std::string _name)
pure virtual

Create new axis visual with the given name. A unique ID will automatically be assigned to the visual. If the given name is already in use, NULL will be returned.

Parameters
[in]_nameName of the new axis visual
Returns
The created axis visual

◆ CreateAxisVisual() [3/4]

virtual AxisVisualPtr CreateAxisVisual ( unsigned int  _id)
pure virtual

Create new axis visual with the given ID. A unique name will automatically be assigned to the visual. If the given ID is already in use, NULL will be returned.

Parameters
[in]_idID of the new axis visual
Returns
The created axis visual

◆ CreateAxisVisual() [4/4]

virtual AxisVisualPtr CreateAxisVisual ( unsigned int  _id,
const std::string _name 
)
pure virtual

Create new axis visual with the given name. If either the given ID or name is already in use, NULL will be returned.

Parameters
[in]_idID of the new axis visual
[in]_nameName of the new axis visual
Returns
The created axis visual

◆ CreateBoundingBoxCamera() [1/4]

virtual BoundingBoxCameraPtr CreateBoundingBoxCamera ( )
pure virtual

Create new BoundingBox camera. A unique ID and name will automatically be assigned to the camera.

Returns
The created camera

◆ CreateBoundingBoxCamera() [2/4]

virtual BoundingBoxCameraPtr CreateBoundingBoxCamera ( const std::string _name)
pure virtual

Create new BoundingBox camera with the given name. A unique ID will automatically be assigned to the camera. If the given name is already in use, NULL will be returned.

Parameters
[in]_nameName of the new camera
Returns
The created camera

◆ CreateBoundingBoxCamera() [3/4]

virtual BoundingBoxCameraPtr CreateBoundingBoxCamera ( unsigned int  _id)
pure virtual

Create new BoundingBox camera with the given ID. A unique name will automatically be assigned to the camera. If the given ID is already in use, NULL will be returned.

Parameters
[in]_idID of the new camera
Returns
The created camera

◆ CreateBoundingBoxCamera() [4/4]

virtual BoundingBoxCameraPtr CreateBoundingBoxCamera ( unsigned int  _id,
const std::string _name 
)
pure virtual

Create new BoundingBox camera with the given ID & name. If either the given ID or name is already in use, will return NULL.

Parameters
[in]_idID of the new camera
[in]_nameName of the new camera
Returns
The created camera

◆ CreateBox()

virtual GeometryPtr CreateBox ( )
pure virtual

Create new box geometry.

Returns
The created box

◆ CreateCamera() [1/4]

virtual CameraPtr CreateCamera ( )
pure virtual

Create new camera. A unique ID and name will automatically be assigned to the camera.

Returns
The created camera

◆ CreateCamera() [2/4]

virtual CameraPtr CreateCamera ( const std::string _name)
pure virtual

Create new camera with the given name. A unique ID will automatically be assigned to the camera. If the given name is already in use, NULL will be returned.

Parameters
[in]_nameName of the new camera
Returns
The created camera

◆ CreateCamera() [3/4]

virtual CameraPtr CreateCamera ( unsigned int  _id)
pure virtual

Create new camera with the given ID. A unique name will automatically be assigned to the camera. If the given ID is already in use, NULL will be returned.

Parameters
[in]_idID of the new camera
Returns
The created camera

◆ CreateCamera() [4/4]

virtual CameraPtr CreateCamera ( unsigned int  _id,
const std::string _name 
)
pure virtual

Create new camera with the given name. If either the given ID or name is already in use, NULL will be returned.

Parameters
[in]_idID of the new camera
[in]_nameName of the new camera
Returns
The created camera

◆ CreateCapsule()

virtual CapsulePtr CreateCapsule ( )
pure virtual

Create new capsule geometry.

Returns
The created capsule

Referenced by BaseCapsule< OgreGeometry >::Clone().

◆ CreateCOMVisual() [1/4]

virtual COMVisualPtr CreateCOMVisual ( )
pure virtual

Create new CoM visual. A unique ID and name will automatically be assigned to the CoM visual.

Returns
The created CoM visual

◆ CreateCOMVisual() [2/4]

virtual COMVisualPtr CreateCOMVisual ( const std::string _name)
pure virtual

Create new CoM visual with the given name. A unique ID will automatically be assigned to the visual. If the given name is already in use, NULL will be returned.

Parameters
[in]_nameName of the new CoM visual
Returns
The created CoM visual

◆ CreateCOMVisual() [3/4]

virtual COMVisualPtr CreateCOMVisual ( unsigned int  _id)
pure virtual

Create new CoM visual with the given ID. A unique name will automatically be assigned to the visual. If the given ID is already in use, NULL will be returned.

Parameters
[in]_idID of the new CoM visual
Returns
The created CoM visual

◆ CreateCOMVisual() [4/4]

virtual COMVisualPtr CreateCOMVisual ( unsigned int  _id,
const std::string _name 
)
pure virtual

Create new CoM visual with the given name. If either the given ID or name is already in use, NULL will be returned.

Parameters
[in]_idID of the new CoM visual
[in]_nameName of the new CoM visual
Returns
The created CoM visual

◆ CreateCone()

virtual GeometryPtr CreateCone ( )
pure virtual

Create new cone geometry.

Returns
The created cone

◆ CreateCylinder()

virtual GeometryPtr CreateCylinder ( )
pure virtual

Create new cylinder geometry.

Returns
The created cylinder

◆ CreateDepthCamera() [1/4]

virtual DepthCameraPtr CreateDepthCamera ( )
pure virtual

Create new depth camera. A unique ID and name will automatically be assigned to the camera.

Returns
The created camera

◆ CreateDepthCamera() [2/4]

virtual DepthCameraPtr CreateDepthCamera ( const std::string _name)
pure virtual

Create new depth camera with the given name. A unique ID will automatically be assigned to the camera. If the given name is already in use, NULL will be returned.

Parameters
[in]_nameName of the new camera
Returns
The created camera

◆ CreateDepthCamera() [3/4]

virtual DepthCameraPtr CreateDepthCamera ( unsigned int  _id)
pure virtual

Create new depth camera with the given ID. A unique name will automatically be assigned to the camera. If the given ID is already in use, NULL will be returned.

Parameters
[in]_idID of the new camera
Returns
The created camera

◆ CreateDepthCamera() [4/4]

virtual DepthCameraPtr CreateDepthCamera ( unsigned int  _id,
const std::string _name 
)
pure virtual

Create new depth camera with the given name. If either the given ID or name is already in use, NULL will be returned.

Parameters
[in]_idID of the new camera
[in]_nameName of the new camera
Returns
The created camera

◆ CreateDirectionalLight() [1/4]

virtual DirectionalLightPtr CreateDirectionalLight ( )
pure virtual

Create new directional light. A unique ID and name will automatically be assigned to the light.

Returns
The created light

◆ CreateDirectionalLight() [2/4]

virtual DirectionalLightPtr CreateDirectionalLight ( const std::string _name)
pure virtual

Create new directional light with the given name. A unique ID will automatically be assigned to the light. If the given name is already in use, NULL will be returned.

Parameters
[in]_nameName of the new light
Returns
The created light

◆ CreateDirectionalLight() [3/4]

virtual DirectionalLightPtr CreateDirectionalLight ( unsigned int  _id)
pure virtual

Create new directional light with the given ID. A unique name will automatically be assigned to the light. If the given ID is already in use, NULL will be returned.

Parameters
[in]_idID of the new light
Returns
The created light

◆ CreateDirectionalLight() [4/4]

virtual DirectionalLightPtr CreateDirectionalLight ( unsigned int  _id,
const std::string _name 
)
pure virtual

Create new directional light with the given name. If either the given ID or name is already in use, NULL will be returned.

Parameters
[in]_idID of the new light
[in]_nameName of the new light
Returns
The created light

◆ CreateGizmoVisual() [1/4]

virtual GizmoVisualPtr CreateGizmoVisual ( )
pure virtual

Create new gizmo visual. A unique ID and name will automatically be assigned to the visual.

Returns
The created gizmo visual

◆ CreateGizmoVisual() [2/4]

virtual GizmoVisualPtr CreateGizmoVisual ( const std::string _name)
pure virtual

Create new gizmo visual with the given name. A unique ID will automatically be assigned to the visual. If the given name is already in use, NULL will be returned.

Parameters
[in]_nameName of the new gizmo visual
Returns
The created gizmo visual

◆ CreateGizmoVisual() [3/4]

virtual GizmoVisualPtr CreateGizmoVisual ( unsigned int  _id)
pure virtual

Create new gizmo visual with the given ID. A unique name will automatically be assigned to the visual. If the given ID is already in use, NULL will be returned.

Parameters
[in]_idID of the new gizmo visual
Returns
The created gizmo visual

◆ CreateGizmoVisual() [4/4]

virtual GizmoVisualPtr CreateGizmoVisual ( unsigned int  _id,
const std::string _name 
)
pure virtual

Create new gizmo visual with the given name. If either the given ID or name is already in use, NULL will be returned.

Parameters
[in]_idID of the new gizmo visual
[in]_nameName of the new gizmo visual
Returns
The created gizmo visual

◆ CreateGpuRays() [1/4]

virtual GpuRaysPtr CreateGpuRays ( )
pure virtual

Create new gpu rays caster. A unique ID and name will automatically be assigned to the gpu rays caster.

Returns
The created gpu rays caster

◆ CreateGpuRays() [2/4]

virtual GpuRaysPtr CreateGpuRays ( const std::string _name)
pure virtual

Create new gpu rays caster with the given name. A unique ID will automatically be assigned to the gpu rays caster. If the given name is already in use, NULL will be returned.

Parameters
[in]_nameName of the new gpu rays caster
Returns
The created gpu ray caster

◆ CreateGpuRays() [3/4]

virtual GpuRaysPtr CreateGpuRays ( unsigned int  _id)
pure virtual

Create new gpu rays caster with the given ID. A unique name will automatically be assigned to the gpu rays caster. If the given ID is already in use, NULL will be returned.

Parameters
[in]_idID of the new gpu rays caster
Returns
The created gpu rays caster

◆ CreateGpuRays() [4/4]

virtual GpuRaysPtr CreateGpuRays ( unsigned int  _id,
const std::string _name 
)
pure virtual

Create new gpu rays caster with the given name. If either the given ID or name is already in use, NULL will be returned.

Parameters
[in]_idID of the gpu ray caster
[in]_nameName of the new gpu ray caster
Returns
The created Gpu ray caster

◆ CreateGrid()

virtual GridPtr CreateGrid ( )
pure virtual

Create new grid geometry.

Returns
The created grid

◆ CreateHeightmap()

virtual HeightmapPtr CreateHeightmap ( const HeightmapDescriptor _desc)
pure virtual

Create new heightmap geomerty. The rendering::Heightmap will be created from the given HeightmapDescriptor.

Parameters
[in]_descData about the heightmap
Returns
The created heightmap

◆ CreateInertiaVisual() [1/4]

virtual InertiaVisualPtr CreateInertiaVisual ( )
pure virtual

Create new inertia visual. A unique ID and name will automatically be assigned to the inertia visual.

Returns
The created inertia visual

◆ CreateInertiaVisual() [2/4]

virtual InertiaVisualPtr CreateInertiaVisual ( const std::string _name)
pure virtual

Create new inertia visual with the given name. A unique ID will automatically be assigned to the visual. If the given name is already in use, NULL will be returned.

Parameters
[in]_nameName of the new inertia visual
Returns
The created light visual

◆ CreateInertiaVisual() [3/4]

virtual InertiaVisualPtr CreateInertiaVisual ( unsigned int  _id)
pure virtual

Create new inertia visual with the given ID. A unique name will automatically be assigned to the visual. If the given ID is already in use, NULL will be returned.

Parameters
[in]_idID of the new inertia visual
Returns
The created light visual

◆ CreateInertiaVisual() [4/4]

virtual InertiaVisualPtr CreateInertiaVisual ( unsigned int  _id,
const std::string _name 
)
pure virtual

Create new inertia visual with the given name. If either the given ID or name is already in use, NULL will be returned.

Parameters
[in]_idID of the new inertia visual
[in]_nameName of the new inertia visual
Returns
The created inertia visual

◆ CreateJointVisual() [1/4]

virtual JointVisualPtr CreateJointVisual ( )
pure virtual

Create new joint visual. A unique ID and name will automatically be assigned to the Joint visual.

Returns
The created Joint visual

Referenced by BaseJointVisual< Ogre2Visual >::CreateParentAxis().

◆ CreateJointVisual() [2/4]

virtual JointVisualPtr CreateJointVisual ( const std::string _name)
pure virtual

Create new joint visual with the given name. A unique ID will automatically be assigned to the visual. If the given name is already in use, NULL will be returned.

Parameters
[in]_nameName of the new Joint visual
Returns
The created Joint visual

◆ CreateJointVisual() [3/4]

virtual JointVisualPtr CreateJointVisual ( unsigned int  _id)
pure virtual

Create new joint visual with the given ID. A unique name will automatically be assigned to the visual. If the given ID is already in use, NULL will be returned.

Parameters
[in]_idID of the new Joint visual
Returns
The created Joint visual

◆ CreateJointVisual() [4/4]

virtual JointVisualPtr CreateJointVisual ( unsigned int  _id,
const std::string _name 
)
pure virtual

Create new joint visual with the given name. If either the given ID or name is already in use, NULL will be returned.

Parameters
[in]_idID of the new Joint visual
[in]_nameName of the new Joint visual
Returns
The created Joint visual

◆ CreateLidarVisual() [1/4]

virtual LidarVisualPtr CreateLidarVisual ( )
pure virtual

Create new lidar visual. A unique ID and name will automatically be assigned to the lidar visual.

Returns
The created lidar visual

◆ CreateLidarVisual() [2/4]

virtual LidarVisualPtr CreateLidarVisual ( const std::string _name)
pure virtual

Create new lidar visual with the given name. A unique ID will automatically be assigned to the lidar visual. If the given name is already in use, NULL will be returned.

Parameters
[in]_nameName of the new lidar visual
Returns
The created lidar visual

◆ CreateLidarVisual() [3/4]

virtual LidarVisualPtr CreateLidarVisual ( unsigned int  _id)
pure virtual

Create new lidar visual with the given ID. A unique name will automatically be assigned to the lidar visual. If the given ID is already in use, NULL will be returned.

Parameters
[in]_idID of the new lidar visual
Returns
The created lidar visual

◆ CreateLidarVisual() [4/4]

virtual LidarVisualPtr CreateLidarVisual ( unsigned int  _id,
const std::string _name 
)
pure virtual

Create new lidar visual with the given name. If either the given ID or name is already in use, NULL will be returned.

Parameters
[in]_idID of the lidar visual.
[in]_nameName of the new lidar visual.
Returns
The created lidar visual

◆ CreateLightVisual() [1/4]

virtual LightVisualPtr CreateLightVisual ( )
pure virtual

Create new light visual. A unique ID and name will automatically be assigned to the light visual.

Returns
The created light visual

◆ CreateLightVisual() [2/4]

virtual LightVisualPtr CreateLightVisual ( const std::string _name)
pure virtual

Create new light visual with the given name. A unique ID will automatically be assigned to the visual. If the given name is already in use, NULL will be returned.

Parameters
[in]_nameName of the new light visual
Returns
The created light visual

◆ CreateLightVisual() [3/4]

virtual LightVisualPtr CreateLightVisual ( unsigned int  _id)
pure virtual

Create new light visual with the given ID. A unique name will automatically be assigned to the visual. If the given ID is already in use, NULL will be returned.

Parameters
[in]_idID of the new light visual
Returns
The created light visual

◆ CreateLightVisual() [4/4]

virtual LightVisualPtr CreateLightVisual ( unsigned int  _id,
const std::string _name 
)
pure virtual

Create new light visual with the given name. If either the given ID or name is already in use, NULL will be returned.

Parameters
[in]_idID of the new light visual
[in]_nameName of the new light visual
Returns
The created light visual

◆ CreateMarker()

virtual MarkerPtr CreateMarker ( )
pure virtual

Create new marker geometry.

Returns
The created marker

◆ CreateMaterial() [1/2]

virtual MaterialPtr CreateMaterial ( const common::Material _material)
pure virtual

Create new material from the reference common::Material.

Parameters
[in]_materialReference material
Returns
The created material

◆ CreateMaterial() [2/2]

virtual MaterialPtr CreateMaterial ( const std::string _name = "")
pure virtual

Create new material with the given name. Created material will have default properties.

Parameters
[in]_nameName for the new material.
Returns
The created material

Referenced by BaseGizmoVisual< Ogre2Visual >::CreateMaterials(), and BaseLidarVisual< Ogre2Visual >::CreateMaterials().

◆ CreateMesh() [1/3]

virtual MeshPtr CreateMesh ( const common::Mesh _mesh)
pure virtual

Create new mesh geomerty. The rendering::Mesh will be created from the given common::Mesh. All sub-meshes will be loaded into this created mesh, uncentered.

Parameters
[in]_meshReference mesh
Returns
The created mesh

◆ CreateMesh() [2/3]

virtual MeshPtr CreateMesh ( const MeshDescriptor _desc)
pure virtual

Create new mesh geometry. The rendering::Mesh will be created from the given common::Mesh specified in the MeshDescriptor. Sub-meshes will be loaded and centered according to the descriptor.

Parameters
[in]_descDescriptor of the mesh to load
Returns
The created mesh

◆ CreateMesh() [3/3]

virtual MeshPtr CreateMesh ( const std::string _meshName)
pure virtual

Create new mesh geomerty. The rendering::Mesh will be created from a common::Mesh retrieved from common::MeshManager using the given mesh name. If no mesh exists by this name, NULL will be returned. All sub-meshes will be loaded into the created mesh, uncentered.

Parameters
[in]_meshNameName of the reference mesh
Returns
The created mesh

Referenced by BaseMesh< OgreGeometry >::Clone().

◆ CreateParticleEmitter() [1/4]

virtual ParticleEmitterPtr CreateParticleEmitter ( )
pure virtual

Create new particle emitter. A unique ID and name will automatically be assigned to the visual.

Returns
The created particle emitter

◆ CreateParticleEmitter() [2/4]

virtual ParticleEmitterPtr CreateParticleEmitter ( const std::string _name)
pure virtual

Create new particle emitter with the given name. A unique ID will automatically be assigned to the visual. If the given name is already in use, NULL will be returned.

Parameters
[in]_nameName of the new particle emitter
Returns
The created particle emitter

◆ CreateParticleEmitter() [3/4]

virtual ParticleEmitterPtr CreateParticleEmitter ( unsigned int  _id)
pure virtual

Create new particle emitter with the given ID. A unique name will automatically be assigned to the visual. If the given ID is already in use, NULL will be returned.

Parameters
[in]_idID of the new particle emitter
Returns
The created particle emitter

◆ CreateParticleEmitter() [4/4]

virtual ParticleEmitterPtr CreateParticleEmitter ( unsigned int  _id,
const std::string _name 
)
pure virtual

Create new particle emitter with the given name. If either the given ID or name is already in use, NULL will be returned.

Parameters
[in]_idID of the new particle emitter
[in]_nameName of the new particle emitter
Returns
The created particle emitter

◆ CreatePlane()

virtual GeometryPtr CreatePlane ( )
pure virtual

Create new plane geometry.

Returns
The created plane

◆ CreatePointLight() [1/4]

virtual PointLightPtr CreatePointLight ( )
pure virtual

Create new point light. A unique ID and name will automatically be assigned to the light.

Returns
The created light

◆ CreatePointLight() [2/4]

virtual PointLightPtr CreatePointLight ( const std::string _name)
pure virtual

Create new point light with the given name. A unique ID will automatically be assigned to the light. If the given name is already in use, NULL will be returned.

Parameters
[in]_nameName of the new light
Returns
The created light

◆ CreatePointLight() [3/4]

virtual PointLightPtr CreatePointLight ( unsigned int  _id)
pure virtual

Create new point light with the given ID. A unique name will automatically be assigned to the light. If the given ID is already in use, NULL will be returned.

Parameters
[in]_idID of the new light
Returns
The created light

◆ CreatePointLight() [4/4]

virtual PointLightPtr CreatePointLight ( unsigned int  _id,
const std::string _name 
)
pure virtual

Create new point light with the given name. If either the given ID or name is already in use, NULL will be returned.

Parameters
[in]_idID of the new light
[in]_nameName of the new light
Returns
The created light

◆ CreateRayQuery()

virtual RayQueryPtr CreateRayQuery ( )
pure virtual

Create new ray query.

Returns
The created ray query

◆ CreateRenderTexture()

virtual RenderTexturePtr CreateRenderTexture ( )
pure virtual

Create new render texture.

Returns
The created render texture

◆ CreateRenderWindow()

virtual RenderWindowPtr CreateRenderWindow ( )
pure virtual

Create new render window. This feature is render engine dependent. If the engine does not support attaching to a windowing system then it should behave as a a render texture.

Returns
The created render window

◆ CreateSegmentationCamera() [1/4]

virtual SegmentationCameraPtr CreateSegmentationCamera ( )
pure virtual

Create new segmentation camera. A unique ID and name will automatically be assigned to the camera.

Returns
The created camera

◆ CreateSegmentationCamera() [2/4]

virtual SegmentationCameraPtr CreateSegmentationCamera ( const std::string _name)
pure virtual

Create new segmentation camera with the given name. A unique ID will automatically be assigned to the camera. If the given name is already in use, NULL will be returned.

Parameters
[in]_nameName of the new camera
Returns
The created camera

◆ CreateSegmentationCamera() [3/4]

virtual SegmentationCameraPtr CreateSegmentationCamera ( unsigned int  _id)
pure virtual

Create new segmentation camera with the given ID. A unique name will automatically be assigned to the camera. If the given ID is already in use, NULL will be returned.

Parameters
[in]_idID of the new camera
Returns
The created camera

◆ CreateSegmentationCamera() [4/4]

virtual SegmentationCameraPtr CreateSegmentationCamera ( unsigned int  _id,
const std::string _name 
)
pure virtual

Create new segmentation camera with the given name and ID. If either the given ID or name is already in use, will return NULL.

Parameters
[in]_idID of the new camera
[in]_nameName of the new camera
Returns
The created camera

◆ CreateSphere()

virtual GeometryPtr CreateSphere ( )
pure virtual

Create new sphere or ellipsoid geometry This method allow to create ellipsoid too, because it can be scaled in 3 dimensions.

Returns
The created sphere

◆ CreateSpotLight() [1/4]

virtual SpotLightPtr CreateSpotLight ( )
pure virtual

Create new spotlight. A unique ID and name will automatically be assigned to the light.

Returns
The created light

◆ CreateSpotLight() [2/4]

virtual SpotLightPtr CreateSpotLight ( const std::string _name)
pure virtual

Create new spotlight with the given name. A unique ID will automatically be assigned to the light. If the given name is already in use, NULL will be returned.

Parameters
[in]_nameName of the new light
Returns
The created light

◆ CreateSpotLight() [3/4]

virtual SpotLightPtr CreateSpotLight ( unsigned int  _id)
pure virtual

Create new spotlight with the given ID. A unique name will automatically be assigned to the light. If the given ID is already in use, NULL will be returned.

Parameters
[in]_idID of the new light
Returns
The created light

◆ CreateSpotLight() [4/4]

virtual SpotLightPtr CreateSpotLight ( unsigned int  _id,
const std::string _name 
)
pure virtual

Create new spotlight with the given name. If either the given ID or name is already in use, NULL will be returned.

Parameters
[in]_idID of the new light
[in]_nameName of the new light
Returns
The created light

◆ CreateText()

virtual TextPtr CreateText ( )
pure virtual

Create new text geometry.

Returns
The created text

◆ CreateThermalCamera() [1/4]

virtual ThermalCameraPtr CreateThermalCamera ( )
pure virtual

Create new thermal camera. A unique ID and name will automatically be assigned to the camera.

Returns
The created camera

◆ CreateThermalCamera() [2/4]

virtual ThermalCameraPtr CreateThermalCamera ( const std::string _name)
pure virtual

Create new thermal camera with the given name. A unique ID will automatically be assigned to the camera. If the given name is already in use, NULL will be returned.

Parameters
[in]_nameName of the new camera
Returns
The created camera

◆ CreateThermalCamera() [3/4]

virtual ThermalCameraPtr CreateThermalCamera ( unsigned int  _id)
pure virtual

Create new thermal camera with the given ID. A unique name will automatically be assigned to the camera. If the given ID is already in use, NULL will be returned.

Parameters
[in]_idID of the new camera
Returns
The created camera

◆ CreateThermalCamera() [4/4]

virtual ThermalCameraPtr CreateThermalCamera ( unsigned int  _id,
const std::string _name 
)
pure virtual

Create new thermal camera with the given name. If either the given ID or name is already in use, NULL will be returned.

Parameters
[in]_idID of the new camera
[in]_nameName of the new camera
Returns
The created camera

◆ CreateVisual() [1/4]

virtual VisualPtr CreateVisual ( )
pure virtual

Create new visual. A unique ID and name will automatically be assigned to the visual.

Returns
The created visual

Referenced by BaseGizmoVisual< Ogre2Visual >::CreateRotationVisual(), BaseGizmoVisual< Ogre2Visual >::CreateScaleVisual(), BaseGizmoVisual< Ogre2Visual >::CreateTranslationVisual(), and BaseArrowVisual< Ogre2Visual >::Init().

◆ CreateVisual() [2/4]

virtual VisualPtr CreateVisual ( const std::string _name)
pure virtual

Create new visual with the given name. A unique ID will automatically be assigned to the visual. If the given name is already in use, NULL will be returned.

Parameters
[in]_nameName of the new visual
Returns
The created visual

◆ CreateVisual() [3/4]

virtual VisualPtr CreateVisual ( unsigned int  _id)
pure virtual

Create new visual with the given ID. A unique name will automatically be assigned to the visual. If the given ID is already in use, NULL will be returned.

Parameters
[in]_idID of the new visual
Returns
The created visual

◆ CreateVisual() [4/4]

virtual VisualPtr CreateVisual ( unsigned int  _id,
const std::string _name 
)
pure virtual

Create new visual with the given name. If either the given ID or name is already in use, NULL will be returned.

Parameters
[in]_idID of the new visual
[in]_nameName of the new visual
Returns
The created visual

◆ CreateWideAngleCamera() [1/4]

virtual WideAngleCameraPtr CreateWideAngleCamera ( )
pure virtual

Create new wide angle camera. A unique ID and name will automatically be assigned to the camera.

Returns
The created camera

◆ CreateWideAngleCamera() [2/4]

virtual WideAngleCameraPtr CreateWideAngleCamera ( const std::string _name)
pure virtual

Create new wide angle camera with the given name. A unique ID will automatically be assigned to the camera. If the given name is already in use, NULL will be returned.

Parameters
[in]_nameName of the new camera
Returns
The created camera

◆ CreateWideAngleCamera() [3/4]

virtual WideAngleCameraPtr CreateWideAngleCamera ( unsigned int  _id)
pure virtual

Create wide angle camera with the given ID. A unique name will automatically be assigned to the camera. If the given ID is already in use, NULL will be returned.

Parameters
[in]_idID of the new camera
Returns
The created camera

◆ CreateWideAngleCamera() [4/4]

virtual WideAngleCameraPtr CreateWideAngleCamera ( unsigned int  _id,
const std::string _name 
)
pure virtual

Create new wide angle camera with the given name and ID. If either the given ID or name is already in use, will return NULL.

Parameters
[in]_idID of the new camera
[in]_nameName of the new camera
Returns
The created camera

◆ CreateWireBox()

virtual WireBoxPtr CreateWireBox ( )
pure virtual

Create new wire box geometry.

Returns
The created wire box

◆ Destroy()

virtual void Destroy ( )
pure virtual

Completely destroy the scene an all its resources. Continued use of this scene after its destruction will result in undefined behavior.

◆ DestroyLight()

virtual void DestroyLight ( LightPtr  _light,
bool  _recursive = false 
)
pure virtual

Destroy given light. If the given light is not managed by this scene, no work will be done. Depending on the _recursive argument, this function will either detach all child nodes from the scene graph or recursively destroy them.

Parameters
[in]_lightLight pointer to destroy
[in]_recursiveTrue to recursively destroy the node and its children, false to destroy only this node and detach the children

◆ DestroyLightById()

virtual void DestroyLightById ( unsigned int  _id)
pure virtual

Destroy light with the given id. If no light exists with the given id, no work will be done. All children of the light will consequently be detached from the scene graph, but not destroyed.

Parameters
[in]_idID of the light to destroy

◆ DestroyLightByIndex()

virtual void DestroyLightByIndex ( unsigned int  _index)
pure virtual

Destroy light at the given index. If no light exists at the given index, no work will be done. All children of the light will consequently be detached from the scene graph, but not destroyed.

Parameters
[in]_indexIndex of the light to destroy

◆ DestroyLightByName()

virtual void DestroyLightByName ( const std::string _name)
pure virtual

Destroy light with the given name. If no light exists with the given name, no work will be done. All children of the light will consequently be detached from the scene graph, but not destroyed.

Parameters
[in]_nameName of the light to destroy

◆ DestroyLights()

virtual void DestroyLights ( )
pure virtual

Destroy all lights manages by this scene.

◆ DestroyMaterial()

virtual void DestroyMaterial ( MaterialPtr  _material)
pure virtual

Unregister and destroy a material.

Parameters
[in]_materialMaterial to be unregistered and destroyed

Referenced by BaseMesh< OgreGeometry >::Destroy(), BaseSubMesh< OgreObject >::Destroy(), BaseMesh< OgreGeometry >::SetMaterial(), and BaseSubMesh< OgreObject >::SetMaterial().

◆ DestroyMaterials()

virtual void DestroyMaterials ( )
pure virtual

Unregister and destroys all registered materials.

◆ DestroyNode()

virtual void DestroyNode ( NodePtr  _node,
bool  _recursive = false 
)
pure virtual

Destroy given node. If the given node is not managed by this scene, no work will be done. Depending on the _recursive argument, this function will either detach all child nodes from the scene graph or recursively destroy them.

Parameters
[in]_nodeNode pointer to destroy
[in]_recursiveTrue to recursively destroy the node and its children, false to destroy only this node and detach the children

◆ DestroyNodeById()

virtual void DestroyNodeById ( unsigned int  _id)
pure virtual

Destroy node with the given id. If no node exists with the given id, no work will be done. All children of the node will consequently be detached from the scene graph, but not destroyed.

Parameters
[in]_idID of the node to destroy

◆ DestroyNodeByIndex()

virtual void DestroyNodeByIndex ( unsigned int  _index)
pure virtual

Destroy node at the given index. If no node exists at the given index, no work will be done. All children of the node will consequently be detached from the scene graph, but not destroyed.

Parameters
[in]_indexIndex of the node to destroy

◆ DestroyNodeByName()

virtual void DestroyNodeByName ( const std::string _name)
pure virtual

Destroy node with the given name. If no node exists with the given name, no work will be done. All children of the node will consequently be detached from the scene graph, but not destroyed.

Parameters
[in]_nameName of the node to destroy

◆ DestroyNodes()

virtual void DestroyNodes ( )
pure virtual

Destroy all nodes manages by this scene.

◆ DestroySensor()

virtual void DestroySensor ( SensorPtr  _sensor,
bool  _recursive = false 
)
pure virtual

Destroy given sensor. If the given sensor is not managed by this scene, no work will be done. Depending on the _recursive argument, this function will either detach all child nodes from the scene graph or recursively destroy them.

Parameters
[in]_sensorSensor pointer to destroy
[in]_recursiveTrue to recursively destroy the node and its children, false to destroy only this node and detach the children

◆ DestroySensorById()

virtual void DestroySensorById ( unsigned int  _id)
pure virtual

Destroy sensor with the given id. If no sensor exists with the given id, no work will be done. All children of the sensor will consequently be detached from the scene graph, but not destroyed.

Parameters
[in]_idID of the sensor to destroy

◆ DestroySensorByIndex()

virtual void DestroySensorByIndex ( unsigned int  _index)
pure virtual

Destroy sensor at the given index. If no sensor exists at the given index, no work will be done. All children of the sensor will consequently be detached from the scene graph, but not destroyed.

Parameters
[in]_indexIndex of the sensor to destroy

◆ DestroySensorByName()

virtual void DestroySensorByName ( const std::string _name)
pure virtual

Destroy sensor with the given name. If no sensor exists with the given name, no work will be done. All children of the sensor will consequently be detached from the scene graph, but not destroyed.

Parameters
[in]_nameName of the sensor to destroy

◆ DestroySensors()

virtual void DestroySensors ( )
pure virtual

Destroy all sensors manages by this scene.

◆ DestroyVisual()

virtual void DestroyVisual ( VisualPtr  _node,
bool  _recursive = false 
)
pure virtual

Destroy given node. If the given node is not managed by this scene, no work will be done. Depending on the _recursive argument, this function will either detach all child nodes from the scene graph or recursively destroy them. consequently be detached from the scene graph, but not destroyed.

Parameters
[in]_nodeVisual pointer to destroy
[in]_recursiveTrue to recursively destroy the node and its children, false to destroy only this node and detach the children

◆ DestroyVisualById()

virtual void DestroyVisualById ( unsigned int  _id)
pure virtual

Destroy node with the given id. If no node exists with the given id, no work will be done. All children of the node will consequently be detached from the scene graph, but not destroyed.

Parameters
[in]_idID of the node to destroy

◆ DestroyVisualByIndex()

virtual void DestroyVisualByIndex ( unsigned int  _index)
pure virtual

Destroy node at the given index. If no node exists at the given index, no work will be done. All children of the node will consequently be detached from the scene graph, but not destroyed.

Parameters
[in]_indexIndex of the node to destroy

◆ DestroyVisualByName()

virtual void DestroyVisualByName ( const std::string _name)
pure virtual

Destroy node with the given name. If no node exists with the given name, no work will be done. All children of the node will consequently be detached from the scene graph, but not destroyed.

Parameters
[in]_nameName of the node to destroy

◆ DestroyVisuals()

virtual void DestroyVisuals ( )
pure virtual

Destroy all nodes manages by this scene.

◆ Engine()

◆ Extension()

SceneExt* Extension ( ) const

Get scene extention APIs This provides new Scene APIs that are experimental.

◆ Fini()

virtual void Fini ( )
pure virtual

◆ GradientBackgroundColor()

virtual std::array<math::Color, 4> GradientBackgroundColor ( ) const
pure virtual

Get the scene gradient background color.

Returns
The scene gradient background color
See also
bool IsGradientBackgroundColor() const

◆ HasLight()

virtual bool HasLight ( ConstLightPtr  _light) const
pure virtual

Determine if the given light is managed by this Scene.

Parameters
[in]_lightLight in question
Returns
True if a light is managed by this scene

◆ HasLightId()

virtual bool HasLightId ( unsigned int  _id) const
pure virtual

Determine if a given light with the given id is managed by this Scene.

Parameters
[in]_idID of the light in question
Returns
True if a light is managed by this scene

◆ HasLightName()

virtual bool HasLightName ( const std::string _name) const
pure virtual

Determine if a given light with the given name is managed by this Scene.

Parameters
[in]_nameName of the light in question
Returns
True if a light is managed by this scene

◆ HasNode()

virtual bool HasNode ( ConstNodePtr  _node) const
pure virtual

Determine if the given node is managed by this Scene.

Parameters
[in]_nodeNode in question
Returns
True if a node is managed by this scene

◆ HasNodeId()

virtual bool HasNodeId ( unsigned int  _id) const
pure virtual

Determine if a given node with the given id is managed by this Scene.

Parameters
[in]_idID of the node in question
Returns
True if a node is managed by this scene

◆ HasNodeName()

virtual bool HasNodeName ( const std::string _name) const
pure virtual

Determine if a given node with the given name is managed by this Scene.

Parameters
[in]_nameName of the node in question
Returns
True if a node is managed by this scene

◆ HasSensor()

virtual bool HasSensor ( ConstSensorPtr  _sensor) const
pure virtual

Determine if the given sensor is managed by this Scene.

Parameters
[in]_sensorSensor in question
Returns
True if a sensor is managed by this scene

◆ HasSensorId()

virtual bool HasSensorId ( unsigned int  _id) const
pure virtual

Determine if a given sensor with the given id is managed by this Scene.

Parameters
[in]_idID of the sensor in question
Returns
True if a sensor is managed by this scene

◆ HasSensorName()

virtual bool HasSensorName ( const std::string _name) const
pure virtual

Determine if a given sensor with the given name is managed by this Scene.

Parameters
[in]_nameName of the sensor in question
Returns
True if a sensor is managed by this scene

◆ HasVisual()

virtual bool HasVisual ( ConstVisualPtr  _node) const
pure virtual

Determine if the given node is managed by this Scene.

Parameters
[in]_nodeVisual in question
Returns
True if a node is managed by this scene

◆ HasVisualId()

virtual bool HasVisualId ( unsigned int  _id) const
pure virtual

Determine if a given node with the given id is managed by this Scene.

Parameters
[in]_idID of the node in question
Returns
True if a node is managed by this scene

◆ HasVisualName()

virtual bool HasVisualName ( const std::string _name) const
pure virtual

Determine if a given node with the given name is managed by this Scene.

Parameters
[in]_nameName of the node in question
Returns
True if a node is managed by this scene

◆ Id()

virtual unsigned int Id ( ) const
pure virtual

Get the ID of the scene.

Returns
The scene ID

◆ Init()

virtual void Init ( )
pure virtual

Initialize the scene.

◆ IsGradientBackgroundColor()

virtual bool IsGradientBackgroundColor ( ) const
pure virtual

Whether the scene has a gradient background or not (solid)

Returns
True if the scene has a gradient background or false otherwise

◆ IsInitialized()

virtual bool IsInitialized ( ) const
pure virtual

Determine if the scene is initialized.

Returns
True if the scene is initialized

◆ LegacyAutoGpuFlush()

virtual bool LegacyAutoGpuFlush ( ) const
pure virtual

Checks if SetCameraPassCountPerGpuFlush is 0.

Returns
True if Gazebo is using the old method (i.e. 0). ALWAYS returns true for plugins that ignore SetCameraPassCountPerGpuFlush

◆ LightById()

virtual LightPtr LightById ( unsigned int  _id) const
pure virtual

Get light with the given id. If no light exists with the given id, NULL will be returned.

Parameters
[in]_idID of the desired light
Returns
The desired light

◆ LightByIndex()

virtual LightPtr LightByIndex ( unsigned int  _index) const
pure virtual

Get light at the given index. If no light exists at the given index, NULL will be returned.

Parameters
[in]_indexIndex of the desired light
Returns
The desired light

◆ LightByName()

virtual LightPtr LightByName ( const std::string _name) const
pure virtual

Get light with the given name. If no light exists with the given name, NULL will be returned.

Parameters
[in]_nameName of the desired light
Returns
The desired light

◆ LightCount()

virtual unsigned int LightCount ( ) const
pure virtual

Get the number of lights managed by this scene. Note these lights may not be directly or indirectly attached to the root light.

Returns
The number of lights managed by this scene

◆ Load()

virtual void Load ( )
pure virtual

Load scene-specific resources.

◆ Material()

virtual MaterialPtr Material ( const std::string _name) const
pure virtual

Get material registered under the given name. If no material is registered under the given name, NULL will be returned.

Parameters
[in]_nameName of the desired material
Returns
The specified material

Referenced by BaseGizmoVisual< Ogre2Visual >::CreateMaterials(), BaseGeometry< OgreObject >::SetMaterial(), BaseVisual< OgreNode >::SetMaterial(), BaseMesh< OgreGeometry >::SetMaterial(), and BaseSubMesh< OgreObject >::SetMaterial().

◆ MaterialRegistered()

virtual bool MaterialRegistered ( const std::string _name) const
pure virtual

Determine if a material is registered under the given name.

Parameters
[in]_nameName of the material in question
Returns
True if a material is registered under the given name

◆ Name()

virtual std::string Name ( ) const
pure virtual

Get the name of the scene.

Returns
The scene name

◆ NodeById()

virtual NodePtr NodeById ( unsigned int  _id) const
pure virtual

Get node with the given id. If no node exists with the given id, NULL will be returned.

Parameters
[in]_idID of the desired node
Returns
The desired node

◆ NodeByIndex()

virtual NodePtr NodeByIndex ( unsigned int  _index) const
pure virtual

Get node at the given index. If no node exists at the given index, NULL will be returned.

Parameters
[in]_indexIndex of the desired node
Returns
The desired node

◆ NodeByName()

virtual NodePtr NodeByName ( const std::string _name) const
pure virtual

Get node with the given name. If no node exists with the given name, NULL will be returned.

Parameters
[in]_nameName of the desired node
Returns
The desired node

Referenced by BaseJointVisual< Ogre2Visual >::CreateParentAxis().

◆ NodeCount()

virtual unsigned int NodeCount ( ) const
pure virtual

Get the number of nodes managed by this scene. Note these nodes may not be directly or indirectly attached to the root node.

Returns
The number of nodes managed by this scene

◆ PostRender()

virtual void PostRender ( )
pure virtual

Call this function after you're done updating ALL cameras.

Remarks
Each PreRender must have a correspondent PostRender
Particle FX simulation is moved forward after this call
See also
Scene::SetCameraPassCountPerGpuFlush

Referenced by BaseCamera< OgreSensor >::Update().

◆ PreRender()

virtual void PreRender ( )
pure virtual

Prepare scene for rendering. The scene will flushing any scene changes by traversing scene-graph, calling PreRender on all objects.

Referenced by BaseCamera< OgreSensor >::Update().

◆ RegisterMaterial()

virtual void RegisterMaterial ( const std::string _name,
MaterialPtr  _material 
)
pure virtual

Register a new material under the given name. If the name is already in use, no work will be done.

Parameters
[in]_nameName which the material will be registered under
[in]_materialMaterial to register

◆ RemoveGradientBackgroundColor()

virtual void RemoveGradientBackgroundColor ( )
pure virtual

Remove the scene gradient background color.

See also
void SetGradientBackgroundColor( const std::array<math::Color, 4> &_colors)

◆ RootVisual()

virtual VisualPtr RootVisual ( ) const
pure virtual

Get root Visual node. All nodes that are desired to be rendered in a scene should be added to this Visual or one of its ancestors in the scene-graph. Nodes created by this Scene will not be added to the scene by default.

Returns
The root Visual node

◆ SensorById()

virtual SensorPtr SensorById ( unsigned int  _id) const
pure virtual

Get sensor with the given id. If no sensor exists with the given id, NULL will be returned.

Parameters
[in]_idID of the desired sensor
Returns
The desired sensor

◆ SensorByIndex()

virtual SensorPtr SensorByIndex ( unsigned int  _index) const
pure virtual

Get sensor at the given index. If no sensor exists at the given index, NULL will be returned.

Parameters
[in]_indexIndex of the desired sensor
Returns
The desired sensor

◆ SensorByName()

virtual SensorPtr SensorByName ( const std::string _name) const
pure virtual

Get sensor with the given name. If no sensor exists with the given name, NULL will be returned.

Parameters
[in]_nameName of the desired sensor
Returns
The desired sensor

◆ SensorCount()

virtual unsigned int SensorCount ( ) const
pure virtual

Get the number of sensors managed by this scene. Note these sensors may not be directly or indirectly attached to the root sensor.

Returns
The number of sensors managed by this scene

◆ SetAmbientLight() [1/2]

virtual void SetAmbientLight ( const math::Color _color)
pure virtual

Set the scene ambient light color.

Parameters
[in]_colorThe scene ambient light color

◆ SetAmbientLight() [2/2]

virtual void SetAmbientLight ( double  _r,
double  _g,
double  _b,
double  _a = 1.0 
)
pure virtual

Set the scene ambient light color.

Parameters
[in]_rRed color
[in]_gGreen color
[in]_bBlue color
[in]_aAlpha color

◆ SetBackgroundColor() [1/2]

virtual void SetBackgroundColor ( const math::Color _color)
pure virtual

Set the scene background color.

Parameters
[in]_colorThe scene background color

◆ SetBackgroundColor() [2/2]

virtual void SetBackgroundColor ( double  _r,
double  _g,
double  _b,
double  _a = 1.0 
)
pure virtual

Set the scene background color.

Parameters
[in]_rRed color
[in]_gGreen color
[in]_bBlue color
[in]_aAlpha color

◆ SetBackgroundMaterial()

virtual void SetBackgroundMaterial ( MaterialPtr  _material)
pure virtual

Set the scene background material e.g. a material with skybox cubemap texture.

Parameters
[in]_materialMaterial to set the background to

◆ SetCameraPassCountPerGpuFlush()

virtual void SetCameraPassCountPerGpuFlush ( uint8_t  _numPass)
pure virtual

The ideal render loop is as follows:

scene->PreRender();
for (auto &camera in cameras)
camera->Render();
for (auto &camera in cameras)
camera->PostRender();
scene->PostRender();

Now... Camera Render calls MUST happen between Scene::PreRender and Scene::PostRender.

The scene must not be modified (e.g. add/remove objects, lights, etc) while inside Scene PreRender/PostRender

Legacy mode: Set this value to 0.

Old projects migrating to newer gz versions may break these rules (e.g. not calling Render between Scene's Pre/PostRender).

Setting this value to 0 forces Gazebo to flush commands for every camera; thus avoiding the need to call PostRender at all

This is much slower but will ease porting, specially if it's not easy to adapt your code to call PostRender for some reason (in non-legacy mode each call must correspond to a previous PreRender call)

Legacy mode forces Particle FX simulations to move forward after each camera render, which can cause inconsistencies when Cameras are supposed to be rendering the same frame from different angles

New mode i.e. values greater than 0:

The CPU normally queues up of rendering commands from each Camera and then waits for the GPU to finish up.

  1. If we flush too often, the CPU will often have to wait for the GPU to finish.
  2. If we flush infrequently, RAM consumption will rise due to queueing up too much unsubmitted work.

Larger values values queue up more work; lower values flush more frequently.

Note that work may be submitted earlier if required by a specific operation (e.g. reading GPU -> CPU)

A sensible value in the range of [2; 6] is probably the best ratio between parallel performance / RAM cost.

Actual value depends on scene complexity and number of shadow casting lights

If you're too tight on RAM consumption, try setting this value to 1.

Example:

Cubemap rendering w/ 3 probes and 5 shadowmaps can cause a blow up of passes:

(5 shadow maps per face + 1 regular render) x 6 faces x 3 probes = 108 render_scene passes. 108 is way too much, causing out of memory situations;

so setting the value to 6 (1 cubemap face = 1 pass) will force one flush per cubemap face, flushing a total of 3 times (one per cubemap).

Upper bound

Once Scene::PostRender is called, a flush is always forced.

If you set a value of e.g. 6, but you have a single camera, it will be flushed after Scene::PostRender, thus having a value of 1 or 6 won't matter as the result will be exactly the same (in every term: performance, memory consumption)

A value of 6 is like an upper bound. We may queue up to 6 render passes or less; but never more.

Remarks
Not all rendering engines care about this. ogre2 plugin does.
Parameters
[in]_numPass0 for old projects who can't or don't know when to call PostRender and prefer to penalize rendering performance Value in range [1; 255]

◆ SetExtension()

void SetExtension ( SceneExt _ext)
protected

Set the scene extention API This is called by underlying render engines.

◆ SetGradientBackgroundColor()

virtual void SetGradientBackgroundColor ( const std::array< math::Color, 4 > &  _colors)
pure virtual

Set a custom gradient background color on top of the regular background. Default should be black.

Important note: Keep in mind that this object will always be rendered on top of any existing scene or camera background.

Parameters
[in]_colorsThe scene gradient background color. Next is the description of how to interpret each value of the array: 0: Top left corner color. 1: Bottom left corner color. 2: Top right corner color. 3: Bottom right corner color.
See also
void RemoveGradientBackgroundColor()

◆ SetSkyEnabled()

virtual void SetSkyEnabled ( bool  _enabled)
pure virtual

Enable sky in the scene.

Parameters
[in]_enabledTrue to enable sky

◆ SetTime()

virtual void SetTime ( const std::chrono::steady_clock::duration &  _time)
pure virtual

Set the last simulation update time.

Parameters
[in]_timeLatest simulation update time

◆ SkyEnabled()

virtual bool SkyEnabled ( ) const
pure virtual

Get whether the sky is enabled in the scene.

Returns
true to sky is enabled, false otherwise

◆ Time()

virtual std::chrono::steady_clock::duration Time ( ) const
pure virtual

Get the last simulation update time.

Returns
The last simulation update time

◆ UnregisterMaterial()

virtual void UnregisterMaterial ( const std::string _name)
pure virtual

Unregister material registered under the given name. If no material is registered under this name, no work will be done.

Parameters
[in]_nameName of the material to unregistered

◆ UnregisterMaterials()

virtual void UnregisterMaterials ( )
pure virtual

Unregister all registered materials.

◆ VisualAt()

virtual VisualPtr VisualAt ( const CameraPtr _camera,
const math::Vector2i _mousePos 
)
pure virtual

Get a visual at a mouse position.

Parameters
[in]_cameraCamera pointer being used
[in]_mousePosposition of the mouse in pixels
Returns
Pointer to the visual, NULL if none found.

◆ VisualById()

virtual VisualPtr VisualById ( unsigned int  _id) const
pure virtual

Get node with the given id. If no node exists with the given id, NULL will be returned.

Parameters
[in]_idID of the desired node
Returns
The desired node

◆ VisualByIndex()

virtual VisualPtr VisualByIndex ( unsigned int  _index) const
pure virtual

Get node at the given index. If no node exists at the given index, NULL will be returned.

Parameters
[in]_indexIndex of the desired node
Returns
The desired node

◆ VisualByName()

virtual VisualPtr VisualByName ( const std::string _name) const
pure virtual

Get node with the given name. If no node exists with the given name, NULL will be returned.

Parameters
[in]_nameName of the desired node
Returns
The desired node

◆ VisualCount()

virtual unsigned int VisualCount ( ) const
pure virtual

Get the number of nodes managed by this scene. Note these nodes may not be directly or indirectly attached to the root node.

Returns
The number of nodes managed by this scene

The documentation for this class was generated from the following file: