From: Ian Jackson Date: Sun, 12 Jul 2020 14:20:49 +0000 (+0100) Subject: rework trait outline etc. X-Git-Tag: otter-0.2.0~1358 X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=commitdiff_plain;h=ccb29eefe05286b831814d8fe8a9d53fba531a8d;p=otter.git rework trait outline etc. --- diff --git a/src/gamestate.rs b/src/gamestate.rs index b614abc2..a96d6e9b 100644 --- a/src/gamestate.rs +++ b/src/gamestate.rs @@ -66,7 +66,8 @@ pub struct LogEntry { pub trait Piece : Send + Debug { fn svg_piece(&self, pri : &PieceRenderInstructions) -> String; - fn svg_select(&self, pri : &PieceRenderInstructions) -> String; + fn outline_path(&self, pri : &PieceRenderInstructions) -> String; + fn surround_path(&self, pri : &PieceRenderInstructions) -> String; fn svg_x_ids(&self) -> VisiblePieceIdSvgIds; fn svg_x_defs(&self, pri : &PieceRenderInstructions) -> String; fn thresh_dragraise(&self, pri : &PieceRenderInstructions) @@ -140,9 +141,9 @@ impl PieceState { pri.id_piece(), dragraise, pr.p.svg_piece(&pri)).unwrap(); - write!(defs, r##"{}"##, + write!(defs, r##""##, pri.id_select(), - pr.p.svg_select(&pri)).unwrap(); + pr.p.surround_path(&pri)).unwrap(); write!(defs, "{}", pr.p.svg_x_defs(&pri)).unwrap(); defs } diff --git a/src/pieces.rs b/src/pieces.rs index eef24047..47093ddc 100644 --- a/src/pieces.rs +++ b/src/pieces.rs @@ -82,22 +82,29 @@ eprintln!("rescaled by {}: {} as {}",scale,&input,&out); impl Piece for SimpleShape { fn svg_piece(&self, pri : &PieceRenderInstructions) -> String { - format!(r##""##, - self.colours[pri.face], - pri.id_x("base")) + format!(r##""##, + self.colours[pri.face], self.path) } - fn thresh_dragraise(&self, _pri : &PieceRenderInstructions) - -> Option { - Some(self.approx_dia / 2) + fn outline_path(&self, _pri : &PieceRenderInstructions) -> String { + self.path.clone() + } + fn surround_path(&self, _pri : &PieceRenderInstructions) -> String { + self.scaled_path.clone() } + /* fn svg_select(&self, pri : &PieceRenderInstructions) -> String { format!(r##""##, SELECT_SCALE, pri.id_x("base")) } +*/ + fn thresh_dragraise(&self, _pri : &PieceRenderInstructions) + -> Option { + Some(self.approx_dia / 2) + } fn svg_x_ids(&self) -> VisiblePieceIdSvgIds { &["base"] } - fn svg_x_defs(&self, pri : &PieceRenderInstructions) -> String { - format!(r#""#, pri.id_x("base"), self.path) + fn svg_x_defs(&self, _pri : &PieceRenderInstructions) -> String { + "".to_owned() } fn describe_html(&self, face : Option) -> String { if let Some(face) = face {