mirror of https://codeberg.org/topola/topola.git
Remove created dot if drawing new seg or bend fails
This commit is contained in:
parent
84a5b81032
commit
53c24b1a14
22
src/draw.rs
22
src/draw.rs
|
|
@ -154,9 +154,16 @@ impl<'a> Draw<'a> {
|
||||||
.add_dot(self.layout.primitive(head.dot).weight())?;
|
.add_dot(self.layout.primitive(head.dot).weight())?;
|
||||||
let net = self.layout.primitive(head.dot).weight().net;
|
let net = self.layout.primitive(head.dot).weight().net;
|
||||||
|
|
||||||
let bend = self
|
let bend = match self
|
||||||
.layout
|
.layout
|
||||||
.add_bend(head.dot, bend_to, around, BendWeight { net, cw })?;
|
.add_bend(head.dot, bend_to, around, BendWeight { net, cw })
|
||||||
|
{
|
||||||
|
Err(err) => {
|
||||||
|
self.layout.remove(bend_to);
|
||||||
|
return Err(err);
|
||||||
|
}
|
||||||
|
Ok(bend) => bend,
|
||||||
|
};
|
||||||
Ok(Head {
|
Ok(Head {
|
||||||
dot: bend_to,
|
dot: bend_to,
|
||||||
segbend: Some(Segbend { bend, dot, seg }),
|
segbend: Some(Segbend { bend, dot, seg }),
|
||||||
|
|
@ -192,9 +199,16 @@ impl<'a> Draw<'a> {
|
||||||
r: width / 2.0,
|
r: width / 2.0,
|
||||||
},
|
},
|
||||||
})?;
|
})?;
|
||||||
let seg = self
|
let seg = match self
|
||||||
.layout
|
.layout
|
||||||
.add_seg(head.dot, to_index, SegWeight { net, width })?;
|
.add_seg(head.dot, to_index, SegWeight { net, width })
|
||||||
|
{
|
||||||
|
Err(err) => {
|
||||||
|
self.layout.remove(to_index);
|
||||||
|
return Err(err);
|
||||||
|
}
|
||||||
|
Ok(bend) => bend,
|
||||||
|
};
|
||||||
Ok((
|
Ok((
|
||||||
Head {
|
Head {
|
||||||
dot: to_index,
|
dot: to_index,
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue