Visual3D Game EngineAPI Documentation for XNA, C#, VB, and .NET
Types
| All Types | Classes | Structures | Interfaces | Enumerations | Delegates |
| Name | Description | |
|---|---|---|
| PhysicsMaterial..::..<pad>e__FixedBuffer6 | ||
| OptimizedBvhNode..::..<Padding>e__FixedBuffer2 | ||
| BvhSubtreeInfo..::..<Padding>e__FixedBuffer5 | ||
| QuantizedBvhNode..::..<QuantizedAabbMax>e__FixedBuffer1 | ||
| BvhSubtreeInfo..::..<QuantizedAabbMax>e__FixedBuffer4 | ||
| QuantizedBvhNode..::..<QuantizedAabbMin>e__FixedBuffer0 | ||
| BvhSubtreeInfo..::..<QuantizedAabbMin>e__FixedBuffer3 | ||
| AabbCalculationCallback | ||
| ActivatingCollisionAlgorithm |
This class is not enabled yet (work-in-progress) to more aggressively activate objects.
| |
| ActivationState | ||
| AxisSweep3 |
The class implements the sweep and prune broadphase.
It uses quantized integers to represent the begin and end points for each of the 3 axis.
Dont use this class directly, use btAxisSweep3 or bt32BitAxisSweep3 instead.
The AxisSweep3 is an efficient implementation of the 3d axis sweep and prune broadphase.
It uses arrays rather then lists for storage of the 3 axis.
Also it operates using 16 bit integer coordinates instead of floats.
For large worlds and many objects, use 32BitAxisSweep3 or DbvtBroadphase instead.
32BitAxisSweep3 has higher precision and allows more then 16384 objects at the cost of more memory and bit of performance.
| |
| AxisSweep3_32Bit |
The class implements the sweep and prune broadphase.
It uses quantized integers to represent the begin and end points for each of the 3 axis.
Dont use this class directly, use btAxisSweep3 or bt32BitAxisSweep3 instead.
The AxisSweep3 is an efficient implementation of the 3d axis sweep and prune broadphase.
It uses arrays rather then lists for storage of the 3 axis.
Also it operates using 16 bit integer coordinates instead of floats.
For large worlds and many objects, use AxisSweep3_32Bit or DbvtBroadphase instead.
AxisSweep3_32Bit has higher precision and allows more then 16384 objects at the cost of more memory and bit of performance.
| |
| BoxBoxCollisionAlgorithm |
Box-Box collision detection.
| |
| BoxBoxDetector |
BoxBoxDetector wraps the ODE box-box collision detector
re-distributed under the Zlib license with permission from Russell L. Smith
ODE box-box collision detection is adapted to work with Bullet
| |
| BoxShape |
The BoxShape is a box primitive around the origin, its sides axis aligned with length specified by half extents,
in local shape coordinates. When used as part of a CollisionObject or RigidBody it will be an oriented box in world space.
| |
| BroadphaseNativeTypes |
Dispatcher uses these types.
IMPORTANT NOTE: The types are ordered polyhedral, implicit convex and concave to facilitate type checking.
CUSTOM_POLYHEDRAL_SHAPE_TYPE,CUSTOM_CONVEX_SHAPE_TYPE and CUSTOM_CONCAVE_SHAPE_TYPE can be used to extend Bullet without modifying source code
| |
| BroadphasePair |
The BroadphasePair class contains a pair of aabb-overlapping objects.
A Dispatcher can search a CollisionAlgorithm that performs exact/narrowphase collision detection on the actual collision shapes.
| |
| BroadphaseProxy |
The BroadphaseProxy is the main class that can be used with the Bullet broadphases.
It stores collision shape type information, collision filter information and a client object,
typically a CollisionObject or RigidBody.
| |
| BroadphaseRayCallback | ||
| btDbvtBroadphase..::..BroadphaseRayTester | ||
| btDbvt |
The btDbvt class implements a fast dynamic bounding volume tree based on axis aligned bounding boxes (aabb tree).
This btDbvt is used for soft body collision detection and for the DbvtBroadphase. It has a fast insert, remove and update of nodes.
Unlike the QuantizedBvh, nodes can be dynamically moved around, which allows for change in topology of the underlying data structure.
| |
| btDbvtAabbMm | ||
| btDbvtBroadphase |
The btDbvtBroadphase implements a broadphase using two dynamic AABB bounding volume hierarchies/trees (see btDbvt).
One tree is used for static/non-moving objects, and another tree is used for dynamic objects. Objects can move from one tree to the other.
This is a very fast broadphase, especially for very dynamic worlds where many objects are moving.
Its insert/add and remove of objects is generally faster than the sweep and prune broadphases AxisSweep3 and BigAxisSweep3.
| |
| btDbvtNode | ||
| btDbvtNodeEnumerator | ||
| btDbvtProxy | ||
| btDbvtTreeCollider | ||
| BulletException | ||
| BUSimplex1to4 |
The BUSimplex1to4 implements tetrahedron, triangle, line, vertex collision shapes. In most cases it is better to use ConvexHullShape instead.
| |
| BvhSubtreeInfo |
BvhSubtreeInfo provides info to gather a subtree of limited size.
| |
| BvhTriangleMeshShape |
The BvhTriangleMeshShape is a static-triangle mesh shape with several optimizations, such as bounding volume hierarchy and cache friendly traversal for PlayStation 3 Cell SPU.
It is recommended to enable UseQuantizedAabbCompression for better memory usage.
It takes a triangle mesh as input, for example a TriangleMesh or TriangleIndexVertexArray.
The BvhTriangleMeshShape class allows for triangle mesh deformations by a refit or PartialRefit method.
Instead of building the bounding volume hierarchy acceleration structure,
it is also possible to serialize (save) and deserialize (load) the structure from disk.
See Demos\ConcaveDemo\ConcavePhysicsDemo.cpp for an example.
| |
| CapsuleShape |
The CapsuleShape represents a capsule around the Y axis, there is also the CapsuleShapeX aligned around the X axis and CapsuleShapeZ around the Z axis.
The total height is height+2*radius, so the height is just the height between the center of each 'sphere' of the capsule caps.
The CapsuleShape is a convex hull of two spheres.
The MultiSphereShape is a more general collision shape that takes the convex hull of multiple sphere, so it can also represent a capsule when just using two spheres.
| |
| CapsuleShapeX |
CapsuleShapeX represents a capsule around the X axis
the total height is height+2*radius,
so the height is just the height between the center of each 'sphere' of the capsule caps.
| |
| CapsuleShapeZ |
CapsuleShapeZ represents a capsule around the Z axis
the total height is height+2*radius,
so the height is just the height between the center of each 'sphere' of the capsule caps.
| |
| CastResult |
CastResult stores the closest result
alternatively, add a callback method to decide about closest/all results
| |
| CenterCallback | ||
| OverlappingPairCache..::..CleanPairCallback | ||
| CollisionWorld..::..ClosestConvexResultCallback | ||
| DiscreteCollisionDetectorInterface..::..ClosestPointInput | ||
| CollisionWorld..::..ClosestRayResultCallback | ||
| CollisionAlgorithm |
CollisionAlgorithm is an collision interface that is compatible with the Broadphase and Dispatcher.
It is persistent over frames.
| |
| CollisionAlgorithmConstructionInfo | ||
| CollisionAlgorithmCreateFunc |
Used by the CollisionDispatcher to register and create instances for CollisionAlgorithm.
| |
| CollisionDispatcher |
CollisionDispatcher supports algorithms that handle ConvexConvex and ConvexConcave collision pairs.
Time of Impact, Closest Points and Penetration Depth.
| |
| BroadphaseProxy..::..CollisionFilterGroups |
Optional filtering to cull potential collisions.
| |
| CollisionObject |
CollisionObject can be used to manage collision detection objects.
CollisionObject maintains all information that is needed for a collision detection: Shape, Transform and AABB proxy.
They can be added to the CollisionWorld.
| |
| CollisionObject..::..CollisionObjectTypes | ||
| CollisionObject..::..CollisionOptions | ||
| CollisionPairCallback |
Interface for iterating all overlapping collision pairs, no matter how those pairs are stored (array, set, map etc)
this is useful for the collision dispatcher.
| |
| CollisionShape |
The CollisionShape class provides an interface for collision shapes that can be shared among CollisionObjects.
| |
| CollisionWorld |
CollisionWorld is interface and container for the collision detection.
| |
| CompoundCollisionAlgorithm |
CompoundCollisionAlgorithm supports collision between CompoundCollisionShapes and other collision shapes.
Place holder, not fully implemented yet.
| |
| CompoundShape |
The CompoundShape allows to store multiple other CollisionShapes
This allows for moving concave collision objects. This is more general then the static concave BvhTriangleMeshShape.
It has an (optional) dynamic aabb tree to accelerate early rejection tests.
@todo: This aabb tree can also be use to speed up ray tests on CompoundShape, see http://code.google.com/p/bullet/issues/detail?id=25
Currently, removal of child shapes is only supported when disabling the aabb tree (pass 'false' in the constructor of CompoundShape)
| |
| CompoundShapeChild | ||
| ConcaveShape |
The ConcaveShape class provides an interface for non-moving (static) concave shapes.
It has been implemented by the StaticPlaneShape, BvhTriangleMeshShape and HeightfieldTerrainShape.
| |
| ConeShape |
The ConeShape implements a cone shape primitive, centered around the origin and aligned with the Y axis.
The ConeShapeX is aligned around the X axis and ConeShapeZ around the Z axis.
| |
| ConeShapeX |
ConeShape implements a Cone shape, around the X axis
| |
| ConeShapeZ |
ConeShape implements a Cone shape, around the Z axis
| |
| btDbvtBroadphase..::..Config | ||
| ContactAddedCallback | ||
| ContactDestroyedCallback | ||
| ContactProcessedCallback | ||
| ContinuousConvexCollision |
ContinuousConvexCollision implements angular and linear time of impact for convex objects.
Based on Brian Mirtich's Conservative Advancement idea (PhD thesis).
Algorithm operates in worldspace, in order to keep inbetween motion globally consistent.
It uses GJK at the moment. Future improvement would use minkowski sum / supporting vertex, merging innerloops
| |
| ConvexConcaveCollisionAlgorithm | ||
| ConvexConvexAlgorithm | ||
| ConvexHullShape |
The ConvexHullShape implements an implicit convex hull of an array of vertices.
Bullet provides a general and fast collision detector for convex shapes based on GJK and EPA using LocalGetSupportingVertex.
| |
| ConvexInternalAabbCachingShape |
ConvexInternalAabbCachingShape adds local aabb caching for convex shapes, to avoid expensive bounding box calculations.
| |
| ConvexInternalShape |
The ConvexInternalShape is an internal base class, shared by most convex shape implementations.
| |
| ConvexPlaneCollisionAlgorithm |
SphereBoxCollisionAlgorithm provides sphere-box collision detection.
Other features are frame-coherency (persistent data) and collision response.
| |
| CollisionWorld..::..ConvexResultCallback |
RayResultCallback is used to report new raycast results.
| |
| ConvexShape |
The ConvexShape is an abstract shape interface, implemented by all convex shapes such as BoxShape, ConvexHullShape etc.
It describes general convex shapes using the LocalGetSupportingVertex interface,
used by collision detectors such as GjkPairDetector.
| |
| ConvexTriangleCallback |
For each triangle in the concave mesh that overlaps with the AABB of a convex (_convexProxy), processTriangle is called.
| |
| ConvexTriangleMeshShape |
The ConvexTriangleMeshShape is a convex hull of a triangle mesh, but the performance is not as good as ConvexHullShape.
A small benefit of this class is that it uses the StridingMeshInterface,
so you can avoid the duplication of the triangle mesh data.
Nevertheless, most users should use the much better performing ConvexHullShape instead.
| |
| CompoundCollisionAlgorithm..::..CreateFunc | ||
| BoxBoxCollisionAlgorithm..::..CreateFunc | ||
| EmptyAlgorithm..::..CreateFunc | ||
| SphereTriangleCollisionAlgorithm..::..CreateFunc | ||
| ConvexConvexAlgorithm..::..CreateFunc | ||
| ConvexConcaveCollisionAlgorithm..::..CreateFunc | ||
| ConvexPlaneCollisionAlgorithm..::..CreateFunc | ||
| SphereSphereCollisionAlgorithm..::..CreateFunc | ||
| SphereBoxCollisionAlgorithm..::..CreateFunc | ||
| CylinderShape |
The CylinderShape class implements a cylinder shape primitive, centered around the origin.
Its central axis aligned with the Y axis.
CylinderShapeX is aligned with the X axis and CylinderShapeZ around the Z axis.
| |
| CylinderShapeX | ||
| CylinderShapeZ | ||
| DebugDraw |
The DebugDraw class allows hooking up a debug renderer to visually debug simulations.
Typical use case: create a debug drawer object, and assign it to a CollisionWorld or DynamicsWorld using set_DebugDrawer and call DebugDrawWorld.
A class that inherited from the DebugDraw has to implement the drawLine method at a minimum.
| |
| DebugDrawModes | ||
| DefaultCollisionConfiguration |
CollisionConfiguration allows to configure Bullet collision detection
todo: describe the meaning
| |
| DiscreteCollisionDetectorInterface |
This interface is made to be used by an iterative approach to do TimeOfImpact calculations
This interface allows to query for closest points and penetration depth between two (convex) objects
the closest point is on the second object (B), and the normal points from the surface on B towards A.
distance is between closest points on B and closest point on A. So you can calculate closest point on A
by taking closestPointInA = closestPointInB + _distance * _normalOnSurfaceB
| |
| DispatcherInfo | ||
| DispatcherInfo..::..DispatchFunc | ||
| AxisSweep3_32Bit..::..Edge | ||
| AxisSweep3..::..Edge | ||
| TriangleRaycastCallback..::..EFlags | ||
| Element | ||
| EmptyAlgorithm |
EmptyAlgorithm is a stub for unsupported collision pairs.
The dispatcher can dispatch a persistent EmptyAlgorithm to avoid a search every frame.
| |
| EmptyShape |
The EmptyShape is a collision shape without actual collision detection shape, so most users should ignore this class.
It can be replaced by another shape during runtime, but the inertia tensor should be recomputed.
| |
| GjkEpa..::..Epa | ||
| GjkEpa..::..Epa..::..Face | ||
| FilteredCallback | ||
| GhostObject |
The GhostObject can keep track of all objects that are overlapping
By default, this overlap is based on the AABB
This is useful for creating a character controller, collision sensors/triggers, explosions etc.
We plan on adding rayTest and other queries for the GhostObject
| |
| GhostObject..::..GhostObjectOnTriggerCalback | ||
| GhostPairCallback |
The GhostPairCallback interfaces and forwards adding and removal of overlapping pairs from the BroadphaseInterface to GhostObject.
| |
| GjkEpa..::..Gjk | ||
| GjkConvexCast |
GjkConvexCast performs a raycast on a convex object using support mapping.
| |
| GjkEpa |
GJK-EPA collision solver by Nathanael Presson
Nov.2006
| |
| GjkEpaPenetrationDepthSolver |
EpaPenetrationDepthSolver uses the Expanding Polytope Algorithm to
calculate the penetration depth between two convex shapes.
| |
| GjkEpaSolver |
GjkEpaSolver contributed under zlib by Nathanael Presson.
| |
| GjkPairDetector |
GjkPairDetector uses GJK to implement the DiscreteCollisionDetectorInterface
| |
| AxisSweep3_32Bit..::..Handle | ||
| AxisSweep3..::..Handle | ||
| HashedOverlappingPairCache |
Hash-space based Pair Cache, thanks to Erin Catto, Box2D, http://www.box2d.org, and Pierre Terdiman, Codercorner, http://codercorner.com
| |
| GjkEpa..::..Gjk..::..He | ||
| HeightFieldTerrainShape |
HeightfieldTerrainShape simulates a 2D heightfield terrain.
| |
| IBroadphase |
The IBroadphase provides an interface to detect aabb-overlapping object pairs.
Some implementations for this broadphase interface include AxisSweep3, 32BitAxisSweep3 and DbvtBroadphase.
The actual overlapping pair management, storage, adding and removing of pairs is dealt by the OverlappingPairCache class.
| |
| btDbvt..::..IClone | ||
| btDbvt..::..ICollide | ||
| ICollisionConfiguration |
CollisionConfiguration allows to configure Bullet collision detection
stack allocator size, default collision algorithms and persistent manifold pool size.
| |
| IConvexCast |
ConvexCast is an interface for Casting
| |
| IConvexPenetrationDepthSolver |
IConvexPenetrationDepthSolver provides an interface for penetration depth calculation.
| |
| IDispatcher |
The Dispatcher interface can be used in combination with broadphase to dispatch calculations for overlapping pairs.
For example for pairwise collision detection, calculating contact points stored in PersistentManifold or user callbacks (game logic).
| |
| IInternalTriangleIndexCallback | ||
| SimulationIslandManager..::..IIslandCallback | ||
| IndexedMesh |
The IndexedMesh indexes a single vertex and index array.
Multiple IndexedMesh objects can be passed into a TriangleIndexVertexArray using AddIndexedMesh.
Instead of the number of indices, we pass the number of triangles.
| |
| InertiaCallback | ||
| INodeOverlapCallback | ||
| IOverlapCallback | ||
| IOverlapFilterCallback | ||
| IOverlappingPairCallback |
The OverlappingPairCallback class is an additional optional broadphase user callback for adding/removing overlapping pairs, similar interface to OverlappingPairCache.
| |
| ISimplexSolver |
ISimplexSolver can incrementally calculate distance between origin and up to 4 vertices
Used by GJK or Linear Casting. Can be implemented by the Johnson-algorithm or alternative approaches based on
voronoi regions or barycentric coordinates
| |
| ITriangleCallback |
The TriangleCallback provides a callback for each overlapping triangle when calling ProcessAllTriangles.
This callback is called by ProcessAllTriangles for all ConcaveShape derived class,
such as BvhTriangleMeshShape, StaticPlaneShape and HeightfieldTerrainShape.
| |
| btDbvt..::..IWriter | ||
| CollisionWorld..::..LocalConvexResult | ||
| CollisionWorld..::..LocalRayResult | ||
| CollisionWorld..::..LocalShapeInfo |
LocalShapeInfo gives extra information for complex shapes
Currently, only TriangleMeshShape is available, so it just contains triangleIndex and subpart
| |
| LocalSupportVertexCallback |
It's not nice to have all this virtual function overhead,
so perhaps we can also gather the points once, but then we are duplicating.
| |
| ManifoldPoint |
ManifoldContactPoint collects and maintains persistent contactpoints.
Used to improve stability and performance of rigidbody dynamics response.
| |
| ManifoldResult |
ManifoldResult is a helper class to manage contact results.
| |
| MinkowskiPenetrationDepthSolver |
MinkowskiPenetrationDepthSolver implements bruteforce penetration depth estimation.
Implementation is based on sampling the depth using support mapping, and using GJK step to get the witness points.
| |
| MinkowskiSumShape |
The MinkowskiSumShape is only for advanced users.
This shape represents implicit based minkowski sum of two convex implicit shapes.
| |
| GjkEpa..::..Gjk..::..Mkv | ||
| MultiSphereShape |
The MultiSphereShape represents the convex hull of a collection of spheres.
You can create special capsules or other smooth volumes.
It is possible to animate the spheres for deformation,
but call 'RecalcLocalAabb' after changing any sphere position/radius
| |
| MyNodeOverlapCallback | ||
| MyNodeOverlapCallback_Convexcast | ||
| MyNodeOverlapCallback_Raycast | ||
| NearCallback |
User can override this nearcallback for collision filtering and more finegrained control over collision detection.
| |
| NodeTriangleCallback | ||
| NullPairCache |
NullPairCache skips add/removal of overlapping pairs. Userful for benchmarking and unit testing.
| |
| OptimizedBvh |
OptimizedBvh store an AABB tree that can be quickly traversed on CPU (and SPU,GPU in future).
| |
| OptimizedBvhNode |
OptimizedBvhNode contains both internal and leaf node information.
Total node size is 44 bytes / node. You can use the compressed version of 16 bytes.
| |
| OverlappingPairCache |
The OverlappingPairCache provides an interface for overlapping pair management (add, remove, storage), used by the IBroadphase broadphases.
The HashedOverlappingPairCache and SortedOverlappingPairCache classes are two implementations.
| |
| PairCachingGhostObject | ||
| PersistentManifold |
PersistentManifold is a contact point cache, it stays persistent as long as objects are overlapping in the broadphase.
Those contact points are created by the collision narrow phase.
The cache can be empty, or hold 1,2,3 or 4 points. Some collision algorithms (GJK) might only add one point at a time.
updates/refreshes old contact points, and throw them away if necessary (distance becomes too large)
reduces the cache to 4 points, when more then 4 points are added, using following rules:
the contact point with deepest penetration is always kept, and it tries to maximuze the area covered by the points
note that some pairs of objects might have more then one contact manifold.
| |
| ConvexConvexAlgorithm..::..PerturbedContactResult | ||
| PHYScalarType |
PHYScalarType enumerates possible scalar types.
See the StridingMeshInterface for its use.
| |
| PhysicsMaterial | ||
| ConvexHullShape..::..PointArrayType | ||
| PointCollector | ||
| PolyhedralConvexAabbCachingShape | ||
| PolyhedralConvexShape |
The PolyhedralConvexShape is an internal interface class for polyhedral convex shapes.
| |
| QuantizedBvh |
The QuantizedBvh class stores an AABB tree that can be quickly traversed on CPU and Cell SPU.
It is used by the BvhTriangleMeshShape as midphase, and by the MultiSapBroadphase.
It is recommended to use quantization for better performance and lower memory requirements.
| |
| QuantizedBvhNode |
QuantizedBvhNode is a compressed aabb node, 16 bytes.
Node can be used for leafnode or internal node. Leafnodes can point to 32-bit triangle index (non-negative range).
| |
| QuantizedNodeTriangleCallback | ||
| CollisionWorld..::..RayResultCallback |
RayResultCallback is used to report new raycast results.
| |
| OverlappingPairCache..::..RemovePairCallback | ||
| DiscreteCollisionDetectorInterface..::..Result | ||
| GjkEpaSolver..::..Results | ||
| GhostObject..::..SensorStates | ||
| ShapeHull |
The ShapeHull class takes a ConvexShape, builds a simplified convex hull using ConvexHull and provides triangle indices and vertices.
It can be useful for to simplify a complex convex object and for visualization of a non-polyhedral convex object.
It approximates the convex hull using the supporting vertex of 42 directions.
| |
| SimulationIslandManager |
SimulationIslandManager creates and handles simulation islands, using UnionFind.
| |
| SingleRayCallback | ||
| SingleSweepCallback | ||
| SphereBoxCollisionAlgorithm |
SphereBoxCollisionAlgorithm provides sphere-box collision detection.
Other features are frame-coherency (persistent data) and collision response.
| |
| SphereShape |
The SphereShape implements an implicit sphere, centered around a local origin with radius.
| |
| SphereSphereCollisionAlgorithm |
SphereSphereCollisionAlgorithm provides sphere-sphere collision detection.
Other features are frame-coherency (persistent data) and collision response.
Also provides the most basic sample for custom/user CollisionAlgorithm
| |
| SphereTriangleCollisionAlgorithm |
SphereSphereCollisionAlgorithm provides sphere-sphere collision detection.
Other features are frame-coherency (persistent data) and collision response.
Also provides the most basic sample for custom/user CollisionAlgorithm
| |
| SphereTriangleDetector |
Sphere-triangle to match the DiscreteCollisionDetectorInterface.
| |
| btDbvt..::..sStkCLN | ||
| btDbvt..::..sStkNN | ||
| btDbvt..::..sStkNP | ||
| btDbvt..::..sStkNPS | ||
| btDbvt..::..STACKSIZE | ||
| StaticPlaneShape |
The StaticPlaneShape simulates an infinite non-moving (static) collision plane.
| |
| GjkEpaSolver..::..Results..::..Status | ||
| StorageResult | ||
| StridingMeshInterface |
The StridingMeshInterface is the interface class for high performance generic access to triangle meshes,
used in combination with BvhTriangleMeshShape and some other collision shapes.
Using index striding of 3 it can use triangle arrays, using index striding of 1 it can handle triangle strips.
It allows for sharing graphics and collision meshes. Also it provides locking/unlocking of graphics meshes that are in gpu memory.
| |
| SubSimplexClosestResult | ||
| SubsimplexConvexCast |
SubsimplexConvexCast implements Gino van den Bergens' paper
"Ray Casting against bteral Convex Objects with Application to Continuous Collision Detection"
GJK based Ray Cast, optimized version
Objects should not start in overlap, otherwise results are not defined.
| |
| SupportVertexCallback | ||
| CompoundCollisionAlgorithm..::..SwappedCreateFunc | ||
| ConvexConcaveCollisionAlgorithm..::..SwappedCreateFunc | ||
| QuantizedBvh..::..TraversalMode | ||
| Triangle | ||
| TriangleBuffer |
The TriangleBuffer callback can be useful to collect and store overlapping triangles between AABB and concave objects that support 'processAllTriangles'
| |
| TriangleConvexcastCallback | ||
| TriangleIndexVertexArray |
The TriangleIndexVertexArray allows to access multiple triangle meshes, by indexing into existing triangle/index arrays.
Additional meshes can be added using AddIndexedMesh.
No duplcate is made of the vertex/index data, it only indexes into external vertex/index arrays.
So keep those arrays around during the lifetime of this TriangleIndexVertexArray.
| |
| TriangleMesh |
The TriangleMesh class is a convenience class derived from TriangleIndexVertexArray,
that provides storage for a concave triangle mesh. It can be used as data for the BvhTriangleMeshShape.
It allows either 32bit or 16bit indices, and 4 (x-y-z-w) or 3 (x-y-z) component vertices.
If you want to share triangle/index data between graphics mesh and collision mesh (BvhTriangleMeshShape),
you can directly use TriangleIndexVertexArray or derive your own class from StridingMeshInterface.
Performance of TriangleMesh and TriangleIndexVertexArray used in a BvhTriangleMeshShape is the same.
| |
| TriangleMeshShape |
The TriangleMeshShape is an internal concave triangle mesh interface.
Don't use this class directly, use BvhTriangleMeshShape instead.
| |
| TriangleRaycastCallback | ||
| TriangleShape | ||
| UniformScalingShape |
The UniformScalingShape allows to re-use uniform scaled instances of ConvexShape in a memory efficient way.
Istead of using UniformScalingShape, it is better to use the non-uniform SetLocalScaling method on convex shapes that implement it.
| |
| btDbvtNode..::..union | ||
| UnionFind |
UnionFind calculates connected subsets
Implements weighted Quick Union with path compression
optimization: could use short ints instead of ints
(halving memory, would limit the number of rigid bodies to 64k, sounds reasonable)
| |
| UsageBitfield | ||
| VoronoiSimplexSolver |