apecs-physics-0.2.0.0: 2D physics for apecs

Safe HaskellNone
LanguageHaskell2010

Apecs.Physics

Contents

Description

apecs-physics prelude

Synopsis

General

data Physics Source #

Uninhabited data type for constructing a world with a chipmunk space.

Instances
Component Physics # 
Instance details

Defined in Apecs.Physics.Space

Associated Types

type Storage Physics :: * #

type Storage Physics # 
Instance details

Defined in Apecs.Physics.Space

Space

newtype Gravity Source #

Gravity force vector, global value

Constructors

Gravity Vec 
Instances
Eq Gravity Source # 
Instance details

Defined in Apecs.Physics.Types

Methods

(==) :: Gravity -> Gravity -> Bool #

(/=) :: Gravity -> Gravity -> Bool #

Show Gravity Source # 
Instance details

Defined in Apecs.Physics.Types

Component Gravity # 
Instance details

Defined in Apecs.Physics.Space

Associated Types

type Storage Gravity :: * #

Has w IO Physics => Has w IO Gravity # 
Instance details

Defined in Apecs.Physics.Space

type Storage Gravity # 
Instance details

Defined in Apecs.Physics.Space

newtype Iterations Source #

Number of iterations per step, global value

Constructors

Iterations Int 
Instances
Component Iterations # 
Instance details

Defined in Apecs.Physics.Space

Associated Types

type Storage Iterations :: * #

Has w IO Physics => Has w IO Iterations # 
Instance details

Defined in Apecs.Physics.Space

type Storage Iterations # 
Instance details

Defined in Apecs.Physics.Space

Body

data Body Source #

Added to a component to add it to the physics space. Deleting it will also delete all associated shapes and constraints. A body has a number of subcomponents: Position, Velocity, Force, Torque, BodyMass, Moment, Angle, AngularVelocity, and CenterOfGravity. These components cannot be added or removed from an entity, but rather are present as long as the entity has a Body.

Instances
Enum Body Source # 
Instance details

Defined in Apecs.Physics.Types

Methods

succ :: Body -> Body #

pred :: Body -> Body #

toEnum :: Int -> Body #

fromEnum :: Body -> Int #

enumFrom :: Body -> [Body] #

enumFromThen :: Body -> Body -> [Body] #

enumFromTo :: Body -> Body -> [Body] #

enumFromThenTo :: Body -> Body -> Body -> [Body] #

Eq Body Source # 
Instance details

Defined in Apecs.Physics.Types

Methods

(==) :: Body -> Body -> Bool #

(/=) :: Body -> Body -> Bool #

Ord Body Source # 
Instance details

Defined in Apecs.Physics.Types

Methods

compare :: Body -> Body -> Ordering #

(<) :: Body -> Body -> Bool #

(<=) :: Body -> Body -> Bool #

(>) :: Body -> Body -> Bool #

(>=) :: Body -> Body -> Bool #

max :: Body -> Body -> Body #

min :: Body -> Body -> Body #

Component Body # 
Instance details

Defined in Apecs.Physics.Body

Associated Types

type Storage Body :: * #

Has w IO Physics => Has w IO Body # 
Instance details

Defined in Apecs.Physics.Body

type Storage Body # 
Instance details

Defined in Apecs.Physics.Body

newtype Position Source #

Constructors

Position WVec 
Instances
Component Position # 
Instance details

Defined in Apecs.Physics.Body

Associated Types

type Storage Position :: * #

Has w IO Physics => Has w IO Position # 
Instance details

Defined in Apecs.Physics.Body

type Storage Position # 
Instance details

Defined in Apecs.Physics.Body

newtype Velocity Source #

Constructors

Velocity WVec 
Instances
Component Velocity # 
Instance details

Defined in Apecs.Physics.Body

Associated Types

type Storage Velocity :: * #

Has w IO Physics => Has w IO Velocity # 
Instance details

Defined in Apecs.Physics.Body

type Storage Velocity # 
Instance details

Defined in Apecs.Physics.Body

newtype Angle Source #

Constructors

Angle Double 
Instances
Eq Angle Source # 
Instance details

Defined in Apecs.Physics.Types

Methods

(==) :: Angle -> Angle -> Bool #

(/=) :: Angle -> Angle -> Bool #

Show Angle Source # 
Instance details

Defined in Apecs.Physics.Types

Methods

showsPrec :: Int -> Angle -> ShowS #

show :: Angle -> String #

showList :: [Angle] -> ShowS #

Component Angle # 
Instance details

Defined in Apecs.Physics.Body

Associated Types

type Storage Angle :: * #

Has w IO Physics => Has w IO Angle # 
Instance details

Defined in Apecs.Physics.Body

type Storage Angle # 
Instance details

Defined in Apecs.Physics.Body

newtype AngularVelocity Source #

Constructors

AngularVelocity Double 
Instances
Component AngularVelocity # 
Instance details

Defined in Apecs.Physics.Body

Associated Types

type Storage AngularVelocity :: * #

Has w IO Physics => Has w IO AngularVelocity # 
Instance details

Defined in Apecs.Physics.Body

type Storage AngularVelocity # 
Instance details

Defined in Apecs.Physics.Body

newtype Force Source #

Constructors

Force Vec 
Instances
Component Force # 
Instance details

Defined in Apecs.Physics.Body

Associated Types

type Storage Force :: * #

Has w IO Physics => Has w IO Force # 
Instance details

Defined in Apecs.Physics.Body

type Storage Force # 
Instance details

Defined in Apecs.Physics.Body

newtype BodyMass Source #

Constructors

BodyMass Double 
Instances
Eq BodyMass Source # 
Instance details

Defined in Apecs.Physics.Types

Show BodyMass Source # 
Instance details

Defined in Apecs.Physics.Types

Component BodyMass # 
Instance details

Defined in Apecs.Physics.Body

Associated Types

type Storage BodyMass :: * #

Has w IO Physics => Has w IO BodyMass # 
Instance details

Defined in Apecs.Physics.Body

type Storage BodyMass # 
Instance details

Defined in Apecs.Physics.Body

newtype Moment Source #

Constructors

Moment Double 
Instances
Eq Moment Source # 
Instance details

Defined in Apecs.Physics.Types

Methods

(==) :: Moment -> Moment -> Bool #

(/=) :: Moment -> Moment -> Bool #

Show Moment Source # 
Instance details

Defined in Apecs.Physics.Types

Component Moment # 
Instance details

Defined in Apecs.Physics.Body

Associated Types

type Storage Moment :: * #

Has w IO Physics => Has w IO Moment # 
Instance details

Defined in Apecs.Physics.Body

type Storage Moment # 
Instance details

Defined in Apecs.Physics.Body

newtype CenterOfGravity Source #

Constructors

CenterOfGravity BVec 
Instances
Component CenterOfGravity # 
Instance details

Defined in Apecs.Physics.Body

Associated Types

type Storage CenterOfGravity :: * #

Has w IO Physics => Has w IO CenterOfGravity # 
Instance details

Defined in Apecs.Physics.Body

type Storage CenterOfGravity # 
Instance details

Defined in Apecs.Physics.Body

newtype Torque Source #

Constructors

Torque Double 
Instances
Component Torque # 
Instance details

Defined in Apecs.Physics.Body

Associated Types

type Storage Torque :: * #

Has w IO Physics => Has w IO Torque # 
Instance details

Defined in Apecs.Physics.Body

type Storage Torque # 
Instance details

Defined in Apecs.Physics.Body

Shape

data Convex Source #

A convex polygon. Consists of a list of vertices, and a radius.

Constructors

Convex [BVec] Double 
Instances
Eq Convex Source # 
Instance details

Defined in Apecs.Physics.Types

Methods

(==) :: Convex -> Convex -> Bool #

(/=) :: Convex -> Convex -> Bool #

Show Convex Source # 
Instance details

Defined in Apecs.Physics.Types

data Shape Source #

Shape component. Adding a shape to an entity that has no Body is a noop.

Instances
Component Shape # 
Instance details

Defined in Apecs.Physics.Shape

Associated Types

type Storage Shape :: * #

Has w IO Physics => Has w IO Shape # 
Instance details

Defined in Apecs.Physics.Shape

type Storage Shape # 
Instance details

Defined in Apecs.Physics.Shape

newtype Mass Source #

Constructors

Mass Double 
Instances
Eq Mass Source # 
Instance details

Defined in Apecs.Physics.Types

Methods

(==) :: Mass -> Mass -> Bool #

(/=) :: Mass -> Mass -> Bool #

Show Mass Source # 
Instance details

Defined in Apecs.Physics.Types

Methods

showsPrec :: Int -> Mass -> ShowS #

show :: Mass -> String #

showList :: [Mass] -> ShowS #

Component Mass # 
Instance details

Defined in Apecs.Physics.Shape

Associated Types

type Storage Mass :: * #

Has w IO Physics => Has w IO Mass # 
Instance details

Defined in Apecs.Physics.Shape

type Storage Mass # 
Instance details

Defined in Apecs.Physics.Shape

newtype Density Source #

Constructors

Density Double 
Instances
Eq Density Source # 
Instance details

Defined in Apecs.Physics.Types

Methods

(==) :: Density -> Density -> Bool #

(/=) :: Density -> Density -> Bool #

Show Density Source # 
Instance details

Defined in Apecs.Physics.Types

Component Density # 
Instance details

Defined in Apecs.Physics.Shape

Associated Types

type Storage Density :: * #

Has w IO Physics => Has w IO Density # 
Instance details

Defined in Apecs.Physics.Shape

type Storage Density # 
Instance details

Defined in Apecs.Physics.Shape

newtype Sensor Source #

Constructors

Sensor Bool 
Instances
Eq Sensor Source # 
Instance details

Defined in Apecs.Physics.Types

Methods

(==) :: Sensor -> Sensor -> Bool #

(/=) :: Sensor -> Sensor -> Bool #

Show Sensor Source # 
Instance details

Defined in Apecs.Physics.Types

Component Sensor # 
Instance details

Defined in Apecs.Physics.Shape

Associated Types

type Storage Sensor :: * #

Has w IO Physics => Has w IO Sensor # 
Instance details

Defined in Apecs.Physics.Shape

type Storage Sensor # 
Instance details

Defined in Apecs.Physics.Shape

newtype Friction Source #

Constructors

Friction Double 
Instances
Eq Friction Source # 
Instance details

Defined in Apecs.Physics.Types

Show Friction Source # 
Instance details

Defined in Apecs.Physics.Types

Component Friction # 
Instance details

Defined in Apecs.Physics.Shape

Associated Types

type Storage Friction :: * #

Has w IO Physics => Has w IO Friction # 
Instance details

Defined in Apecs.Physics.Shape

type Storage Friction # 
Instance details

Defined in Apecs.Physics.Shape

newtype Elasticity Source #

Constructors

Elasticity Double 
Instances
Eq Elasticity Source # 
Instance details

Defined in Apecs.Physics.Types

Show Elasticity Source # 
Instance details

Defined in Apecs.Physics.Types

Component Elasticity # 
Instance details

Defined in Apecs.Physics.Shape

Associated Types

type Storage Elasticity :: * #

Has w IO Physics => Has w IO Elasticity # 
Instance details

Defined in Apecs.Physics.Shape

type Storage Elasticity # 
Instance details

Defined in Apecs.Physics.Shape

newtype SurfaceVelocity Source #

Constructors

SurfaceVelocity Vec 

data CollisionFilter Source #

Constructors

CollisionFilter 

Fields

maskAll :: Bitmask Source #

maskNone :: Bitmask Source #

maskList :: [Int] -> Bitmask Source #

Constraint

data ConstraintType Source #

Constructors

PinJoint BVec BVec

Maintains a fixed distance between two anchor points

SlideJoint BVec BVec Double Double 
PivotJoint WVec

Creates a pivot point at the given world coordinate

PivotJoint2 BVec BVec

Creates a pivot point at the given body coordinates

GrooveJoint BVec BVec BVec 
DampedSpring BVec BVec Double Double Double 
DampedRotarySpring Double Double Double 
RotaryLimitJoint Double Double 
RatchetJoint Double Double 
GearJoint Double Double 
SimpleMotor Double 

newtype MaxForce Source #

Constructors

MaxForce Double 
Instances
Component MaxForce # 
Instance details

Defined in Apecs.Physics.Constraint

Associated Types

type Storage MaxForce :: * #

Has w IO Physics => Has w IO MaxForce # 
Instance details

Defined in Apecs.Physics.Constraint

type Storage MaxForce # 
Instance details

Defined in Apecs.Physics.Constraint

newtype MaxBias Source #

Constructors

MaxBias Double 
Instances
Component MaxBias # 
Instance details

Defined in Apecs.Physics.Constraint

Associated Types

type Storage MaxBias :: * #

Has w IO Physics => Has w IO MaxBias # 
Instance details

Defined in Apecs.Physics.Constraint

type Storage MaxBias # 
Instance details

Defined in Apecs.Physics.Constraint

newtype ErrorBias Source #

Constructors

ErrorBias Double 
Instances
Component ErrorBias # 
Instance details

Defined in Apecs.Physics.Constraint

Associated Types

type Storage ErrorBias :: * #

Has w IO Physics => Has w IO ErrorBias # 
Instance details

Defined in Apecs.Physics.Constraint

type Storage ErrorBias # 
Instance details

Defined in Apecs.Physics.Constraint

newtype CollideBodies Source #

Constructors

CollideBodies Bool 
Instances
Component CollideBodies # 
Instance details

Defined in Apecs.Physics.Constraint

Associated Types

type Storage CollideBodies :: * #

Has w IO Physics => Has w IO CollideBodies # 
Instance details

Defined in Apecs.Physics.Constraint

type Storage CollideBodies # 
Instance details

Defined in Apecs.Physics.Constraint

Collision

data Collision Source #

Constructors

Collision 
Instances
Eq Collision Source # 
Instance details

Defined in Apecs.Physics.Types

Show Collision Source # 
Instance details

Defined in Apecs.Physics.Types

data CollisionSource Source #

Constructors

Wildcard CollisionGroup 
Between CollisionGroup CollisionGroup 

Query

Geometry

vertices :: Convex -> [BVec] Source #

mapVertices :: (BVec -> BVec) -> Convex -> Convex Source #

Map a function over all vertices

shift :: BVec -> Convex -> Convex Source #

Translates all vertices. The name shift is to prevent collisions with gloss

oCircle :: BVec -> Double -> Convex Source #

cRectangle :: BVec -> Convex Source #

Centered rectangle with a given size

oRectangle :: BVec -> BVec -> Convex Source #

Rectangle with a given origin and size

zRectangle :: BVec -> Convex Source #

Rectangle with origin 0 and given size

toEdges :: Convex -> [Convex] Source #

Split a shape into its edges. Will return no edges for points, but returns 2 for a line (in opposite directions)

gridLines :: Vec -> Int -> Int -> [Convex] Source #

A set of lines forming a grid. Returns (r + c + 2) segments.

module Apecs

module Linear.V2