chiark / gitweb /
shapelib: wip, still does not compile
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Sun, 20 Sep 2020 22:27:02 +0000 (23:27 +0100)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Sun, 20 Sep 2020 22:27:02 +0000 (23:27 +0100)
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
src/pieces.rs
src/shapelib.rs

index 842ddfdb54a84a07c17403c7b3f9f975cc8a3cf8..d5df249ac0e596a8717c0d53318e6688fdb0942f 100644 (file)
@@ -18,7 +18,7 @@ struct SimpleShape {
   colours : ColourMap,
 }
 
-const SELECT_SCALE : f64 = 1.1;
+pub const SELECT_SCALE : f64 = 1.1;
 
 #[derive(Copy,Clone,Debug,Error,Serialize,Deserialize)]
 pub enum SVGProcessingError {
index 1716c5b3d55db3c0a1bf47384c8b8c560ef16332..ad007ac7132cc1de06f788c13b9f6225beeb76e1 100644 (file)
@@ -291,6 +291,15 @@ struct Circle { diam: f64 }
 
 #[typetag::serde(name="Circle")]
 impl Outline for Circle {
+  #[throws(IE)]
+  fn surround_path(&self, _pri : &PieceRenderInstructions) -> Html {
+    svg_circle_path(self.diam * SELECT_SCALE)?
+  }
+  #[throws(IE)]
+  fn thresh_dragraise(&self, _pri : &PieceRenderInstructions)
+                      -> Option<Coord> {
+    Some(self.diam / 2)
+  }
 }
 
 #[derive(Deserialize,Debug)]
@@ -299,6 +308,7 @@ struct CircleDefn { }
 impl OutlineDefn for CircleDefn {
   #[throws(LibraryLoadError)]
   fn check(&self, lgd: &GroupData) { Self::get_size(lgd)?; }
+  #[throws(InternalError)]
   fn load(&self, lgd: &GroupData) -> Box<dyn Outline> {
     Box::new(Circle {
       diam: Self::get_size(lgd).unrap()