@@ -357,144 +357,6 @@ bool ImplicitTriangulation::TTK_TRIANGULATION_INTERNAL(isTriangleOnBoundary)(
357357 return false ;
358358}
359359
360- template <typename Derived>
361- int ImplicitTriangulationCRTP<Derived>::TTK_TRIANGULATION_INTERNAL(
362- getVertexNeighbor)(const SimplexId &vertexId,
363- const int &localNeighborId,
364- SimplexId &neighborId) const {
365-
366- #ifndef TTK_ENABLE_KAMIKAZE
367- if (localNeighborId < 0
368- or localNeighborId >= getVertexNeighborNumber (vertexId))
369- return -1 ;
370- #endif // !TTK_ENABLE_KAMIKAZE
371-
372- switch (this ->underlying ().getVertexPosition (vertexId)) {
373- case VertexPosition::CENTER_3D:
374- neighborId = vertexId + this ->vertexNeighborABCDEFGH_ [localNeighborId];
375- break ;
376- case VertexPosition::FRONT_FACE_3D:
377- neighborId = vertexId + this ->vertexNeighborABCD_ [localNeighborId];
378- break ;
379- case VertexPosition::BACK_FACE_3D:
380- neighborId = vertexId + this ->vertexNeighborEFGH_ [localNeighborId];
381- break ;
382- case VertexPosition::TOP_FACE_3D:
383- neighborId = vertexId + this ->vertexNeighborAEFB_ [localNeighborId];
384- break ;
385- case VertexPosition::BOTTOM_FACE_3D:
386- neighborId = vertexId + this ->vertexNeighborGHDC_ [localNeighborId];
387- break ;
388- case VertexPosition::LEFT_FACE_3D:
389- neighborId = vertexId + this ->vertexNeighborAEGC_ [localNeighborId];
390- break ;
391- case VertexPosition::RIGHT_FACE_3D:
392- neighborId = vertexId + this ->vertexNeighborBFHD_ [localNeighborId];
393- break ;
394- case VertexPosition::TOP_FRONT_EDGE_3D: // ab
395- neighborId = vertexId + this ->vertexNeighborAB_ [localNeighborId];
396- break ;
397- case VertexPosition::BOTTOM_FRONT_EDGE_3D: // cd
398- neighborId = vertexId + this ->vertexNeighborCD_ [localNeighborId];
399- break ;
400- case VertexPosition::LEFT_FRONT_EDGE_3D: // ac
401- neighborId = vertexId + this ->vertexNeighborAC_ [localNeighborId];
402- break ;
403- case VertexPosition::RIGHT_FRONT_EDGE_3D: // bd
404- neighborId = vertexId + this ->vertexNeighborBD_ [localNeighborId];
405- break ;
406- case VertexPosition::TOP_BACK_EDGE_3D: // ef
407- neighborId = vertexId + this ->vertexNeighborEF_ [localNeighborId];
408- break ;
409- case VertexPosition::BOTTOM_BACK_EDGE_3D: // gh
410- neighborId = vertexId + this ->vertexNeighborGH_ [localNeighborId];
411- break ;
412- case VertexPosition::LEFT_BACK_EDGE_3D: // eg
413- neighborId = vertexId + this ->vertexNeighborEG_ [localNeighborId];
414- break ;
415- case VertexPosition::RIGHT_BACK_EDGE_3D: // fh
416- neighborId = vertexId + this ->vertexNeighborFH_ [localNeighborId];
417- break ;
418- case VertexPosition::TOP_LEFT_EDGE_3D: // ae
419- neighborId = vertexId + this ->vertexNeighborAE_ [localNeighborId];
420- break ;
421- case VertexPosition::TOP_RIGHT_EDGE_3D: // bf
422- neighborId = vertexId + this ->vertexNeighborBF_ [localNeighborId];
423- break ;
424- case VertexPosition::BOTTOM_LEFT_EDGE_3D: // cg
425- neighborId = vertexId + this ->vertexNeighborCG_ [localNeighborId];
426- break ;
427- case VertexPosition::BOTTOM_RIGHT_EDGE_3D: // dh
428- neighborId = vertexId + this ->vertexNeighborDH_ [localNeighborId];
429- break ;
430- case VertexPosition::TOP_LEFT_FRONT_CORNER_3D: // a
431- neighborId = vertexId + this ->vertexNeighborA_ [localNeighborId];
432- break ;
433- case VertexPosition::TOP_RIGHT_FRONT_CORNER_3D: // b
434- neighborId = vertexId + this ->vertexNeighborB_ [localNeighborId];
435- break ;
436- case VertexPosition::BOTTOM_LEFT_FRONT_CORNER_3D: // c
437- neighborId = vertexId + this ->vertexNeighborC_ [localNeighborId];
438- break ;
439- case VertexPosition::BOTTOM_RIGHT_FRONT_CORNER_3D: // d
440- neighborId = vertexId + this ->vertexNeighborD_ [localNeighborId];
441- break ;
442- case VertexPosition::TOP_LEFT_BACK_CORNER_3D: // e
443- neighborId = vertexId + this ->vertexNeighborE_ [localNeighborId];
444- break ;
445- case VertexPosition::TOP_RIGHT_BACK_CORNER_3D: // f
446- neighborId = vertexId + this ->vertexNeighborF_ [localNeighborId];
447- break ;
448- case VertexPosition::BOTTOM_LEFT_BACK_CORNER_3D: // g
449- neighborId = vertexId + this ->vertexNeighborG_ [localNeighborId];
450- break ;
451- case VertexPosition::BOTTOM_RIGHT_BACK_CORNER_3D: // h
452- neighborId = vertexId + this ->vertexNeighborH_ [localNeighborId];
453- break ;
454- case VertexPosition::CENTER_2D:
455- neighborId = vertexId + this ->vertexNeighbor2dABCD_ [localNeighborId];
456- break ;
457- case VertexPosition::TOP_EDGE_2D:
458- neighborId = vertexId + this ->vertexNeighbor2dAB_ [localNeighborId];
459- break ;
460- case VertexPosition::BOTTOM_EDGE_2D:
461- neighborId = vertexId + this ->vertexNeighbor2dCD_ [localNeighborId];
462- break ;
463- case VertexPosition::LEFT_EDGE_2D:
464- neighborId = vertexId + this ->vertexNeighbor2dAC_ [localNeighborId];
465- break ;
466- case VertexPosition::RIGHT_EDGE_2D:
467- neighborId = vertexId + this ->vertexNeighbor2dBD_ [localNeighborId];
468- break ;
469- case VertexPosition::TOP_LEFT_CORNER_2D: // a
470- neighborId = vertexId + this ->vertexNeighbor2dA_ [localNeighborId];
471- break ;
472- case VertexPosition::TOP_RIGHT_CORNER_2D: // b
473- neighborId = vertexId + this ->vertexNeighbor2dB_ [localNeighborId];
474- break ;
475- case VertexPosition::BOTTOM_LEFT_CORNER_2D: // c
476- neighborId = vertexId + this ->vertexNeighbor2dC_ [localNeighborId];
477- break ;
478- case VertexPosition::BOTTOM_RIGHT_CORNER_2D: // d
479- neighborId = vertexId + this ->vertexNeighbor2dD_ [localNeighborId];
480- break ;
481- case VertexPosition::CENTER_1D:
482- neighborId = (localNeighborId == 0 ? vertexId + 1 : vertexId - 1 );
483- break ;
484- case VertexPosition::LEFT_CORNER_1D:
485- neighborId = vertexId + 1 ;
486- break ;
487- case VertexPosition::RIGHT_CORNER_1D:
488- neighborId = vertexId - 1 ;
489- break ;
490- default :
491- neighborId = -1 ;
492- break ;
493- }
494-
495- return 0 ;
496- }
497-
498360const vector<vector<SimplexId>> *
499361 ImplicitTriangulation::TTK_TRIANGULATION_INTERNAL (getVertexNeighbors)() {
500362 if (vertexNeighborList_.empty ()) {
@@ -2725,6 +2587,194 @@ const vector<vector<SimplexId>> *
27252587}
27262588
27272589int ImplicitTriangulation::preconditionVertexNeighborsInternal () {
2590+ if (dimensionality_ == 3 ) {
2591+ constexpr std::array<std::array<ttk::SimplexId, 3 >, 64 * 14 > localLUT{
2592+ {{0 , -1 , -1 }, {1 , -1 , -1 }, {0 , 0 , -1 }, {1 , 0 , -1 }, {0 , -1 , 0 },
2593+ {1 , -1 , 0 }, {1 , 0 , 0 }, {-1 , 0 , 1 }, {0 , 0 , 1 }, {-1 , 0 , 0 },
2594+ {-1 , 1 , 0 }, {0 , 1 , 0 }, {-1 , 1 , 1 }, {0 , 1 , 1 }, {0 , -1 , -1 },
2595+ {1 , -1 , -1 }, {0 , 0 , -1 }, {1 , 0 , -1 }, {0 , -1 , 0 }, {1 , -1 , 0 },
2596+ {1 , 0 , 0 }, {0 , 1 , 0 }, {0 , 1 , 1 }, {0 , 0 , 1 }, {0 , 0 , 0 },
2597+ {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {-1 , 0 , 0 }, {-1 , 1 , 0 },
2598+ {0 , 1 , 0 }, {-1 , 0 , 1 }, {0 , 0 , 1 }, {-1 , 1 , 1 }, {0 , 1 , 1 },
2599+ {0 , 0 , -1 }, {0 , -1 , -1 }, {0 , -1 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 },
2600+ {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 },
2601+ {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 },
2602+ {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 },
2603+ {0 , 0 , 0 }, {-1 , 0 , 0 }, {-1 , 1 , 0 }, {0 , 1 , 0 }, {-1 , 0 , 1 },
2604+ {0 , 0 , 1 }, {-1 , 1 , 1 }, {0 , 1 , 1 }, {1 , 0 , 0 }, {1 , 0 , -1 },
2605+ {0 , 0 , -1 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 },
2606+ {1 , 0 , 0 }, {0 , 1 , 0 }, {0 , 0 , 1 }, {0 , 1 , 1 }, {0 , 0 , -1 },
2607+ {1 , 0 , -1 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 },
2608+ {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {-1 , 0 , 0 },
2609+ {-1 , 1 , 0 }, {0 , 1 , 0 }, {-1 , 0 , 1 }, {0 , 0 , 1 }, {-1 , 1 , 1 },
2610+ {0 , 1 , 1 }, {0 , 0 , -1 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 },
2611+ {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 },
2612+ {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 },
2613+ {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 },
2614+ {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , -1 , -1 }, {1 , -1 , -1 }, {0 , 0 , -1 },
2615+ {1 , 0 , -1 }, {0 , -1 , 0 }, {1 , -1 , 0 }, {1 , 0 , 0 }, {-1 , 0 , 0 },
2616+ {-1 , 0 , 1 }, {0 , 0 , 1 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 },
2617+ {0 , 0 , 0 }, {0 , -1 , -1 }, {1 , -1 , -1 }, {0 , 0 , -1 }, {1 , 0 , -1 },
2618+ {0 , -1 , 0 }, {1 , -1 , 0 }, {1 , 0 , 0 }, {0 , 0 , 1 }, {0 , 0 , 0 },
2619+ {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 },
2620+ {0 , -1 , 0 }, {-1 , 0 , 0 }, {-1 , 0 , 1 }, {0 , 0 , 1 }, {0 , -1 , -1 },
2621+ {0 , 0 , -1 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 },
2622+ {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 },
2623+ {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 },
2624+ {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 },
2625+ {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 },
2626+ {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 },
2627+ {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 },
2628+ {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 },
2629+ {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 },
2630+ {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 },
2631+ {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 },
2632+ {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 },
2633+ {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 },
2634+ {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 },
2635+ {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 },
2636+ {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {-1 , 0 , 0 },
2637+ {-1 , 1 , 0 }, {0 , 1 , 0 }, {-1 , 0 , 1 }, {0 , 0 , 1 }, {-1 , 1 , 1 },
2638+ {0 , 1 , 1 }, {0 , -1 , 0 }, {1 , -1 , 0 }, {1 , 0 , 0 }, {0 , 0 , 0 },
2639+ {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , -1 , 0 }, {1 , -1 , 0 },
2640+ {1 , 0 , 0 }, {0 , 0 , 1 }, {0 , 1 , 0 }, {0 , 1 , 1 }, {0 , 0 , 0 },
2641+ {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 },
2642+ {0 , 0 , 0 }, {0 , 0 , 0 }, {-1 , 0 , 0 }, {-1 , 1 , 0 }, {0 , 1 , 0 },
2643+ {-1 , 0 , 1 }, {0 , 0 , 1 }, {-1 , 1 , 1 }, {0 , 1 , 1 }, {0 , -1 , 0 },
2644+ {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 },
2645+ {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 },
2646+ {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 },
2647+ {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 },
2648+ {-1 , 0 , 0 }, {-1 , 1 , 0 }, {0 , 1 , 0 }, {-1 , 0 , 1 }, {0 , 0 , 1 },
2649+ {-1 , 1 , 1 }, {0 , 1 , 1 }, {1 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 },
2650+ {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {1 , 0 , 0 },
2651+ {0 , 1 , 0 }, {0 , 0 , 1 }, {0 , 1 , 1 }, {0 , 0 , 0 }, {0 , 0 , 0 },
2652+ {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 },
2653+ {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {-1 , 0 , 0 }, {-1 , 1 , 0 },
2654+ {0 , 1 , 0 }, {-1 , 0 , 1 }, {0 , 0 , 1 }, {-1 , 1 , 1 }, {0 , 1 , 1 },
2655+ {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 },
2656+ {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 },
2657+ {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 },
2658+ {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 },
2659+ {0 , 0 , 0 }, {0 , -1 , 0 }, {-1 , 0 , 0 }, {-1 , 0 , 1 }, {0 , 0 , 1 },
2660+ {1 , -1 , 0 }, {1 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 },
2661+ {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 },
2662+ {0 , -1 , 0 }, {1 , -1 , 0 }, {1 , 0 , 0 }, {0 , 0 , 1 }, {0 , 0 , 0 },
2663+ {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 },
2664+ {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , -1 , 0 },
2665+ {-1 , 0 , 0 }, {-1 , 0 , 1 }, {0 , 0 , 1 }, {0 , 0 , 0 }, {0 , 0 , 0 },
2666+ {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 },
2667+ {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 },
2668+ {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 },
2669+ {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 },
2670+ {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 },
2671+ {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 },
2672+ {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 },
2673+ {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 },
2674+ {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 },
2675+ {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 },
2676+ {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 },
2677+ {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 },
2678+ {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 },
2679+ {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 },
2680+ {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 },
2681+ {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , -1 , -1 }, {1 , -1 , -1 },
2682+ {0 , 0 , -1 }, {1 , 0 , -1 }, {0 , -1 , 0 }, {1 , -1 , 0 }, {1 , 0 , 0 },
2683+ {-1 , 0 , 0 }, {-1 , 1 , 0 }, {0 , 1 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 },
2684+ {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , -1 , -1 }, {1 , -1 , -1 }, {0 , 0 , -1 },
2685+ {1 , 0 , -1 }, {0 , -1 , 0 }, {1 , -1 , 0 }, {1 , 0 , 0 }, {0 , 1 , 0 },
2686+ {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 },
2687+ {0 , 0 , 0 }, {0 , 0 , -1 }, {-1 , 0 , 0 }, {-1 , 1 , 0 }, {0 , 1 , 0 },
2688+ {0 , -1 , -1 }, {0 , -1 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 },
2689+ {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 },
2690+ {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 },
2691+ {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 },
2692+ {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , -1 },
2693+ {-1 , 0 , 0 }, {-1 , 1 , 0 }, {0 , 1 , 0 }, {1 , 0 , -1 }, {1 , 0 , 0 },
2694+ {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 },
2695+ {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , -1 }, {1 , 0 , -1 },
2696+ {1 , 0 , 0 }, {0 , 1 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 },
2697+ {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 },
2698+ {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , -1 }, {-1 , 0 , 0 }, {-1 , 1 , 0 },
2699+ {0 , 1 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 },
2700+ {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 },
2701+ {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 },
2702+ {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 },
2703+ {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 },
2704+ {0 , -1 , -1 }, {1 , -1 , -1 }, {0 , 0 , -1 }, {1 , 0 , -1 }, {0 , -1 , 0 },
2705+ {1 , -1 , 0 }, {1 , 0 , 0 }, {-1 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 },
2706+ {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , -1 , -1 },
2707+ {1 , -1 , -1 }, {0 , 0 , -1 }, {1 , 0 , -1 }, {0 , -1 , 0 }, {1 , -1 , 0 },
2708+ {1 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 },
2709+ {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , -1 , -1 }, {0 , 0 , -1 },
2710+ {0 , -1 , 0 }, {-1 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 },
2711+ {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 },
2712+ {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 },
2713+ {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 },
2714+ {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 },
2715+ {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 },
2716+ {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 },
2717+ {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 },
2718+ {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 },
2719+ {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 },
2720+ {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 },
2721+ {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 },
2722+ {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 },
2723+ {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 },
2724+ {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 },
2725+ {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 },
2726+ {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 },
2727+ {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 },
2728+ {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 },
2729+ {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 },
2730+ {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 },
2731+ {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 },
2732+ {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 },
2733+ {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 },
2734+ {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 },
2735+ {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 },
2736+ {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 },
2737+ {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 },
2738+ {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 },
2739+ {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 },
2740+ {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 },
2741+ {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 },
2742+ {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 },
2743+ {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 },
2744+ {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 },
2745+ {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 },
2746+ {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 },
2747+ {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 },
2748+ {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 },
2749+ {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 },
2750+ {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 },
2751+ {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 },
2752+ {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 },
2753+ {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 },
2754+ {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 },
2755+ {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 },
2756+ {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 },
2757+ {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 },
2758+ {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 },
2759+ {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 },
2760+ {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 },
2761+ {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 },
2762+ {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 },
2763+ {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 },
2764+ {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 },
2765+ {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 },
2766+ {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 },
2767+ {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 },
2768+ {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 },
2769+ {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 },
2770+ {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 }, {0 , 0 , 0 },
2771+ {0 , 0 , 0 }}};
2772+ for (int i = 0 ; i < 64 * 14 ; i++) {
2773+ neighborIndexLUT_[i] = localLUT[i][0 ] + localLUT[i][1 ] * vshift_[0 ]
2774+ + localLUT[i][2 ] * vshift_[1 ];
2775+ }
2776+ }
2777+
27282778 // V(abcdefgh)=V(g)+V(d)::{g,h}+V(h)::{g}+V(b)::{c,d,g,h}
27292779 this ->vertexNeighborABCDEFGH_ = {
27302780 -vshift_[0 ] - vshift_[1 ], // a
@@ -3066,7 +3116,7 @@ int ImplicitTriangulation::preconditionVertexNeighborsInternal() {
30663116 };
30673117
30683118 return 0 ;
3069- }
3119+ };
30703120
30713121#ifdef TTK_ENABLE_MPI
30723122
0 commit comments