#include <OctreeSystemComponent.h>
Inherits AzFramework::VisibilityNode.
Public Member Functions | |
OctreeNode (const AZ::Aabb &bounds) | |
OctreeNode (OctreeNode &&rhs) | |
OctreeNode & | operator= (OctreeNode &&rhs) |
void | Insert (OctreeScene &octreeScene, VisibilityEntry *entry) |
Inserts a VisibilityEntry into this OctreeNode, potentially triggering a split. | |
void | Update (OctreeScene &octreeScene, VisibilityEntry *entry) |
void | Remove (OctreeScene &octreeScene, VisibilityEntry *entry) |
void | EnumerateNoCull (const IVisibilityScene::EnumerateCallback &callback) const |
Recursively enumerate all OctreeNodes that have any entries in them (without any culling). | |
const AZStd::vector< VisibilityEntry * > & | GetEntries () const |
Returns the set of entries bound to this node. | |
OctreeNode * | GetChildren () const |
Returns the array of child nodes for this OctreeNode, may be nullptr if this OctreeNode is a leaf node. | |
bool | IsLeaf () const |
Returns true if this is a leaf node. | |
void | Enumerate (const AZ::Aabb &aabb, const IVisibilityScene::EnumerateCallback &callback) const |
void | Enumerate (const AZ::Sphere &sphere, const IVisibilityScene::EnumerateCallback &callback) const |
void | Enumerate (const AZ::Hemisphere &hemisphere, const IVisibilityScene::EnumerateCallback &callback) const |
void | Enumerate (const AZ::Capsule &capsule, const IVisibilityScene::EnumerateCallback &callback) const |
void | Enumerate (const AZ::Frustum &frustum, const IVisibilityScene::EnumerateCallback &callback) const |
void | Enumerate (const AZ::Frustum &includeFrustum, const AZ::Frustum &excludeFrustum, const IVisibilityScene::EnumerateCallback &callback) const |
An internal node within the tree. It contains all objects that are fully contained by the node, if an object spans multiple child nodes that object will be stored in the parent.
void AzFramework::OctreeNode::Enumerate | ( | const AZ::Aabb & | aabb, |
const IVisibilityScene::EnumerateCallback & | callback | ||
) | const |
Recursively enumerates any OctreeNodes and their children that intersect the provided bounding volume.
void AzFramework::OctreeNode::Remove | ( | OctreeScene & | octreeScene, |
VisibilityEntry * | entry | ||
) |
Removes a VisibilityEntry from this OctreeNode. The provided entry must be bound to this node.
void AzFramework::OctreeNode::Update | ( | OctreeScene & | octreeScene, |
VisibilityEntry * | entry | ||
) |
Updates a VisibilityEntry that is currently bound to this OctreeNode. The provided entry must be bound to this node, but may no longer be bound to this node upon function exit.