Open 3D Engine AzFramework API Reference 23.10.0
O3DE is an open-source, fully-featured, high-fidelity, modular 3D engine for building games and simulations, available to every industry.
AzFramework::IVisibilityScene Class Referenceabstract

This is the interface for managing objects and visibility queries for a given scene. More...

#include <IVisibilitySystem.h>

Inherited by AzFramework::OctreeScene.

Classes

struct  NodeData
 

Public Types

using EnumerateCallback = AZStd::function< void(const NodeData &)>
 

Public Member Functions

 AZ_RTTI (IVisibilityScene, "{822BC414-3CE3-40B4-A9A2-A42EA5B9499F}")
 
virtual const AZ::Name & GetName () const =0
 Get the unique scene name, used to look up the scene in the IVisibilitySystem. Duplicate names will assert on creation.
 
virtual void InsertOrUpdateEntry (VisibilityEntry &visibilityEntry)=0
 
virtual void RemoveEntry (VisibilityEntry &visibilityEntry)=0
 
virtual void Enumerate (const AZ::Aabb &aabb, const EnumerateCallback &callback) const =0
 
virtual void Enumerate (const AZ::Sphere &sphere, const EnumerateCallback &callback) const =0
 
virtual void Enumerate (const AZ::Hemisphere &hemisphere, const EnumerateCallback &callback) const =0
 
virtual void Enumerate (const AZ::Capsule &capsule, const EnumerateCallback &callback) const =0
 
virtual void Enumerate (const AZ::Frustum &frustum, const EnumerateCallback &callback) const =0
 
virtual void Enumerate (const AZ::Frustum &includeFrustum, const AZ::Frustum &excludeFrustum, const EnumerateCallback &callback) const =0
 
virtual void EnumerateNoCull (const EnumerateCallback &callback) const =0
 
virtual uint32_t GetEntryCount () const =0
 Return the number of VisibilityEntries that have been added to the system.
 

Detailed Description

This is the interface for managing objects and visibility queries for a given scene.

Member Function Documentation

◆ Enumerate() [1/6]

virtual void AzFramework::IVisibilityScene::Enumerate ( const AZ::Aabb &  aabb,
const EnumerateCallback &  callback 
) const
pure virtual

Intersects an axis aligned bounding box against the visibility system.

Parameters
aabbthe axis aligned bounding box to test against
callbackthe callback to invoke when a node is visible

Implemented in AzFramework::OctreeScene.

◆ Enumerate() [2/6]

virtual void AzFramework::IVisibilityScene::Enumerate ( const AZ::Capsule &  capsule,
const EnumerateCallback &  callback 
) const
pure virtual

Intersects a capsule against the visibility system.

Parameters
capsulethe capsule to test against
callbackthe callback to invoke when a node is visible

Implemented in AzFramework::OctreeScene.

◆ Enumerate() [3/6]

virtual void AzFramework::IVisibilityScene::Enumerate ( const AZ::Frustum &  frustum,
const EnumerateCallback &  callback 
) const
pure virtual

Intersects a frustum against the visibility system.

Parameters
frustumthe frustum to test against
callbackthe callback to invoke when a node is visible

Implemented in AzFramework::OctreeScene.

◆ Enumerate() [4/6]

virtual void AzFramework::IVisibilityScene::Enumerate ( const AZ::Frustum &  includeFrustum,
const AZ::Frustum &  excludeFrustum,
const EnumerateCallback &  callback 
) const
pure virtual

Intersects a frustum against the visibility system, but rejects everything entirely contained inside the excludeFrustum. This is useful for cascade shadows where a larger cascade need not render things completely covered by a smaller cascade.

Parameters
includeFrustumthe frustum to test against for inclusion
excludeFrustumthe frustum to test against for exclusion
callbackthe callback to invoke when a node is visible

Implemented in AzFramework::OctreeScene.

◆ Enumerate() [5/6]

virtual void AzFramework::IVisibilityScene::Enumerate ( const AZ::Hemisphere &  hemisphere,
const EnumerateCallback &  callback 
) const
pure virtual

Intersects a hemisphere against the visibility system.

Parameters
hemispherethe hemisphere to test against
callbackthe callback to invoke when a node is visible

Implemented in AzFramework::OctreeScene.

◆ Enumerate() [6/6]

virtual void AzFramework::IVisibilityScene::Enumerate ( const AZ::Sphere &  sphere,
const EnumerateCallback &  callback 
) const
pure virtual

Intersects a sphere against the visibility system.

Parameters
spherethe sphere to test against
callbackthe callback to invoke when a node is visible

Implemented in AzFramework::OctreeScene.

◆ EnumerateNoCull()

virtual void AzFramework::IVisibilityScene::EnumerateNoCull ( const EnumerateCallback &  callback) const
pure virtual

Enumerate all OctreeNodes that have any entries in them (without any culling).

Parameters
callbackthe callback to invoke when a node is visible

Implemented in AzFramework::OctreeScene.

◆ GetEntryCount()

virtual uint32_t AzFramework::IVisibilityScene::GetEntryCount ( ) const
pure virtual

Return the number of VisibilityEntries that have been added to the system.

Implemented in AzFramework::OctreeScene.

◆ GetName()

virtual const AZ::Name & AzFramework::IVisibilityScene::GetName ( ) const
pure virtual

Get the unique scene name, used to look up the scene in the IVisibilitySystem. Duplicate names will assert on creation.

Implemented in AzFramework::OctreeScene.

◆ InsertOrUpdateEntry()

virtual void AzFramework::IVisibilityScene::InsertOrUpdateEntry ( VisibilityEntry visibilityEntry)
pure virtual

Insert or update an entry within the visibility system. This encompasses the following three scenarios:

Parameters
visibilityEntrydata for the object being added/updated

Implemented in AzFramework::OctreeScene.

◆ RemoveEntry()

virtual void AzFramework::IVisibilityScene::RemoveEntry ( VisibilityEntry visibilityEntry)
pure virtual

Removes an entry from the visibility system.

Parameters
visibilityEntrydata for the object being removed

Implemented in AzFramework::OctreeScene.


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