Vis 0.7.7.0 → 0.7.7.1
raw patch · 3 files changed
+28/−7 lines, 3 filesdep +lineardep −SpatialMathPVP: major bump suggested
API removals or changes: PVP suggests a major version bump
Dependencies added: linear
Dependencies removed: SpatialMath
API changes (from Hackage documentation)
+ Vis.VisObject: instance Data.Binary.Class.Binary a => Data.Binary.Class.Binary (Vis.VisObject.Euler a)
+ Vis.VisObject: instance GHC.Base.Functor Vis.VisObject.Euler
+ Vis.VisObject: instance GHC.Classes.Eq a => GHC.Classes.Eq (Vis.VisObject.Euler a)
+ Vis.VisObject: instance GHC.Classes.Ord a => GHC.Classes.Ord (Vis.VisObject.Euler a)
+ Vis.VisObject: instance GHC.Generics.Generic (Vis.VisObject.Euler a)
+ Vis.VisObject: instance GHC.Show.Show a => GHC.Show.Show (Vis.VisObject.Euler a)
- Vis: data BitmapFont
+ Vis: data () => BitmapFont
- Vis: data Flavour
+ Vis: data () => Flavour
- Vis: data SpecialKey
+ Vis: data () => SpecialKey
Files
- Vis.cabal +4/−4
- src/Vis/Camera.hs +1/−1
- src/Vis/VisObject.hs +23/−2
Vis.cabal view
@@ -1,5 +1,5 @@ name: Vis-version: 0.7.7.0+version: 0.7.7.1 stability: Experimental synopsis: Painless 3D graphics, no affiliation with gloss description:{@@ -30,12 +30,12 @@ GLUT >= 2.7.0 && < 2.8, OpenGL >= 3.0.3 && < 3.1, OpenGLRaw >= 3.3.4 && < 3.4,- bytestring >= 0.11.4 && < 0.12,+ bytestring >= 0.11.4 && < 0.13, binary >= 0.8.9 && < 0.9, bmp >= 1.2.6 && < 1.3,- SpatialMath >= 0.2.7 && < 0.3, vector >= 0.13.0 && < 0.14,- time >= 1.11.1 && < 1.12,+ time >= 1.11.1 && < 1.13,+ linear >= 1.22 && < 1.24, vector-binary-instances >= 0.2.5 && < 0.3 default-language: Haskell2010
src/Vis/Camera.hs view
@@ -14,7 +14,7 @@ ) import qualified Graphics.UI.GLUT as GLUT -import SpatialMath ( V3(..) )+import Linear ( V3(..) ) data Camera0 = Camera0 { phi0 :: GLdouble , theta0 :: GLdouble
src/Vis/VisObject.hs view
@@ -29,10 +29,31 @@ , ($=) ) -import SpatialMath+--import SpatialMath (Euler(..))+import Linear (V3(..),Quaternion,M33,fromQuaternion) import qualified Vis.GlossColor as GlossColor +-- | 3-2-1 Euler angle rotation sequence+data Euler a = Euler { eYaw :: a+ , ePitch :: a+ , eRoll :: a+ } deriving (Eq, Show, Functor, Ord, Generic)+-- } deriving (Eq, Show, Functor, Foldable, Traversable, Ord)++instance B.Binary a => B.Binary (Euler a)++dcmOfQuat :: Num a => Quaternion a -> M33 a+dcmOfQuat q = V3+ (V3 m11 m21 m31)+ (V3 m12 m22 m32)+ (V3 m13 m23 m33)+ where+ V3+ (V3 m11 m12 m13)+ (V3 m21 m22 m23)+ (V3 m31 m32 m33) = fromQuaternion q+ glColorOfColor :: GlossColor.Color -> Color4 GLfloat glColorOfColor = (\(r,g,b,a) -> fmap realToFrac (Color4 r g b a)) . GlossColor.rgbaOfColor @@ -348,7 +369,7 @@ coneHeight = 2*coneRadius rotAngle = acos(z/(sqrt(x*x + y*y + z*z) + 1e-15))*180/pi :: GLdouble- rotAxis = Vector3 (-y) x 0+ rotAxis = Vector3 (-y + 1e-15) x 0 GLUT.rotate rotAngle rotAxis