chiark / gitweb /
hidden hand: Fix/reorganise region computation
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Sun, 7 Mar 2021 10:54:40 +0000 (10:54 +0000)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Sun, 7 Mar 2021 10:54:40 +0000 (10:54 +0000)
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
src/hand.rs

index 4235901208f84647397fd0cb7881c1613e2ad847..aa22e9bbd86917d248a97f613e5dc573497fcad0 100644 (file)
@@ -163,14 +163,16 @@ impl PieceTrait for Hand {
           dasharray,
           desc: new_desc,
         });
-        let pos = gpc.pos;
+        let centre = gpc.pos;
         let (region, views) = (||{
+          dbgc!("claiming region");
+          let offset = (self.shape.outline.xy * 0.5)?;
+          let offset = offset.try_map(
+            |c| c.floor().to_i32().ok_or(CoordinateOverflow)
+          )?;
           let region = AreaC(
             [-1,1].iter().map(|&signum| Ok::<_,IE>({
-              let xy = self.shape.outline.xy.try_map(
-                |c| c.floor().to_i32().ok_or(CoordinateOverflow)
-              )?;
-              (pos + (xy * signum)?)?
+              (centre + (offset * signum)?)?
             }))
               .collect::<Result<ArrayVec<_>,_>>()?
               .into_inner().unwrap()