module SFML.System.Vector3
(
Vec3f(..)
)
where
import Control.Applicative ((<$>), (<*>))
import Foreign.C.Types
import Foreign.Storable
sizeFloat = (4)
data Vec3f = Vec3f !Float !Float !Float deriving Show
instance Storable Vec3f where
sizeOf _ = 3*sizeFloat
alignment _ = alignment (undefined :: CFloat)
peek ptr = Vec3f
<$> fmap realToFrac ((\hsc_ptr -> peekByteOff hsc_ptr 0) ptr :: IO CFloat)
<*> fmap realToFrac ((\hsc_ptr -> peekByteOff hsc_ptr 4) ptr :: IO CFloat)
<*> fmap realToFrac ((\hsc_ptr -> peekByteOff hsc_ptr 8) ptr :: IO CFloat)
poke ptr (Vec3f x y z) = do
(\hsc_ptr -> pokeByteOff hsc_ptr 0) ptr (realToFrac x :: CFloat)
(\hsc_ptr -> pokeByteOff hsc_ptr 4) ptr (realToFrac y :: CFloat)
(\hsc_ptr -> pokeByteOff hsc_ptr 8) ptr (realToFrac z :: CFloat)