Skip to main content

SceneMemberVisibilityRegistry Class Template

Stores visible and culled scene members grouped by viewport. More...

Declaration

template <typename TMemberHandle> class helios::engine::scene::SceneMemberVisibilityRegistry<TMemberHandle> { ... }

Public Constructors Index

template <typename TMemberHandle>
SceneMemberVisibilityRegistry ()

Creates an empty registry with default viewport capacity. More...

Public Member Functions Index

template <typename TMemberHandle>
booladdCulledMember (ViewportHandle viewportHandle, TMemberHandle memberHandle)

Adds a member to the culled list of a viewport. More...

template <typename TMemberHandle>
booladdVisibleMember (ViewportHandle viewportHandle, TMemberHandle memberHandle)

Adds a member to the visible list of a viewport. More...

template <typename TMemberHandle>
auto culledMembers (ViewportHandle viewportHandle) const -> std::span< const TMemberHandle >

Returns culled members for a viewport. More...

template <typename TMemberHandle>
auto visibleMembers (ViewportHandle viewportHandle) const -> std::span< const TMemberHandle >

Returns visible members for a viewport. More...

template <typename TMemberHandle>
voidclear ()

Clears visible and culled members for all viewports. More...

Private Member Attributes Index

template <typename TMemberHandle>
HandleManyToManyMap< ViewportHandle, TMemberHandle >visibleMembers_
template <typename TMemberHandle>
HandleManyToManyMap< ViewportHandle, TMemberHandle >culledMembers_

Description

Stores visible and culled scene members grouped by viewport.

Template Parameters
TMemberHandle

Handle type of tracked scene members.

Definition at line 28 of file SceneMemberVisibilityRegistry.ixx.

Public Constructors

SceneMemberVisibilityRegistry()

template <typename TMemberHandle>
helios::engine::scene::SceneMemberVisibilityRegistry< TMemberHandle >::SceneMemberVisibilityRegistry ()
inline

Public Member Functions

addCulledMember()

template <typename TMemberHandle>
bool helios::engine::scene::SceneMemberVisibilityRegistry< TMemberHandle >::addCulledMember (ViewportHandle viewportHandle, TMemberHandle memberHandle)
inline

Adds a member to the culled list of a viewport.

Parameters
viewportHandle

Viewport receiving the culled member.

memberHandle

Scene member to register as culled.

Returns

true after the association was appended.

Definition at line 48 of file SceneMemberVisibilityRegistry.ixx.

48 [[nodiscard]] bool addCulledMember(ViewportHandle viewportHandle, TMemberHandle memberHandle) {
49 return culledMembers_.bind(viewportHandle, memberHandle);
50 }

Reference helios::engine::core::container::HandleManyToManyMap< TOneHandle, TManyHandle >::bind.

Referenced by helios::engine::scene::systems::SceneRenderSystem< TOwnerHandle, TMemberHandle, TCullingStrategy, TCommandBuffer >::update.

addVisibleMember()

template <typename TMemberHandle>
bool helios::engine::scene::SceneMemberVisibilityRegistry< TMemberHandle >::addVisibleMember (ViewportHandle viewportHandle, TMemberHandle memberHandle)
inline

Adds a member to the visible list of a viewport.

Parameters
viewportHandle

Viewport receiving the visible member.

memberHandle

Scene member to register as visible.

Returns

true after the association was appended.

Definition at line 58 of file SceneMemberVisibilityRegistry.ixx.

58 [[nodiscard]] bool addVisibleMember(ViewportHandle viewportHandle, TMemberHandle memberHandle) {
59 return visibleMembers_.bind(viewportHandle, memberHandle);
60 }

Reference helios::engine::core::container::HandleManyToManyMap< TOneHandle, TManyHandle >::bind.

Referenced by helios::engine::scene::systems::SceneRenderSystem< TOwnerHandle, TMemberHandle, TCullingStrategy, TCommandBuffer >::update.

clear()

template <typename TMemberHandle>
void helios::engine::scene::SceneMemberVisibilityRegistry< TMemberHandle >::clear ()
inline

Clears visible and culled members for all viewports.

Definition at line 84 of file SceneMemberVisibilityRegistry.ixx.

84 void clear () {
85 visibleMembers_.clear();
86 culledMembers_.clear();
87
88 }

Reference helios::engine::core::container::HandleManyToManyMap< TOneHandle, TManyHandle >::clear.

Referenced by helios::engine::scene::systems::SceneMemberVisibilityRegistryClearSystem< TMemberHandle >::update.

culledMembers()

template <typename TMemberHandle>
std::span< const TMemberHandle > helios::engine::scene::SceneMemberVisibilityRegistry< TMemberHandle >::culledMembers (ViewportHandle viewportHandle)
inline

Returns culled members for a viewport.

Parameters
viewportHandle

Viewport to query.

Returns

Read-only span of culled members, or an empty span.

Definition at line 67 of file SceneMemberVisibilityRegistry.ixx.

67 [[nodiscard]] std::span<const TMemberHandle> culledMembers(ViewportHandle viewportHandle) const {
68 return culledMembers_.values(viewportHandle);
69 }

Reference helios::engine::core::container::HandleManyToManyMap< TOneHandle, TManyHandle >::values.

visibleMembers()

template <typename TMemberHandle>
std::span< const TMemberHandle > helios::engine::scene::SceneMemberVisibilityRegistry< TMemberHandle >::visibleMembers (ViewportHandle viewportHandle)
inline

Returns visible members for a viewport.

Parameters
viewportHandle

Viewport to query.

Returns

Read-only span of visible members, or an empty span.

Definition at line 76 of file SceneMemberVisibilityRegistry.ixx.

76 [[nodiscard]] std::span<const TMemberHandle> visibleMembers(ViewportHandle viewportHandle) const {
77 return visibleMembers_.values(viewportHandle);
78 }

Reference helios::engine::core::container::HandleManyToManyMap< TOneHandle, TManyHandle >::values.

Private Member Attributes

culledMembers_

template <typename TMemberHandle>
HandleManyToManyMap<ViewportHandle, TMemberHandle> helios::engine::scene::SceneMemberVisibilityRegistry< TMemberHandle >::culledMembers_

visibleMembers_

template <typename TMemberHandle>
HandleManyToManyMap<ViewportHandle, TMemberHandle> helios::engine::scene::SceneMemberVisibilityRegistry< TMemberHandle >::visibleMembers_

The documentation for this class was generated from the following file:


Generated via doxygen2docusaurus 2.0.0 by Doxygen 1.9.8.