mirror of https://codeberg.org/topola/topola.git
layout: remove inserted segbend if updating bows fails
This commit is contained in:
parent
4365284d47
commit
cf8a317f24
|
|
@ -277,13 +277,17 @@ impl<R: RulesTrait> Layout<R> {
|
||||||
}
|
}
|
||||||
|
|
||||||
if let Some(outer) = self.primitive(segbend.bend).outer() {
|
if let Some(outer) = self.primitive(segbend.bend).outer() {
|
||||||
self.update_this_and_outward_bows(outer);
|
self.update_this_and_outward_bows(outer).map_err(|err| {
|
||||||
|
let joint = self.primitive(segbend.bend).other_joint(segbend.dot);
|
||||||
|
self.remove_segbend(&segbend, joint.into());
|
||||||
|
err
|
||||||
|
})?;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Segs must not cross.
|
// Segs must not cross.
|
||||||
if let Some(collision) = self.detect_collision(segbend.seg.into()) {
|
if let Some(collision) = self.detect_collision(segbend.seg.into()) {
|
||||||
let end = self.primitive(segbend.bend).other_joint(segbend.dot);
|
let joint = self.primitive(segbend.bend).other_joint(segbend.dot);
|
||||||
self.remove_segbend(&segbend, end.into());
|
self.remove_segbend(&segbend, joint.into());
|
||||||
return Err(collision.into());
|
return Err(collision.into());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue