Fix winding of corner points for line blocks
This commit is contained in:
File diff suppressed because one or more lines are too long
@@ -69,7 +69,7 @@ plLineBlock basePane blwidth a b gw =
|
||||
blockCenPs = snd $ evenOddSplit psOnLine
|
||||
numBlocks = length blockCenPs
|
||||
is = [0 .. numBlocks - 1]
|
||||
cornerPoints = rectWH halfBlockWidth depth -- goes clockwise around the block
|
||||
cornerPoints = reverse $ rectWH halfBlockWidth depth -- goes clockwise around the block
|
||||
cornersAt p = fmap ((p +.+) . rotateV (argV (b -.- a))) cornerPoints
|
||||
linesAt p = loopPairs $ cornersAt p
|
||||
wlid = IM.newKey $ gw ^. cWorld . lWorld . walls
|
||||
|
||||
@@ -22,13 +22,14 @@ import LensHelp
|
||||
import RandomHelp
|
||||
|
||||
cenLasTur :: Room
|
||||
cenLasTur =
|
||||
roomNgon 8 200 & rmPmnts
|
||||
.~ [ putLasTurret 0.02
|
||||
-- .~ [ putTurret autoRifle 0.02
|
||||
, heightWallPS (resetPLUse $ rprBoolShift (const . isInLnk) (shiftInBy 100)) 30 covershape
|
||||
, mntLightLnkCond $ rprBool $ const . isInLnk
|
||||
]
|
||||
cenLasTur = roomNgon 8 200 & rmPmnts .~
|
||||
[ putLasTurret 0.02
|
||||
, heightWallPS
|
||||
(resetPLUse $ rprBoolShift (const . isInLnk) (shiftInBy 100))
|
||||
30
|
||||
covershape
|
||||
, mntLightLnkCond $ rprBool $ const . isInLnk
|
||||
]
|
||||
where
|
||||
covershape = rectNSWE 10 (-10) (-20) 20
|
||||
|
||||
|
||||
@@ -204,12 +204,6 @@ isLeftOf x y = isLeftOfA (argV x) (argV y)
|
||||
diffAngles :: Float -> Float -> Float
|
||||
diffAngles x y = nearZeroAngle $ x - y
|
||||
|
||||
mixAngles :: Float -> Float -> Float -> Float
|
||||
mixAngles frac a1 a2
|
||||
| abs (a1 - a2) <= pi = normalizeAngle $ frac * a1 + (1 - frac) * a2
|
||||
| a1 > a2 = mixAngles frac (a1 - 2 * pi) a2
|
||||
| otherwise = mixAngles frac (a1 + 2 * pi) a2
|
||||
|
||||
-- | Return Just a point if it is inside a circle, Nothing otherwise.
|
||||
pointInCircle :: Point2 -> Float -> Point2 -> Maybe Point2
|
||||
pointInCircle p r c
|
||||
|
||||
Reference in New Issue
Block a user