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 applications and games. It 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.
Prerequisites
- DigitalRune Mathematics - DigitalRune Mathematics is the foundation for DigitalRune Geometry. Therefore, both products are sold bundled.
Supported Platforms
- Microsoft .NET Framework 3.5 or higher
- Microsoft XNA Framework 3.1 (Windows, Xbox 360)
The XNA Framework is supported, but not required to use DigitalRune Geometry. Support for the upcoming XNA Framework 4 (Windows, Xbox 360 and Windows Phone 7) will be available on release.
Please contact us if you need support for any other platform (for example: Mono, .NET Compact Framework, Silverlight, or XNA 4 CTP).
Features
Here is an overview of features in this product.
General
- Fully managed C# class library
- Intended and optimized for use in 3D real-time applications
- Robust floating-point comparisons
- Optional support for the Microsoft XNA Framework (Windows, Xbox 360)
- Extensible: Users can add new shape types, collision algorithms, collision filters or spatial partitioning methods
Collision Shapes
- Primitives: box, capsule, circle, cone, cylinder, height field, line, line segment, orthographics view volume, perspective view volume (frustum), plane, point, ray, rectangle, sphere, triangle
- Complex shapes: composites of primitives, convex hull of points, convex hull of shapes, Minkowski sum, Minkowski difference, triangle mesh
- Uniform and non-uniform scaling of shapes
- Automatic computation of tight-fitting bounding shapes (bounding spheres and oriented bounding boxes)
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
- 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
- Automatic approximation of triangle meshes for arbitrary convex shapes (using support map sampling)
Spatial Partitioning
- Axis-aligned bounding box tree
- Sweep and Prune method
Upcoming Features
Following features will be added to upcoming versions of DigitalRune Geometry:
- XNA 4.0 support
- Continuous collision detection
- Convex decomposition of meshes
- Dynamic bounding volume tree