RAMSES Documentation  27.0.130
Information for RAMSES users and developers
RenderGroup.h
Go to the documentation of this file.
1 // -------------------------------------------------------------------------
2 // Copyright (C) 2015 BMW Car IT GmbH
3 // -------------------------------------------------------------------------
4 // This Source Code Form is subject to the terms of the Mozilla Public
5 // License, v. 2.0. If a copy of the MPL was not distributed with this
6 // file, You can obtain one at https://mozilla.org/MPL/2.0/.
7 // -------------------------------------------------------------------------
8 
9 #ifndef RAMSES_RENDERGROUP_H
10 #define RAMSES_RENDERGROUP_H
11 
13 
14 namespace ramses
15 {
16  class MeshNode;
17 
31  {
32  public:
44  status_t addMeshNode(const MeshNode& mesh, int32_t orderWithinGroup = 0);
45 
54 
61  bool containsMeshNode(const MeshNode& mesh) const;
62 
71  status_t getMeshNodeOrder(const MeshNode& mesh, int32_t& orderWithinGroup) const;
72 
84  status_t addRenderGroup(const RenderGroup& renderGroup, int32_t orderWithinGroup = 0);
85 
93  status_t removeRenderGroup(const RenderGroup& renderGroup);
94 
101  bool containsRenderGroup(const RenderGroup& renderGroup) const;
102 
111  status_t getRenderGroupOrder(const RenderGroup& renderGroup, int32_t& orderWithinGroup) const;
112 
121 
130 
134  class RenderGroupImpl& impl;
135 
136  protected:
140  friend class SceneImpl;
141 
147  explicit RenderGroup(RenderGroupImpl& pimpl);
148 
152  virtual ~RenderGroup();
153  };
154 }
155 
156 #endif
#define RAMSES_API
Definition: APIExport.h:35
The MeshNode holds all information which is needed to render an object to the screen.
Definition: MeshNode.h:25
The RenderGroup is a container used to collect renderables which are supposed to be rendered together...
Definition: RenderGroup.h:31
status_t removeMeshNode(const MeshNode &mesh)
Remove a mesh from this RenderGroup.
status_t removeRenderGroup(const RenderGroup &renderGroup)
Remove a RenderGroup from this RenderGroup.
bool containsRenderGroup(const RenderGroup &renderGroup) const
Checks whether a RenderGroup was added to this RenderGroup.
status_t getMeshNodeOrder(const MeshNode &mesh, int32_t &orderWithinGroup) const
Gets a render order of given MeshNode within this RenderGroup.
virtual ~RenderGroup()
Destructor of the RenderGroup.
class RenderGroupImpl & impl
Definition: RenderGroup.h:134
bool containsMeshNode(const MeshNode &mesh) const
Checks whether a mesh was added to this RenderGroup.
status_t addMeshNode(const MeshNode &mesh, int32_t orderWithinGroup=0)
Add a mesh to this RenderGroup. If a mesh is already contained in this RenderGroup only its render or...
status_t removeAllRenderables()
Will remove all renderables from this RenderGroup. Renderables in nested RenderGroups will stay.
status_t getRenderGroupOrder(const RenderGroup &renderGroup, int32_t &orderWithinGroup) const
Gets a render order of given RenderGroup within this RenderGroup.
status_t addRenderGroup(const RenderGroup &renderGroup, int32_t orderWithinGroup=0)
Add a RenderGroup to this RenderGroup. If a RenderGroup is already contained in this RenderGroup only...
status_t removeAllRenderGroups()
Will remove all RenderGroups from this RenderGroup. This is done NON-recursively, i....
RenderGroup(RenderGroupImpl &pimpl)
Constructor for RenderGroup.
The SceneObject is a base class for all client API objects owned by a Scene.
Definition: SceneObject.h:20
The RAMSES namespace contains all client side objects and functions used to implement RAMSES applicat...
Definition: AnimatedProperty.h:15
uint32_t status_t
Status is a handle to the result of an API call.
Definition: RamsesFrameworkTypes.h:26