DigitalRune Geometry is a geometry and collision detection library for the Microsoft .NET Framework and the XNA Framework. The library is designed and optimized for use in 3D games and simulations on Windows, Windows Phone 7 and Xbox 360.
DigitalRune Geometry is used for all kinds of collision detection tasks, including
- contact determination for rigid body physics,
- frustum culling in graphics engines,
- line-of-sight determination for game AI,
- collision detection for character movement,
- mouse picking and ray casting,
- and more.
This product is part of the DigitalRune Engine.
Platforms
- Microsoft .NET Framework 4
- Microsoft XNA Framework 4.0 (Windows, Windows Phone 7 and Xbox 360)
- Mono (experimental)
The XNA Framework is supported, but not required to use this product.
Please contact us if you need support for any other platform (for example: Silverlight).
Features
Collision Shapes
- Primitive shapes (e.g. sphere, box, capsule, cone, cylinder, height field, line segments, view volumes, plane, etc.)
- Complex shapes (e.g. composites of primitives, convex hulls, triangle mesh, etc.)
- Uniform and non-uniform scaling of shapes
- Automatic computation of tight-fitting bounding shapes
- Volume computation for all shapes and closed triangle meshes
Collision Detection
- Supported collision queries:
- Have-contact queries (boolean queries)
- Closest-point queries (proximity queries)
- Contact queries (intersection queries incl. contact positions, normal vectors and penetration depths)
- Ray casting
- Time-of-impact queries (Continuous Collision Detection, CCD)
- Customizable collision filtering
- Trigger objects
- Contact filtering and contact reduction
- Persistent contacts and contact caching
Mesh Manipulation
- Mesh representation using doubly-connected edge lists (DCEL)
- Convex hull creation and simplification
- Automatic approximation of triangle meshes for arbitrary convex shapes (using support map sampling)
- Approximate Convex Decomposition (ACD)
Spatial Partitioning
- Axis-aligned bounding box tree
- Compressed axis-aligned bounding box tree for memory intense objects
- Dynamic axis-aligned bounding box tree for dynamic objects
- Adaptive axis-aligned bounding box tree for large deformable meshes
- Sweep and Prune method
- Dual partition broad-phase method
Miscellaneous
- Multithreading support
- XNA Content Pipeline support
- Extensibility: Users can add new shape types, collision algorithms, collision filters or spatial partitioning methods.
And more...
For a detailed list of features and more information, have a look at the Online Documentation.