module Physics.ODE.Objects ( -- * Sphere class createSphere , sphereSetRadius , sphereGetRadius , spherePointDepth -- * Box class , createBox , boxSetLengths , boxGetLengths , boxPointDepth -- * Plane class , createPlane , planeSetParams , planeGetParams , planePointDepth ) where import Foreign import Data.Maybe import Physics.ODE.Types import Physics.ODE.Utilities #ifdef HASTH import Foreign.HacanonLight.DIS import Foreign.HacanonLight.Generate import Physics.ODE.DIS #endif --foreign import ccall unsafe "&dGeomDestroy" cDestroy :: FinalizerPtr GeomStruct --------------------------------------------- -- Sphere class $(bind "createSphere" "dCreateSphere" [maybePtr space,ode,geom]) $(bind "sphereSetRadius" "dGeomSphereSetRadius" [geom,ode,unit]) $(bind "sphereGetRadius" "dGeomSphereGetRadius" [geom,ode]) $(bind "spherePointDepth" "dGeomSpherePointDepth" [geom,ode,ode,ode,ode]) --------------------------------------------- -- Box class $(bind "createBox" "dCreateBox" [maybePtr space,ode,ode,ode,geom]) $(bind "boxSetLengths" "dGeomBoxSetLengths" [geom,ode,ode,ode,unit]) $(bind "boxGetLengths" "dGeomBoxGetLengths" [geom,vector3Out,unit]) $(bind "boxPointDepth" "dGeomBoxPointDepth" [geom,ode,ode,ode,ode]) --------------------------------------------- -- Plane class $(bind "createPlane" "dCreatePlane" [maybePtr space,ode,ode,ode,ode,geom]) $(bind "planeSetParams" "dGeomPlaneSetParams" [geom,ode,ode,ode,ode,unit]) $(bind "planeGetParams" "dGeomPlaneGetParams" [geom,vector4Out,unit]) $(bind "planePointDepth" "dGeomPlanePointDepth" [geom,ode,ode,ode,ode]) -- FIXME: Do the rest.