-
Notifications
You must be signed in to change notification settings - Fork 84
Description
Hi. I'm playing with your library and sometimes I get weird results (with particular shapes). When I subtract a box from a pipe it usually ends with error "MCUT HALFEDGE MESH ERROR: cannot insert new face with descriptor". And I get these logs (but it sometimes ends without logs):
MCUT HALFEDGE MESH ERROR: cannot insert new face with descriptor f825
Ordered vertices in f825:[v443 v444 v405 v419 v407 v439 v438 v411 v409 v437 v423 v429 ]
REASON: existing face f813 already uses halfedge: h2309(v438->v411)
Ordered vertices in f813: [v385 v384 v438 v411 v409 v437 v423 v429 v443 v459 ]
opp(h2309) = h2308; face(opp(h2309)) = 764
MCUT HALFEDGE MESH ERROR: cannot insert new face with descriptor f825
Ordered vertices in f825:[v443 v448 v442 v542 v498 v490 v486 v473 v469 v460 v459 v457 v467 v442 v446 v441 v431 v417 v433 v392 v393 v413 v415 v421 v427 v425 v403 v444 ]
REASON: existing face f810 already uses halfedge: h2287(v443->v448)
Ordered vertices in f810: [v455 v450 v452 v479 v483 v495 v527 v498 v490 v486 v473 v469 v460 v459 v443 v448 v442 v446 v441 v431 v417 v433 v392 v385 v459 v457 v467 v541 ]
opp(h2287) = h2286; face(opp(h2287)) = 795
MCUT HALFEDGE MESH ERROR: cannot insert new face with descriptor f825
Ordered vertices in f825:[v439 v435 v434 v438 ]
REASON: existing face f818 already uses halfedge: h2311(v434->v438)
Ordered vertices in f818: [v386 v434 v438 v384 ]
opp(h2311) = h2310; face(opp(h2311)) = 764
MCUT HALFEDGE MESH ERROR: cannot insert new face with descriptor f825
Ordered vertices in f825:[v442 v467 v466 v529 v512 v508 v502 v505 v543 v542 ]
REASON: existing face f808 already uses halfedge: h2509(v467->v466)
Ordered vertices in f808: [v529 v512 v508 v502 v505 v516 v514 v522 v537 v541 v467 v466 ]
opp(h2509) = h2508; face(opp(h2509)) = 796
MCUT HALFEDGE MESH ERROR: cannot insert new face with descriptor f825
Ordered vertices in f825:[v542 v499 v498 ]
REASON: existing face f812 already uses halfedge: h2559(v499->v498)
Ordered vertices in f812: [v526 v499 v498 v527 ]
opp(h2559) = h2558; face(opp(h2559)) = 36
MCUT HALFEDGE MESH ERROR: cannot insert new face with descriptor f825
Ordered vertices in f825:[v392 v394 v395 v393 ]
REASON: existing face f814 already uses halfedge: h2365(v392->v394)
Ordered vertices in f814: [v394 v385 v392 ]
opp(h2365) = h2364; face(opp(h2365)) = 35
MCUT HALFEDGE MESH ERROR: cannot insert new face with descriptor f825
Ordered vertices in f825:[v435 v397 v396 v434 ]
REASON: existing face f822 already uses halfedge: h2313(v396->v434)
Ordered vertices in f822: [v396 v434 v386 ]
opp(h2313) = h2312; face(opp(h2313)) = 764
MCUT HALFEDGE MESH ERROR: cannot insert new face with descriptor f825
Ordered vertices in f825:[v505 v504 v544 v543 ]
REASON: existing face f809 already uses halfedge: h2571(v505->v504)
Ordered vertices in f809: [v504 v517 v516 v505 ]
opp(h2571) = h2570; face(opp(h2571)) = 765
MCUT HALFEDGE MESH ERROR: cannot insert new face with descriptor f826
Ordered vertices in f826:[v542 v545 v500 v499 ]
REASON: existing face f816 already uses halfedge: h2561(v500->v499)
Ordered vertices in f816: [v525 v500 v499 v526 ]
opp(h2561) = h2560; face(opp(h2561)) = 36
MCUT HALFEDGE MESH ERROR: cannot insert new face with descriptor f826
Ordered vertices in f826:[v394 v400 v401 v395 ]
REASON: existing face f819 already uses halfedge: h2363(v394->v400)
Ordered vertices in f819: [v400 v387 v385 v394 ]
opp(h2363) = h2362; face(opp(h2363)) = 35
MCUT HALFEDGE MESH ERROR: cannot insert new face with descriptor f826
Ordered vertices in f826:[v397 v406 v418 v404 v402 v424 v426 v398 v399 v428 v422 v436 v408 v410 v396 ]
REASON: existing face f824 already uses halfedge: h2335(v399->v428)
Ordered vertices in f824: [v399 v428 v422 v436 v408 v410 v396 v386 ]
opp(h2335) = h2334; face(opp(h2335)) = 797
MCUT HALFEDGE MESH ERROR: cannot insert new face with descriptor f826
Ordered vertices in f826:[v504 v503 v544 ]
REASON: existing face f811 already uses halfedge: h2569(v504->v503)
Ordered vertices in f811: [v503 v518 v517 v504 ]
opp(h2569) = h2568; face(opp(h2569)) = 765
MCUT HALFEDGE MESH ERROR: cannot insert new face with descriptor f827
Ordered vertices in f827:[v545 v544 v464 v458 v461 v468 v474 v487 v491 v500 ]
REASON: existing face f820 already uses halfedge: h2503(v464->v458)
Ordered vertices in f820: [v458 v461 v468 v474 v487 v491 v500 v525 v494 v482 v478 v477 v464 ]
opp(h2503) = h2502; face(opp(h2503)) = 796
MCUT HALFEDGE MESH ERROR: cannot insert new face with descriptor f827
Ordered vertices in f827:[v400 v432 v416 v430 v440 v445 v447 v399 v398 v420 v414 v412 v401 ]
REASON: existing face f823 already uses halfedge: h2361(v400->v432)
Ordered vertices in f823: [v432 v416 v430 v440 v445 v447 v399 v386 v387 v400 ]
opp(h2361) = h2360; face(opp(h2361)) = 35
MCUT HALFEDGE MESH ERROR: cannot insert new face with descriptor f827
Ordered vertices in f827:[v503 v501 v509 v513 v528 v465 v464 v544 ]
REASON: existing face f815 already uses halfedge: h2567(v503->v501)
Ordered vertices in f815: [v501 v509 v513 v528 v465 v464 v477 v451 v449 v456 v536 v521 v515 v518 v503 ]
opp(h2567) = h2566; face(opp(h2567)) = 765
Also, I want to note that numbers of vertices in the logs every time differs.
In the screenshot below You will see result of subtracting of two boxes from the pipe. The first subtraction ends with a error but the second is succeed.
In the next screenshot both of them are succeed.
Sometimes they both are failed. The result changes on every new subtraction. Data doesn't change these times, I only restart the operations. Bellow you will see the STL files of the shapes that I use for testing.
This behavior repeats with pipes. If I use other shapes everything works just fine for example subtracting cylinders from box, box from box, cylinder from cylinder and so on. Could you please help? What could go wrong? Thanks in advice.
Attention: I use the library on the iOS platform version 18.1