Ignition Rendering

API Reference

4.0.0
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 IGNITION_RENDERING_SCENE_HH_
18 #define IGNITION_RENDERING_SCENE_HH_
19 
20 #include <array>
21 #include <string>
22 #include <limits>
23 
25 #include <ignition/common/Mesh.hh>
26 #include <ignition/common/Time.hh>
27 
28 #include <ignition/math/Color.hh>
29 
30 #include "ignition/rendering/config.hh"
34 #include "ignition/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 IGN_DEPRECATED(4) SimTime() const = 0;
81 
84  public: virtual std::chrono::steady_clock::duration
85  Time() const = 0;
86 
89  public: virtual void IGN_DEPRECATED(4)
90  SetSimTime(const common::Time &_time) = 0;
91 
94  public: virtual void SetTime(
95  const std::chrono::steady_clock::duration &_time) = 0;
96 
102  public: virtual VisualPtr RootVisual() const = 0;
103 
108  public: virtual VisualPtr VisualAt(const CameraPtr &_camera,
109  const math::Vector2i &_mousePos) = 0;
110 
113  public: virtual math::Color AmbientLight() const = 0;
114 
120  public: virtual void SetAmbientLight(double _r, double _g, double _b,
121  double _a = 1.0) = 0;
122 
125  public: virtual void SetAmbientLight(const math::Color &_color) = 0;
126 
129  public: virtual math::Color BackgroundColor() const = 0;
130 
136  public: virtual void SetBackgroundColor(double _r, double _g, double _b,
137  double _a = 1.0) = 0;
138 
141  public: virtual void SetBackgroundColor(const math::Color &_color) = 0;
142 
145  public: virtual bool IsGradientBackgroundColor() const = 0;
146 
150  public: virtual std::array<math::Color, 4>
151  GradientBackgroundColor() const = 0;
152 
166  public: virtual void SetGradientBackgroundColor(
167  const std::array<math::Color, 4> &_colors) = 0;
168 
172  public: virtual void RemoveGradientBackgroundColor() = 0;
173 
177  public: virtual unsigned int NodeCount() const = 0;
178 
182  public: virtual bool HasNode(ConstNodePtr _node) const = 0;
183 
188  public: virtual bool HasNodeId(unsigned int _id) const = 0;
189 
194  public: virtual bool HasNodeName(const std::string &_name) const = 0;
195 
200  public: virtual NodePtr NodeById(unsigned int _id) const = 0;
201 
206  public: virtual NodePtr NodeByName(const std::string &_name) const = 0;
207 
212  public: virtual NodePtr NodeByIndex(unsigned int _index) const = 0;
213 
221  public: virtual void DestroyNode(NodePtr _node,
222  bool _recursive = false) = 0;
223 
228  public: virtual void DestroyNodeById(unsigned int _id) = 0;
229 
234  public: virtual void DestroyNodeByName(const std::string &_name) = 0;
235 
240  public: virtual void DestroyNodeByIndex(unsigned int _index) = 0;
241 
243  public: virtual void DestroyNodes() = 0;
244 
248  public: virtual unsigned int LightCount() const = 0;
249 
253  public: virtual bool HasLight(ConstLightPtr _light) const = 0;
254 
259  public: virtual bool HasLightId(unsigned int _id) const = 0;
260 
265  public: virtual bool HasLightName(const std::string &_name) const = 0;
266 
271  public: virtual LightPtr LightById(unsigned int _id) const = 0;
272 
277  public: virtual LightPtr LightByName(
278  const std::string &_name) const = 0;
279 
284  public: virtual LightPtr LightByIndex(unsigned int _index) const = 0;
285 
293  public: virtual void DestroyLight(LightPtr _light,
294  bool _recursive = false) = 0;
295 
300  public: virtual void DestroyLightById(unsigned int _id) = 0;
301 
306  public: virtual void DestroyLightByName(const std::string &_name) = 0;
307 
312  public: virtual void DestroyLightByIndex(unsigned int _index) = 0;
313 
315  public: virtual void DestroyLights() = 0;
316 
320  public: virtual unsigned int SensorCount() const = 0;
321 
325  public: virtual bool HasSensor(ConstSensorPtr _sensor) const = 0;
326 
331  public: virtual bool HasSensorId(unsigned int _id) const = 0;
332 
337  public: virtual bool HasSensorName(const std::string &_name) const = 0;
338 
343  public: virtual SensorPtr SensorById(unsigned int _id) const = 0;
344 
349  public: virtual SensorPtr SensorByName(
350  const std::string &_name) const = 0;
351 
356  public: virtual SensorPtr SensorByIndex(unsigned int _index) const = 0;
357 
365  public: virtual void DestroySensor(SensorPtr _sensor,
366  bool _recursive = false) = 0;
367 
372  public: virtual void DestroySensorById(unsigned int _id) = 0;
373 
378  public: virtual void DestroySensorByName(const std::string &_name) = 0;
379 
384  public: virtual void DestroySensorByIndex(unsigned int _index) = 0;
385 
387  public: virtual void DestroySensors() = 0;
388 
392  public: virtual unsigned int VisualCount() const = 0;
393 
397  public: virtual bool HasVisual(ConstVisualPtr _node) const = 0;
398 
403  public: virtual bool HasVisualId(unsigned int _id) const = 0;
404 
409  public: virtual bool HasVisualName(const std::string &_name) const = 0;
410 
415  public: virtual VisualPtr VisualById(unsigned int _id) const = 0;
416 
421  public: virtual VisualPtr VisualByName(
422  const std::string &_name) const = 0;
423 
428  public: virtual VisualPtr VisualByIndex(unsigned int _index) const = 0;
429 
438  public: virtual void DestroyVisual(VisualPtr _node,
439  bool _recursive = false) = 0;
440 
445  public: virtual void DestroyVisualById(unsigned int _id) = 0;
446 
451  public: virtual void DestroyVisualByName(const std::string &_name) = 0;
452 
457  public: virtual void DestroyVisualByIndex(unsigned int _index) = 0;
458 
460  public: virtual void DestroyVisuals() = 0;
461 
465  public: virtual bool MaterialRegistered(
466  const std::string &_name) const = 0;
467 
472  public: virtual MaterialPtr Material(
473  const std::string &_name) const = 0;
474 
479  public: virtual void RegisterMaterial(const std::string &_name,
480  MaterialPtr _material) = 0;
481 
485  public: virtual void UnregisterMaterial(const std::string &_name) = 0;
486 
488  public: virtual void UnregisterMaterials() = 0;
489 
492  public: virtual void DestroyMaterial(MaterialPtr _material) = 0;
493 
495  public: virtual void DestroyMaterials() = 0;
496 
500  public: virtual DirectionalLightPtr CreateDirectionalLight() = 0;
501 
507  public: virtual DirectionalLightPtr CreateDirectionalLight(
508  unsigned int _id) = 0;
509 
515  public: virtual DirectionalLightPtr CreateDirectionalLight(
516  const std::string &_name) = 0;
517 
523  public: virtual DirectionalLightPtr CreateDirectionalLight(
524  unsigned int _id, const std::string &_name) = 0;
525 
529  public: virtual PointLightPtr CreatePointLight() = 0;
530 
536  public: virtual PointLightPtr CreatePointLight(
537  unsigned int _id) = 0;
538 
544  public: virtual PointLightPtr CreatePointLight(
545  const std::string &_name) = 0;
546 
552  public: virtual PointLightPtr CreatePointLight(
553  unsigned int _id, const std::string &_name) = 0;
554 
558  public: virtual SpotLightPtr CreateSpotLight() = 0;
559 
565  public: virtual SpotLightPtr CreateSpotLight(
566  unsigned int _id) = 0;
567 
573  public: virtual SpotLightPtr CreateSpotLight(
574  const std::string &_name) = 0;
575 
581  public: virtual SpotLightPtr CreateSpotLight(
582  unsigned int _id, const std::string &_name) = 0;
583 
587  public: virtual CameraPtr CreateCamera() = 0;
588 
594  public: virtual CameraPtr CreateCamera(
595  unsigned int _id) = 0;
596 
602  public: virtual CameraPtr CreateCamera(
603  const std::string &_name) = 0;
604 
610  public: virtual CameraPtr CreateCamera(
611  unsigned int _id, const std::string &_name) = 0;
612 
616  public: virtual DepthCameraPtr CreateDepthCamera() = 0;
617 
623  public: virtual DepthCameraPtr CreateDepthCamera(
624  unsigned int _id) = 0;
625 
631  public: virtual DepthCameraPtr CreateDepthCamera(
632  const std::string &_name) = 0;
633 
639  public: virtual DepthCameraPtr CreateDepthCamera(
640  unsigned int _id, const std::string &_name) = 0;
641 
645  public: virtual ThermalCameraPtr CreateThermalCamera() = 0;
646 
652  public: virtual ThermalCameraPtr CreateThermalCamera(
653  unsigned int _id) = 0;
654 
660  public: virtual ThermalCameraPtr CreateThermalCamera(
661  const std::string &_name) = 0;
662 
668  public: virtual ThermalCameraPtr CreateThermalCamera(
669  unsigned int _id, const std::string &_name) = 0;
670 
674  public: virtual GpuRaysPtr CreateGpuRays() = 0;
675 
681  public: virtual GpuRaysPtr CreateGpuRays(unsigned int _id) = 0;
682 
688  public: virtual GpuRaysPtr CreateGpuRays(
689  const std::string &_name) = 0;
690 
696  public: virtual GpuRaysPtr CreateGpuRays(
697  unsigned int _id, const std::string &_name) = 0;
698 
702  public: virtual VisualPtr CreateVisual() = 0;
703 
709  public: virtual VisualPtr CreateVisual(
710  unsigned int _id) = 0;
711 
717  public: virtual VisualPtr CreateVisual(
718  const std::string &_name) = 0;
719 
725  public: virtual VisualPtr CreateVisual(
726  unsigned int _id, const std::string &_name) = 0;
727 
731  public: virtual ArrowVisualPtr CreateArrowVisual() = 0;
732 
738  public: virtual ArrowVisualPtr CreateArrowVisual(
739  unsigned int _id) = 0;
740 
746  public: virtual ArrowVisualPtr CreateArrowVisual(
747  const std::string &_name) = 0;
748 
754  public: virtual ArrowVisualPtr CreateArrowVisual(
755  unsigned int _id, const std::string &_name) = 0;
756 
760  public: virtual AxisVisualPtr CreateAxisVisual() = 0;
761 
767  public: virtual AxisVisualPtr CreateAxisVisual(
768  unsigned int _id) = 0;
769 
775  public: virtual AxisVisualPtr CreateAxisVisual(
776  const std::string &_name) = 0;
777 
783  public: virtual AxisVisualPtr CreateAxisVisual(
784  unsigned int _id, const std::string &_name) = 0;
785 
789  public: virtual GizmoVisualPtr CreateGizmoVisual() = 0;
790 
796  public: virtual GizmoVisualPtr CreateGizmoVisual(
797  unsigned int _id) = 0;
798 
804  public: virtual GizmoVisualPtr CreateGizmoVisual(
805  const std::string &_name) = 0;
806 
812  public: virtual GizmoVisualPtr CreateGizmoVisual(
813  unsigned int _id, const std::string &_name) = 0;
814 
817  public: virtual GeometryPtr CreateBox() = 0;
818 
821  public: virtual GeometryPtr CreateCone() = 0;
822 
825  public: virtual GeometryPtr CreateCylinder() = 0;
826 
829  public: virtual GeometryPtr CreatePlane() = 0;
830 
833  public: virtual GeometryPtr CreateSphere() = 0;
834 
841  public: virtual MeshPtr CreateMesh(const std::string &_meshName) = 0;
842 
848  public: virtual MeshPtr CreateMesh(const common::Mesh *_mesh) = 0;
849 
855  public: virtual MeshPtr CreateMesh(const MeshDescriptor &_desc) = 0;
856 
859  public: virtual GridPtr CreateGrid() = 0;
860 
863  public: virtual WireBoxPtr CreateWireBox() = 0;
864 
867  public: virtual MarkerPtr CreateMarker() = 0;
868 
872  public: virtual LidarVisualPtr CreateLidarVisual() = 0;
873 
879  public: virtual LidarVisualPtr CreateLidarVisual(unsigned int _id) = 0;
880 
886  public: virtual LidarVisualPtr CreateLidarVisual(
887  const std::string &_name) = 0;
888 
894  public: virtual LidarVisualPtr CreateLidarVisual(
895  unsigned int _id, const std::string &_name) = 0;
896 
899  public: virtual TextPtr CreateText() = 0;
900 
905  public: virtual MaterialPtr CreateMaterial(const std::string &_name = "")
906  = 0;
907 
911  public: virtual MaterialPtr CreateMaterial(
912  const common::Material &_material) = 0;
913 
916  public: virtual RenderTexturePtr CreateRenderTexture() = 0;
917 
922  public: virtual RenderWindowPtr CreateRenderWindow() = 0;
923 
926  public: virtual RayQueryPtr CreateRayQuery() = 0;
927 
931  public: virtual ParticleEmitterPtr CreateParticleEmitter() = 0;
932 
938  public: virtual ParticleEmitterPtr CreateParticleEmitter(
939  unsigned int _id) = 0;
940 
946  public: virtual ParticleEmitterPtr CreateParticleEmitter(
947  const std::string &_name) = 0;
948 
954  public: virtual ParticleEmitterPtr CreateParticleEmitter(
955  unsigned int _id, const std::string &_name) = 0;
956 
959  public: virtual void PreRender() = 0;
960 
964  public: virtual void Clear() = 0;
965 
969  public: virtual void Destroy() = 0;
970  };
971  }
972  }
973 }
974 #endif
Describes how a Mesh should be loaded.
Definition: MeshDescriptor.hh:44
STL class.
Manages a single scene-graph. This class updates scene-wide properties and holds the root scene node...
Definition: Scene.hh:48
STL class.
An abstract interface to a concrete render-engine. A RenderEngine is responsible for initializing a r...
Definition: RenderEngine.hh:36
virtual ~Scene()
Deconstructor.
Definition: Scene.hh:51
Represents a surface material of a Geometry.
Definition: Material.hh:47