func (s SpaceBase) Query(g Geom) bool {
	return C.dSpaceQuery(s.c(), g.c()) != 0
}
Query returns whether a geometry is contained in the space.
package ode
import "C"
import (
	"unsafe"
)
const (
	SAPAxesXYZ = C.dSAP_AXES_XYZ
	SAPAxesXZY = C.dSAP_AXES_XZY
	SAPAxesYXZ = C.dSAP_AXES_YXZ
	SAPAxesYZX = C.dSAP_AXES_YZX
	SAPAxesZXY = C.dSAP_AXES_ZXY
	SAPAxesZYX = C.dSAP_AXES_ZYX
)
type Space interface {
	c() C.dSpaceID
	Destroy()
	SetCleanup(mode bool)
	Cleanup() bool
	SetManualCleanup(mode bool)
	SetSublevel(sublevel int)
	Sublevel() int
	ManualCleanup() bool
	Clean()
	Class() int
	Add(g Geom)
	Remove(g Geom)
	Query(g Geom) bool
	NumGeoms(g Geom) int
	Geom(index int) Geom
	Collide(data interface{}, cb NearCallback)
	NewSphere(radius float64) Sphere
	NewBox(lens Vector3) Box
	NewPlane(params Vector4) Plane
	NewCapsule(radius, length float64) Capsule
	NewCylinder(radius, length float64) Cylinder
	NewRay(length float64) Ray
	NewHeightfield(data HeightfieldData, placeable bool) Heightfield
	NewSimpleSpace() SimpleSpace
	NewHashSpace() HashSpace
	NewQuadTreeSpace(center, extents Vector3, depth int) QuadTreeSpace
	NewSweepAndPruneSpace(axisOrder int) SweepAndPruneSpace
}
type SpaceBase uintptr
func cToSpace(c C.dSpaceID) Space {
	base := SpaceBase(unsafe.Pointer(c))
	var s Space
	switch int(C.dSpaceGetClass(c)) {
	case SimpleSpaceClass:
		s = SimpleSpace{base}
	case HashSpaceClass:
		s = HashSpace{base}
	case QuadTreeSpaceClass:
		s = QuadTreeSpace{base}
	case SweepAndPruneSpaceClass:
		s = SweepAndPruneSpace{base}
	default:
		s = base
	}
	return s
}
func NilSpace() Space {
	return SpaceBase(0)
}
func (s SpaceBase) c() C.dSpaceID {
	return C.dSpaceID(unsafe.Pointer(s))
}
func (s SpaceBase) Destroy() {
	C.dSpaceDestroy(s.c())
}
func (s SpaceBase) SetCleanup(mode bool) {
	C.dSpaceSetCleanup(s.c(), C.int(btoi(mode)))
}
func (s SpaceBase) Cleanup() bool {
	return C.dSpaceGetCleanup(s.c()) != 0
}
func (s SpaceBase) SetManualCleanup(mode bool) {
	C.dSpaceSetManualCleanup(s.c(), C.int(btoi(mode)))
}
func (s SpaceBase) ManualCleanup() bool {
	return C.dSpaceGetManualCleanup(s.c()) != 0
}
func (s SpaceBase) SetSublevel(sublevel int) {
	C.dSpaceSetSublevel(s.c(), C.int(sublevel))
}
func (s SpaceBase) Sublevel() int {
	return int(C.dSpaceGetSublevel(s.c()))
}
func (s SpaceBase) Clean() {
	C.dSpaceClean(s.c())
}
func (s SpaceBase) Class() int {
	return int(C.dSpaceGetClass(s.c()))
}
func (s SpaceBase) Add(g Geom) {
	C.dSpaceAdd(s.c(), g.c())
}
func (s SpaceBase) Remove(g Geom) {
	C.dSpaceRemove(s.c(), g.c())
}