Ignition Rendering

API Reference

0.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 IGNITION_RENDERING_SCENE_HH_
18 #define IGNITION_RENDERING_SCENE_HH_
19 
20 #include <string>
21 #include <limits>
22 
23 #include <ignition/common/Material.hh>
24 #include <ignition/common/Mesh.hh>
25 #include <ignition/common/Time.hh>
26 
27 #include <ignition/math/Color.hh>
28 
32 #include "ignition/rendering/Export.hh"
33 
34 namespace ignition
35 {
36  namespace rendering
37  {
38  class RenderEngine;
39 
44  class IGNITION_RENDERING_VISIBLE Scene
45  {
47  public: virtual ~Scene() { }
48 
50  public: virtual void Load() = 0;
51 
53  public: virtual void Init() = 0;
54 
55  // TODO: merge with Destroy
56  public: virtual void Fini() = 0;
57 
60  public: virtual bool IsInitialized() const = 0;
61 
64  public: virtual unsigned int Id() const = 0;
65 
68  public: virtual std::string Name() const = 0;
69 
72  public: virtual RenderEngine *Engine() const = 0;
73 
76  public: virtual common::Time SimTime() const = 0;
77 
80  public: virtual void SetSimTime(const common::Time &_time) = 0;
81 
87  public: virtual VisualPtr RootVisual() const = 0;
88 
91  public: virtual math::Color AmbientLight() const = 0;
92 
98  public: virtual void SetAmbientLight(double _r, double _g, double _b,
99  double _a = 1.0) = 0;
100 
103  public: virtual void SetAmbientLight(const math::Color &_color) = 0;
104 
107  public: virtual math::Color BackgroundColor() const = 0;
108 
114  public: virtual void SetBackgroundColor(double _r, double _g, double _b,
115  double _a = 1.0) = 0;
116 
119  public: virtual void SetBackgroundColor(const math::Color &_color) = 0;
120 
124  public: virtual unsigned int NodeCount() const = 0;
125 
129  public: virtual bool HasNode(ConstNodePtr _node) const = 0;
130 
135  public: virtual bool HasNodeId(unsigned int _id) const = 0;
136 
141  public: virtual bool HasNodeName(const std::string &_name) const = 0;
142 
147  public: virtual NodePtr NodeById(unsigned int _id) const = 0;
148 
153  public: virtual NodePtr NodeByName(const std::string &_name) const = 0;
154 
159  public: virtual NodePtr NodeByIndex(unsigned int _index) const = 0;
160 
165  public: virtual void DestroyNode(NodePtr _node) = 0;
166 
171  public: virtual void DestroyNodeById(unsigned int _id) = 0;
172 
177  public: virtual void DestroyNodeByName(const std::string &_name) = 0;
178 
183  public: virtual void DestroyNodeByIndex(unsigned int _index) = 0;
184 
186  public: virtual void DestroyNodes() = 0;
187 
191  public: virtual unsigned int LightCount() const = 0;
192 
196  public: virtual bool HasLight(ConstLightPtr _light) const = 0;
197 
202  public: virtual bool HasLightId(unsigned int _id) const = 0;
203 
208  public: virtual bool HasLightName(const std::string &_name) const = 0;
209 
214  public: virtual LightPtr LightById(unsigned int _id) const = 0;
215 
220  public: virtual LightPtr LightByName(
221  const std::string &_name) const = 0;
222 
227  public: virtual LightPtr LightByIndex(unsigned int _index) const = 0;
228 
233  public: virtual void DestroyLight(LightPtr _light) = 0;
234 
239  public: virtual void DestroyLightById(unsigned int _id) = 0;
240 
245  public: virtual void DestroyLightByName(const std::string &_name) = 0;
246 
251  public: virtual void DestroyLightByIndex(unsigned int _index) = 0;
252 
254  public: virtual void DestroyLights() = 0;
255 
259  public: virtual unsigned int SensorCount() const = 0;
260 
264  public: virtual bool HasSensor(ConstSensorPtr _sensor) const = 0;
265 
270  public: virtual bool HasSensorId(unsigned int _id) const = 0;
271 
276  public: virtual bool HasSensorName(const std::string &_name) const = 0;
277 
282  public: virtual SensorPtr SensorById(unsigned int _id) const = 0;
283 
288  public: virtual SensorPtr SensorByName(
289  const std::string &_name) const = 0;
290 
295  public: virtual SensorPtr SensorByIndex(unsigned int _index) const = 0;
296 
301  public: virtual void DestroySensor(SensorPtr _sensor) = 0;
302 
307  public: virtual void DestroySensorById(unsigned int _id) = 0;
308 
313  public: virtual void DestroySensorByName(const std::string &_name) = 0;
314 
319  public: virtual void DestroySensorByIndex(unsigned int _index) = 0;
320 
322  public: virtual void DestroySensors() = 0;
323 
327  public: virtual unsigned int VisualCount() const = 0;
328 
332  public: virtual bool HasVisual(ConstVisualPtr _node) const = 0;
333 
338  public: virtual bool HasVisualId(unsigned int _id) const = 0;
339 
344  public: virtual bool HasVisualName(const std::string &_name) const = 0;
345 
350  public: virtual VisualPtr VisualById(unsigned int _id) const = 0;
351 
356  public: virtual VisualPtr VisualByName(
357  const std::string &_name) const = 0;
358 
363  public: virtual VisualPtr VisualByIndex(unsigned int _index) const = 0;
364 
369  public: virtual void DestroyVisual(VisualPtr _node) = 0;
370 
375  public: virtual void DestroyVisualById(unsigned int _id) = 0;
376 
381  public: virtual void DestroyVisualByName(const std::string &_name) = 0;
382 
387  public: virtual void DestroyVisualByIndex(unsigned int _index) = 0;
388 
390  public: virtual void DestroyVisuals() = 0;
391 
395  public: virtual bool MaterialRegistered(
396  const std::string &_name) const = 0;
397 
402  public: virtual MaterialPtr Material(
403  const std::string &_name) const = 0;
404 
409  public: virtual void RegisterMaterial(const std::string &_name,
410  MaterialPtr _material) = 0;
411 
415  public: virtual void UnregisterMaterial(const std::string &_name) = 0;
416 
418  public: virtual void UnregisterMaterials() = 0;
419 
423  public: virtual DirectionalLightPtr CreateDirectionalLight() = 0;
424 
430  public: virtual DirectionalLightPtr CreateDirectionalLight(
431  unsigned int _id) = 0;
432 
438  public: virtual DirectionalLightPtr CreateDirectionalLight(
439  const std::string &_name) = 0;
440 
446  public: virtual DirectionalLightPtr CreateDirectionalLight(
447  unsigned int _id, const std::string &_name) = 0;
448 
452  public: virtual PointLightPtr CreatePointLight() = 0;
453 
459  public: virtual PointLightPtr CreatePointLight(
460  unsigned int _id) = 0;
461 
467  public: virtual PointLightPtr CreatePointLight(
468  const std::string &_name) = 0;
469 
475  public: virtual PointLightPtr CreatePointLight(
476  unsigned int _id, const std::string &_name) = 0;
477 
481  public: virtual SpotLightPtr CreateSpotLight() = 0;
482 
488  public: virtual SpotLightPtr CreateSpotLight(
489  unsigned int _id) = 0;
490 
496  public: virtual SpotLightPtr CreateSpotLight(
497  const std::string &_name) = 0;
498 
504  public: virtual SpotLightPtr CreateSpotLight(
505  unsigned int _id, const std::string &_name) = 0;
506 
510  public: virtual CameraPtr CreateCamera() = 0;
511 
517  public: virtual CameraPtr CreateCamera(
518  unsigned int _id) = 0;
519 
525  public: virtual CameraPtr CreateCamera(
526  const std::string &_name) = 0;
527 
533  public: virtual CameraPtr CreateCamera(
534  unsigned int _id, const std::string &_name) = 0;
535 
539  public: virtual VisualPtr CreateVisual() = 0;
540 
546  public: virtual VisualPtr CreateVisual(
547  unsigned int _id) = 0;
548 
554  public: virtual VisualPtr CreateVisual(
555  const std::string &_name) = 0;
556 
562  public: virtual VisualPtr CreateVisual(
563  unsigned int _id, const std::string &_name) = 0;
564 
568  public: virtual ArrowVisualPtr CreateArrowVisual() = 0;
569 
575  public: virtual ArrowVisualPtr CreateArrowVisual(
576  unsigned int _id) = 0;
577 
583  public: virtual ArrowVisualPtr CreateArrowVisual(
584  const std::string &_name) = 0;
585 
591  public: virtual ArrowVisualPtr CreateArrowVisual(
592  unsigned int _id, const std::string &_name) = 0;
593 
597  public: virtual AxisVisualPtr CreateAxisVisual() = 0;
598 
604  public: virtual AxisVisualPtr CreateAxisVisual(
605  unsigned int _id) = 0;
606 
612  public: virtual AxisVisualPtr CreateAxisVisual(
613  const std::string &_name) = 0;
614 
620  public: virtual AxisVisualPtr CreateAxisVisual(
621  unsigned int _id, const std::string &_name) = 0;
622 
625  public: virtual GeometryPtr CreateBox() = 0;
626 
629  public: virtual GeometryPtr CreateCone() = 0;
630 
633  public: virtual GeometryPtr CreateCylinder() = 0;
634 
637  public: virtual GeometryPtr CreatePlane() = 0;
638 
641  public: virtual GeometryPtr CreateSphere() = 0;
642 
649  public: virtual MeshPtr CreateMesh(const std::string &_meshName) = 0;
650 
656  public: virtual MeshPtr CreateMesh(const common::Mesh *_mesh) = 0;
657 
663  public: virtual MeshPtr CreateMesh(const MeshDescriptor &_desc) = 0;
664 
667  public: virtual GridPtr CreateGrid() = 0;
668 
673  public: virtual MaterialPtr CreateMaterial(const std::string &_name = "")
674  = 0;
675 
679  public: virtual MaterialPtr CreateMaterial(
680  const common::Material &_material) = 0;
681 
684  public: virtual RenderTexturePtr CreateRenderTexture() = 0;
685 
690  public: virtual RenderWindowPtr CreateRenderWindow() = 0;
691 
694  public: virtual RayQueryPtr CreateRayQuery() = 0;
695 
698  public: virtual void PreRender() = 0;
699 
703  public: virtual void Clear() = 0;
704 
708  public: virtual void Destroy() = 0;
709  };
710  }
711 }
712 #endif
Describes how a Mesh should be loaded.
Definition: MeshDescriptor.hh:38
STL class.
Manages a single scene-graph. This class updates scene-wide properties and holds the root scene node...
Definition: Scene.hh:44
An abstract interface to a concrete render-engine. A RenderEngine is responsible for initializing a r...
Definition: RenderEngine.hh:32
virtual ~Scene()
Deconstructor.
Definition: Scene.hh:47
Definition: ArrowVisual.hh:22
Represents a surface material of a Geometry.
Definition: Material.hh:34