-----------------------------------------------------------------------------
-- |
-- Copyright   : (C) 2015 Dimitri Sabadie
-- License     : BSD3
--
-- Maintainer  : Dimitri Sabadie <dimitri.sabadie@gmail.com>
-- Stability   : experimental
-- Portability : portable
--
-----------------------------------------------------------------------------

module Codec.Wavefront.TexCoord where

-- |A texture coordinate is a 3D-floating vector. You can access to its components by pattern
-- matching on them:
--
-- @
--   let TexCoord r s t = TexCoord 0.1 0.2 0.3
-- @
--
-- That type is strcit and unboxed.
data TexCoord = TexCoord {
    TexCoord -> Float
texcoordR :: {-# UNPACK #-} !Float
  , TexCoord -> Float
texcoordS :: {-# UNPACK #-} !Float
  , TexCoord -> Float
texcoordT :: {-# UNPACK #-} !Float
  } deriving (TexCoord -> TexCoord -> Bool
(TexCoord -> TexCoord -> Bool)
-> (TexCoord -> TexCoord -> Bool) -> Eq TexCoord
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: TexCoord -> TexCoord -> Bool
$c/= :: TexCoord -> TexCoord -> Bool
== :: TexCoord -> TexCoord -> Bool
$c== :: TexCoord -> TexCoord -> Bool
Eq,Int -> TexCoord -> ShowS
[TexCoord] -> ShowS
TexCoord -> String
(Int -> TexCoord -> ShowS)
-> (TexCoord -> String) -> ([TexCoord] -> ShowS) -> Show TexCoord
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [TexCoord] -> ShowS
$cshowList :: [TexCoord] -> ShowS
show :: TexCoord -> String
$cshow :: TexCoord -> String
showsPrec :: Int -> TexCoord -> ShowS
$cshowsPrec :: Int -> TexCoord -> ShowS
Show)