#include <OctreeSystemComponent.h>
Inherits AzFramework::IVisibilityScene.
Public Member Functions | |
AZ_RTTI (OctreeScene, "{A88E4D86-11F1-4E3F-A91A-66DE99502B93}") | |
AZ_CLASS_ALLOCATOR (OctreeScene, AZ::SystemAllocator) | |
AZ_DISABLE_COPY_MOVE (OctreeScene) | |
OctreeScene (const AZ::Name &sceneName) | |
const AZ::Name & | GetName () const override |
void | InsertOrUpdateEntry (VisibilityEntry &entry) override |
void | RemoveEntry (VisibilityEntry &entry) override |
void | Enumerate (const AZ::Aabb &aabb, const IVisibilityScene::EnumerateCallback &callback) const override |
void | Enumerate (const AZ::Sphere &sphere, const IVisibilityScene::EnumerateCallback &callback) const override |
void | Enumerate (const AZ::Hemisphere &hemisphere, const IVisibilityScene::EnumerateCallback &callback) const override |
void | Enumerate (const AZ::Capsule &capsule, const IVisibilityScene::EnumerateCallback &callback) const override |
void | Enumerate (const AZ::Frustum &frustum, const IVisibilityScene::EnumerateCallback &callback) const override |
void | Enumerate (const AZ::Frustum &includeFrustum, const AZ::Frustum &excludeFrustum, const EnumerateCallback &callback) const override |
void | EnumerateNoCull (const IVisibilityScene::EnumerateCallback &callback) const override |
uint32_t | GetEntryCount () const override |
Return the number of VisibilityEntries that have been added to the system. | |
uint32_t | GetNodeCount () const |
uint32_t | GetFreeNodeCount () const |
uint32_t | GetPageCount () const |
uint32_t | GetChildNodeCount () const |
void | DumpStats () |
Public Member Functions inherited from AzFramework::IVisibilityScene | |
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. | |
Friends | |
class | OctreeNode |
Additional Inherited Members | |
Public Types inherited from AzFramework::IVisibilityScene | |
using | EnumerateCallback = AZStd::function< void(const NodeData &)> |
Implementation of the visibility system interface. This uses a simple adaptive octree to support partitioning an object set for a specific scene and efficiently running gathers and visibility queries.
|
overridevirtual |
Intersects an axis aligned bounding box against the visibility system.
aabb | the axis aligned bounding box to test against |
callback | the callback to invoke when a node is visible |
Implements AzFramework::IVisibilityScene.
|
overridevirtual |
Intersects a capsule against the visibility system.
capsule | the capsule to test against |
callback | the callback to invoke when a node is visible |
Implements AzFramework::IVisibilityScene.
|
overridevirtual |
Intersects a frustum against the visibility system.
frustum | the frustum to test against |
callback | the callback to invoke when a node is visible |
Implements AzFramework::IVisibilityScene.
|
overridevirtual |
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.
includeFrustum | the frustum to test against for inclusion |
excludeFrustum | the frustum to test against for exclusion |
callback | the callback to invoke when a node is visible |
Implements AzFramework::IVisibilityScene.
|
overridevirtual |
Intersects a hemisphere against the visibility system.
hemisphere | the hemisphere to test against |
callback | the callback to invoke when a node is visible |
Implements AzFramework::IVisibilityScene.
|
overridevirtual |
Intersects a sphere against the visibility system.
sphere | the sphere to test against |
callback | the callback to invoke when a node is visible |
Implements AzFramework::IVisibilityScene.
|
overridevirtual |
Enumerate all OctreeNodes that have any entries in them (without any culling).
callback | the callback to invoke when a node is visible |
Implements AzFramework::IVisibilityScene.
|
overridevirtual |
Return the number of VisibilityEntries that have been added to the system.
Implements AzFramework::IVisibilityScene.
|
overridevirtual |
IVisibilityScene overrides.
Implements AzFramework::IVisibilityScene.
uint32_t AzFramework::OctreeScene::GetNodeCount | ( | ) | const |
Stats
|
overridevirtual |
Insert or update an entry within the visibility system. This encompasses the following three scenarios:
visibilityEntry | data for the object being added/updated |
Implements AzFramework::IVisibilityScene.
|
overridevirtual |
Removes an entry from the visibility system.
visibilityEntry | data for the object being removed |
Implements AzFramework::IVisibilityScene.