13 lines
414 B
Haskell
13 lines
414 B
Haskell
{-# LANGUAGE BangPatterns #-}
|
|
module Dodge.ShiftPoint where
|
|
import Geometry
|
|
|
|
shiftPointBy :: (Point2,Float) -> Point2 -> Point2
|
|
shiftPointBy (pos,rot) !p = pos +.+ rotateV rot p
|
|
|
|
invShiftPointBy :: (Point2,Float) -> Point2 -> Point2
|
|
invShiftPointBy (p1,r) p2 = rotateV (-r) $ p2 -.- p1
|
|
|
|
shiftPoint3By :: (Point2,Float) -> Point3 -> Point3
|
|
shiftPoint3By (pos,rot) (V3 x y z) = addZ z $ pos +.+ rotateV rot (V2 x y)
|