17 #ifndef IGNITION_RENDERING_OGRE2_OGRE2SCENE_HH_ 18 #define IGNITION_RENDERING_OGRE2_OGRE2SCENE_HH_ 27 #include "ignition/rendering/ogre2/Export.hh" 31 #pragma GCC system_header 33 #pragma warning(push, 0) 35 #include <Compositor/OgreCompositorShadowNode.h> 50 inline namespace IGNITION_RENDERING_VERSION_NAMESPACE {
53 class Ogre2ScenePrivate;
68 public:
virtual void Fini()
override;
74 public:
virtual VisualPtr RootVisual()
const override;
77 public:
virtual math::Color AmbientLight()
const override;
80 public:
virtual void SetAmbientLight(
const math::Color &_color)
override;
83 public:
virtual void PreRender()
override;
86 public:
virtual void Clear()
override;
89 public:
virtual void Destroy()
override;
92 public:
virtual void SetSkyEnabled(
bool _enabled)
override;
95 public:
virtual bool SkyEnabled()
const override;
99 public:
virtual Ogre::SceneManager *OgreSceneManager()
const;
107 public:
void SetShadowsDirty(
bool _dirty);
113 public:
bool ShadowsDirty()
const;
117 protected:
virtual bool LoadImpl()
override;
120 protected:
virtual bool InitImpl()
override;
123 protected:
virtual LightVisualPtr CreateLightVisualImpl(
unsigned int _id,
128 unsigned int _id,
const std::string &_name)
override;
131 protected:
virtual PointLightPtr CreatePointLightImpl(
unsigned int _id,
135 protected:
virtual SpotLightPtr CreateSpotLightImpl(
unsigned int _id,
139 protected:
virtual CameraPtr CreateCameraImpl(
unsigned int _id,
143 protected:
virtual DepthCameraPtr CreateDepthCameraImpl(
unsigned int _id,
148 unsigned int _id,
const std::string &_name)
override;
151 protected:
virtual GpuRaysPtr CreateGpuRaysImpl(
unsigned int _id,
155 protected:
virtual VisualPtr CreateVisualImpl(
unsigned int _id,
159 protected:
virtual ArrowVisualPtr CreateArrowVisualImpl(
unsigned int _id,
163 protected:
virtual AxisVisualPtr CreateAxisVisualImpl(
unsigned int _id,
167 protected:
virtual GizmoVisualPtr CreateGizmoVisualImpl(
unsigned int _id,
171 protected:
virtual GeometryPtr CreateBoxImpl(
unsigned int _id,
175 protected:
virtual GeometryPtr CreateConeImpl(
unsigned int _id,
179 protected:
virtual GeometryPtr CreateCylinderImpl(
unsigned int _id,
183 protected:
virtual GeometryPtr CreatePlaneImpl(
unsigned int _id,
187 protected:
virtual GeometryPtr CreateSphereImpl(
unsigned int _id,
194 protected:
virtual MeshPtr CreateMeshImpl(
unsigned int _id,
198 protected:
virtual MeshPtr CreateMeshImpl(
unsigned int _id,
203 protected:
virtual CapsulePtr CreateCapsuleImpl(
unsigned int _id,
206 protected:
virtual HeightmapPtr CreateHeightmapImpl(
unsigned int _id,
211 protected:
virtual GridPtr CreateGridImpl(
unsigned int _id,
215 protected:
virtual MarkerPtr CreateMarkerImpl(
unsigned int _id,
219 protected:
virtual LidarVisualPtr CreateLidarVisualImpl(
unsigned int _id,
223 protected:
virtual WireBoxPtr CreateWireBoxImpl(
unsigned int _id,
227 protected:
virtual TextPtr CreateTextImpl(
unsigned int _id,
230 protected:
virtual MaterialPtr CreateMaterialImpl(
unsigned int _id,
234 unsigned int _id,
const std::string &_name)
override;
238 unsigned int _id,
const std::string &_name)
override;
242 unsigned int _id,
const std::string &_name)
override;
246 unsigned int _id,
const std::string &_name)
override;
257 protected:
void UpdateShadowNode();
272 private:
void CreateShadowNodeWithSettings(
273 Ogre::CompositorManager2 *_compositorManager,
275 const Ogre::ShadowNodeHelper::ShadowParamVec &_shadowParams);
290 private:
void CreateContext();
293 private:
void CreateRootVisual();
296 private:
void CreateMeshFactory();
299 private:
void CreateStores();
323 protected: Ogre::SceneManager *ogreSceneManager =
nullptr;
Ogre2LightStorePtr lights
A list of ogre lights.
Definition: Ogre2Scene.hh:317
Describes how a Mesh should be loaded.
Definition: MeshDescriptor.hh:44
Ogre2.x implementation of the scene class.
Definition: Ogre2Scene.hh:56
Ogre2VisualStorePtr visuals
A list of ogre visuals.
Definition: Ogre2Scene.hh:314
Ogre2SensorStorePtr sensors
A list of ogre sensors, e.g. cameras.
Definition: Ogre2Scene.hh:311
Ogre2 render engine class. A singleton class that manages the underlying ogre2 render engine...
Definition: Ogre2RenderEngine.hh:74
Definition: BaseScene.hh:37
Ogre2VisualPtr rootVisual
Root visual in the scene.
Definition: Ogre2Scene.hh:305
Ogre2MeshFactoryPtr meshFactory
Mesh factory for generating ogre meshes.
Definition: Ogre2Scene.hh:308
Describes how a Heightmap should be loaded.
Definition: HeightmapDescriptor.hh:146
Definition: OgreCamera.hh:27
An abstract interface to a concrete render-engine. A RenderEngine is responsible for initializing a r...
Definition: RenderEngine.hh:36
Ogre2MaterialMapPtr materials
A list of ogre materials.
Definition: Ogre2Scene.hh:320