This commit is contained in:
2025-08-09 10:09:20 +01:00
parent 7f9d837bf0
commit 9d973b2570
-135
View File
@@ -1,5 +1,4 @@
module Dodge.Creature.HandPos (
-- aimingWeaponZeroPos,
translatePointToLeftHand,
translatePointToRightHand,
translatePointToHead,
@@ -9,7 +8,6 @@ module Dodge.Creature.HandPos (
translateToRightLeg,
translateToHead,
translateToChest,
-- translateToBack,
translateToLeftHand,
translateToRightHand,
backPQ,
@@ -25,23 +23,6 @@ import ShapePicture
translatePointToRightHand :: Creature -> Point3 -> Point3
translatePointToRightHand cr p = fst (rightHandPQ cr `Q.comp` (p,Q.qID))
--translatePointToRightHand' cr . mirrorV3xz
--mirrorV3xz :: Point3 -> Point3
--mirrorV3xz (V3 x y z) = V3 x (- y) z
--translatePointToRightHand' :: Creature -> Point3 -> Point3
--translatePointToRightHand' cr
-- | oneH cr = (+.+.+ V3 11 (-3) 20) . rotate3 0.4 -- . rotate3 (-0.5)-- . scaleSH (V3 1 1.5 1)
-- | twists cr = (+.+.+ V3 0 5 20) . rotate3 (-1) . (+.+.+ V3 4 (-10) 0)
-- | twoFlat cr = (+.+.+ V3 4 (-8) 10)
-- | otherwise = case cr ^? crStance . carriage of
-- Just (Walking sa LeftForward) -> (+.+.+ V3 (- f sa) (- off) 10)
-- _ -> (+.+.+ V3 0 (- off) 10)
-- where
-- off = 8
-- sLen = _strideLength $ _crStance cr
-- f i = negate 2 + negate 6 * (sLen - i) / sLen
rightHandPQ :: Creature -> Point3Q
rightHandPQ cr
@@ -60,43 +41,10 @@ rightHandPQ cr
translateToRightHand :: Creature -> SPic -> SPic
translateToRightHand = overPosSP . translatePointToRightHand
--translateToRightHand = translateToRightHand' -- . mirrorSPxz
--
--translateToRightHand' :: Creature -> SPic -> SPic
--translateToRightHand' cr
-- | oneH cr = shoulderSP . translateSPxy 11 (-3) . rotateSP (-0.5) -- . scaleSH (V3 1 1.5 1)
-- | twists cr = shoulderSP . translateSPxy 0 5 . rotateSP (-1) . translateSPxy 4 (-10)
-- | twoFlat cr = waistSP . translateSPxy 4 (-8)
-- | otherwise = case cr ^? crStance . carriage of
-- Just (Walking sa LeftForward) -> waistSP . translateSPxy (- f sa) (- off)
-- Just (Walking sa RightForward) -> waistSP . translateSPxy (- g sa) (- off)
-- _ -> waistSP . translateSPxy 0 (- off)
-- where
-- off = 8
-- sLen = _strideLength $ _crStance cr
-- f i = negate 2 + negate 6 * (sLen - i) / sLen
-- g i = negate 2 + negate 6 * (i) / sLen
translateToRightWrist :: Creature -> SPic -> SPic
translateToRightWrist cr = overPosSP
(\p -> fst $ rightHandPQ cr `Q.comp` (V3 0 (-4) (-4)+p, Q.qID))
-- --translateToRightWrist' -- . mirrorSPxz
--
--translateToRightWrist' :: Creature -> SPic -> SPic
--translateToRightWrist' cr
-- | oneH cr = shoulderSP . translateSPxy 11 (-3) . rotateSP (-0.5) . offTrans -- . scaleSH (V3 1 1.5 1)
-- | twists cr = shoulderSP . translateSPxy 0 5 . rotateSP (-1) . translateSPxy 4 (-10) . offTrans
-- | twoFlat cr = waistSP . translateSPxy 4 (-8) . offTrans
-- | otherwise = case cr ^? crStance . carriage of
-- Just (Walking sa LeftForward) -> waistSP . translateSPxy (- f sa) (- off) . offTrans
-- Just (Walking sa RightForward) -> waistSP . translateSPxy (- g sa) (- off) . offTrans
-- _ -> waistSP . translateSPxy 0 (- off) . offTrans
-- where
-- offTrans = translateSP (V3 0 4 (-4))
-- off = 8
-- sLen = _strideLength $ _crStance cr
-- f i = negate 2 + negate 6 * (sLen - i) / sLen
-- g i = negate 2 + negate 6 * (i) / sLen
leftHandPQ :: Creature -> Point3Q
leftHandPQ cr
@@ -116,49 +64,13 @@ leftHandPQ cr
translatePointToLeftHand :: Creature -> Point3 -> Point3
translatePointToLeftHand cr p = fst (leftHandPQ cr `Q.comp` (p,Q.qID))
-- | oneH cr = (+.+.+ V3 0 0 10) . rotate3 0.4 . (+.+.+ V3 0 off 0)
-- | twists cr = (+.+.+ V3 0 5 20) . rotate3 (-1) . (+.+.+ V3 12 4 0) . rotate3 0.4
-- | twoFlat cr = (+.+.+ V3 4 8 10)
-- | otherwise = case cr ^? crStance . carriage of
-- Just (Walking sa RightForward) -> (+.+.+ V3 (- f sa) off 10)
-- _ -> (+.+.+ V3 0 off 10)
-- where
-- off = 8
-- sLen = _strideLength $ _crStance cr
-- f i = negate 2 + negate 6 * (sLen - i) / sLen
translateToLeftHand :: Creature -> SPic -> SPic
translateToLeftHand = overPosSP . translatePointToLeftHand
--translateToLeftHand cr =
-- | oneH cr = waistSP . rotateSP 0.4 . translateSPxy 0 off
-- | twists cr = shoulderSP . translateSPxy 0 5 . rotateSP (-1) . translateSPxy 12 4
-- | twoFlat cr = waistSP . translateSPxy 4 8
-- | otherwise = case cr ^? crStance . carriage of
-- Just (Walking sa RightForward) -> waistSP . translateSPxy (- f sa) off
-- Just (Walking sa LeftForward) -> waistSP . translateSPxy (- g sa) off
-- _ -> waistSP . translateSPxy 0 off
-- where
-- off = 8
-- sLen = _strideLength $ _crStance cr
-- f i = negate 2 + negate 6 * (sLen - i) / sLen
-- g i = negate 2 + negate 6 * (i) / sLen
translateToLeftWrist :: Creature -> SPic -> SPic
translateToLeftWrist cr = overPosSP
(\p -> fst $ leftHandPQ cr `Q.comp` (V3 0 4 (-4)+p, Q.qID))
-- | oneH cr = waistSP . rotateSP 0.4 . translateSPxy 0 off . offTrans
-- | twists cr = shoulderSP . translateSPxy 0 5 . rotateSP (-1) . translateSPxy 12 4 . offTrans
-- | twoFlat cr = waistSP . translateSPxy 4 8 . offTrans
-- | otherwise = case cr ^? crStance . carriage of
-- Just (Walking sa RightForward) -> waistSP . translateSPxy (- f sa) off . offTrans
-- Just (Walking sa LeftForward) -> waistSP . translateSPxy (- g sa) off . offTrans
-- _ -> waistSP . translateSPxy 0 off . offTrans
-- where
-- offTrans = translateSP (V3 0 4 (-4))
-- off = 8
-- sLen = _strideLength $ _crStance cr
-- f i = negate 2 + negate 6 * (sLen - i) / sLen
-- g i = negate 2 + negate 6 * (i) / sLen
leftLegPQ :: Creature -> Point3Q
leftLegPQ cr = Q.comp (0,Q.qz (_crMvDir cr - _crDir cr))
@@ -175,14 +87,6 @@ leftLegPQ cr = Q.comp (0,Q.qz (_crMvDir cr - _crDir cr))
translateToLeftLeg :: Creature -> SPic -> SPic
translateToLeftLeg cr = overPosSP (\p -> fst (leftLegPQ cr `Q.comp` (p,Q.qID)))
-- rotateSP (_crMvDir cr - _crDir cr) . case cr ^? crStance . carriage of
-- Just (Walking sa LeftForward) -> translateSPxy (f sa) off
-- Just (Walking sa RightForward) -> translateSPxy (- f sa) off
-- _ -> translateSPxy 0 off
-- where
-- off = 5
-- sLen = _strideLength $ _crStance cr
-- f i = 8 * (sLen - i) / sLen
rightLegPQ :: Creature -> Point3Q
rightLegPQ cr = Q.comp (0,Q.qz (_crMvDir cr - _crDir cr))
@@ -198,25 +102,9 @@ rightLegPQ cr = Q.comp (0,Q.qz (_crMvDir cr - _crDir cr))
translateToRightLeg :: Creature -> SPic -> SPic
translateToRightLeg cr = overPosSP (\p -> fst (rightLegPQ cr `Q.comp` (p,Q.qID)))
--translateToRightLeg cr =
-- rotateSP (_crMvDir cr - _crDir cr) . case cr ^? crStance . carriage of
-- Just (Walking sa LeftForward) -> translateSPxy (- f sa) (- off)
-- Just (Walking sa RightForward) -> translateSPxy (f sa) (- off)
-- _ -> translateSPxy 0 (- off)
-- where
-- off = 5
-- sLen = _strideLength $ _crStance cr
-- f i = 8 * (sLen - i) / sLen
translateToHead :: Creature -> SPic -> SPic
translateToHead cr = overPosSP (\p -> fst $ (headPQ cr `Q.comp` (p,Q.qID)))
-- | twists cr =
-- translateSPz 20 . translateSPxy 0 5 . rotateSP (-1) . translateSPxy (negate 2.5) 0.25
-- . rotateSP 1
-- | oneH cr =
-- translateSPz 20 . rotateSP 0.5 . translateSPxy 2.5 0
-- . rotateSP (negate 0.5)
-- | otherwise = translateSPz 20 . translateSPxy 2.5 0
headPQ :: Creature -> Point3Q
headPQ cr
@@ -226,38 +114,15 @@ headPQ cr
translatePointToHead :: Creature -> Point3 -> Point3
translatePointToHead cr p = fst (headPQ cr `Q.comp` (p,Q.qID))
-- | twists cr =
-- (+.+.+ V3 0 5 20) . rotate3 (-1) . (+.+.+ V3 (negate 2.5) 0.25 0)
-- . rotate3 1
-- | oneH cr =
-- (+.+.+ V3 0 0 20) . rotate3 0.5 . (+.+.+ V3 2.5 0 0)
-- . rotate3 (negate 0.5)
-- | otherwise = (+.+.+ V3 2.5 0 20)
chestPQ :: Creature -> Point3Q
chestPQ cr = backPQ cr `Q.comp` (0,Q.qz pi)
translateToChest :: Creature -> SPic -> SPic
translateToChest cr = overPosSP (\p -> fst $ chestPQ cr `Q.comp` (p,Q.qID))
-- | oneH cr = rotateSP 0.5
-- -- | twists cr = translateSPxy 0 5 . rotateSP (-1)
-- | twists cr = rotateSP (-1)
-- | otherwise = id
backPQ :: Creature -> Point3Q
backPQ cr
| oneH cr = (V3 0 0 10, Q.qz 0.5)
| twists cr = (V3 0 3 10, Q.qz (-1.5))
| otherwise = (V3 0 0 10, Q.qz 0)
--translateToBack :: Creature -> Point3 -> SPic -> SPic
--translateToBack cr p
-- | oneH cr = rotateSP 0.5 . translateSP p
-- | twists cr = rotateSP (-1.5) . translateSP (p - V3 5 0 0)
-- | otherwise = translateSP p
--shoulderSP :: SPic -> SPic
--shoulderSP = translateSPz 20
--
--waistSP :: SPic -> SPic
--waistSP = translateSPz 10