AdaptiveAabbTreeT Class |
Namespace: DigitalRune.Geometry.Partitioning
The AdaptiveAabbTreeT type exposes the following members.
Name | Description | |
---|---|---|
AdaptiveAabbTreeT | Initializes a new instance of the AdaptiveAabbTreeT class |
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).) | |
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.) |
The AdaptiveAabbTreeT is based on
The AdaptiveAabbTreeT was designed to manage deformable objects efficiently. It should be used for CompositeShapes or TriangleMeshShapes when the contained shapes or triangles are updated at runtime.
AdaptiveAabbTreeT vs. DynamicAabbTreeT: The AdaptiveAabbTreeT and the DynamicAabbTreeT are similar data structures. As a general rule, the AdaptiveAabbTreeT should be used if
The AdaptiveAabbTreeT should not be used as the collision detection broad-phase (see BroadPhase). Whereas, a DynamicAabbTreeT can be used as the collision detection broad-phase.
However, please note these are just general guidelines. You should always try different ISpatialPartitionT types and measure which one yields the best performance in your application.
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.