HGE2D-0.1.9.0: src/HGE2D/Types.hs
-- |
-- Module : HGE2D.Types
-- Copyright : (c) 2016 Martin Buck
-- License : see LICENSE
--
-- Containing type definitions used within HGE2D
module HGE2D.Types where
import qualified Graphics.Rendering.OpenGL as GL
--------------------------------------------------------------------------------
-- | Time in seconds
type Second = Int
-- | Time in milliseconds
type Millisecond = Int
--------------------------------------------------------------------------------
-- | Maximum depth of a tree
type MaxDepth = Int
--------------------------------------------------------------------------------
-- | Angle in degrees
type Degree = Double
-- | The drag of an object
type Drag = Double
-- | The mass of an object in kg
type Mass = Double
-- | Distance in meters
type Meter = Double
-- | Velocity in meters per millisecond
type MeterPmsec = Double
-- | Acceleration in meters per millisecond squared
type MeterPmsecSqr = Double
-- | Distance or size in pixels
type Pixel = Double
-- | Angle in radians
type Radian = Double
-- | Rotation acceleration in radians per millisecond squared
type RotationAcceleration = Radian
-- | Rotation speed in radians per millisecond
type RotationSpeed = Radian
--------------------------------------------------------------------------------
-- | Width of an object
type Width = Double
-- | Height of an object
type Height = Double
-- | Position in x-direction of an oject
type PosX = Double
-- | Position in y-direction of an object
type PosY = Double
--------------------------------------------------------------------------------
-- | Acceleration split in x and y component
type Acceleration = (MeterPmsecSqr, MeterPmsecSqr)
-- | Position of an object split in x and y component
type RealPosition = (Meter, Meter)
-- | Velocity of an object split in x and y component
type Velocity = (MeterPmsec, MeterPmsec)
--------------------------------------------------------------------------------
-- | Point in 2D defined by GLfloat values
type GlPoint2 = GL.Vertex2 GL.GLfloat
-- | Point in 3D defined by GLfloat values
type GlPoint3 = GL.Vector3 GL.GLfloat
-- | Vertex in 3D defined by GLfloat values
type GlVer3 = GL.Vertex3 GL.GLfloat
-- | Position in x-direction defined by GLfloat value
type GlPosX = GL.GLfloat
-- | Position in y-direction defined by GLfloat value
type GlPosY = GL.GLfloat
-- | Position in z-direction defined by GLfloat value
type GlPosZ = GL.GLfloat
-- | Width of an object defined by GLfloat value
type GlWidth = GL.GLfloat
-- | Height of an object defined by GLfloat value
type GlHeight = GL.GLfloat
-- | Scale in x-direction of an object defined by GLfloat value
type GlScaleX = GL.GLfloat
-- | Scale in y-direction of an object defined by GLfloat value
type GlScaleY = GL.GLfloat
-- | Thickness of e.g. a line defined by GLfloat value
type GlThickness = GL.GLfloat
-- | Radius of e.g. a circle defined by GLfloat value
type GlRadius = GL.GLfloat
-- | RGB color defined by 3 GLfloat values
type GlColorRGB = (GL.GLfloat, GL.GLfloat, GL.GLfloat)
-- | RGBA color defined by 4 GLfloat values
type GlColorRGBA = (GL.GLfloat, GL.GLfloat, GL.GLfloat, GL.GLfloat)
-- | A shape defined by several points in 2D space
type GlShape = [GlPoint2]