Gazebo Rendering

API Reference

9.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#include "gz/rendering/Light.hh"
38
39namespace gz
40{
41 namespace rendering
42 {
43 inline namespace GZ_RENDERING_VERSION_NAMESPACE {
44 //
45 class RenderEngine;
46 class SceneExt;
47
52 class GZ_RENDERING_VISIBLE Scene
53 {
55 public: virtual ~Scene();
56
58 public: virtual void Load() = 0;
59
61 public: virtual void Init() = 0;
62
63 // TODO(anyone): merge with Destroy
64 public: virtual void Fini() = 0;
65
68 public: virtual bool IsInitialized() const = 0;
69
72 public: virtual unsigned int Id() const = 0;
73
76 public: virtual std::string Name() const = 0;
77
80 public: virtual RenderEngine *Engine() const = 0;
81
84 public: virtual std::chrono::steady_clock::duration
85 Time() const = 0;
86
89 public: virtual void SetTime(
90 const std::chrono::steady_clock::duration &_time) = 0;
91
97 public: virtual VisualPtr RootVisual() const = 0;
98
103 public: virtual VisualPtr VisualAt(const CameraPtr &_camera,
104 const math::Vector2i &_mousePos) = 0;
105
108 public: virtual math::Color AmbientLight() const = 0;
109
115 public: virtual void SetAmbientLight(double _r, double _g, double _b,
116 double _a = 1.0) = 0;
117
120 public: virtual void SetAmbientLight(const math::Color &_color) = 0;
121
124 public: virtual math::Color BackgroundColor() const = 0;
125
131 public: virtual void SetBackgroundColor(double _r, double _g, double _b,
132 double _a = 1.0) = 0;
133
136 public: virtual void SetBackgroundColor(const math::Color &_color) = 0;
137
140 public: virtual bool IsGradientBackgroundColor() const = 0;
141
145 public: virtual std::array<math::Color, 4>
147
161 public: virtual void SetGradientBackgroundColor(
162 const std::array<math::Color, 4> &_colors) = 0;
163
167 public: virtual void RemoveGradientBackgroundColor() = 0;
168
172 public: virtual MaterialPtr BackgroundMaterial() const = 0;
173
177 public: virtual void SetBackgroundMaterial(MaterialPtr _material) = 0;
178
182 public: virtual unsigned int NodeCount() const = 0;
183
187 public: virtual bool HasNode(ConstNodePtr _node) const = 0;
188
193 public: virtual bool HasNodeId(unsigned int _id) const = 0;
194
199 public: virtual bool HasNodeName(const std::string &_name) const = 0;
200
205 public: virtual NodePtr NodeById(unsigned int _id) const = 0;
206
211 public: virtual NodePtr NodeByName(const std::string &_name) const = 0;
212
217 public: virtual NodePtr NodeByIndex(unsigned int _index) const = 0;
218
226 public: virtual void DestroyNode(NodePtr _node,
227 bool _recursive = false) = 0;
228
233 public: virtual void DestroyNodeById(unsigned int _id) = 0;
234
239 public: virtual void DestroyNodeByName(const std::string &_name) = 0;
240
245 public: virtual void DestroyNodeByIndex(unsigned int _index) = 0;
246
248 public: virtual void DestroyNodes() = 0;
249
253 public: virtual unsigned int LightCount() const = 0;
254
258 public: virtual bool HasLight(ConstLightPtr _light) const = 0;
259
264 public: virtual bool HasLightId(unsigned int _id) const = 0;
265
270 public: virtual bool HasLightName(const std::string &_name) const = 0;
271
276 public: virtual LightPtr LightById(unsigned int _id) const = 0;
277
282 public: virtual LightPtr LightByName(
283 const std::string &_name) const = 0;
284
289 public: virtual LightPtr LightByIndex(unsigned int _index) const = 0;
290
298 public: virtual void DestroyLight(LightPtr _light,
299 bool _recursive = false) = 0;
300
305 public: virtual void DestroyLightById(unsigned int _id) = 0;
306
311 public: virtual void DestroyLightByName(const std::string &_name) = 0;
312
317 public: virtual void DestroyLightByIndex(unsigned int _index) = 0;
318
320 public: virtual void DestroyLights() = 0;
321
325 public: virtual unsigned int SensorCount() const = 0;
326
330 public: virtual bool HasSensor(ConstSensorPtr _sensor) const = 0;
331
336 public: virtual bool HasSensorId(unsigned int _id) const = 0;
337
342 public: virtual bool HasSensorName(const std::string &_name) const = 0;
343
348 public: virtual SensorPtr SensorById(unsigned int _id) const = 0;
349
354 public: virtual SensorPtr SensorByName(
355 const std::string &_name) const = 0;
356
361 public: virtual SensorPtr SensorByIndex(unsigned int _index) const = 0;
362
370 public: virtual void DestroySensor(SensorPtr _sensor,
371 bool _recursive = false) = 0;
372
377 public: virtual void DestroySensorById(unsigned int _id) = 0;
378
383 public: virtual void DestroySensorByName(const std::string &_name) = 0;
384
389 public: virtual void DestroySensorByIndex(unsigned int _index) = 0;
390
392 public: virtual void DestroySensors() = 0;
393
397 public: virtual unsigned int VisualCount() const = 0;
398
402 public: virtual bool HasVisual(ConstVisualPtr _node) const = 0;
403
408 public: virtual bool HasVisualId(unsigned int _id) const = 0;
409
414 public: virtual bool HasVisualName(const std::string &_name) const = 0;
415
420 public: virtual VisualPtr VisualById(unsigned int _id) const = 0;
421
426 public: virtual VisualPtr VisualByName(
427 const std::string &_name) const = 0;
428
433 public: virtual VisualPtr VisualByIndex(unsigned int _index) const = 0;
434
443 public: virtual void DestroyVisual(VisualPtr _node,
444 bool _recursive = false) = 0;
445
450 public: virtual void DestroyVisualById(unsigned int _id) = 0;
451
456 public: virtual void DestroyVisualByName(const std::string &_name) = 0;
457
462 public: virtual void DestroyVisualByIndex(unsigned int _index) = 0;
463
465 public: virtual void DestroyVisuals() = 0;
466
470 public: virtual bool MaterialRegistered(
471 const std::string &_name) const = 0;
472
477 public: virtual MaterialPtr Material(
478 const std::string &_name) const = 0;
479
484 public: virtual void RegisterMaterial(const std::string &_name,
485 MaterialPtr _material) = 0;
486
490 public: virtual void UnregisterMaterial(const std::string &_name) = 0;
491
493 public: virtual void UnregisterMaterials() = 0;
494
497 public: virtual void DestroyMaterial(MaterialPtr _material) = 0;
498
500 public: virtual void DestroyMaterials() = 0;
501
506
513 unsigned int _id) = 0;
514
521 const std::string &_name) = 0;
522
529 unsigned int _id, const std::string &_name) = 0;
530
534 public: virtual PointLightPtr CreatePointLight() = 0;
535
542 unsigned int _id) = 0;
543
550 const std::string &_name) = 0;
551
558 unsigned int _id, const std::string &_name) = 0;
559
563 public: virtual SpotLightPtr CreateSpotLight() = 0;
564
571 unsigned int _id) = 0;
572
579 const std::string &_name) = 0;
580
587 unsigned int _id, const std::string &_name) = 0;
588
592 public: virtual CameraPtr CreateCamera() = 0;
593
599 public: virtual CameraPtr CreateCamera(
600 unsigned int _id) = 0;
601
607 public: virtual CameraPtr CreateCamera(
608 const std::string &_name) = 0;
609
615 public: virtual CameraPtr CreateCamera(
616 unsigned int _id, const std::string &_name) = 0;
617
621 public: virtual DepthCameraPtr CreateDepthCamera() = 0;
622
629 unsigned int _id) = 0;
630
637 const std::string &_name) = 0;
638
645 unsigned int _id, const std::string &_name) = 0;
646
651
658 unsigned int _id) = 0;
659
666 const std::string &_name) = 0;
667
674 unsigned int _id, const std::string &_name) = 0;
675
680
687 unsigned int _id) = 0;
688
695 const std::string &_name) = 0;
696
703 unsigned int _id, const std::string &_name) = 0;
704
709
716 unsigned int _id) = 0;
717
724 const std::string &_name) = 0;
725
732 unsigned int _id, const std::string &_name) = 0;
733
738
745 unsigned int _id) = 0;
746
753 const std::string &_name) = 0;
754
761 unsigned int _id, const std::string &_name) = 0;
762
766 public: virtual GpuRaysPtr CreateGpuRays() = 0;
767
773 public: virtual GpuRaysPtr CreateGpuRays(unsigned int _id) = 0;
774
780 public: virtual GpuRaysPtr CreateGpuRays(
781 const std::string &_name) = 0;
782
788 public: virtual GpuRaysPtr CreateGpuRays(
789 unsigned int _id, const std::string &_name) = 0;
790
794 public: virtual VisualPtr CreateVisual() = 0;
795
801 public: virtual VisualPtr CreateVisual(
802 unsigned int _id) = 0;
803
809 public: virtual VisualPtr CreateVisual(
810 const std::string &_name) = 0;
811
817 public: virtual VisualPtr CreateVisual(
818 unsigned int _id, const std::string &_name) = 0;
819
823 public: virtual ArrowVisualPtr CreateArrowVisual() = 0;
824
831 unsigned int _id) = 0;
832
839 const std::string &_name) = 0;
840
847 unsigned int _id, const std::string &_name) = 0;
848
852 public: virtual AxisVisualPtr CreateAxisVisual() = 0;
853
860 unsigned int _id) = 0;
861
868 const std::string &_name) = 0;
869
876 unsigned int _id, const std::string &_name) = 0;
877
881 public: virtual GizmoVisualPtr CreateGizmoVisual() = 0;
882
889 unsigned int _id) = 0;
890
897 const std::string &_name) = 0;
898
905 unsigned int _id, const std::string &_name) = 0;
906
910 public: virtual COMVisualPtr CreateCOMVisual() = 0;
911
918 unsigned int _id) = 0;
919
926 const std::string &_name) = 0;
927
934 unsigned int _id, const std::string &_name) = 0;
935
940
947 unsigned int _id) = 0;
948
955 const std::string &_name) = 0;
956
963 unsigned int _id, const std::string &_name) = 0;
964
968 public: virtual JointVisualPtr CreateJointVisual() = 0;
969
976 unsigned int _id) = 0;
977
984 const std::string &_name) = 0;
985
992 unsigned int _id, const std::string &_name) = 0;
993
997 public: virtual LightVisualPtr CreateLightVisual() = 0;
998
1005 unsigned int _id) = 0;
1006
1013 const std::string &_name) = 0;
1014
1021 unsigned int _id, const std::string &_name) = 0;
1022
1025 public: virtual GeometryPtr CreateBox() = 0;
1026
1029 public: virtual CapsulePtr CreateCapsule() = 0;
1030
1033 public: virtual GeometryPtr CreateCone() = 0;
1034
1037 public: virtual GeometryPtr CreateCylinder() = 0;
1038
1041 public: virtual GeometryPtr CreatePlane() = 0;
1042
1047 public: virtual GeometryPtr CreateSphere() = 0;
1048
1055 public: virtual MeshPtr CreateMesh(const std::string &_meshName) = 0;
1056
1062 public: virtual MeshPtr CreateMesh(const common::Mesh *_mesh) = 0;
1063
1069 public: virtual MeshPtr CreateMesh(const MeshDescriptor &_desc) = 0;
1070
1073 public: virtual GridPtr CreateGrid() = 0;
1074
1077 public: virtual WireBoxPtr CreateWireBox() = 0;
1078
1081 public: virtual MarkerPtr CreateMarker() = 0;
1082
1086 public: virtual LidarVisualPtr CreateLidarVisual() = 0;
1087
1093 public: virtual LidarVisualPtr CreateLidarVisual(unsigned int _id) = 0;
1094
1101 const std::string &_name) = 0;
1102
1109 unsigned int _id, const std::string &_name) = 0;
1110
1118
1128
1138
1149
1155 const HeightmapDescriptor &_desc) = 0;
1156
1159 public: virtual TextPtr CreateText() = 0;
1160
1165 public: virtual MaterialPtr CreateMaterial(const std::string &_name = "")
1166 = 0;
1167
1172 const common::Material &_material) = 0;
1173
1177
1183
1186 public: virtual RayQueryPtr CreateRayQuery() = 0;
1187
1192
1199 unsigned int _id) = 0;
1200
1207 const std::string &_name) = 0;
1208
1215 unsigned int _id, const std::string &_name) = 0;
1216
1220 public: virtual ProjectorPtr CreateProjector() = 0;
1221
1228 unsigned int _id) = 0;
1229
1235 const std::string &_name) = 0;
1236
1243 unsigned int _id, const std::string &_name) = 0;
1244
1248 public: virtual GlobalIlluminationVctPtr
1250
1257 unsigned int _id) = 0;
1258
1265 const std::string &_name) = 0;
1266
1273 unsigned int _id, const std::string &_name) = 0;
1274
1278 public: virtual GlobalIlluminationCiVctPtr
1280
1287 unsigned int _id) = 0;
1288
1295 const std::string &_name) = 0;
1296
1303 unsigned int _id, const std::string &_name) = 0;
1304
1307 public: virtual void SetSkyEnabled(bool _enabled) = 0;
1308
1311 public: virtual bool SkyEnabled() const = 0;
1312
1316 public: virtual bool SetShadowTextureSize(LightType _lightType,
1317 unsigned int _textureSize) = 0;
1318
1321 public: virtual unsigned int ShadowTextureSize(LightType _lightType)
1322 const = 0;
1323
1326 public: virtual void SetActiveGlobalIllumination(
1328
1331 public: virtual void PreRender() = 0;
1332
1338 public: virtual void PostRender() = 0;
1339
1433 public: virtual void SetCameraPassCountPerGpuFlush(uint8_t _numPass) = 0;
1434
1439 public: virtual uint8_t CameraPassCountPerGpuFlush() const = 0;
1440
1445 public: virtual bool LegacyAutoGpuFlush() const = 0;
1446
1450 public: virtual void Clear() = 0;
1451
1455 public: virtual void Destroy() = 0;
1456
1459 public: SceneExt *Extension() const;
1460
1463 protected: void SetExtension(SceneExt *_ext);
1464 };
1465 }
1466 }
1467}
1468#endif