AabbTreeT Class |
Namespace: DigitalRune.Geometry.Partitioning
The AabbTreeT type exposes the following members.
Name | Description | |
---|---|---|
Add |
Adds an item to the BasePartitionT.
(Inherited from BasePartitionT.) | |
Clear |
Removes all items from the BasePartitionT.
(Inherited from BasePartitionT.) | |
Clone |
Creates a new BasePartitionT that is a clone (deep copy) of the current
instance.
(Inherited from BasePartitionT.) | |
CloneCore |
Makes the instance a clone (deep copy) of the specified BasePartitionT.
(Overrides BasePartitionTCloneCore(BasePartitionT).) | |
Contains |
Determines whether the BasePartitionT contains a specific value.
(Inherited from BasePartitionT.) | |
CopyTo | (Inherited from BasePartitionT.) | |
CreateInstanceCore |
When implemented in a derived class, creates a new instance of the
BasePartitionT derived class.
(Overrides BasePartitionTCreateInstanceCore.) | |
Equals | (Inherited from Object.) | |
Finalize | Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection. (Inherited from Object.) | |
GetClosestPointCandidates(Aabb, Single, FuncT, Single) |
Gets all items that are candidates for the smallest closest-point distance to a given
axis-aligned bounding box (AABB).
| |
GetClosestPointCandidates(Vector3F, Pose, ISpatialPartitionT, Vector3F, Pose, FuncT, T, Single) |
Gets all items that are candidates for the smallest closest-point distance to items in a
given partition.
| |
GetEnumerator |
Returns an enumerator that iterates through the collection.
(Inherited from BasePartitionT.) | |
GetHashCode | Serves as a hash function for a particular type. (Inherited from Object.) | |
GetOverlaps |
Gets overlaps of all items contained in this spatial partition.
(Inherited from BasePartitionT.) | |
GetOverlaps(Aabb) |
Gets the items that touch the given axis-aligned bounding box (AABB).
(Overrides BasePartitionTGetOverlaps(Aabb).) | |
GetOverlaps(Aabb) |
Gets the items that touch the given axis-aligned bounding box (AABB).
(Inherited from BasePartitionT.) | |
GetOverlaps(ISpatialPartitionT) |
Gets overlaps between all items of this spatial partition and the items of another spatial
partition.
(Overrides BasePartitionTGetOverlaps(ISpatialPartitionT).) | |
GetOverlaps(Ray) |
Gets the items that touch the given ray.
(Overrides BasePartitionTGetOverlaps(Ray).) | |
GetOverlaps(Vector3F, Pose, ISpatialPartitionT, Vector3F, Pose) |
Gets overlaps between all items of this spatial partition and the items of another spatial
partition.
(Overrides BasePartitionTGetOverlaps(Vector3F, Pose, ISpatialPartitionT, Vector3F, Pose).) | |
GetOverlaps(Vector3F, Pose, AabbTreeT, Vector3F, Pose, ListPairT) |
Gets overlaps between all items of this spatial partition and the items of another spatial
partition.
| |
GetType | Gets the Type of the current instance. (Inherited from Object.) | |
Invalidate |
Invalidates the cached spatial information of all items in the spatial partition.
(Inherited from BasePartitionT.) | |
Invalidate(T) |
Invalidates the cached spatial information of the specified item.
(Inherited from BasePartitionT.) | |
MemberwiseClone | Creates a shallow copy of the current Object. (Inherited from Object.) | |
Remove |
Removes the first occurrence of a specific object from the BasePartitionT.
(Inherited from BasePartitionT.) | |
ToString | Returns a string that represents the current object. (Inherited from Object.) | |
Update |
Updates the internal structure of this ISpatialPartitionT.
(Inherited from BasePartitionT.) |
Name | Description | |
---|---|---|
Aabb |
Gets the axis-aligned bounding box (AABB) that contains all items.
(Inherited from BasePartitionT.) | |
BottomUpBuildThreshold |
Gets or sets the threshold that determines when a bottom-up tree build method is used.
| |
Count |
Gets the number of items contained in the ICollectionT.
(Inherited from BasePartitionT.) | |
EnableSelfOverlaps |
Gets or sets a value indicating whether self-overlaps are computed.
(Inherited from BasePartitionT.) | |
Filter |
Gets or sets the filter that is used to filter overlaps of two items.
(Inherited from BasePartitionT.) | |
GetAabbForItem |
Gets or sets the method that computes the Aabb of an item.
(Inherited from BasePartitionT.) |
Name | Description | |
---|---|---|
IEnumerableTGetEnumerator |
Returns an enumerator that iterates through the collection.
(Inherited from BasePartitionT.) | |
IEnumerableGetEnumerator |
Returns an enumerator that iterates through a collection.
(Inherited from BasePartitionT.) | |
ICollectionTIsReadOnly |
Gets a value indicating whether the ICollectionT is read-only.
(Inherited from BasePartitionT.) | |
ISpatialPartitionTClone |
Creates a new spatial partition that is a clone (deep copy) of the current instance.
(Inherited from BasePartitionT.) |
AabbTreeT partitions are good for partitioning static models or spaces where items are not changed at runtime or when the changes are small or local. For example, an AabbTreeT is appropriate for managing large static triangle meshes efficiently. But they are not suitable for dynamic models or spaces where items are added/removed at runtime or when the large changes are applied to items.
Consider using the CompressedAabbTree instead of the AabbTreeT if items of type Int32 need to be stored. The CompressedAabbTree reduced the memory requirements considerably.
Special handling of self-overlaps in GetOverlaps(ISpatialPartitionT): If GetOverlaps(ISpatialPartitionT) is used to test an AABB tree against itself then overlaps of an item with itself are not returned; that means, each item A overlaps with itself but (A, A) is not returned. And if two different items overlap, only one overlap is returned, for example: If item A and item B overlap (A, B) or (B, A) is returned but not both.