
DigitalRune Geometry is a .NET class library containing types and algorithms to solve geometrical problems, in particular general purpose collision detection. The library was designed for use in computer graphics, video games and virtual reality applications.
This topic contains the following sections.
Minimal Requirements
Microsoft .NET Framework 4.0 Client Profile or Mono
Supported Platforms
Microsoft .NET Framework 4.0 (or higher)
Microsoft XNA Framework 4.0 (Windows, Xbox 360, Windows Phone 7)
Features
Here is an overview of features in this product.
General
Intended and optimized for use in 3D real-time applications
Multithreading support
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
Compound 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, bounding capsules, oriented bounding boxes and convex hulls)
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) and ray casting
Time-of-impact queries (Continuous Collision Detection, CCD)
Customizable collision filtering
Broad phase collision detection
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
...
Namespaces
Following namespaces belong to DigitalRune.Geometry: