Gazebo Rendering

API Reference

8.1.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 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
27#include <gz/math/Color.hh>
28
30
31#include "gz/rendering/config.hh"
36#include "gz/rendering/Export.hh"
37
38namespace gz
39{
40 namespace rendering
41 {
42 inline namespace GZ_RENDERING_VERSION_NAMESPACE {
43 //
44 class RenderEngine;
45 class SceneExt;
46
51 class GZ_RENDERING_VISIBLE Scene
52 {
54 public: virtual ~Scene();
55
57 public: virtual void Load() = 0;
58
60 public: virtual void Init() = 0;
61
62 // TODO(anyone): merge with Destroy
63 public: virtual void Fini() = 0;
64
67 public: virtual bool IsInitialized() const = 0;
68
71 public: virtual unsigned int Id() const = 0;
72
75 public: virtual std::string Name() const = 0;
76
79 public: virtual RenderEngine *Engine() const = 0;
80
83 public: virtual std::chrono::steady_clock::duration
84 Time() const = 0;
85
88 public: virtual void SetTime(
89 const std::chrono::steady_clock::duration &_time) = 0;
90
96 public: virtual VisualPtr RootVisual() const = 0;
97
102 public: virtual VisualPtr VisualAt(const CameraPtr &_camera,
103 const math::Vector2i &_mousePos) = 0;
104
107 public: virtual math::Color AmbientLight() const = 0;
108
114 public: virtual void SetAmbientLight(double _r, double _g, double _b,
115 double _a = 1.0) = 0;
116
119 public: virtual void SetAmbientLight(const math::Color &_color) = 0;
120
123 public: virtual math::Color BackgroundColor() const = 0;
124
130 public: virtual void SetBackgroundColor(double _r, double _g, double _b,
131 double _a = 1.0) = 0;
132
135 public: virtual void SetBackgroundColor(const math::Color &_color) = 0;
136
139 public: virtual bool IsGradientBackgroundColor() const = 0;
140
144 public: virtual std::array<math::Color, 4>
146
160 public: virtual void SetGradientBackgroundColor(
161 const std::array<math::Color, 4> &_colors) = 0;
162
166 public: virtual void RemoveGradientBackgroundColor() = 0;
167
171 public: virtual MaterialPtr BackgroundMaterial() const = 0;
172
176 public: virtual void SetBackgroundMaterial(MaterialPtr _material) = 0;
177
181 public: virtual unsigned int NodeCount() const = 0;
182
186 public: virtual bool HasNode(ConstNodePtr _node) const = 0;
187
192 public: virtual bool HasNodeId(unsigned int _id) const = 0;
193
198 public: virtual bool HasNodeName(const std::string &_name) const = 0;
199
204 public: virtual NodePtr NodeById(unsigned int _id) const = 0;
205
210 public: virtual NodePtr NodeByName(const std::string &_name) const = 0;
211
216 public: virtual NodePtr NodeByIndex(unsigned int _index) const = 0;
217
225 public: virtual void DestroyNode(NodePtr _node,
226 bool _recursive = false) = 0;
227
232 public: virtual void DestroyNodeById(unsigned int _id) = 0;
233
238 public: virtual void DestroyNodeByName(const std::string &_name) = 0;
239
244 public: virtual void DestroyNodeByIndex(unsigned int _index) = 0;
245
247 public: virtual void DestroyNodes() = 0;
248
252 public: virtual unsigned int LightCount() const = 0;
253
257 public: virtual bool HasLight(ConstLightPtr _light) const = 0;
258
263 public: virtual bool HasLightId(unsigned int _id) const = 0;
264
269 public: virtual bool HasLightName(const std::string &_name) const = 0;
270
275 public: virtual LightPtr LightById(unsigned int _id) const = 0;
276
281 public: virtual LightPtr LightByName(
282 const std::string &_name) const = 0;
283
288 public: virtual LightPtr LightByIndex(unsigned int _index) const = 0;
289
297 public: virtual void DestroyLight(LightPtr _light,
298 bool _recursive = false) = 0;
299
304 public: virtual void DestroyLightById(unsigned int _id) = 0;
305
310 public: virtual void DestroyLightByName(const std::string &_name) = 0;
311
316 public: virtual void DestroyLightByIndex(unsigned int _index) = 0;
317
319 public: virtual void DestroyLights() = 0;
320
324 public: virtual unsigned int SensorCount() const = 0;
325
329 public: virtual bool HasSensor(ConstSensorPtr _sensor) const = 0;
330
335 public: virtual bool HasSensorId(unsigned int _id) const = 0;
336
341 public: virtual bool HasSensorName(const std::string &_name) const = 0;
342
347 public: virtual SensorPtr SensorById(unsigned int _id) const = 0;
348
353 public: virtual SensorPtr SensorByName(
354 const std::string &_name) const = 0;
355
360 public: virtual SensorPtr SensorByIndex(unsigned int _index) const = 0;
361
369 public: virtual void DestroySensor(SensorPtr _sensor,
370 bool _recursive = false) = 0;
371
376 public: virtual void DestroySensorById(unsigned int _id) = 0;
377
382 public: virtual void DestroySensorByName(const std::string &_name) = 0;
383
388 public: virtual void DestroySensorByIndex(unsigned int _index) = 0;
389
391 public: virtual void DestroySensors() = 0;
392
396 public: virtual unsigned int VisualCount() const = 0;
397
401 public: virtual bool HasVisual(ConstVisualPtr _node) const = 0;
402
407 public: virtual bool HasVisualId(unsigned int _id) const = 0;
408
413 public: virtual bool HasVisualName(const std::string &_name) const = 0;
414
419 public: virtual VisualPtr VisualById(unsigned int _id) const = 0;
420
425 public: virtual VisualPtr VisualByName(
426 const std::string &_name) const = 0;
427
432 public: virtual VisualPtr VisualByIndex(unsigned int _index) const = 0;
433
442 public: virtual void DestroyVisual(VisualPtr _node,
443 bool _recursive = false) = 0;
444
449 public: virtual void DestroyVisualById(unsigned int _id) = 0;
450
455 public: virtual void DestroyVisualByName(const std::string &_name) = 0;
456
461 public: virtual void DestroyVisualByIndex(unsigned int _index) = 0;
462
464 public: virtual void DestroyVisuals() = 0;
465
469 public: virtual bool MaterialRegistered(
470 const std::string &_name) const = 0;
471
476 public: virtual MaterialPtr Material(
477 const std::string &_name) const = 0;
478
483 public: virtual void RegisterMaterial(const std::string &_name,
484 MaterialPtr _material) = 0;
485
489 public: virtual void UnregisterMaterial(const std::string &_name) = 0;
490
492 public: virtual void UnregisterMaterials() = 0;
493
496 public: virtual void DestroyMaterial(MaterialPtr _material) = 0;
497
499 public: virtual void DestroyMaterials() = 0;
500
505
512 unsigned int _id) = 0;
513
520 const std::string &_name) = 0;
521
528 unsigned int _id, const std::string &_name) = 0;
529
533 public: virtual PointLightPtr CreatePointLight() = 0;
534
541 unsigned int _id) = 0;
542
549 const std::string &_name) = 0;
550
557 unsigned int _id, const std::string &_name) = 0;
558
562 public: virtual SpotLightPtr CreateSpotLight() = 0;
563
570 unsigned int _id) = 0;
571
578 const std::string &_name) = 0;
579
586 unsigned int _id, const std::string &_name) = 0;
587
591 public: virtual CameraPtr CreateCamera() = 0;
592
598 public: virtual CameraPtr CreateCamera(
599 unsigned int _id) = 0;
600
606 public: virtual CameraPtr CreateCamera(
607 const std::string &_name) = 0;
608
614 public: virtual CameraPtr CreateCamera(
615 unsigned int _id, const std::string &_name) = 0;
616
620 public: virtual DepthCameraPtr CreateDepthCamera() = 0;
621
628 unsigned int _id) = 0;
629
636 const std::string &_name) = 0;
637
644 unsigned int _id, const std::string &_name) = 0;
645
650
657 unsigned int _id) = 0;
658
665 const std::string &_name) = 0;
666
673 unsigned int _id, const std::string &_name) = 0;
674
679
686 unsigned int _id) = 0;
687
694 const std::string &_name) = 0;
695
702 unsigned int _id, const std::string &_name) = 0;
703
708
715 unsigned int _id) = 0;
716
723 const std::string &_name) = 0;
724
731 unsigned int _id, const std::string &_name) = 0;
732
737
744 unsigned int _id) = 0;
745
752 const std::string &_name) = 0;
753
760 unsigned int _id, const std::string &_name) = 0;
761
765 public: virtual GpuRaysPtr CreateGpuRays() = 0;
766
772 public: virtual GpuRaysPtr CreateGpuRays(unsigned int _id) = 0;
773
779 public: virtual GpuRaysPtr CreateGpuRays(
780 const std::string &_name) = 0;
781
787 public: virtual GpuRaysPtr CreateGpuRays(
788 unsigned int _id, const std::string &_name) = 0;
789
793 public: virtual VisualPtr CreateVisual() = 0;
794
800 public: virtual VisualPtr CreateVisual(
801 unsigned int _id) = 0;
802
808 public: virtual VisualPtr CreateVisual(
809 const std::string &_name) = 0;
810
816 public: virtual VisualPtr CreateVisual(
817 unsigned int _id, const std::string &_name) = 0;
818
822 public: virtual ArrowVisualPtr CreateArrowVisual() = 0;
823
830 unsigned int _id) = 0;
831
838 const std::string &_name) = 0;
839
846 unsigned int _id, const std::string &_name) = 0;
847
851 public: virtual AxisVisualPtr CreateAxisVisual() = 0;
852
859 unsigned int _id) = 0;
860
867 const std::string &_name) = 0;
868
875 unsigned int _id, const std::string &_name) = 0;
876
880 public: virtual GizmoVisualPtr CreateGizmoVisual() = 0;
881
888 unsigned int _id) = 0;
889
896 const std::string &_name) = 0;
897
904 unsigned int _id, const std::string &_name) = 0;
905
909 public: virtual COMVisualPtr CreateCOMVisual() = 0;
910
917 unsigned int _id) = 0;
918
925 const std::string &_name) = 0;
926
933 unsigned int _id, const std::string &_name) = 0;
934
939
946 unsigned int _id) = 0;
947
954 const std::string &_name) = 0;
955
962 unsigned int _id, const std::string &_name) = 0;
963
967 public: virtual JointVisualPtr CreateJointVisual() = 0;
968
975 unsigned int _id) = 0;
976
983 const std::string &_name) = 0;
984
991 unsigned int _id, const std::string &_name) = 0;
992
996 public: virtual LightVisualPtr CreateLightVisual() = 0;
997
1004 unsigned int _id) = 0;
1005
1012 const std::string &_name) = 0;
1013
1020 unsigned int _id, const std::string &_name) = 0;
1021
1024 public: virtual GeometryPtr CreateBox() = 0;
1025
1028 public: virtual CapsulePtr CreateCapsule() = 0;
1029
1032 public: virtual GeometryPtr CreateCone() = 0;
1033
1036 public: virtual GeometryPtr CreateCylinder() = 0;
1037
1040 public: virtual GeometryPtr CreatePlane() = 0;
1041
1046 public: virtual GeometryPtr CreateSphere() = 0;
1047
1054 public: virtual MeshPtr CreateMesh(const std::string &_meshName) = 0;
1055
1061 public: virtual MeshPtr CreateMesh(const common::Mesh *_mesh) = 0;
1062
1068 public: virtual MeshPtr CreateMesh(const MeshDescriptor &_desc) = 0;
1069
1072 public: virtual GridPtr CreateGrid() = 0;
1073
1076 public: virtual WireBoxPtr CreateWireBox() = 0;
1077
1080 public: virtual MarkerPtr CreateMarker() = 0;
1081
1085 public: virtual LidarVisualPtr CreateLidarVisual() = 0;
1086
1092 public: virtual LidarVisualPtr CreateLidarVisual(unsigned int _id) = 0;
1093
1100 const std::string &_name) = 0;
1101
1108 unsigned int _id, const std::string &_name) = 0;
1109
1115 const HeightmapDescriptor &_desc) = 0;
1116
1119 public: virtual TextPtr CreateText() = 0;
1120
1125 public: virtual MaterialPtr CreateMaterial(const std::string &_name = "")
1126 = 0;
1127
1132 const common::Material &_material) = 0;
1133
1137
1143
1146 public: virtual RayQueryPtr CreateRayQuery() = 0;
1147
1152
1159 unsigned int _id) = 0;
1160
1167 const std::string &_name) = 0;
1168
1175 unsigned int _id, const std::string &_name) = 0;
1176
1180 public: virtual ProjectorPtr CreateProjector() = 0;
1181
1188 unsigned int _id) = 0;
1189
1195 const std::string &_name) = 0;
1196
1203 unsigned int _id, const std::string &_name) = 0;
1204
1208 public: virtual GlobalIlluminationVctPtr
1210
1217 unsigned int _id) = 0;
1218
1225 const std::string &_name) = 0;
1226
1233 unsigned int _id, const std::string &_name) = 0;
1234
1238 public: virtual GlobalIlluminationCiVctPtr
1240
1247 unsigned int _id) = 0;
1248
1255 const std::string &_name) = 0;
1256
1263 unsigned int _id, const std::string &_name) = 0;
1264
1267 public: virtual void SetSkyEnabled(bool _enabled) = 0;
1268
1271 public: virtual bool SkyEnabled() const = 0;
1272
1275 public: virtual void SetActiveGlobalIllumination(
1277
1280 public: virtual void PreRender() = 0;
1281
1287 public: virtual void PostRender() = 0;
1288
1382 public: virtual void SetCameraPassCountPerGpuFlush(uint8_t _numPass) = 0;
1383
1388 public: virtual uint8_t CameraPassCountPerGpuFlush() const = 0;
1389
1394 public: virtual bool LegacyAutoGpuFlush() const = 0;
1395
1399 public: virtual void Clear() = 0;
1400
1404 public: virtual void Destroy() = 0;
1405
1408 public: SceneExt *Extension() const;
1409
1412 protected: void SetExtension(SceneExt *_ext);
1413 };
1414 }
1415 }
1416}
1417#endif