Skip to content

Commit 932a24d

Browse files
hybrid between old and LUT implicit triangulation
1 parent 396d71a commit 932a24d

File tree

2 files changed

+425
-195
lines changed

2 files changed

+425
-195
lines changed

core/base/implicitTriangulation/ImplicitTriangulation.cpp

Lines changed: 187 additions & 139 deletions
Original file line numberDiff line numberDiff line change
@@ -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-
498360
const vector<vector<SimplexId>> *
499361
ImplicitTriangulation::TTK_TRIANGULATION_INTERNAL(getVertexNeighbors)() {
500362
if(vertexNeighborList_.empty()) {
@@ -2725,6 +2587,192 @@ const vector<vector<SimplexId>> *
27252587
}
27262588

27272589
int ImplicitTriangulation::preconditionVertexNeighborsInternal() {
2590+
constexpr std::array<std::array<ttk::SimplexId, 3>, 64 * 14> localLUT{
2591+
{{0, -1, -1}, {1, -1, -1}, {0, 0, -1}, {1, 0, -1}, {0, -1, 0},
2592+
{1, -1, 0}, {1, 0, 0}, {-1, 0, 1}, {0, 0, 1}, {-1, 0, 0},
2593+
{-1, 1, 0}, {0, 1, 0}, {-1, 1, 1}, {0, 1, 1}, {0, -1, -1},
2594+
{1, -1, -1}, {0, 0, -1}, {1, 0, -1}, {0, -1, 0}, {1, -1, 0},
2595+
{1, 0, 0}, {0, 1, 0}, {0, 1, 1}, {0, 0, 1}, {0, 0, 0},
2596+
{0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {-1, 0, 0}, {-1, 1, 0},
2597+
{0, 1, 0}, {-1, 0, 1}, {0, 0, 1}, {-1, 1, 1}, {0, 1, 1},
2598+
{0, 0, -1}, {0, -1, -1}, {0, -1, 0}, {0, 0, 0}, {0, 0, 0},
2599+
{0, 0, 0}, {0, 0, 0}, {0, 0, 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}, {-1, 0, 0}, {-1, 1, 0}, {0, 1, 0}, {-1, 0, 1},
2603+
{0, 0, 1}, {-1, 1, 1}, {0, 1, 1}, {1, 0, 0}, {1, 0, -1},
2604+
{0, 0, -1}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0},
2605+
{1, 0, 0}, {0, 1, 0}, {0, 0, 1}, {0, 1, 1}, {0, 0, -1},
2606+
{1, 0, -1}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0},
2607+
{0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {-1, 0, 0},
2608+
{-1, 1, 0}, {0, 1, 0}, {-1, 0, 1}, {0, 0, 1}, {-1, 1, 1},
2609+
{0, 1, 1}, {0, 0, -1}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0},
2610+
{0, 0, 0}, {0, 0, 0}, {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, -1, -1}, {1, -1, -1}, {0, 0, -1},
2614+
{1, 0, -1}, {0, -1, 0}, {1, -1, 0}, {1, 0, 0}, {-1, 0, 0},
2615+
{-1, 0, 1}, {0, 0, 1}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0},
2616+
{0, 0, 0}, {0, -1, -1}, {1, -1, -1}, {0, 0, -1}, {1, 0, -1},
2617+
{0, -1, 0}, {1, -1, 0}, {1, 0, 0}, {0, 0, 1}, {0, 0, 0},
2618+
{0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0},
2619+
{0, -1, 0}, {-1, 0, 0}, {-1, 0, 1}, {0, 0, 1}, {0, -1, -1},
2620+
{0, 0, -1}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0},
2621+
{0, 0, 0}, {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}, {-1, 0, 0},
2636+
{-1, 1, 0}, {0, 1, 0}, {-1, 0, 1}, {0, 0, 1}, {-1, 1, 1},
2637+
{0, 1, 1}, {0, -1, 0}, {1, -1, 0}, {1, 0, 0}, {0, 0, 0},
2638+
{0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, -1, 0}, {1, -1, 0},
2639+
{1, 0, 0}, {0, 0, 1}, {0, 1, 0}, {0, 1, 1}, {0, 0, 0},
2640+
{0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0},
2641+
{0, 0, 0}, {0, 0, 0}, {-1, 0, 0}, {-1, 1, 0}, {0, 1, 0},
2642+
{-1, 0, 1}, {0, 0, 1}, {-1, 1, 1}, {0, 1, 1}, {0, -1, 0},
2643+
{0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 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+
{-1, 0, 0}, {-1, 1, 0}, {0, 1, 0}, {-1, 0, 1}, {0, 0, 1},
2648+
{-1, 1, 1}, {0, 1, 1}, {1, 0, 0}, {0, 0, 0}, {0, 0, 0},
2649+
{0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {1, 0, 0},
2650+
{0, 1, 0}, {0, 0, 1}, {0, 1, 1}, {0, 0, 0}, {0, 0, 0},
2651+
{0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0},
2652+
{0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {-1, 0, 0}, {-1, 1, 0},
2653+
{0, 1, 0}, {-1, 0, 1}, {0, 0, 1}, {-1, 1, 1}, {0, 1, 1},
2654+
{0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0},
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, -1, 0}, {-1, 0, 0}, {-1, 0, 1}, {0, 0, 1},
2659+
{1, -1, 0}, {1, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0},
2660+
{0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0},
2661+
{0, -1, 0}, {1, -1, 0}, {1, 0, 0}, {0, 0, 1}, {0, 0, 0},
2662+
{0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0},
2663+
{0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, -1, 0},
2664+
{-1, 0, 0}, {-1, 0, 1}, {0, 0, 1}, {0, 0, 0}, {0, 0, 0},
2665+
{0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {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, -1, -1}, {1, -1, -1},
2681+
{0, 0, -1}, {1, 0, -1}, {0, -1, 0}, {1, -1, 0}, {1, 0, 0},
2682+
{-1, 0, 0}, {-1, 1, 0}, {0, 1, 0}, {0, 0, 0}, {0, 0, 0},
2683+
{0, 0, 0}, {0, 0, 0}, {0, -1, -1}, {1, -1, -1}, {0, 0, -1},
2684+
{1, 0, -1}, {0, -1, 0}, {1, -1, 0}, {1, 0, 0}, {0, 1, 0},
2685+
{0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0},
2686+
{0, 0, 0}, {0, 0, -1}, {-1, 0, 0}, {-1, 1, 0}, {0, 1, 0},
2687+
{0, -1, -1}, {0, -1, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0},
2688+
{0, 0, 0}, {0, 0, 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, -1},
2692+
{-1, 0, 0}, {-1, 1, 0}, {0, 1, 0}, {1, 0, -1}, {1, 0, 0},
2693+
{0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0},
2694+
{0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, -1}, {1, 0, -1},
2695+
{1, 0, 0}, {0, 1, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0},
2696+
{0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0},
2697+
{0, 0, 0}, {0, 0, 0}, {0, 0, -1}, {-1, 0, 0}, {-1, 1, 0},
2698+
{0, 1, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0},
2699+
{0, 0, 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, -1, -1}, {1, -1, -1}, {0, 0, -1}, {1, 0, -1}, {0, -1, 0},
2704+
{1, -1, 0}, {1, 0, 0}, {-1, 0, 0}, {0, 0, 0}, {0, 0, 0},
2705+
{0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, -1, -1},
2706+
{1, -1, -1}, {0, 0, -1}, {1, 0, -1}, {0, -1, 0}, {1, -1, 0},
2707+
{1, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0},
2708+
{0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, -1, -1}, {0, 0, -1},
2709+
{0, -1, 0}, {-1, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0},
2710+
{0, 0, 0}, {0, 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}}};
2771+
for(int i = 0; i < 64 * 14; i++) {
2772+
neighborIndexLUT[i] = localLUT[i][0] + localLUT[i][1] * vshift_[0]
2773+
+ localLUT[i][2] * vshift_[1];
2774+
}
2775+
27282776
// V(abcdefgh)=V(g)+V(d)::{g,h}+V(h)::{g}+V(b)::{c,d,g,h}
27292777
this->vertexNeighborABCDEFGH_ = {
27302778
-vshift_[0] - vshift_[1], // a
@@ -3066,7 +3114,7 @@ int ImplicitTriangulation::preconditionVertexNeighborsInternal() {
30663114
};
30673115

30683116
return 0;
3069-
}
3117+
};
30703118

30713119
#ifdef TTK_ENABLE_MPI
30723120

0 commit comments

Comments
 (0)