Gazebo Rendering

API Reference

3.7.2
gz/rendering/Scene.hh
Go to the documentation of this file.
1 /*
2  * Copyright (C) 2015 Open Source Robotics Foundation
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  *
16  */
17 #ifndef GZ_RENDERING_SCENE_HH_
18 #define GZ_RENDERING_SCENE_HH_
19 
20 #include <array>
21 #include <string>
22 #include <limits>
23 
24 #include <gz/common/Material.hh>
25 #include <gz/common/Mesh.hh>
26 #include <gz/common/Time.hh>
27 
28 #include <gz/math/Color.hh>
29 
30 #include "gz/rendering/config.hh"
33 #include "gz/rendering/Storage.hh"
34 #include "gz/rendering/Export.hh"
35 
36 namespace ignition
37 {
38  namespace rendering
39  {
40  inline namespace IGNITION_RENDERING_VERSION_NAMESPACE {
41  //
42  class RenderEngine;
43 
48  class IGNITION_RENDERING_VISIBLE Scene
49  {
51  public: virtual ~Scene() { }
52 
54  public: virtual void Load() = 0;
55 
57  public: virtual void Init() = 0;
58 
59  // TODO(anyone): merge with Destroy
60  public: virtual void Fini() = 0;
61 
64  public: virtual bool IsInitialized() const = 0;
65 
68  public: virtual unsigned int Id() const = 0;
69 
72  public: virtual std::string Name() const = 0;
73 
76  public: virtual RenderEngine *Engine() const = 0;
77 
80  public: virtual common::Time SimTime() const = 0;
81 
84  public: virtual void SetSimTime(const common::Time &_time) = 0;
85 
91  public: virtual VisualPtr RootVisual() const = 0;
92 
97  public: virtual VisualPtr VisualAt(const CameraPtr &_camera,
98  const math::Vector2i &_mousePos) = 0;
99 
102  public: virtual math::Color AmbientLight() const = 0;
103 
109  public: virtual void SetAmbientLight(double _r, double _g, double _b,
110  double _a = 1.0) = 0;
111 
114  public: virtual void SetAmbientLight(const math::Color &_color) = 0;
115 
118  public: virtual math::Color BackgroundColor() const = 0;
119 
125  public: virtual void SetBackgroundColor(double _r, double _g, double _b,
126  double _a = 1.0) = 0;
127 
130  public: virtual void SetBackgroundColor(const math::Color &_color) = 0;
131 
134  public: virtual bool IsGradientBackgroundColor() const = 0;
135 
139  public: virtual std::array<math::Color, 4>
140  GradientBackgroundColor() const = 0;
141 
155  public: virtual void SetGradientBackgroundColor(
156  const std::array<math::Color, 4> &_colors) = 0;
157 
161  public: virtual void RemoveGradientBackgroundColor() = 0;
162 
166  public: virtual unsigned int NodeCount() const = 0;
167 
171  public: virtual bool HasNode(ConstNodePtr _node) const = 0;
172 
177  public: virtual bool HasNodeId(unsigned int _id) const = 0;
178 
183  public: virtual bool HasNodeName(const std::string &_name) const = 0;
184 
189  public: virtual NodePtr NodeById(unsigned int _id) const = 0;
190 
195  public: virtual NodePtr NodeByName(const std::string &_name) const = 0;
196 
201  public: virtual NodePtr NodeByIndex(unsigned int _index) const = 0;
202 
210  public: virtual void DestroyNode(NodePtr _node,
211  bool _recursive = false) = 0;
212 
217  public: virtual void DestroyNodeById(unsigned int _id) = 0;
218 
223  public: virtual void DestroyNodeByName(const std::string &_name) = 0;
224 
229  public: virtual void DestroyNodeByIndex(unsigned int _index) = 0;
230 
232  public: virtual void DestroyNodes() = 0;
233 
237  public: virtual unsigned int LightCount() const = 0;
238 
242  public: virtual bool HasLight(ConstLightPtr _light) const = 0;
243 
248  public: virtual bool HasLightId(unsigned int _id) const = 0;
249 
254  public: virtual bool HasLightName(const std::string &_name) const = 0;
255 
260  public: virtual LightPtr LightById(unsigned int _id) const = 0;
261 
266  public: virtual LightPtr LightByName(
267  const std::string &_name) const = 0;
268 
273  public: virtual LightPtr LightByIndex(unsigned int _index) const = 0;
274 
282  public: virtual void DestroyLight(LightPtr _light,
283  bool _recursive = false) = 0;
284 
289  public: virtual void DestroyLightById(unsigned int _id) = 0;
290 
295  public: virtual void DestroyLightByName(const std::string &_name) = 0;
296 
301  public: virtual void DestroyLightByIndex(unsigned int _index) = 0;
302 
304  public: virtual void DestroyLights() = 0;
305 
309  public: virtual unsigned int SensorCount() const = 0;
310 
314  public: virtual bool HasSensor(ConstSensorPtr _sensor) const = 0;
315 
320  public: virtual bool HasSensorId(unsigned int _id) const = 0;
321 
326  public: virtual bool HasSensorName(const std::string &_name) const = 0;
327 
332  public: virtual SensorPtr SensorById(unsigned int _id) const = 0;
333 
338  public: virtual SensorPtr SensorByName(
339  const std::string &_name) const = 0;
340 
345  public: virtual SensorPtr SensorByIndex(unsigned int _index) const = 0;
346 
354  public: virtual void DestroySensor(SensorPtr _sensor,
355  bool _recursive = false) = 0;
356 
361  public: virtual void DestroySensorById(unsigned int _id) = 0;
362 
367  public: virtual void DestroySensorByName(const std::string &_name) = 0;
368 
373  public: virtual void DestroySensorByIndex(unsigned int _index) = 0;
374 
376  public: virtual void DestroySensors() = 0;
377 
381  public: virtual unsigned int VisualCount() const = 0;
382 
386  public: virtual bool HasVisual(ConstVisualPtr _node) const = 0;
387 
392  public: virtual bool HasVisualId(unsigned int _id) const = 0;
393 
398  public: virtual bool HasVisualName(const std::string &_name) const = 0;
399 
404  public: virtual VisualPtr VisualById(unsigned int _id) const = 0;
405 
410  public: virtual VisualPtr VisualByName(
411  const std::string &_name) const = 0;
412 
417  public: virtual VisualPtr VisualByIndex(unsigned int _index) const = 0;
418 
427  public: virtual void DestroyVisual(VisualPtr _node,
428  bool _recursive = false) = 0;
429 
434  public: virtual void DestroyVisualById(unsigned int _id) = 0;
435 
440  public: virtual void DestroyVisualByName(const std::string &_name) = 0;
441 
446  public: virtual void DestroyVisualByIndex(unsigned int _index) = 0;
447 
449  public: virtual void DestroyVisuals() = 0;
450 
454  public: virtual bool MaterialRegistered(
455  const std::string &_name) const = 0;
456 
461  public: virtual MaterialPtr Material(
462  const std::string &_name) const = 0;
463 
468  public: virtual void RegisterMaterial(const std::string &_name,
469  MaterialPtr _material) = 0;
470 
474  public: virtual void UnregisterMaterial(const std::string &_name) = 0;
475 
477  public: virtual void UnregisterMaterials() = 0;
478 
481  public: virtual void DestroyMaterial(MaterialPtr _material) = 0;
482 
484  public: virtual void DestroyMaterials() = 0;
485 
489  public: virtual DirectionalLightPtr CreateDirectionalLight() = 0;
490 
496  public: virtual DirectionalLightPtr CreateDirectionalLight(
497  unsigned int _id) = 0;
498 
504  public: virtual DirectionalLightPtr CreateDirectionalLight(
505  const std::string &_name) = 0;
506 
512  public: virtual DirectionalLightPtr CreateDirectionalLight(
513  unsigned int _id, const std::string &_name) = 0;
514 
518  public: virtual PointLightPtr CreatePointLight() = 0;
519 
525  public: virtual PointLightPtr CreatePointLight(
526  unsigned int _id) = 0;
527 
533  public: virtual PointLightPtr CreatePointLight(
534  const std::string &_name) = 0;
535 
541  public: virtual PointLightPtr CreatePointLight(
542  unsigned int _id, const std::string &_name) = 0;
543 
547  public: virtual SpotLightPtr CreateSpotLight() = 0;
548 
554  public: virtual SpotLightPtr CreateSpotLight(
555  unsigned int _id) = 0;
556 
562  public: virtual SpotLightPtr CreateSpotLight(
563  const std::string &_name) = 0;
564 
570  public: virtual SpotLightPtr CreateSpotLight(
571  unsigned int _id, const std::string &_name) = 0;
572 
576  public: virtual CameraPtr CreateCamera() = 0;
577 
583  public: virtual CameraPtr CreateCamera(
584  unsigned int _id) = 0;
585 
591  public: virtual CameraPtr CreateCamera(
592  const std::string &_name) = 0;
593 
599  public: virtual CameraPtr CreateCamera(
600  unsigned int _id, const std::string &_name) = 0;
601 
605  public: virtual DepthCameraPtr CreateDepthCamera() = 0;
606 
612  public: virtual DepthCameraPtr CreateDepthCamera(
613  unsigned int _id) = 0;
614 
620  public: virtual DepthCameraPtr CreateDepthCamera(
621  const std::string &_name) = 0;
622 
628  public: virtual DepthCameraPtr CreateDepthCamera(
629  unsigned int _id, const std::string &_name) = 0;
630 
634  public: virtual ThermalCameraPtr CreateThermalCamera() = 0;
635 
641  public: virtual ThermalCameraPtr CreateThermalCamera(
642  unsigned int _id) = 0;
643 
649  public: virtual ThermalCameraPtr CreateThermalCamera(
650  const std::string &_name) = 0;
651 
657  public: virtual ThermalCameraPtr CreateThermalCamera(
658  unsigned int _id, const std::string &_name) = 0;
659 
663  public: virtual GpuRaysPtr CreateGpuRays() = 0;
664 
670  public: virtual GpuRaysPtr CreateGpuRays(unsigned int _id) = 0;
671 
677  public: virtual GpuRaysPtr CreateGpuRays(
678  const std::string &_name) = 0;
679 
685  public: virtual GpuRaysPtr CreateGpuRays(
686  unsigned int _id, const std::string &_name) = 0;
687 
691  public: virtual VisualPtr CreateVisual() = 0;
692 
698  public: virtual VisualPtr CreateVisual(
699  unsigned int _id) = 0;
700 
706  public: virtual VisualPtr CreateVisual(
707  const std::string &_name) = 0;
708 
714  public: virtual VisualPtr CreateVisual(
715  unsigned int _id, const std::string &_name) = 0;
716 
720  public: virtual ArrowVisualPtr CreateArrowVisual() = 0;
721 
727  public: virtual ArrowVisualPtr CreateArrowVisual(
728  unsigned int _id) = 0;
729 
735  public: virtual ArrowVisualPtr CreateArrowVisual(
736  const std::string &_name) = 0;
737 
743  public: virtual ArrowVisualPtr CreateArrowVisual(
744  unsigned int _id, const std::string &_name) = 0;
745 
749  public: virtual AxisVisualPtr CreateAxisVisual() = 0;
750 
756  public: virtual AxisVisualPtr CreateAxisVisual(
757  unsigned int _id) = 0;
758 
764  public: virtual AxisVisualPtr CreateAxisVisual(
765  const std::string &_name) = 0;
766 
772  public: virtual AxisVisualPtr CreateAxisVisual(
773  unsigned int _id, const std::string &_name) = 0;
774 
778  public: virtual GizmoVisualPtr CreateGizmoVisual() = 0;
779 
785  public: virtual GizmoVisualPtr CreateGizmoVisual(
786  unsigned int _id) = 0;
787 
793  public: virtual GizmoVisualPtr CreateGizmoVisual(
794  const std::string &_name) = 0;
795 
801  public: virtual GizmoVisualPtr CreateGizmoVisual(
802  unsigned int _id, const std::string &_name) = 0;
803 
806  public: virtual GeometryPtr CreateBox() = 0;
807 
810  public: virtual GeometryPtr CreateCone() = 0;
811 
814  public: virtual GeometryPtr CreateCylinder() = 0;
815 
818  public: virtual GeometryPtr CreatePlane() = 0;
819 
822  public: virtual GeometryPtr CreateSphere() = 0;
823 
830  public: virtual MeshPtr CreateMesh(const std::string &_meshName) = 0;
831 
837  public: virtual MeshPtr CreateMesh(const common::Mesh *_mesh) = 0;
838 
844  public: virtual MeshPtr CreateMesh(const MeshDescriptor &_desc) = 0;
845 
848  public: virtual GridPtr CreateGrid() = 0;
849 
852  public: virtual MarkerPtr CreateMarker() = 0;
853 
856  public: virtual TextPtr CreateText() = 0;
857 
862  public: virtual MaterialPtr CreateMaterial(const std::string &_name = "")
863  = 0;
864 
868  public: virtual MaterialPtr CreateMaterial(
869  const common::Material &_material) = 0;
870 
873  public: virtual RenderTexturePtr CreateRenderTexture() = 0;
874 
879  public: virtual RenderWindowPtr CreateRenderWindow() = 0;
880 
883  public: virtual RayQueryPtr CreateRayQuery() = 0;
884 
887  public: virtual void PreRender() = 0;
888 
892  public: virtual void Clear() = 0;
893 
897  public: virtual void Destroy() = 0;
898  };
899  }
900  }
901 }
902 #endif
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 Vi...
virtual MaterialPtr CreateMaterial(const std::string &_name="")=0
Create new material with the given name. Created material will have default properties.
virtual bool HasNodeName(const std::string &_name) const =0
Determine if a given node with the given name is managed by this Scene.
virtual void UnregisterMaterial(const std::string &_name)=0
Unregister material registered under the given name. If no material is registered under this name,...
virtual PointLightPtr CreatePointLight()=0
Create new point light. A unique ID and name will automatically be assigned to the light.
virtual void RemoveGradientBackgroundColor()=0
Remove the scene gradient background color.
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....
STL class.
STL class.
virtual RenderTexturePtr CreateRenderTexture()=0
Create new render texture.
virtual unsigned int VisualCount() const =0
Get the number of nodes managed by this scene. Note these nodes may not be directly or indirectly att...
virtual bool HasSensorId(unsigned int _id) const =0
Determine if a given sensor with the given id is managed by this Scene.
virtual RayQueryPtr CreateRayQuery()=0
Create new ray query.
Describes how a Mesh should be loaded.
Definition: gz/rendering/MeshDescriptor.hh:44
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.
virtual void DestroySensors()=0
Destroy all sensors manages by this scene.
virtual GeometryPtr CreateSphere()=0
Create new sphere geometry.
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....
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....
virtual math::Color BackgroundColor() const =0
Get the scene background color.
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.
virtual SpotLightPtr CreateSpotLight()=0
Create new spotlight. A unique ID and name will automatically be assigned to the light.
virtual void UnregisterMaterials()=0
Unregister all registered materials.
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....
virtual RenderWindowPtr CreateRenderWindow()=0
Create new render window. This feature is render engine dependent. If the engine does not support att...
virtual bool HasNode(ConstNodePtr _node) const =0
Determine if the given node is managed by this Scene.
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.
virtual void Destroy()=0
Completely destroy the scene an all its resources. Continued use of this scene after its destruction ...
virtual RenderEngine * Engine() const =0
Get the creating render-engine of the scene.
virtual GeometryPtr CreatePlane()=0
Create new plane geometry.
virtual ~Scene()
Deconstructor.
Definition: gz/rendering/Scene.hh:51
virtual void SetBackgroundColor(double _r, double _g, double _b, double _a=1.0)=0
Set the scene background color.
virtual CameraPtr CreateCamera()=0
Create new camera. A unique ID and name will automatically be assigned to the camera.
virtual void Clear()=0
Remove and destroy all objects from the scene graph. This does not completely destroy scene resources...
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....
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.
virtual void DestroyNodes()=0
Destroy all nodes manages by this scene.
virtual VisualPtr CreateVisual()=0
Create new visual. A unique ID and name will automatically be assigned to the visual.
virtual bool HasLight(ConstLightPtr _light) const =0
Determine if the given light is managed by this Scene.
virtual GeometryPtr CreateBox()=0
Create new box geometry.
virtual bool IsGradientBackgroundColor() const =0
Whether the scene has a gradient background or not (solid)
virtual bool HasLightId(unsigned int _id) const =0
Determine if a given light with the given id is managed by this Scene.
virtual VisualPtr VisualAt(const CameraPtr &_camera, const math::Vector2i &_mousePos)=0
Get a visual at a mouse position.
virtual bool IsInitialized() const =0
Determine if the scene is initialized.
Manages a single scene-graph. This class updates scene-wide properties and holds the root scene node....
Definition: gz/rendering/Scene.hh:48
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....
virtual std::array< math::Color, 4 > GradientBackgroundColor() const =0
Get the scene gradient background color.
virtual GpuRaysPtr CreateGpuRays()=0
Create new gpu rays caster. A unique ID and name will automatically be assigned to the gpu rays caste...
virtual bool HasNodeId(unsigned int _id) const =0
Determine if a given node with the given id is managed by this Scene.
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.
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....
virtual GeometryPtr CreateCone()=0
Create new cone geometry.
virtual void DestroyMaterials()=0
Unregister and destroys all registered materials.
virtual DepthCameraPtr CreateDepthCamera()=0
Create new depth camera. A unique ID and name will automatically be assigned to the camera.
virtual void SetAmbientLight(double _r, double _g, double _b, double _a=1.0)=0
Set the scene ambient light color.
virtual ThermalCameraPtr CreateThermalCamera()=0
Create new thermal camera. A unique ID and name will automatically be assigned to the camera.
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.
virtual GridPtr CreateGrid()=0
Create new grid geometry.
virtual void PreRender()=0
Prepare scene for rendering. The scene will flushing any scene changes by traversing scene-graph,...
STL class.
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.
virtual GizmoVisualPtr CreateGizmoVisual()=0
Create new gizmo visual. A unique ID and name will automatically be assigned to the visual.
virtual bool HasSensorName(const std::string &_name) const =0
Determine if a given sensor with the given name is managed by this Scene.
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....
virtual bool HasVisualId(unsigned int _id) const =0
Determine if a given node with the given id is managed by this Scene.
virtual bool HasVisualName(const std::string &_name) const =0
Determine if a given node with the given name is managed by this Scene.
virtual common::Time SimTime() const =0
Get the last simulation update time.
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,...
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.
virtual std::string Name() const =0
Get the name of the scene.
virtual void Init()=0
Initialize the scene.
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....
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....
virtual unsigned int SensorCount() const =0
Get the number of sensors managed by this scene. Note these sensors may not be directly or indirectly...
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.
virtual DirectionalLightPtr CreateDirectionalLight()=0
Create new directional light. A unique ID and name will automatically be assigned to the light.
virtual unsigned int NodeCount() const =0
Get the number of nodes managed by this scene. Note these nodes may not be directly or indirectly att...
virtual MeshPtr CreateMesh(const std::string &_meshName)=0
Create new mesh geomerty. The rendering::Mesh will be created from a common::Mesh retrieved from comm...
virtual bool HasVisual(ConstVisualPtr _node) const =0
Determine if the given node is managed by this Scene.
virtual bool HasLightName(const std::string &_name) const =0
Determine if a given light with the given name is managed by this Scene.
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....
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....
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....
virtual TextPtr CreateText()=0
Create new text geometry.
virtual ArrowVisualPtr CreateArrowVisual()=0
Create new arrow visual. A unique ID and name will automatically be assigned to the visual.
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....
virtual void Load()=0
Load scene-specific resources.
An abstract interface to a concrete render-engine. A RenderEngine is responsible for initializing a r...
Definition: gz/rendering/RenderEngine.hh:36
virtual void SetSimTime(const common::Time &_time)=0
Set the last simulation update time.
virtual GeometryPtr CreateCylinder()=0
Create new cylinder geometry.
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....
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.
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.
Represents a surface material of a Geometry.
Definition: gz/rendering/Material.hh:47
virtual bool MaterialRegistered(const std::string &_name) const =0
Determine if a material is registered under the given name.
virtual bool HasSensor(ConstSensorPtr _sensor) const =0
Determine if the given sensor is managed by this Scene.
virtual math::Color AmbientLight() const =0
Get the scene ambient light color.
virtual void DestroyVisuals()=0
Destroy all nodes manages by this scene.
virtual unsigned int Id() const =0
Get the ID of the scene.
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.
virtual MarkerPtr CreateMarker()=0
Create new marker geometry.
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....
virtual unsigned int LightCount() const =0
Get the number of lights managed by this scene. Note these lights may not be directly or indirectly a...
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.
virtual AxisVisualPtr CreateAxisVisual()=0
Create new axis visual. A unique ID and name will automatically be assigned to the visual.
virtual void DestroyLights()=0
Destroy all lights manages by this scene.
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.
virtual void DestroyMaterial(MaterialPtr _material)=0
Unregister and destroy a material.