![]() | AabbTree<T> Class |
Namespace: DigitalRune.Geometry.Partitioning
The AabbTree< T> type exposes the following members.
Name | Description | |
---|---|---|
![]() | AabbTree<T> | Initializes a new instance of the AabbTree< T> class |
Name | Description | |
---|---|---|
![]() | Add |
Adds an item to the BasePartition<T>.
(Inherited from BasePartition<T>.) |
![]() | Clear |
Removes all items from the BasePartition<T>.
(Inherited from BasePartition<T>.) |
![]() | Clone |
Creates a new BasePartition< T> that is a clone (deep copy) of the current
instance.
(Inherited from BasePartition<T>.) |
![]() | CloneCore |
Makes the instance a clone (deep copy) of the specified BasePartition<T>.
(Overrides BasePartition<T>.CloneCore(BasePartition<T>).) |
![]() | Contains |
Determines whether the BasePartition< T> contains a specific value.
(Inherited from BasePartition<T>.) |
![]() | CopyTo | (Inherited from BasePartition<T>.) |
![]() | CreateInstanceCore |
When implemented in a derived class, creates a new instance of the
BasePartition< T> derived class.
(Overrides BasePartition<T>.CreateInstanceCore().) |
![]() | 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, Func<T, Single>) |
Gets all items that are candidates for the smallest closest-point distance to a given
axis-aligned bounding box (AABB).
|
![]() | GetClosestPointCandidates(Vector3F, Pose, ISpatialPartition<T>, Vector3F, Pose, Func<T, 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 BasePartition<T>.) |
![]() | 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 BasePartition<T>.) |
![]() | GetOverlaps(Aabb) |
Gets the items that touch the given axis-aligned bounding box (AABB).
(Overrides BasePartition<T>.GetOverlaps(Aabb).) |
![]() | GetOverlaps(Aabb) |
Gets the items that touch the given axis-aligned bounding box (AABB).
(Inherited from BasePartition<T>.) |
![]() | GetOverlaps(ISpatialPartition<T>) |
Gets overlaps between all items of this spatial partition and the items of another spatial
partition.
(Overrides BasePartition<T>.GetOverlaps(ISpatialPartition<T>).) |
![]() | GetOverlaps(Ray) |
Gets the items that touch the given ray.
(Overrides BasePartition<T>.GetOverlaps(Ray).) |
![]() | GetOverlaps(Vector3F, Pose, ISpatialPartition<T>, Vector3F, Pose) |
Gets overlaps between all items of this spatial partition and the items of another spatial
partition.
(Overrides BasePartition<T>.GetOverlaps(Vector3F, Pose, ISpatialPartition<T>, Vector3F, Pose).) |
![]() | GetOverlaps(Vector3F, Pose, AabbTree<T>, Vector3F, Pose, List<Pair<T>>) |
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 BasePartition<T>.) |
![]() | Invalidate(T) |
Invalidates the cached spatial information of the specified item.
(Inherited from BasePartition<T>.) |
![]() | MemberwiseClone | Creates a shallow copy of the current Object. (Inherited from Object.) |
![]() | Remove |
Removes the first occurrence of a specific object from the BasePartition<T>.
(Inherited from BasePartition<T>.) |
![]() | ToString | Returns a string that represents the current object. (Inherited from Object.) |
![]() | Update |
Updates the internal structure of this ISpatialPartition<T>.
(Inherited from BasePartition<T>.) |
Name | Description | |
---|---|---|
![]() | Aabb |
Gets the axis-aligned bounding box (AABB) that contains all items.
(Inherited from BasePartition<T>.) |
![]() | 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 ICollection<T>.
(Inherited from BasePartition<T>.) |
![]() | EnableSelfOverlaps |
Gets or sets a value indicating whether self-overlaps are computed.
(Inherited from BasePartition<T>.) |
![]() | Filter |
Gets or sets the filter that is used to filter overlaps of two items.
(Inherited from BasePartition<T>.) |
![]() | GetAabbForItem |
Gets or sets the method that computes the Aabb of an item.
(Inherited from BasePartition<T>.) |
Name | Description | |
---|---|---|
![]() ![]() | IEnumerable<T>.GetEnumerator |
Returns an enumerator that iterates through the collection.
(Inherited from BasePartition<T>.) |
![]() ![]() | IEnumerable.GetEnumerator |
Returns an enumerator that iterates through a collection.
(Inherited from BasePartition<T>.) |
![]() ![]() | ICollection<T>.IsReadOnly |
Gets a value indicating whether the ICollection< T> is read-only.
(Inherited from BasePartition<T>.) |
![]() ![]() | ISpatialPartition<T>.Clone |
Creates a new spatial partition that is a clone (deep copy) of the current instance.
(Inherited from BasePartition<T>.) |
AabbTree< T> 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 AabbTree< T> 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 AabbTree< T> if items of type Int32 need to be stored. The CompressedAabbTree reduced the memory requirements considerably.
Special handling of self-overlaps in GetOverlaps(ISpatialPartition<T>): If GetOverlaps(ISpatialPartition< T> ) 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.