apecs-physics-0.4.2: src/Apecs/Physics.hs
-- | apecs-physics prelude
module Apecs.Physics (
-- * General
Physics,
-- * Space
Gravity (..), Iterations (..),
stepPhysics,
earthGravity,
-- * Body
-- $BODY
Body (..), Position (..), Velocity (..), Angle (..), AngularVelocity (..), Force (..),
BodyMass (..), Moment (..), CenterOfGravity (..), Torque (..), ShapeList (..), ConstraintList (..),
-- * Shape
Convex (..), Shape (..),
Mass (..), Density (..), Sensor (..), Friction (..), Elasticity (..), SurfaceVelocity (..),
CollisionFilter (..), CollisionType(..),
Bitmask (..), maskAll, maskNone, maskList, defaultFilter, boxShape,
-- * Constraint
Constraint (..), ConstraintType (..), MaxForce (..), MaxBias (..), ErrorBias (..), Impulse (..), CollideBodies (..),
-- * Collision
Collision (..), CollisionHandler (..), defaultHandler,
CollisionSource(..), BeginCB, SeparateCB, PreSolveCB, PostSolveCB,
mkBeginCB, mkSeparateCB, mkPreSolveCB, mkPostSolveCB,
-- * Query
PointQueryResult (..),
pointQuery,
-- * Geometry
module Apecs.Physics.Geometry,
BVec, WVec,
module Apecs,
module Linear.V2,
) where
import Apecs
import Linear.V2
import Apecs.Physics.Body ()
import Apecs.Physics.Collision
import Apecs.Physics.Constraint ()
import Apecs.Physics.Geometry
import Apecs.Physics.Query
import Apecs.Physics.Shape
import Apecs.Physics.Space
import Apecs.Physics.Types
-- $BODY
-- When you give an entity a @'Body'@ component in 'apecs-physics', the physics engine will
-- also give this entity a number of __sub-components__.
-- These sub-components may be read and written separately from the actualy @'Body'@ itself,
-- which makes the library both more expressive (as you can only write about the parts of a
-- physics body you actually want to view or change) and more performant
-- (as only the changed parts of a body actually need to be updated when you write to them).