FIX: crash when slicing(make perimeters)
Udesk: https://bblcs.s5.udesk.cn/entry/ticket/show/2193141 Change-Id: Ibb2e20e9e6d159821e96dc81fd4e384f773a39dc
This commit is contained in:
parent
55a1141e67
commit
297e922daf
1 changed files with 6 additions and 0 deletions
|
@ -782,6 +782,9 @@ void annotate_inside_outside(VD &vd, const Lines &lines)
|
||||||
|
|
||||||
for (const VD::edge_type &edge : vd.edges())
|
for (const VD::edge_type &edge : vd.edges())
|
||||||
if (edge.vertex1() == nullptr) {
|
if (edge.vertex1() == nullptr) {
|
||||||
|
if (edge.vertex0() == nullptr)
|
||||||
|
continue;
|
||||||
|
|
||||||
// Infinite Voronoi edge separating two Point sites or a Point site and a Segment site.
|
// Infinite Voronoi edge separating two Point sites or a Point site and a Segment site.
|
||||||
// Infinite edge is always outside and it references at least one valid vertex.
|
// Infinite edge is always outside and it references at least one valid vertex.
|
||||||
assert(edge.is_infinite());
|
assert(edge.is_infinite());
|
||||||
|
@ -888,6 +891,9 @@ void annotate_inside_outside(VD &vd, const Lines &lines)
|
||||||
for (const VD::edge_type &edge : vd.edges()) {
|
for (const VD::edge_type &edge : vd.edges()) {
|
||||||
assert((edge_category(edge) == EdgeCategory::Unknown) == (edge_category(edge.twin()) == EdgeCategory::Unknown));
|
assert((edge_category(edge) == EdgeCategory::Unknown) == (edge_category(edge.twin()) == EdgeCategory::Unknown));
|
||||||
if (edge_category(edge) == EdgeCategory::Unknown) {
|
if (edge_category(edge) == EdgeCategory::Unknown) {
|
||||||
|
if (!edge.is_finite())
|
||||||
|
continue;
|
||||||
|
|
||||||
assert(edge.is_finite());
|
assert(edge.is_finite());
|
||||||
const VD::cell_type &cell = *edge.cell();
|
const VD::cell_type &cell = *edge.cell();
|
||||||
const VD::cell_type &cell2 = *edge.twin()->cell();
|
const VD::cell_type &cell2 = *edge.twin()->cell();
|
||||||
|
|
Loading…
Reference in a new issue