17 #ifndef IGNITION_RENDERING_OGRE2_OGRE2SCENE_HH_ 18 #define IGNITION_RENDERING_OGRE2_OGRE2SCENE_HH_ 28 #include "ignition/rendering/ogre2/Export.hh" 32 #pragma GCC system_header 34 #pragma warning(push, 0) 36 #include <Compositor/OgreCompositorShadowNode.h> 51 inline namespace IGNITION_RENDERING_VERSION_NAMESPACE {
54 class Ogre2ScenePrivate;
69 public:
virtual void Fini()
override;
75 public:
virtual VisualPtr RootVisual()
const override;
78 public:
virtual math::Color AmbientLight()
const override;
81 public:
virtual void SetAmbientLight(
const math::Color &_color)
override;
84 public:
virtual void PreRender()
override;
87 public:
virtual void Clear()
override;
90 public:
virtual void Destroy()
override;
93 public:
virtual void SetSkyEnabled(
bool _enabled)
override;
96 public:
virtual bool SkyEnabled()
const override;
99 public:
virtual void SetCameraPassCountPerGpuFlush(
100 uint8_t _numPass)
override;
103 public:
virtual uint8_t CameraPassCountPerGpuFlush()
const override;
106 public:
virtual bool LegacyAutoGpuFlush()
const override;
110 public:
virtual Ogre::SceneManager *OgreSceneManager()
const;
113 public:
virtual void PostRender()
override;
127 public:
void StartForcedRender();
133 public:
void EndForcedRender();
144 public:
void StartRendering(Ogre::Camera *_camera);
157 public:
void FlushGpuCommandsAndStartNewFrame(uint8_t _numPasses,
158 bool _startNewFrame);
162 protected:
void FlushGpuCommandsOnly();
176 protected:
void EndFrame();
183 public:
void SetShadowsDirty(
bool _dirty);
189 public:
bool ShadowsDirty()
const;
193 protected:
virtual bool LoadImpl()
override;
196 protected:
virtual bool InitImpl()
override;
199 protected:
virtual COMVisualPtr CreateCOMVisualImpl(
unsigned int _id,
204 unsigned int _id,
const std::string &_name)
override;
207 protected:
virtual JointVisualPtr CreateJointVisualImpl(
unsigned int _id,
211 protected:
virtual LightVisualPtr CreateLightVisualImpl(
unsigned int _id,
216 unsigned int _id,
const std::string &_name)
override;
219 protected:
virtual PointLightPtr CreatePointLightImpl(
unsigned int _id,
223 protected:
virtual SpotLightPtr CreateSpotLightImpl(
unsigned int _id,
227 protected:
virtual CameraPtr CreateCameraImpl(
unsigned int _id,
231 protected:
virtual DepthCameraPtr CreateDepthCameraImpl(
unsigned int _id,
236 unsigned int _id,
const std::string &_name)
override;
240 unsigned int _id,
const std::string &_name)
override;
243 protected:
virtual GpuRaysPtr CreateGpuRaysImpl(
unsigned int _id,
247 protected:
virtual VisualPtr CreateVisualImpl(
unsigned int _id,
251 protected:
virtual ArrowVisualPtr CreateArrowVisualImpl(
unsigned int _id,
255 protected:
virtual AxisVisualPtr CreateAxisVisualImpl(
unsigned int _id,
259 protected:
virtual GizmoVisualPtr CreateGizmoVisualImpl(
unsigned int _id,
263 protected:
virtual GeometryPtr CreateBoxImpl(
unsigned int _id,
267 protected:
virtual GeometryPtr CreateConeImpl(
unsigned int _id,
271 protected:
virtual GeometryPtr CreateCylinderImpl(
unsigned int _id,
275 protected:
virtual GeometryPtr CreatePlaneImpl(
unsigned int _id,
279 protected:
virtual GeometryPtr CreateSphereImpl(
unsigned int _id,
286 protected:
virtual MeshPtr CreateMeshImpl(
unsigned int _id,
290 protected:
virtual MeshPtr CreateMeshImpl(
unsigned int _id,
295 protected:
virtual CapsulePtr CreateCapsuleImpl(
unsigned int _id,
298 protected:
virtual HeightmapPtr CreateHeightmapImpl(
unsigned int _id,
303 protected:
virtual GridPtr CreateGridImpl(
unsigned int _id,
307 protected:
virtual MarkerPtr CreateMarkerImpl(
unsigned int _id,
311 protected:
virtual LidarVisualPtr CreateLidarVisualImpl(
unsigned int _id,
315 protected:
virtual WireBoxPtr CreateWireBoxImpl(
unsigned int _id,
319 protected:
virtual TextPtr CreateTextImpl(
unsigned int _id,
322 protected:
virtual MaterialPtr CreateMaterialImpl(
unsigned int _id,
326 unsigned int _id,
const std::string &_name)
override;
330 unsigned int _id,
const std::string &_name)
override;
334 unsigned int _id,
const std::string &_name)
override;
338 unsigned int _id,
const std::string &_name)
override;
351 public:
void UpdateAllHeightmaps(Ogre::Camera *_camera);
360 protected:
void UpdateShadowNode();
375 private:
void CreateShadowNodeWithSettings(
376 Ogre::CompositorManager2 *_compositorManager,
378 const Ogre::ShadowNodeHelper::ShadowParamVec &_shadowParams);
393 private:
void CreateContext();
396 private:
void CreateRootVisual();
399 private:
void CreateMeshFactory();
402 private:
void CreateStores();
406 public:
void ClearMaterialsCache(
const std::string &_name);
433 protected: Ogre::SceneManager *ogreSceneManager =
nullptr;
Ogre2LightStorePtr lights
A list of ogre lights.
Definition: Ogre2Scene.hh:424
Describes how a Mesh should be loaded.
Definition: MeshDescriptor.hh:44
std::vector< std::weak_ptr< Ogre2Heightmap > > heightmaps
A list of ogre heightmaps.
Definition: Ogre2Scene.hh:430
Ogre2.x implementation of the scene class.
Definition: Ogre2Scene.hh:57
Ogre2VisualStorePtr visuals
A list of ogre visuals.
Definition: Ogre2Scene.hh:421
Ogre2SensorStorePtr sensors
A list of ogre sensors, e.g. cameras.
Definition: Ogre2Scene.hh:418
Ogre2 render engine class. A singleton class that manages the underlying ogre2 render engine...
Definition: Ogre2RenderEngine.hh:79
Definition: BaseScene.hh:37
Ogre2VisualPtr rootVisual
Root visual in the scene.
Definition: Ogre2Scene.hh:412
Ogre2MeshFactoryPtr meshFactory
Mesh factory for generating ogre meshes.
Definition: Ogre2Scene.hh:415
Describes how a Heightmap should be loaded.
Definition: HeightmapDescriptor.hh:146
Definition: OgreCamera.hh:28
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:427