Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell2010 |
Specialized and inlined Quaternion Float
.
Synopsis
- data Quaternion
- quaternion :: Float -> Float -> Float -> Float -> Quaternion
- withQuaternion :: Quaternion -> (Float -> Float -> Float -> Float -> r) -> r
- axisAngle :: Vec3 -> Float -> Quaternion
- rotate :: Quaternion -> Vec3 -> Vec3
- rotatePoint :: Quaternion -> Vec3 -> Vec3 -> Vec3
- rotationBetween :: Vec3 -> Vec3 -> Quaternion
- lookAtUp :: Vec3 -> Vec3 -> Vec3 -> Quaternion
- (^*) :: Quaternion -> Float -> Quaternion
- (^/) :: Quaternion -> Float -> Quaternion
- slerp :: Quaternion -> Quaternion -> Float -> Quaternion
- conjugate :: Quaternion -> Quaternion
- norm :: Quaternion -> Float
- quadrance :: Quaternion -> Float
- dot :: Quaternion -> Quaternion -> Float
- normalize :: Quaternion -> Quaternion
- qNaN :: Quaternion
Documentation
data Quaternion Source #
Instances
quaternion :: Float -> Float -> Float -> Float -> Quaternion Source #
withQuaternion :: Quaternion -> (Float -> Float -> Float -> Float -> r) -> r Source #
rotatePoint :: Quaternion -> Vec3 -> Vec3 -> Vec3 Source #
rotationBetween :: Vec3 -> Vec3 -> Quaternion Source #
Rotation between vectors.
(in other words: the quaternion needed to rotate v1
so that it matches v2
)
lookAtUp :: Vec3 -> Vec3 -> Vec3 -> Quaternion Source #
Orient towards a point.
Use "rotationBetween" if you don't need to keep the object upright.
(^*) :: Quaternion -> Float -> Quaternion Source #
(^/) :: Quaternion -> Float -> Quaternion Source #
slerp :: Quaternion -> Quaternion -> Float -> Quaternion Source #
conjugate :: Quaternion -> Quaternion Source #
norm :: Quaternion -> Float Source #
quadrance :: Quaternion -> Float Source #
dot :: Quaternion -> Quaternion -> Float Source #
normalize :: Quaternion -> Quaternion Source #
qNaN :: Quaternion Source #