mirror of https://codeberg.org/topola/topola.git
shape: Fix bend-seg intersection
By making zero-length bends non-intersectable.
This commit is contained in:
parent
4ec32c97ba
commit
ce72a2ba4b
|
|
@ -194,10 +194,12 @@ pub fn intersect_circle_segment(circle: &Circle, segment: &Line) -> Vec<Point> {
|
|||
pub fn between_vectors(p: Point, from: Point, to: Point) -> bool {
|
||||
let cross = cross_product(from, to);
|
||||
|
||||
if cross >= 0. {
|
||||
cross_product(from, p) >= 0. && cross_product(p, to) >= 0.
|
||||
if cross > 0.0 {
|
||||
cross_product(from, p) >= 0.0 && cross_product(p, to) >= 0.0
|
||||
} else if cross < 0.0 {
|
||||
cross_product(from, p) >= 0.0 || cross_product(p, to) >= 0.0
|
||||
} else {
|
||||
cross_product(from, p) >= 0. || cross_product(p, to) >= 0.
|
||||
false
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -136,7 +136,7 @@ impl Shape {
|
|||
Shape::Dot(..) => unreachable!(),
|
||||
Shape::Seg(other) => seg.polygon().intersects(&other.polygon()),
|
||||
Shape::Bend(other) => {
|
||||
/*for segment in seg.polygon().exterior().lines() {
|
||||
for segment in seg.polygon().exterior().lines() {
|
||||
let inner_circle = other.inner_circle();
|
||||
let outer_circle = other.outer_circle();
|
||||
|
||||
|
|
@ -151,7 +151,7 @@ impl Shape {
|
|||
return true;
|
||||
}
|
||||
}
|
||||
}*/
|
||||
}
|
||||
|
||||
false
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue