let geom_kind (geom : 'a dGeomID) =
match dGeomGetClass geom with
| SphereClass -> Sphere_geom (Obj.magic geom : sphere_geom dGeomID)
| BoxClass -> Box_geom (Obj.magic geom : box_geom dGeomID)
| CapsuleClass -> Capsule_geom (Obj.magic geom : capsule_geom dGeomID)
| CylinderClass -> Cylinder_geom (Obj.magic geom : cylinder_geom dGeomID)
| PlaneClass -> Plane_geom (Obj.magic geom : plane_geom dGeomID)
| RayClass -> Ray_geom (Obj.magic geom : ray_geom dGeomID)
| ConvexClass -> Convex_geom (Obj.magic geom : convex_geom dGeomID)
| GeomTransformClass -> GeomTransform_geom (Obj.magic geom : geomTransform_geom dGeomID)
| TriMeshClass -> TriMesh_geom (Obj.magic geom : trimesh_geom dGeomID)
| HeightfieldClass -> Heightfield_geom (Obj.magic geom : heightfield_geom dGeomID)
| FirstSpaceSimpleSpaceClass -> (Geom_is_space)
| HashSpaceClass -> (Geom_is_space)
| LastSpaceQuadTreeSpaceClass -> (Geom_is_space)
| FirstUserClass -> (User_class)
| LastUserClass -> (User_class)