Work on crab feet
This commit is contained in:
@@ -160,17 +160,30 @@ feet cr = case (cr ^? crType . strideAmount,cr ^? crType . footForward) of
|
||||
|
||||
crabFeet :: Creature -> Shape
|
||||
{-# INLINE crabFeet #-}
|
||||
crabFeet cr = case (cr ^? crType . strideAmount,cr ^? crType . footForward) of
|
||||
(Just sa,Just LeftForward) -> sh (f sa)
|
||||
(Just sa,Just RightForward) -> sh (-f sa)
|
||||
_ -> sh 0
|
||||
crabFeet cr =
|
||||
uncurryV translateSHxy rpos afoot
|
||||
<> uncurryV translateSHxy (f (V2 0 10) rpos) afoot
|
||||
<> uncurryV translateSHxy lpos afoot
|
||||
<> uncurryV translateSHxy (f (V2 0 (-10)) lpos) afoot
|
||||
-- <> uncurryV translateSHxy (rotateV cdir $ cr ^?! crType . lFootPos - cxy) afoot
|
||||
-- <> uncurryV translateSHxy (rotateV cdir $ cxy - cr ^?! crType . lFootPos) afoot
|
||||
-- case (cr ^? crType . strideAmount,cr ^? crType . footForward) of
|
||||
-- (Just sa,Just LeftForward) -> sh (f sa)
|
||||
-- (Just sa,Just RightForward) -> sh (-f sa)
|
||||
-- _ -> sh 0
|
||||
where
|
||||
sh x = translateSHxy x off aFoot <> translateSHxy (- x) (- off) aFoot
|
||||
aFoot = upperPrismPolyST 10 $ polyCirc 3 2
|
||||
rpos = rot ( cr ^?! crType . rFootPos - cxy)
|
||||
rot = rotateV cdir
|
||||
lpos = rot ( cr ^?! crType . lFootPos - cxy)
|
||||
f p q = q + 2 *^ (p - q)
|
||||
cdir = -cr ^. crDir
|
||||
cxy = cr ^. crPos . _xy
|
||||
-- sh x = translateSHxy x off aFoot <> translateSHxy (- x) (- off) aFoot
|
||||
afoot = upperPrismPolyST 10 $ polyCirc 3 2
|
||||
off = 10
|
||||
sLen = strideLength cr
|
||||
-- f i = 8 * (sLen - 2*i) / sLen
|
||||
f i = 8 * oneSmooth ((sLen - 2*i) / sLen)
|
||||
-- f i = 8 * oneSmooth ((sLen - 2*i) / sLen)
|
||||
|
||||
deadFeet :: Creature -> Shape
|
||||
{-# INLINE deadFeet #-}
|
||||
|
||||
Reference in New Issue
Block a user