Click or drag to resize
DigitalRuneCompressedAabbTree Class
Represents a compressed and optimized bounding volume tree using axis-aligned bounding boxes (AABBs).
Inheritance Hierarchy
SystemObject
  DigitalRune.Geometry.PartitioningCompressedAabbTree

Namespace: DigitalRune.Geometry.Partitioning
Assembly: DigitalRune.Geometry (in DigitalRune.Geometry.dll) Version: 1.18.0.0 (1.18.2.14427)
Syntax
public sealed class CompressedAabbTree : ISpatialPartition<int>, 
	ICollection<int>, IEnumerable<int>, IEnumerable, ISupportClosestPointQueries<int>

The CompressedAabbTree type exposes the following members.

Constructors
  NameDescription
Public methodCompressedAabbTree
Initializes a new instance of the CompressedAabbTree class.
Top
Methods
  NameDescription
Public methodAdd
Adds an item to the CompressedAabbTree.
Public methodClear
Removes all items from the CompressedAabbTree.
Public methodClone
Creates a new CompressedAabbTree that is a clone (deep copy) of the current instance.
Public methodContains
Determines whether the CompressedAabbTree contains a specific item.
Public methodCopyTo
Copies the elements of the tree to an Array, starting at a particular Array index.
Public methodEquals
Determines whether the specified Object is equal to the current Object.
(Inherited from Object.)
Public methodGetClosestPointCandidates(Aabb, Single, FuncInt32, Single)
Gets all items that are candidates for the smallest closest-point distance to a given axis-aligned bounding box (AABB).
Public methodGetClosestPointCandidates(Vector3F, Pose, ISpatialPartitionInt32, Vector3F, Pose, FuncInt32, Int32, Single)
Gets all items that are candidates for the smallest closest-point distance to items in a given partition.
Public methodGetEnumerator
Returns an enumerator that iterates through the collection.
Public methodGetHashCode
Serves as a hash function for a particular type.
(Inherited from Object.)
Public methodGetOverlaps
Gets overlaps of all items contained in this spatial partition.
Public methodGetOverlaps(Int32)
Gets the items that touch the given item.
Public methodGetOverlaps(Aabb)
Gets the items that touch the given axis-aligned bounding box (AABB).
Public methodGetOverlaps(ISpatialPartitionInt32)
Gets overlaps between all items of this spatial partition and the items of another spatial partition.
Public methodGetOverlaps(Ray)
Gets the items that touch the given ray.
Public methodGetOverlaps(Vector3F, Pose, ISpatialPartitionInt32, Vector3F, Pose)
Gets overlaps between all items of this spatial partition and the items of another spatial partition.
Public methodGetType
Gets the Type of the current instance.
(Inherited from Object.)
Public methodInvalidate
Invalidates the cached spatial information of all items in the spatial partition.
Public methodInvalidate(Int32)
Invalidates the cached spatial information of the specified item.
Public methodRemove
Removes the first occurrence of a specific item from the CompressedAabbTree.
Public methodToString
Returns a string that represents the current object.
(Inherited from Object.)
Public methodUpdate
Top
Extension Methods
  NameDescription
Public Extension MethodAddRangeInt32 (Defined by CollectionHelper.)
Public Extension MethodDoInt32(ActionInt32)Overloaded.
Performs the given action on each element in a sequence when it is enumerated.
(Defined by LinqHelper.)
Public Extension MethodDoInt32(ActionInt32, Int32)Overloaded.
Performs the given action on each element (incorporating its index) in a sequence when it is enumerated.
(Defined by LinqHelper.)
Public Extension MethodForEachInt32(ActionInt32)Overloaded.
Immediately performs the given action on each element in a sequence.
(Defined by LinqHelper.)
Public Extension MethodForEachInt32(ActionInt32, Int32)Overloaded.
Immediately performs the given action on each element (incorporating its index) in a sequence.
(Defined by LinqHelper.)
Public Extension MethodIndexOfInt32
Returns the index of the first element in a sequence that satisfies the specified condition.
(Defined by LinqHelper.)
Top
Properties
  NameDescription
Public propertyAabb
Gets the axis-aligned bounding box (AABB) that contains all items.
Public propertyBottomUpBuildThreshold
Gets or sets the threshold that determines when a bottom-up tree build method is used.
Public propertyCount
Public propertyEnableSelfOverlaps
Gets or sets a value indicating whether self-overlaps are computed.
Public propertyFilter
Gets or sets the filter that is used to filter overlaps of two items.
Public propertyGetAabbForItem
Gets or sets the method that computes the Aabb of an item.
Top
Explicit Interface Implementations
Remarks

The CompressedAabbTree is a specialized version of an AabbTreeT for items of type Int32. It requires significantly less memory than an AabbTreeT, but building or updating ("refitting") a CompressedAabbTree is more expensive. It should be used for partitioning static CompositeShapes or TriangleMeshShapes that consist of many shapes or triangles.

The CompressedAabbTree can store up to 232-1 data values of type Int32 (range 0 - 2,147,483,647).

Limitations: Objects organized by the CompressedAabbTree need to have finite size. The CompressedAabbTree cannot be used for extremely large, or infinitely large objects. For example: A CompositeShape using a CompressedAabbTree must not contain an InfiniteShape, a LineShape, or a PlaneShape.

See Also