kninnug/Constrainautor

Infinite loop: no further intersect after non-convex

kninnug opened this issue · 0 comments

When trying to constrain the following:

{
    "points": [
        [544, 480],
        [512, 192],
        [544, 160],
        [512, 384],
        [512, 224],
        [544, 320],
        [704, 128],
        [576, 352],
        [672, 352],
        [576, 128],
        [608, 384],
        [672, 96],
        [640, 96],
        [608, 160],
        [672, 160],
        [608, 288]
    ],
    "edges": [
        [1, 2],
        [4, 5],
        [5, 0],
        [6, 8],
        [8, 7],
        [7, 9]
    ]
}

constrainOne(7, 9) fails with Infinite loop: no further intersect after non-convex, which looks like:

issue3

This is because the Delaunay condition needs to be restored after each call to constrainOne, rather than at the end.