{-# OPTIONS_HADDOCK hide #-}

module Graphics.Gloss.Internals.Interface.Simulate.State
	( State (..)
	, stateInit )
where

-- | Simulation state
data State	
 = 	State
	{ -- | The iteration number we're up to.
	  stateIteration	:: !Integer

	-- | How many simulation setps to take for each second of real time
	, stateResolution	:: !Int 
	
	-- | How many seconds worth of simulation we've done so far
	, stateSimTime		:: !Float  }
	

-- | Initial control state
stateInit :: Int -> State
stateInit resolution
 	= State
 	{ stateIteration		= 0
	, stateResolution		= resolution 
	, stateSimTime			= 0 }