TTK
Loading...
Searching...
No Matches
MultiresTriangulation.h
Go to the documentation of this file.
1
15
16#pragma once
17
18// base code includes
19#include <Geometry.h>
21
22#include <array>
23
24namespace ttk {
25
27
28 public:
31
33 const int &localNeighborId,
34 SimplexId &neighborId,
35 int decimation) const;
37 const int id,
38 const SimplexId shiftX,
39 const SimplexId shiftY,
40 const int decimation) const;
42 const int id,
43 const SimplexId shiftX,
44 const SimplexId shiftY,
45 const int decimation) const;
47 const int id,
48 const SimplexId shiftX,
49 const SimplexId shiftY,
50 const int decimation) const;
52 const int id,
53 const SimplexId shiftX,
54 const SimplexId shiftY,
55 const int decimation) const;
57 const int id,
58 const SimplexId shiftX,
59 const SimplexId shiftY,
60 const int decimation) const;
62 const int id,
63 const SimplexId shiftX,
64 const SimplexId shiftY,
65 const int decimation) const;
67 const int id,
68 const SimplexId shiftX,
69 const SimplexId shiftY,
70 const int decimation) const;
72 const int id,
73 const SimplexId shiftX,
74 const SimplexId shiftY,
75 const int decimation) const;
77 const int id,
78 const SimplexId shiftX,
79 const SimplexId shiftY,
80 const int decimation) const;
82 const int id,
83 const SimplexId shiftX,
84 const SimplexId shiftY,
85 const SimplexId shiftZ,
86 const int decimation) const;
88 const int id,
89 const SimplexId shiftX,
90 const SimplexId shiftY,
91 const SimplexId shiftZ,
92 const int decimation) const;
94 const int id,
95 const SimplexId shiftX,
96 const SimplexId shiftY,
97 const SimplexId shiftZ,
98 const int decimation) const;
100 const int id,
101 const SimplexId shiftX,
102 const SimplexId shiftY,
103 const SimplexId shiftZ,
104 const int decimation) const;
106 const int id,
107 const SimplexId shiftX,
108 const SimplexId shiftY,
109 const SimplexId shiftZ,
110 const int decimation) const;
112 const int id,
113 const SimplexId shiftX,
114 const SimplexId shiftY,
115 const SimplexId shiftZ,
116 const int decimation) const;
118 const int id,
119 const SimplexId shiftX,
120 const SimplexId shiftY,
121 const SimplexId shiftZ,
122 const int decimation) const;
124 const int id,
125 const SimplexId shiftX,
126 const SimplexId shiftY,
127 const SimplexId shiftZ,
128 const int decimation) const;
130 const int id,
131 const SimplexId shiftX,
132 const SimplexId shiftY,
133 const SimplexId shiftZ,
134 const int decimation) const;
136 const int id,
137 const SimplexId shiftX,
138 const SimplexId shiftY,
139 const SimplexId shiftZ,
140 const int decimation) const;
142 const int id,
143 const SimplexId shiftX,
144 const SimplexId shiftY,
145 const SimplexId shiftZ,
146 const int decimation) const;
148 const int id,
149 const SimplexId shiftX,
150 const SimplexId shiftY,
151 const SimplexId shiftZ,
152 const int decimation) const;
154 const int id,
155 const SimplexId shiftX,
156 const SimplexId shiftY,
157 const SimplexId shiftZ,
158 const int decimation) const;
160 const int id,
161 const SimplexId shiftX,
162 const SimplexId shiftY,
163 const SimplexId shiftZ,
164 const int decimation) const;
166 const int id,
167 const SimplexId shiftX,
168 const SimplexId shiftY,
169 const SimplexId shiftZ,
170 const int decimation) const;
172 const int id,
173 const SimplexId shiftX,
174 const SimplexId shiftY,
175 const SimplexId shiftZ,
176 const int decimation) const;
178 const int id,
179 const SimplexId shiftX,
180 const SimplexId shiftY,
181 const SimplexId shiftZ,
182 const int decimation) const;
184 const int id,
185 const SimplexId shiftX,
186 const SimplexId shiftY,
187 const SimplexId shiftZ,
188 const int decimation) const;
190 const int id,
191 const SimplexId shiftX,
192 const SimplexId shiftY,
193 const SimplexId shiftZ,
194 const int decimation) const;
196 const int id,
197 const SimplexId shiftX,
198 const SimplexId shiftY,
199 const SimplexId shiftZ,
200 const int decimation) const;
202 const int id,
203 const SimplexId shiftX,
204 const SimplexId shiftY,
205 const SimplexId shiftZ,
206 const int decimation) const;
208 const int id,
209 const SimplexId shiftX,
210 const SimplexId shiftY,
211 const SimplexId shiftZ,
212 const int decimation) const;
214 const int id,
215 const SimplexId shiftX,
216 const SimplexId shiftY,
217 const SimplexId shiftZ,
218 const int decimation) const;
220 const int id,
221 const SimplexId shiftX,
222 const SimplexId shiftY,
223 const SimplexId shiftZ,
224 const int decimation) const;
226 const int id,
227 const SimplexId shiftX,
228 const SimplexId shiftY,
229 const SimplexId shiftZ,
230 const int decimation) const;
232 const int id,
233 const SimplexId shiftX,
234 const SimplexId shiftY,
235 const SimplexId shiftZ,
236 const int decimation) const;
238 const int id,
239 const SimplexId shiftX,
240 const SimplexId shiftY,
241 const SimplexId shiftZ,
242 const int decimation) const;
244 const int id,
245 SimplexId shiftX,
246 SimplexId shiftY) const;
248 const int id,
249 SimplexId shiftX,
250 SimplexId shiftY) const;
252 const int id,
253 SimplexId shiftX,
254 SimplexId shiftY) const;
256 const int id,
257 SimplexId shiftX,
258 SimplexId shiftY) const;
260 const int id,
261 SimplexId shiftX,
262 SimplexId shiftY) const;
264 const int id,
265 SimplexId shiftX,
266 SimplexId shiftY) const;
268 const int id,
269 SimplexId shiftX,
270 SimplexId shiftY) const;
272 const int id,
273 SimplexId shiftX,
274 SimplexId shiftY) const;
276 const int id,
277 SimplexId shiftX,
278 SimplexId shiftY) const;
279
281 const int id,
282 SimplexId shiftX,
283 SimplexId shiftY,
284 SimplexId shiftZ) const;
286 const int id,
287 SimplexId shiftX,
288 SimplexId shiftY,
289 SimplexId shiftZ) const;
291 const int id,
292 SimplexId shiftX,
293 SimplexId shiftY,
294 SimplexId shiftZ) const;
296 const int id,
297 SimplexId shiftX,
298 SimplexId shiftY,
299 SimplexId shiftZ) const;
301 const int id,
302 SimplexId shiftX,
303 SimplexId shiftY,
304 SimplexId shiftZ) const;
306 const int id,
307 SimplexId shiftX,
308 SimplexId shiftY,
309 SimplexId shiftZ) const;
311 const int id,
312 SimplexId shiftX,
313 SimplexId shiftY,
314 SimplexId shiftZ) const;
316 const int id,
317 SimplexId shiftX,
318 SimplexId shiftY,
319 SimplexId shiftZ) const;
321 const int id,
322 SimplexId shiftX,
323 SimplexId shiftY,
324 SimplexId shiftZ) const;
326 const int id,
327 SimplexId shiftX,
328 SimplexId shiftY,
329 SimplexId shiftZ) const;
331 const int id,
332 SimplexId shiftX,
333 SimplexId shiftY,
334 SimplexId shiftZ) const;
336 const int id,
337 SimplexId shiftX,
338 SimplexId shiftY,
339 SimplexId shiftZ) const;
341 const int id,
342 SimplexId shiftX,
343 SimplexId shiftY,
344 SimplexId shiftZ) const;
346 const int id,
347 SimplexId shiftX,
348 SimplexId shiftY,
349 SimplexId shiftZ) const;
351 const int id,
352 SimplexId shiftX,
353 SimplexId shiftY,
354 SimplexId shiftZ) const;
356 const int id,
357 SimplexId shiftX,
358 SimplexId shiftY,
359 SimplexId shiftZ) const;
361 const int id,
362 SimplexId shiftX,
363 SimplexId shiftY,
364 SimplexId shiftZ) const;
366 const int id,
367 SimplexId shiftX,
368 SimplexId shiftY,
369 SimplexId shiftZ) const;
371 const int id,
372 SimplexId shiftX,
373 SimplexId shiftY,
374 SimplexId shiftZ) const;
376 const int id,
377 SimplexId shiftX,
378 SimplexId shiftY,
379 SimplexId shiftZ) const;
381 const int id,
382 SimplexId shiftX,
383 SimplexId shiftY,
384 SimplexId shiftZ) const;
386 const int id,
387 SimplexId shiftX,
388 SimplexId shiftY,
389 SimplexId shiftZ) const;
391 const int id,
392 SimplexId shiftX,
393 SimplexId shiftY,
394 SimplexId shiftZ) const;
396 const int id,
397 SimplexId shiftX,
398 SimplexId shiftY,
399 SimplexId shiftZ) const;
401 const int id,
402 SimplexId shiftX,
403 SimplexId shiftY,
404 SimplexId shiftZ) const;
406 const int id,
407 SimplexId shiftX,
408 SimplexId shiftY,
409 SimplexId shiftZ) const;
411 const int id,
412 SimplexId shiftX,
413 SimplexId shiftY,
414 SimplexId shiftZ) const;
415
417 const SimplexId neighborId,
418 SimplexId shiftX,
419 SimplexId shiftY) const;
421 const SimplexId neighborId,
422 SimplexId shiftX,
423 SimplexId shiftY) const;
425 const SimplexId neighborId,
426 SimplexId shiftX,
427 SimplexId shiftY) const;
429 const SimplexId neighborId,
430 SimplexId shiftX,
431 SimplexId shiftY) const;
433 const SimplexId neighborId,
434 SimplexId shiftX,
435 SimplexId shiftY) const;
437 const SimplexId neighborId,
438 SimplexId shiftX,
439 SimplexId shiftY) const;
441 const SimplexId neighborId,
442 SimplexId shiftX,
443 SimplexId shiftY) const;
445 const SimplexId neighborId,
446 SimplexId shiftX,
447 SimplexId shiftY) const;
449 const SimplexId neighborId,
450 SimplexId shiftX,
451 SimplexId shiftY) const;
452
454 const SimplexId neighborId,
455 SimplexId shiftX,
456 SimplexId shiftY,
457 SimplexId shiftZ) const;
459 const SimplexId neighborId,
460 SimplexId shiftX,
461 SimplexId shiftY,
462 SimplexId shiftZ) const;
464 const SimplexId neighborId,
465 SimplexId shiftX,
466 SimplexId shiftY,
467 SimplexId shiftZ) const;
469 const SimplexId neighborId,
470 SimplexId shiftX,
471 SimplexId shiftY,
472 SimplexId shiftZ) const;
474 const SimplexId neighborId,
475 SimplexId shiftX,
476 SimplexId shiftY,
477 SimplexId shiftZ) const;
479 const SimplexId neighborId,
480 SimplexId shiftX,
481 SimplexId shiftY,
482 SimplexId shiftZ) const;
484 const SimplexId neighborId,
485 SimplexId shiftX,
486 SimplexId shiftY,
487 SimplexId shiftZ) const;
489 const SimplexId neighborId,
490 SimplexId shiftX,
491 SimplexId shiftY,
492 SimplexId shiftZ) const;
494 const SimplexId neighborId,
495 SimplexId shiftX,
496 SimplexId shiftY,
497 SimplexId shiftZ) const;
499 const SimplexId neighborId,
500 SimplexId shiftX,
501 SimplexId shiftY,
502 SimplexId shiftZ) const;
504 const SimplexId neighborId,
505 SimplexId shiftX,
506 SimplexId shiftY,
507 SimplexId shiftZ) const;
509 const SimplexId neighborId,
510 SimplexId shiftX,
511 SimplexId shiftY,
512 SimplexId shiftZ) const;
514 const SimplexId neighborId,
515 SimplexId shiftX,
516 SimplexId shiftY,
517 SimplexId shiftZ) const;
519 const SimplexId neighborId,
520 SimplexId shiftX,
521 SimplexId shiftY,
522 SimplexId shiftZ) const;
524 const SimplexId neighborId,
525 SimplexId shiftX,
526 SimplexId shiftY,
527 SimplexId shiftZ) const;
529 const SimplexId neighborId,
530 SimplexId shiftX,
531 SimplexId shiftY,
532 SimplexId shiftZ) const;
534 const SimplexId neighborId,
535 SimplexId shiftX,
536 SimplexId shiftY,
537 SimplexId shiftZ) const;
539 const SimplexId neighborId,
540 SimplexId shiftX,
541 SimplexId shiftY,
542 SimplexId shiftZ) const;
544 const SimplexId neighborId,
545 SimplexId shiftX,
546 SimplexId shiftY,
547 SimplexId shiftZ) const;
549 const SimplexId neighborId,
550 SimplexId shiftX,
551 SimplexId shiftY,
552 SimplexId shiftZ) const;
554 const SimplexId neighborId,
555 SimplexId shiftX,
556 SimplexId shiftY,
557 SimplexId shiftZ) const;
559 const SimplexId neighborId,
560 SimplexId shiftX,
561 SimplexId shiftY,
562 SimplexId shiftZ) const;
564 const SimplexId neighborId,
565 SimplexId shiftX,
566 SimplexId shiftY,
567 SimplexId shiftZ) const;
569 const SimplexId neighborId,
570 SimplexId shiftX,
571 SimplexId shiftY,
572 SimplexId shiftZ) const;
574 const SimplexId neighborId,
575 SimplexId shiftX,
576 SimplexId shiftY,
577 SimplexId shiftZ) const;
579 const SimplexId neighborId,
580 SimplexId shiftX,
581 SimplexId shiftY,
582 SimplexId shiftZ) const;
584 const SimplexId neighborId,
585 SimplexId shiftX,
586 SimplexId shiftY,
587 SimplexId shiftZ) const;
590 const int id,
591 const SimplexId shiftX,
592 const SimplexId shiftY,
593 const SimplexId shiftZ,
594 SimplexId &invertedLocalNeighbor) const;
595 void getImpactedVerticesA(std::array<SimplexId, 3> &p,
596 SimplexId &localNeighborId0,
597 SimplexId &localNeighborId1) const;
598 void getImpactedVerticesB(std::array<SimplexId, 3> &p,
599 SimplexId &localNeighborId0,
600 SimplexId &localNeighborId1) const;
601 void getImpactedVerticesC(std::array<SimplexId, 3> &p,
602 SimplexId &localNeighborId0,
603 SimplexId &localNeighborId1) const;
604 void getImpactedVerticesD(std::array<SimplexId, 3> &p,
605 SimplexId &localNeighborId0,
606 SimplexId &localNeighborId1) const;
607 void getImpactedVerticesE(std::array<SimplexId, 3> &p,
608 SimplexId &localNeighborId0,
609 SimplexId &localNeighborId1) const;
610 void getImpactedVerticesF(std::array<SimplexId, 3> &p,
611 SimplexId &localNeighborId0,
612 SimplexId &localNeighborId1) const;
613 void getImpactedVerticesG(std::array<SimplexId, 3> &p,
614 SimplexId &localNeighborId0,
615 SimplexId &localNeighborId1) const;
616 void getImpactedVerticesH(std::array<SimplexId, 3> &p,
617 SimplexId &localNeighborId0,
618 SimplexId &localNeighborId1) const;
619 void getImpactedVerticesAB(std::array<SimplexId, 3> &p,
620 SimplexId &localNeighborId0,
621 SimplexId &localNeighborId1) const;
622 void getImpactedVerticesEF(std::array<SimplexId, 3> &p,
623 SimplexId &localNeighborId0,
624 SimplexId &localNeighborId1) const;
625 void getImpactedVerticesCD(std::array<SimplexId, 3> &p,
626 SimplexId &localNeighborId0,
627 SimplexId &localNeighborId1) const;
628 void getImpactedVerticesGH(std::array<SimplexId, 3> &p,
629 SimplexId &localNeighborId0,
630 SimplexId &localNeighborId1) const;
631 void getImpactedVerticesAC(std::array<SimplexId, 3> &p,
632 SimplexId &localNeighborId0,
633 SimplexId &localNeighborId1) const;
634 void getImpactedVerticesEG(std::array<SimplexId, 3> &p,
635 SimplexId &localNeighborId0,
636 SimplexId &localNeighborId1) const;
637 void getImpactedVerticesAE(std::array<SimplexId, 3> &p,
638 SimplexId &localNeighborId0,
639 SimplexId &localNeighborId1) const;
640 void getImpactedVerticesCG(std::array<SimplexId, 3> &p,
641 SimplexId &localNeighborId0,
642 SimplexId &localNeighborId1) const;
643 void getImpactedVerticesBD(std::array<SimplexId, 3> &p,
644 SimplexId &localNeighborId0,
645 SimplexId &localNeighborId1) const;
646 void getImpactedVerticesFH(std::array<SimplexId, 3> &p,
647 SimplexId &localNeighborId0,
648 SimplexId &localNeighborId1) const;
649 void getImpactedVerticesBF(std::array<SimplexId, 3> &p,
650 SimplexId &localNeighborId0,
651 SimplexId &localNeighborId1) const;
652 void getImpactedVerticesDH(std::array<SimplexId, 3> &p,
653 SimplexId &localNeighborId0,
654 SimplexId &localNeighborId1) const;
655 void getImpactedVerticesABDC(std::array<SimplexId, 3> &p,
656 SimplexId &localNeighborId0,
657 SimplexId &localNeighborId1) const;
658 void getImpactedVerticesEFHG(std::array<SimplexId, 3> &p,
659 SimplexId &localNeighborId0,
660 SimplexId &localNeighborId1) const;
661 void getImpactedVerticesAEFB(std::array<SimplexId, 3> &p,
662 SimplexId &localNeighborId0,
663 SimplexId &localNeighborId1) const;
664 void getImpactedVerticesGHDC(std::array<SimplexId, 3> &p,
665 SimplexId &localNeighborId0,
666 SimplexId &localNeighborId1) const;
667 void getImpactedVerticesAEGC(std::array<SimplexId, 3> &p,
668 SimplexId &localNeighborId0,
669 SimplexId &localNeighborId1) const;
670 void getImpactedVerticesBFHD(std::array<SimplexId, 3> &p,
671 SimplexId &localNeighborId0,
672 SimplexId &localNeighborId1) const;
673 void getImpactedVerticesABCDEFGH(std::array<SimplexId, 3> &p,
674 SimplexId &localNeighborId0,
675 SimplexId &localNeighborId1) const;
676
677 void getImpactedVertices2dABCD(std::array<SimplexId, 3> &p,
678 SimplexId &localNeighborId0,
679 SimplexId &localNeighborId1) const;
680 void getImpactedVertices2dAB(std::array<SimplexId, 3> &p,
681 SimplexId &localNeighborId0,
682 SimplexId &localNeighborId1) const;
683 void getImpactedVertices2dCD(std::array<SimplexId, 3> &p,
684 SimplexId &localNeighborId0,
685 SimplexId &localNeighborId1) const;
686 void getImpactedVertices2dBD(std::array<SimplexId, 3> &p,
687 SimplexId &localNeighborId0,
688 SimplexId &localNeighborId1) const;
689 void getImpactedVertices2dAC(std::array<SimplexId, 3> &p,
690 SimplexId &localNeighborId0,
691 SimplexId &localNeighborId1) const;
692 void getImpactedVerticesError(const int prev_decim,
693 const std::array<SimplexId, 3> &p) const;
694
696 SimplexId &invertedLocalNeighbor) const;
698 SimplexId &invertedLocalNeighbor) const;
700 SimplexId &invertedLocalNeighbor) const;
702 SimplexId &invertedLocalNeighbor) const;
704 SimplexId &invertedLocalNeighbor) const;
706 SimplexId &invertedLocalNeighbor) const;
708 SimplexId &invertedLocalNeighbor) const;
710 SimplexId &invertedLocalNeighbor) const;
712 SimplexId &invertedLocalNeighbor) const;
714 SimplexId &invertedLocalNeighbor) const;
716 SimplexId &invertedLocalNeighbor) const;
718 SimplexId &invertedLocalNeighbor) const;
720 SimplexId &invertedLocalNeighbor) const;
722 SimplexId &invertedLocalNeighbor) const;
724 SimplexId &invertedLocalNeighbor) const;
726 SimplexId &invertedLocalNeighbor) const;
728 SimplexId &invertedLocalNeighbor) const;
730 SimplexId &invertedLocalNeighbor) const;
732 SimplexId &invertedLocalNeighbor) const;
734 SimplexId &invertedLocalNeighbor) const;
736 SimplexId &invertedLocalNeighbor) const;
738 SimplexId &invertedLocalNeighbor) const;
740 SimplexId &invertedLocalNeighbor) const;
742 SimplexId &invertedLocalNeighbor) const;
744 SimplexId &invertedLocalNeighbor) const;
746 SimplexId &invertedLocalNeighbor) const;
747
750 const int id,
751 const SimplexId shiftX,
752 const SimplexId shiftY,
753 SimplexId &invertedLocalNeighbor) const;
754
757 SimplexId &invertedLocalNeighbor) const;
758
761 SimplexId &invertedLocalNeighbor) const;
762
765 SimplexId &invertedLocalNeighbor) const;
766
769 SimplexId &invertedLocalNeighbor) const;
772 SimplexId &invertedLocalNeighbor) const;
773
776 SimplexId &invertedLocalNeighbor) const;
777
780 SimplexId &invertedLocalNeighbor) const;
781
784 SimplexId &invertedLocalNeighbor) const;
785
786 int getInvertVertexNeighbor(const SimplexId &vertexId,
787 const SimplexId &neighborId,
789 int getVertexNeighbor(const SimplexId &vertexId,
790 const int &localNeighborId,
791 SimplexId &neighborId) const;
793 SimplexId,
794 SimplexId &,
795 SimplexId &) const;
796 bool areVerticesNeighbors(const SimplexId, const SimplexId) const;
797 bool isBoundaryImpacted(SimplexId) const;
798 SimplexId getVertexNeighborNumber(const SimplexId &vertexId) const;
799 void vertexToPosition2d(const SimplexId vertex,
800 std::array<SimplexId, 3> &p) const;
801 void vertexToPosition(const SimplexId vertex,
802 std::array<SimplexId, 3> &p) const;
803 SimplexId localToGlobalVertexId(const SimplexId localId) const;
804 int getVertexBoundaryIndex(const SimplexId) const;
805
806 int getDimensionality() const {
807 return dimensionality_;
808 }
810 triangulation_ = triangulation;
811 if(triangulation_) {
812 dimensionality_ = triangulation_->getDimensionality();
813 const auto &gridDim{triangulation_->getGridDimensions()};
814 for(int i = 0; i < 3; i++) {
815 gridDimensions_[i] = gridDim[i];
816 nbvoxels_[i] = gridDimensions_[i] - 1;
817 }
818
819 if(dimensionality_ == 2) {
820 if(gridDimensions_[0] == 1) {
821 Di_ = 1;
822 Dj_ = 2;
823 } else if(gridDimensions_[1] == 1) {
824 Di_ = 0;
825 Dj_ = 2;
826 } else {
827 Di_ = 0;
828 Dj_ = 1;
829 }
830 vertexNumber_ = gridDimensions_[Di_] * gridDimensions_[Dj_];
831 vshift_[0] = gridDimensions_[Di_];
832 } else if(dimensionality_ == 1) {
833 for(int k = 0; k < 3; k++) {
834 if(gridDimensions_[k] > 1) {
835 Di_ = k;
836 break;
837 }
838 }
839 vertexNumber_ = gridDimensions_[Di_];
840 } else if(dimensionality_ == 3) {
841 Di_ = 0;
842 Dj_ = 1;
843 Dk_ = 2;
844 vertexNumber_ = gridDimensions_[Di_] * gridDimensions_[Dj_]
845 * gridDimensions_[Dk_];
846 vshift_[0] = gridDimensions_[Di_];
847 vshift_[1] = gridDimensions_[Dj_] * gridDimensions_[Di_];
848 } else {
849 printErr("Wrong dimensionality");
850 }
853
854 } else {
855 printErr("Empty input triangulation !");
856 }
857 }
858
868
869 inline int getDecimatedVertexNumber() const {
870 return decimatedVertexNumber_;
871 }
872 int getVertexNumber() const {
873 return vertexNumber_;
874 }
875 inline int getDecimation() const {
876 return decimation_;
877 }
878 inline int getDecimationLevel() const {
879 return decimationLevel_;
880 }
881
882 inline void setDecimationLevel(int decimationLevel) {
883 decimationLevel_ = decimationLevel;
884 decimation_ = pow(2, decimationLevel_);
887 }
888
889 bool isInTriangulation(const SimplexId vertexId) const;
890 void
891 getImpactedVertices(SimplexId vertexId, SimplexId v0[3], SimplexId v1[3]);
892
894 int xDim = gridDimensions_[0];
895 int yDim = gridDimensions_[1];
896 int zDim = gridDimensions_[2];
897 if(decimation_ > 1) {
898 xDim = ((xDim - 1) % decimation_) ? ((xDim - 1) / decimation_ + 2)
899 : ((xDim - 1) / decimation_ + 1);
900
901 yDim = ((yDim - 1) % decimation_) ? ((yDim - 1) / decimation_ + 2)
902 : ((yDim - 1) / decimation_ + 1);
903
904 zDim = ((zDim - 1) % decimation_) ? ((zDim - 1) / decimation_ + 2)
905 : ((zDim - 1) / decimation_ + 1);
906 }
907 gridDecimatedDimensions_[0] = xDim;
908 gridDecimatedDimensions_[1] = yDim;
909 gridDecimatedDimensions_[2] = zDim;
910 decimatedVertexNumber_ = xDim * yDim * zDim;
911 }
912
914
915 int RL_to_DL(int rl);
916
917 int DL_to_RL(int dl);
918
919 std::vector<int> getGridDimensions() const {
920 std::vector<int> dimensions(3);
921 dimensions[0] = gridDimensions_[0];
922 dimensions[1] = gridDimensions_[1];
923 dimensions[2] = gridDimensions_[2];
924 return dimensions;
925 }
926
928 return triangulation_;
929 }
930
931 char localNeighborId(SimplexId neighborId, SimplexId vertexId);
932
933 int setDebugLevel(const int &debugLevel) override {
934 debugLevel_ = debugLevel;
935 return 0;
936 }
937 std::vector<SimplexId> getExtendedStar(const SimplexId &vertexId) const;
939 std::vector<SimplexId> &boundaryRepresentatives);
940
941 protected:
942 private:
943 enum class VertexPosition : char {
944 // a--------b
945
946 LEFT_CORNER_1D, // a
947 RIGHT_CORNER_1D, // b
948 CENTER_1D,
949 // total: 3 1D cases
950
951 // a--------b
952 // | |
953 // | |
954 // | |
955 // c--------d
956
957 // 2D corners
958 TOP_LEFT_CORNER_2D, // a
959 TOP_RIGHT_CORNER_2D, // b
960 BOTTOM_LEFT_CORNER_2D, // c
961 BOTTOM_RIGHT_CORNER_2D, // d
962 // 2D edges
963 TOP_EDGE_2D, // ab
964 BOTTOM_EDGE_2D, // cd
965 LEFT_EDGE_2D, // ac
966 RIGHT_EDGE_2D, // bd
967 // 2D central strip
968 CENTER_2D,
969 // total: 9 2D cases
970
971 // e--------f
972 // /| /|
973 // / | / |
974 // a--------b |
975 // | g-----|--h
976 // | / | /
977 // |/ |/
978 // c--------d
979
980 // 3D corners
981 TOP_LEFT_FRONT_CORNER_3D, // a
982 TOP_RIGHT_FRONT_CORNER_3D, // b
983 BOTTOM_LEFT_FRONT_CORNER_3D, // c
984 BOTTOM_RIGHT_FRONT_CORNER_3D, // d
985 TOP_LEFT_BACK_CORNER_3D, // e
986 TOP_RIGHT_BACK_CORNER_3D, // f
987 BOTTOM_LEFT_BACK_CORNER_3D, // g
988 BOTTOM_RIGHT_BACK_CORNER_3D, // h
989 // 3D edges
990 TOP_FRONT_EDGE_3D, // ab
991 BOTTOM_FRONT_EDGE_3D, // cd
992 LEFT_FRONT_EDGE_3D, // ac
993 RIGHT_FRONT_EDGE_3D, // bd
994 TOP_BACK_EDGE_3D, // ef
995 BOTTOM_BACK_EDGE_3D, // gh
996 LEFT_BACK_EDGE_3D, // eg
997 RIGHT_BACK_EDGE_3D, // fh
998 TOP_LEFT_EDGE_3D, // ae
999 TOP_RIGHT_EDGE_3D, // bf
1000 BOTTOM_LEFT_EDGE_3D, // cg
1001 BOTTOM_RIGHT_EDGE_3D, // dh
1002 // 3D faces
1003 FRONT_FACE_3D, // abcd
1004 BACK_FACE_3D, // efgh
1005 TOP_FACE_3D, // abef
1006 BOTTOM_FACE_3D, // cdgh
1007 LEFT_FACE_3D, // aceg
1008 RIGHT_FACE_3D, // bdfh
1009 // 3D central part
1010 CENTER_3D,
1011 // total: 27 3D cases
1012 };
1013
1014 // for every vertex, its position on the grid
1015 std::vector<VertexPosition> vertexPositions_{};
1016 // for every vertex, its coordinates on the grid
1017 std::vector<std::array<SimplexId, 3>> vertexCoords_{};
1018 // for every vertex, the corresponding shifts
1019 std::vector<std::array<SimplexId, 3>> vertexShifts_{};
1020
1021 int dimensionality_;
1022 int decimation_;
1023 int vertexNumber_;
1024 int decimatedVertexNumber_;
1025 int decimationLevel_;
1026 int coarsestDL_;
1027 int gridDimensions_[3];
1028 int gridDecimatedDimensions_[3];
1029 int nbvoxels_[3];
1030 int Di_, Dj_, Dk_;
1031 int vshift_[2];
1032
1033 ImplicitTriangulation *triangulation_;
1034 };
1035} // namespace ttk
1036
1038 const SimplexId vertexId0, const SimplexId vertexId1) const {
1039 const SimplexId neighborNumber = getVertexNeighborNumber(vertexId0);
1040 for(SimplexId i = 0; i < neighborNumber; i++) {
1041 SimplexId neighborId;
1042 getVertexNeighbor(vertexId0, i, neighborId);
1043 if(neighborId == vertexId1) {
1044 return true;
1045 }
1046 }
1047 return false;
1048}
Minimalist debugging class.
Definition Debug.h:88
int debugLevel_
Definition Debug.h:379
int printErr(const std::string &msg, const debug::LineMode &lineMode=debug::LineMode::NEW, std::ostream &stream=std::cerr) const
Definition Debug.h:149
ImplicitTriangulation is a class that provides time and memory efficient traversal methods on triangu...
int TTK_TRIANGULATION_INTERNAL() getDimensionality() const override
const std::array< SimplexId, 3 > & getGridDimensions() const override
void getInvertedLocalNeighborFH(SimplexId id, SimplexId &invertedLocalNeighbor) const
SimplexId getVertexNeighborAtDecimationFH(const SimplexId v, const int id, const SimplexId shiftX, const SimplexId shiftY, const SimplexId shiftZ, const int decimation) const
SimplexId getVertexNeighborAtDecimation2dCD(const SimplexId v, const int id, const SimplexId shiftX, const SimplexId shiftY, const int decimation) const
void getImpactedVerticesFH(std::array< SimplexId, 3 > &p, SimplexId &localNeighborId0, SimplexId &localNeighborId1) const
SimplexId getVertexNeighborAtDecimationABCDEFGH(const SimplexId v, const int id, const SimplexId shiftX, const SimplexId shiftY, const SimplexId shiftZ, const int decimation) const
SimplexId getInvertVertexNeighborG(const SimplexId v, const SimplexId neighborId, SimplexId shiftX, SimplexId shiftY, SimplexId shiftZ) const
void getImpactedVerticesABCDEFGH(std::array< SimplexId, 3 > &p, SimplexId &localNeighborId0, SimplexId &localNeighborId1) const
void vertexToPosition(const SimplexId vertex, std::array< SimplexId, 3 > &p) const
SimplexId getVertexNeighborAtDecimationBF(const SimplexId v, const int id, const SimplexId shiftX, const SimplexId shiftY, const SimplexId shiftZ, const int decimation) const
void getImpactedVerticesF(std::array< SimplexId, 3 > &p, SimplexId &localNeighborId0, SimplexId &localNeighborId1) const
SimplexId getInvertedVertexNeighborABCDEFGH(const SimplexId v, const int id, const SimplexId shiftX, const SimplexId shiftY, const SimplexId shiftZ, SimplexId &invertedLocalNeighbor) const
ImplicitTriangulation * getTriangulation() const
void getInvertedLocalNeighborAE(SimplexId id, SimplexId &invertedLocalNeighbor) const
SimplexId getVertexNeighborAtDecimationAEGC(const SimplexId v, const int id, const SimplexId shiftX, const SimplexId shiftY, const SimplexId shiftZ, const int decimation) const
SimplexId getInvertedLocalNeighbor2dA(SimplexId id, SimplexId &invertedLocalNeighbor) const
void getImpactedVertices(SimplexId vertexId, SimplexId v0[3], SimplexId v1[3])
void getImpactedVerticesAEGC(std::array< SimplexId, 3 > &p, SimplexId &localNeighborId0, SimplexId &localNeighborId1) const
SimplexId getInvertVertexNeighborE(const SimplexId v, const SimplexId neighborId, SimplexId shiftX, SimplexId shiftY, SimplexId shiftZ) const
SimplexId getVertexNeighborAtDecimation2dC(const SimplexId v, const int id, const SimplexId shiftX, const SimplexId shiftY, const int decimation) const
SimplexId getVertexNeighborAtDecimation(const SimplexId &vertexId, const int &localNeighborId, SimplexId &neighborId, int decimation) const
SimplexId getVertexNeighborAtDecimationAEFB(const SimplexId v, const int id, const SimplexId shiftX, const SimplexId shiftY, const SimplexId shiftZ, const int decimation) const
SimplexId getInvertVertexNeighbor2dA(const SimplexId v, const SimplexId neighborId, SimplexId shiftX, SimplexId shiftY) const
SimplexId getInvertVertexNeighborBFHD(const SimplexId v, const SimplexId neighborId, SimplexId shiftX, SimplexId shiftY, SimplexId shiftZ) const
void getInvertedLocalNeighborABDC(SimplexId id, SimplexId &invertedLocalNeighbor) const
SimplexId getVertexNeighborG(const SimplexId v, const int id, SimplexId shiftX, SimplexId shiftY, SimplexId shiftZ) const
SimplexId getVertexNeighborAtDecimation2dAC(const SimplexId v, const int id, const SimplexId shiftX, const SimplexId shiftY, const int decimation) const
SimplexId getVertexNeighborAtDecimation2dBD(const SimplexId v, const int id, const SimplexId shiftX, const SimplexId shiftY, const int decimation) const
SimplexId getVertexNeighborAtDecimation2dB(const SimplexId v, const int id, const SimplexId shiftX, const SimplexId shiftY, const int decimation) const
SimplexId getVertexNeighborAtDecimationAB(const SimplexId v, const int id, const SimplexId shiftX, const SimplexId shiftY, const SimplexId shiftZ, const int decimation) const
bool areVerticesNeighbors(const SimplexId, const SimplexId) const
SimplexId getVertexNeighborAtDecimationBD(const SimplexId v, const int id, const SimplexId shiftX, const SimplexId shiftY, const SimplexId shiftZ, const int decimation) const
void getInvertedLocalNeighborAB(SimplexId id, SimplexId &invertedLocalNeighbor) const
SimplexId getVertexNeighborAtDecimationF(const SimplexId v, const int id, const SimplexId shiftX, const SimplexId shiftY, const SimplexId shiftZ, const int decimation) const
SimplexId getVertexNeighborAtDecimationEG(const SimplexId v, const int id, const SimplexId shiftX, const SimplexId shiftY, const SimplexId shiftZ, const int decimation) const
SimplexId getVertexNeighborC(const SimplexId v, const int id, SimplexId shiftX, SimplexId shiftY, SimplexId shiftZ) const
SimplexId getInvertedVertexNeighbor2dABCD(const SimplexId v, const int id, const SimplexId shiftX, const SimplexId shiftY, SimplexId &invertedLocalNeighbor) const
SimplexId getInvertVertexNeighborAEGC(const SimplexId v, const SimplexId neighborId, SimplexId shiftX, SimplexId shiftY, SimplexId shiftZ) const
void getInvertedLocalNeighborBFHD(SimplexId id, SimplexId &invertedLocalNeighbor) const
void getInvertedLocalNeighborDH(SimplexId id, SimplexId &invertedLocalNeighbor) const
SimplexId getInvertVertexNeighborAB(const SimplexId v, const SimplexId neighborId, SimplexId shiftX, SimplexId shiftY, SimplexId shiftZ) const
SimplexId getVertexNeighborAtDecimationGHDC(const SimplexId v, const int id, const SimplexId shiftX, const SimplexId shiftY, const SimplexId shiftZ, const int decimation) const
SimplexId getInvertVertexNeighborGH(const SimplexId v, const SimplexId neighborId, SimplexId shiftX, SimplexId shiftY, SimplexId shiftZ) const
SimplexId getVertexNeighborABCDEFGH(const SimplexId v, const int id, SimplexId shiftX, SimplexId shiftY, SimplexId shiftZ) const
SimplexId getVertexNeighborAtDecimationDH(const SimplexId v, const int id, const SimplexId shiftX, const SimplexId shiftY, const SimplexId shiftZ, const int decimation) const
void getImpactedVerticesH(std::array< SimplexId, 3 > &p, SimplexId &localNeighborId0, SimplexId &localNeighborId1) const
SimplexId getInvertVertexNeighbor2dBD(const SimplexId v, const SimplexId neighborId, SimplexId shiftX, SimplexId shiftY) const
SimplexId getVertexNeighborAtDecimationCG(const SimplexId v, const int id, const SimplexId shiftX, const SimplexId shiftY, const SimplexId shiftZ, const int decimation) const
SimplexId getInvertVertexNeighborCG(const SimplexId v, const SimplexId neighborId, SimplexId shiftX, SimplexId shiftY, SimplexId shiftZ) const
SimplexId getInvertVertexNeighbor2dAB(const SimplexId v, const SimplexId neighborId, SimplexId shiftX, SimplexId shiftY) const
SimplexId getInvertVertexNeighbor2dB(const SimplexId v, const SimplexId neighborId, SimplexId shiftX, SimplexId shiftY) const
void getInvertedLocalNeighborA(SimplexId id, SimplexId &invertedLocalNeighbor) const
SimplexId getVertexNeighbor2dAB(const SimplexId v, const int id, SimplexId shiftX, SimplexId shiftY) const
void getImpactedVerticesAEFB(std::array< SimplexId, 3 > &p, SimplexId &localNeighborId0, SimplexId &localNeighborId1) const
bool isInTriangulation(const SimplexId vertexId) const
SimplexId getInvertVertexNeighborEF(const SimplexId v, const SimplexId neighborId, SimplexId shiftX, SimplexId shiftY, SimplexId shiftZ) const
SimplexId getInvertedLocalNeighbor2dAB(SimplexId id, SimplexId &invertedLocalNeighbor) const
void getInvertedLocalNeighborC(SimplexId id, SimplexId &invertedLocalNeighbor) const
SimplexId getVertexNeighborE(const SimplexId v, const int id, SimplexId shiftX, SimplexId shiftY, SimplexId shiftZ) const
void getImpactedVerticesC(std::array< SimplexId, 3 > &p, SimplexId &localNeighborId0, SimplexId &localNeighborId1) const
void getImpactedVerticesGHDC(std::array< SimplexId, 3 > &p, SimplexId &localNeighborId0, SimplexId &localNeighborId1) const
int preconditionVerticesInternal()
Precondition vertices.
SimplexId getVertexNeighborAtDecimationH(const SimplexId v, const int id, const SimplexId shiftX, const SimplexId shiftY, const SimplexId shiftZ, const int decimation) const
SimplexId getVertexNeighborAtDecimationGH(const SimplexId v, const int id, const SimplexId shiftX, const SimplexId shiftY, const SimplexId shiftZ, const int decimation) const
int getInteriorInvertedVertexNeighbor(SimplexId, SimplexId, SimplexId &, SimplexId &) const
void getImpactedVerticesA(std::array< SimplexId, 3 > &p, SimplexId &localNeighborId0, SimplexId &localNeighborId1) const
SimplexId getInvertVertexNeighbor2dAC(const SimplexId v, const SimplexId neighborId, SimplexId shiftX, SimplexId shiftY) const
SimplexId localToGlobalVertexId(const SimplexId localId) const
void getImpactedVerticesEG(std::array< SimplexId, 3 > &p, SimplexId &localNeighborId0, SimplexId &localNeighborId1) const
SimplexId getVertexNeighborAtDecimationE(const SimplexId v, const int id, const SimplexId shiftX, const SimplexId shiftY, const SimplexId shiftZ, const int decimation) const
SimplexId getVertexNeighborAtDecimation2dD(const SimplexId v, const int id, const SimplexId shiftX, const SimplexId shiftY, const int decimation) const
void getInvertedLocalNeighborEG(SimplexId id, SimplexId &invertedLocalNeighbor) const
SimplexId getVertexNeighborAtDecimationEFHG(const SimplexId v, const int id, const SimplexId shiftX, const SimplexId shiftY, const SimplexId shiftZ, const int decimation) const
void getImpactedVerticesBD(std::array< SimplexId, 3 > &p, SimplexId &localNeighborId0, SimplexId &localNeighborId1) const
void getInvertedLocalNeighborCD(SimplexId id, SimplexId &invertedLocalNeighbor) const
void getInvertedLocalNeighborCG(SimplexId id, SimplexId &invertedLocalNeighbor) const
SimplexId getVertexNeighborBF(const SimplexId v, const int id, SimplexId shiftX, SimplexId shiftY, SimplexId shiftZ) const
void getImpactedVerticesCG(std::array< SimplexId, 3 > &p, SimplexId &localNeighborId0, SimplexId &localNeighborId1) const
void getImpactedVerticesGH(std::array< SimplexId, 3 > &p, SimplexId &localNeighborId0, SimplexId &localNeighborId1) const
SimplexId getVertexNeighborAtDecimationCD(const SimplexId v, const int id, const SimplexId shiftX, const SimplexId shiftY, const SimplexId shiftZ, const int decimation) const
SimplexId getInvertVertexNeighborD(const SimplexId v, const SimplexId neighborId, SimplexId shiftX, SimplexId shiftY, SimplexId shiftZ) const
void getImpactedVerticesDH(std::array< SimplexId, 3 > &p, SimplexId &localNeighborId0, SimplexId &localNeighborId1) const
SimplexId getVertexNeighborFH(const SimplexId v, const int id, SimplexId shiftX, SimplexId shiftY, SimplexId shiftZ) const
int getVertexBoundaryIndex(const SimplexId) const
void getInvertedLocalNeighborEF(SimplexId id, SimplexId &invertedLocalNeighbor) const
SimplexId getVertexNeighborAC(const SimplexId v, const int id, SimplexId shiftX, SimplexId shiftY, SimplexId shiftZ) const
int setDebugLevel(const int &debugLevel) override
void getImpactedVerticesEFHG(std::array< SimplexId, 3 > &p, SimplexId &localNeighborId0, SimplexId &localNeighborId1) const
SimplexId getInvertVertexNeighborBF(const SimplexId v, const SimplexId neighborId, SimplexId shiftX, SimplexId shiftY, SimplexId shiftZ) const
SimplexId getVertexNeighbor2dC(const SimplexId v, const int id, SimplexId shiftX, SimplexId shiftY) const
void getImpactedVerticesError(const int prev_decim, const std::array< SimplexId, 3 > &p) const
std::vector< SimplexId > getExtendedStar(const SimplexId &vertexId) const
SimplexId getVertexNeighborAtDecimation2dA(const SimplexId v, const int id, const SimplexId shiftX, const SimplexId shiftY, const int decimation) const
std::vector< int > getGridDimensions() const
SimplexId getVertexNeighborAtDecimationB(const SimplexId v, const int id, const SimplexId shiftX, const SimplexId shiftY, const SimplexId shiftZ, const int decimation) const
SimplexId getInvertedLocalNeighbor2dAC(SimplexId id, SimplexId &invertedLocalNeighbor) const
void getImpactedVerticesB(std::array< SimplexId, 3 > &p, SimplexId &localNeighborId0, SimplexId &localNeighborId1) const
void getImpactedVerticesBFHD(std::array< SimplexId, 3 > &p, SimplexId &localNeighborId0, SimplexId &localNeighborId1) const
SimplexId getInvertVertexNeighborABCDEFGH(const SimplexId v, const SimplexId neighborId, SimplexId shiftX, SimplexId shiftY, SimplexId shiftZ) const
SimplexId getVertexNeighborAtDecimation2dABCD(const SimplexId v, const int id, const SimplexId shiftX, const SimplexId shiftY, const int decimation) const
void setTriangulation(ImplicitTriangulation *triangulation)
SimplexId getVertexNeighborAB(const SimplexId v, const int id, SimplexId shiftX, SimplexId shiftY, SimplexId shiftZ) const
SimplexId getInvertVertexNeighborEG(const SimplexId v, const SimplexId neighborId, SimplexId shiftX, SimplexId shiftY, SimplexId shiftZ) const
void getInvertedLocalNeighborH(SimplexId id, SimplexId &invertedLocalNeighbor) const
SimplexId getVertexNeighborAtDecimationC(const SimplexId v, const int id, const SimplexId shiftX, const SimplexId shiftY, const SimplexId shiftZ, const int decimation) const
void getImpactedVerticesD(std::array< SimplexId, 3 > &p, SimplexId &localNeighborId0, SimplexId &localNeighborId1) const
SimplexId getInvertVertexNeighborC(const SimplexId v, const SimplexId neighborId, SimplexId shiftX, SimplexId shiftY, SimplexId shiftZ) const
SimplexId getInvertedLocalNeighbor2dD(SimplexId id, SimplexId &invertedLocalNeighbor) const
SimplexId getVertexNeighborAEGC(const SimplexId v, const int id, SimplexId shiftX, SimplexId shiftY, SimplexId shiftZ) const
SimplexId getVertexNeighbor2dB(const SimplexId v, const int id, SimplexId shiftX, SimplexId shiftY) const
SimplexId getVertexNeighborEG(const SimplexId v, const int id, SimplexId shiftX, SimplexId shiftY, SimplexId shiftZ) const
SimplexId getVertexNeighbor2dA(const SimplexId v, const int id, SimplexId shiftX, SimplexId shiftY) const
void getInvertedLocalNeighborGHDC(SimplexId id, SimplexId &invertedLocalNeighbor) const
SimplexId getVertexNeighborAtDecimationEF(const SimplexId v, const int id, const SimplexId shiftX, const SimplexId shiftY, const SimplexId shiftZ, const int decimation) const
SimplexId getVertexNeighborCG(const SimplexId v, const int id, SimplexId shiftX, SimplexId shiftY, SimplexId shiftZ) const
SimplexId getVertexNeighborH(const SimplexId v, const int id, SimplexId shiftX, SimplexId shiftY, SimplexId shiftZ) const
SimplexId getVertexNeighborAE(const SimplexId v, const int id, SimplexId shiftX, SimplexId shiftY, SimplexId shiftZ) const
SimplexId getVertexNeighborAtDecimationBFHD(const SimplexId v, const int id, const SimplexId shiftX, const SimplexId shiftY, const SimplexId shiftZ, const int decimation) const
SimplexId getInvertedLocalNeighbor2dC(SimplexId id, SimplexId &invertedLocalNeighbor) const
SimplexId getVertexNeighborAtDecimationA(const SimplexId v, const int id, const SimplexId shiftX, const SimplexId shiftY, const SimplexId shiftZ, const int decimation) const
SimplexId getInvertVertexNeighborGHDC(const SimplexId v, const SimplexId neighborId, SimplexId shiftX, SimplexId shiftY, SimplexId shiftZ) const
void getInvertedLocalNeighborGH(SimplexId id, SimplexId &invertedLocalNeighbor) const
SimplexId getInvertVertexNeighborFH(const SimplexId v, const SimplexId neighborId, SimplexId shiftX, SimplexId shiftY, SimplexId shiftZ) const
SimplexId getVertexNeighborD(const SimplexId v, const int id, SimplexId shiftX, SimplexId shiftY, SimplexId shiftZ) const
void getInvertedLocalNeighborAEFB(SimplexId id, SimplexId &invertedLocalNeighbor) const
void getInvertedLocalNeighborF(SimplexId id, SimplexId &invertedLocalNeighbor) const
void vertexToPosition2d(const SimplexId vertex, std::array< SimplexId, 3 > &p) const
SimplexId getInvertVertexNeighborBD(const SimplexId v, const SimplexId neighborId, SimplexId shiftX, SimplexId shiftY, SimplexId shiftZ) const
void getImpactedVerticesAC(std::array< SimplexId, 3 > &p, SimplexId &localNeighborId0, SimplexId &localNeighborId1) const
bool isBoundaryImpacted(SimplexId) const
void getInvertedLocalNeighborB(SimplexId id, SimplexId &invertedLocalNeighbor) const
SimplexId getInvertVertexNeighborABDC(const SimplexId v, const SimplexId neighborId, SimplexId shiftX, SimplexId shiftY, SimplexId shiftZ) const
SimplexId getVertexNeighborBD(const SimplexId v, const int id, SimplexId shiftX, SimplexId shiftY, SimplexId shiftZ) const
SimplexId getInvertVertexNeighborAE(const SimplexId v, const SimplexId neighborId, SimplexId shiftX, SimplexId shiftY, SimplexId shiftZ) const
void setDecimationLevel(int decimationLevel)
int getVertexNeighbor(const SimplexId &vertexId, const int &localNeighborId, SimplexId &neighborId) const
void getImpactedVerticesG(std::array< SimplexId, 3 > &p, SimplexId &localNeighborId0, SimplexId &localNeighborId1) const
SimplexId getVertexNeighbor2dAC(const SimplexId v, const int id, SimplexId shiftX, SimplexId shiftY) const
SimplexId getVertexNeighborAEFB(const SimplexId v, const int id, SimplexId shiftX, SimplexId shiftY, SimplexId shiftZ) const
SimplexId getVertexNeighborAtDecimation2dAB(const SimplexId v, const int id, const SimplexId shiftX, const SimplexId shiftY, const int decimation) const
void getImpactedVertices2dCD(std::array< SimplexId, 3 > &p, SimplexId &localNeighborId0, SimplexId &localNeighborId1) const
SimplexId getInvertVertexNeighbor2dCD(const SimplexId v, const SimplexId neighborId, SimplexId shiftX, SimplexId shiftY) const
SimplexId getInvertVertexNeighbor2dD(const SimplexId v, const SimplexId neighborId, SimplexId shiftX, SimplexId shiftY) const
SimplexId getVertexNeighborAtDecimationG(const SimplexId v, const int id, const SimplexId shiftX, const SimplexId shiftY, const SimplexId shiftZ, const int decimation) const
SimplexId getVertexNeighborDH(const SimplexId v, const int id, SimplexId shiftX, SimplexId shiftY, SimplexId shiftZ) const
SimplexId getVertexNeighborA(const SimplexId v, const int id, SimplexId shiftX, SimplexId shiftY, SimplexId shiftZ) const
char localNeighborId(SimplexId neighborId, SimplexId vertexId)
void getInvertedLocalNeighborBF(SimplexId id, SimplexId &invertedLocalNeighbor) const
SimplexId getInvertedLocalNeighbor2dBD(SimplexId id, SimplexId &invertedLocalNeighbor) const
void getInvertedLocalNeighborEFHG(SimplexId id, SimplexId &invertedLocalNeighbor) const
SimplexId getInvertVertexNeighborF(const SimplexId v, const SimplexId neighborId, SimplexId shiftX, SimplexId shiftY, SimplexId shiftZ) const
SimplexId getInvertVertexNeighborA(const SimplexId v, const SimplexId neighborId, SimplexId shiftX, SimplexId shiftY, SimplexId shiftZ) const
SimplexId getVertexNeighborGHDC(const SimplexId v, const int id, SimplexId shiftX, SimplexId shiftY, SimplexId shiftZ) const
SimplexId getInvertedLocalNeighbor2dB(SimplexId id, SimplexId &invertedLocalNeighbor) const
void getImpactedVerticesABDC(std::array< SimplexId, 3 > &p, SimplexId &localNeighborId0, SimplexId &localNeighborId1) const
SimplexId getVertexNeighborGH(const SimplexId v, const int id, SimplexId shiftX, SimplexId shiftY, SimplexId shiftZ) const
SimplexId getInvertedLocalNeighbor2dCD(SimplexId id, SimplexId &invertedLocalNeighbor) const
SimplexId getVertexNeighbor2dCD(const SimplexId v, const int id, SimplexId shiftX, SimplexId shiftY) const
SimplexId getVertexNeighborB(const SimplexId v, const int id, SimplexId shiftX, SimplexId shiftY, SimplexId shiftZ) const
void getImpactedVerticesCD(std::array< SimplexId, 3 > &p, SimplexId &localNeighborId0, SimplexId &localNeighborId1) const
SimplexId getInvertVertexNeighborAEFB(const SimplexId v, const SimplexId neighborId, SimplexId shiftX, SimplexId shiftY, SimplexId shiftZ) const
SimplexId getVertexNeighborEF(const SimplexId v, const int id, SimplexId shiftX, SimplexId shiftY, SimplexId shiftZ) const
SimplexId getVertexNeighborAtDecimationAC(const SimplexId v, const int id, const SimplexId shiftX, const SimplexId shiftY, const SimplexId shiftZ, const int decimation) const
SimplexId getInvertVertexNeighbor2dC(const SimplexId v, const SimplexId neighborId, SimplexId shiftX, SimplexId shiftY) const
void getImpactedVertices2dAC(std::array< SimplexId, 3 > &p, SimplexId &localNeighborId0, SimplexId &localNeighborId1) const
SimplexId getVertexNeighborAtDecimationD(const SimplexId v, const int id, const SimplexId shiftX, const SimplexId shiftY, const SimplexId shiftZ, const int decimation) const
SimplexId getVertexNeighborBFHD(const SimplexId v, const int id, SimplexId shiftX, SimplexId shiftY, SimplexId shiftZ) const
void getInvertedLocalNeighborBD(SimplexId id, SimplexId &invertedLocalNeighbor) const
SimplexId getVertexNeighborNumber(const SimplexId &vertexId) const
void getInvertedLocalNeighborG(SimplexId id, SimplexId &invertedLocalNeighbor) const
SimplexId getInvertVertexNeighborDH(const SimplexId v, const SimplexId neighborId, SimplexId shiftX, SimplexId shiftY, SimplexId shiftZ) const
void getInvertedLocalNeighborD(SimplexId id, SimplexId &invertedLocalNeighbor) const
void getImpactedVertices2dAB(std::array< SimplexId, 3 > &p, SimplexId &localNeighborId0, SimplexId &localNeighborId1) const
void getImpactedVerticesE(std::array< SimplexId, 3 > &p, SimplexId &localNeighborId0, SimplexId &localNeighborId1) const
SimplexId getInvertVertexNeighborEFHG(const SimplexId v, const SimplexId neighborId, SimplexId shiftX, SimplexId shiftY, SimplexId shiftZ) const
SimplexId getInvertVertexNeighborCD(const SimplexId v, const SimplexId neighborId, SimplexId shiftX, SimplexId shiftY, SimplexId shiftZ) const
SimplexId getVertexNeighbor2dABCD(const SimplexId v, const int id, SimplexId shiftX, SimplexId shiftY) const
SimplexId getInvertVertexNeighborB(const SimplexId v, const SimplexId neighborId, SimplexId shiftX, SimplexId shiftY, SimplexId shiftZ) const
void getImpactedVerticesAB(std::array< SimplexId, 3 > &p, SimplexId &localNeighborId0, SimplexId &localNeighborId1) const
void getImpactedVertices2dABCD(std::array< SimplexId, 3 > &p, SimplexId &localNeighborId0, SimplexId &localNeighborId1) const
SimplexId getVertexNeighborF(const SimplexId v, const int id, SimplexId shiftX, SimplexId shiftY, SimplexId shiftZ) const
void findBoundaryRepresentatives(std::vector< SimplexId > &boundaryRepresentatives)
SimplexId getVertexNeighborAtDecimationABDC(const SimplexId v, const int id, const SimplexId shiftX, const SimplexId shiftY, const SimplexId shiftZ, const int decimation) const
SimplexId getVertexNeighborCD(const SimplexId v, const int id, SimplexId shiftX, SimplexId shiftY, SimplexId shiftZ) const
int getInvertVertexNeighbor(const SimplexId &vertexId, const SimplexId &neighborId, SimplexId &localNeighborId) const
SimplexId getVertexNeighbor2dBD(const SimplexId v, const int id, SimplexId shiftX, SimplexId shiftY) const
SimplexId getVertexNeighborABDC(const SimplexId v, const int id, SimplexId shiftX, SimplexId shiftY, SimplexId shiftZ) const
void getInvertedLocalNeighborE(SimplexId id, SimplexId &invertedLocalNeighbor) const
void getImpactedVertices2dBD(std::array< SimplexId, 3 > &p, SimplexId &localNeighborId0, SimplexId &localNeighborId1) const
SimplexId getInvertVertexNeighborAC(const SimplexId v, const SimplexId neighborId, SimplexId shiftX, SimplexId shiftY, SimplexId shiftZ) const
void getImpactedVerticesEF(std::array< SimplexId, 3 > &p, SimplexId &localNeighborId0, SimplexId &localNeighborId1) const
SimplexId getVertexNeighbor2dD(const SimplexId v, const int id, SimplexId shiftX, SimplexId shiftY) const
SimplexId getVertexNeighborEFHG(const SimplexId v, const int id, SimplexId shiftX, SimplexId shiftY, SimplexId shiftZ) const
void getInvertedLocalNeighborAEGC(SimplexId id, SimplexId &invertedLocalNeighbor) const
SimplexId getInvertVertexNeighbor2dABCD(const SimplexId v, const SimplexId neighborId, SimplexId shiftX, SimplexId shiftY) const
SimplexId getVertexNeighborAtDecimationAE(const SimplexId v, const int id, const SimplexId shiftX, const SimplexId shiftY, const SimplexId shiftZ, const int decimation) const
void getInvertedLocalNeighborAC(SimplexId id, SimplexId &invertedLocalNeighbor) const
void getImpactedVerticesBF(std::array< SimplexId, 3 > &p, SimplexId &localNeighborId0, SimplexId &localNeighborId1) const
void getImpactedVerticesAE(std::array< SimplexId, 3 > &p, SimplexId &localNeighborId0, SimplexId &localNeighborId1) const
SimplexId getInvertVertexNeighborH(const SimplexId v, const SimplexId neighborId, SimplexId shiftX, SimplexId shiftY, SimplexId shiftZ) const
The Topology ToolKit.
int SimplexId
Identifier type for simplices of any dimension.
Definition DataTypes.h:22