Skip to Content.
Sympa Menu

cgal-discuss - Re: [cgal-discuss] On cell deletion, do neighboring cells need neighbors to be specified?

Subject: CGAL users discussion list

List archive

Re: [cgal-discuss] On cell deletion, do neighboring cells need neighbors to be specified?


Chronological Thread 
  • From: Adam Getchell <>
  • To:
  • Subject: Re: [cgal-discuss] On cell deletion, do neighboring cells need neighbors to be specified?
  • Date: Thu, 30 Jun 2022 15:00:06 -0700
  • Authentication-results: mail2-smtp-roc.national.inria.fr; spf=None ; spf=Pass ; spf=None
  • Ironport-data: A9a23:C8sNq6gUpVPLgq1ch35zO/m3X161pBYKZh0ujC45NGQN5FlHY01je htvW2CAOP/eMGD9KNFzbNvi9ExU6MLcmtNmGwJurCwwHiNjpJueD7x1DG+gZnLIdpWroGFPt phFNIGYdKjYaleG+39B55C49SEUOZmgH+a6UKieUsxIbVcMpB0J0HqPoMZkxN8y6TSFK1nV4 4mq/ZaHYATNNwNcawr41YrT8HuDg9yp4Fv0jnRmDRyclAK2e9E9VfrzFInpR5fKatE88t2SG 44v+IqEElbxpH/BPD8KfoHTKSXmSpaKVeSHZ+E/t6KK2nCurQRquko32WZ1hUp/0120c95NJ Npl9paieF1zDLP3yeUeWTRBQiFDDPNh5+qSSZS/mZT7I0zudnLtx7B3DxhzM9RHp6B4BmZB8 fFeIzcIBvyBr7jukfTrF6823J5ldZa2VG8ckikIITXxBPovRNbMTrnB5dJc2B8/g8lPGbDVY M9xhT9HME+eMk0eZQx/5JQWpfiK2iTtYmdhinGfrJcmpDXxkSdN6e24WDbSUoXSGZ89clyjj mnJ9mC8DhABP8GE0hKe43e0j6nOmzn6UcQcDtWFGuVChVSSwikKC0RTWwLk/L+2jUmxX98ZI EsRksYzkUQs3A+hXOinBS+mmy+FvRQxQotQLtxkzx7Yn8I4/D2lLmQDSzdAbvkvu8k3WSEm2 ze1czXBVWwHXFq9GSL1y1uEkd+hEXNKcjJaNEfoWSNAsoaz+thi5v7aZo87SPbdszHjJd3nL 9m3QMUWgrwSiYsS1Pz+8wmY3nSjoZ/GSgNz7QLSNo5E0u+bTN77D2BLwQKDhRqlEGp/ZgfZ1 JTjs5XPhN3i9bnXyESwrBwlRdlFHcqtPjzGmkJIFJI87Tmr8HPLVdkOvW8gfRw5aZxbKGGBj KrvVeV5tM870JyCPf8fXm5NI5lCIVXITom6CqiPMrKinLAoJFfWoEmCmnJ8L0i0yBR2+U3OE ZicdsmoAB4n5VdPnVKLqxMm+eZznEgWnDuNLbiilkjP+efAORa9FOhdWHPTP7hRxP7V+239r ocPX+PUkUk3eLOlOUH/r9VDRW3m2FBhWvgaXeQMJrDdSuencUl9Y8LsLUQJINE5wP4LzrqVo BlQmCZwkTLCuJEOEi3SAlgLVV8ldc8XQasTMXN+MFC29WIkZIrzvq4Te4FmL7Yi/e1ni/VzS qBdKcmHB/1OTBXB+igcPcGt9tw8KEzziFLcJTehbRg+Y4VkGF7E99riSQ3lq3sDAy+xgs0hr uDyzQjcW5cCG19vAZ+OOvKixl+8p1YHn+d2UxeaK9VfYhS+/41jKii3hfgyepleJRLGzzqc9 gCXHRZI/bmX89FpqIHE3PnWoZ2oHu1yGlthM1PatbvmZzPH+meDwJNbVLnacD3YUlTy8vrwa OhQycb6L6RbzltHtoxLE4Frw7g70N3hquII1Q9jBnjKMw2mB748cHmL2c5D6v9EyrND41fkX 0uO/pxDOuzMNpq6TRgeIw0qaunF3vYRw2GA4fMwKUT8xSl24LvXDhkIbkfU0HRQfOlvLYco4 eY9o8pKuQaxvRwnb4SdhSdO+mXQc3END/c9upcBDNO5gwYn0AseM5nVCyuz+ZLWLtsVbRRsL TiTi67Pwb9bwxOaIXY0EHHM28tbhIgP6E8Wlg5cfwzRl4qXnOIz0T1Q7S8zElZfwCJB3r8hI WNsLUB0efiD8joAaBKvhIxw99ytxSF1+3AdD3MMnWzdClCrDynDdTJgf+mK+08d/iRXeT0zE HR0Dor6eW6CQS0z9nJatY1ZRzjLQtl49wmEk8eidyhAN4dveiLr28dCekJRwyYKwqoNaInvq uxj/eI2Yqr+XcLVT2vXFKHCvYktpNu4yKCujB2vEG7l3Y0RRd1q5QWzFg==
  • Ironport-hdrordr: A9a23:kud7lqqM/TUyZ4CJjGpfbWMaV5oFeYIsimQD101hICG9E/bo8v xG+c5w6faaskd2ZJhNo6HiBEDEewKmyXcK2/hqAV7SZniDhILAFugLhuvfKn/balTDH4ZmtJ uIGJIOb+EYY2IK9foSIzPVLz/j+rS6GOTEv5a9856gd25XgtlbnnpE48+gfHFLeA==
  • Ironport-phdr: A9a23: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
  • Ironport-sdr: VuXlGD4H9Mzk+CXNb2PX8tlaMM7LTh8G+e+yjAQxoGft0Q4s9Do+0hyZis9M/Ci0iy6z2e1mO/ kHuVIG7dkzkY0TpWpUHuoNlJIJ3SuItbTWEGAEMft89j+Ijoi/gJUR6WP8tHuLXBonJKSzfrqr Ptysdkb/uPazchGw4l+SOo3fcgVilsgY9dwmMbPE1+ea+5KGWn5YcOcc56/auHQEbI0Xd+YcTx f/QCuWQaFc+Bc0lVcEQlzcEaxxt4+ein9bvQX41wUCekEhVKNxt/UtTaA75GG7cRv0Dzfbsz0s dPmlFV5sddqGHhLTIp0EM5AG

Of course right after I sent this I thought about it and did:

n_1->set_neighbor(n_1->index(top), n_5);
n_2->set_neighbor(n_2->index(top), n_6);
n_3->set_neighbor(n_3->index(top), n_7);
n_4->set_neighbor(n_4->index(top), n_8);
n_5->set_neighbor(n_5->index(bottom), n_1);
n_6->set_neighbor(n_6->index(bottom), n_2);
n_7->set_neighbor(n_7->index(bottom), n_3);
n_8->set_neighbor(n_8->index(bottom), n_4);
But that doesn’t quite do the trick.


-- 
Adam Getchell
https://adamgetchell.org



On Jun 30, 2022, at 2:36 PM, Adam Getchell <> wrote:

Hi Marc,

On Jun 30, 2022, at 12:55 AM, Marc Alexa ( via cgal-discuss Mailing List) <> wrote:

Hi Adam,

I think you also need to update the neighbors of n_1,…. set_neighbors applied to after_1,… will only change the neighbor entries in after_1,…, but not in the associated neighbors. 

Okay, that makes sense (if a bit tedious).

However, for my test case I have just 6 vertices, plus the infinite vertex. All of the neighbors of my 4-cell are infinite. So, how would I specify the neighbors of infinite cells?

Or is this a complete end case and my test case needs to have at least two layers?


(The API is a bit inconsistent among the triangulations for different dimension. I know for dD triangulations there is a different set of 4 parameters, where you set one neighboring relationship between two adjacent full simplex with one call.)

That would be nice!


Best,
Marc

PS: I have a working (but dirty) implementation for bistellar flips in dD triangulations. I’d be interested in finding others who would like to work on this, improve the interface, clean it up a bit, and then make it available.

Interested, especially since my next stage is 4D triangulations, for which I’ll almost certainly need this.

Cheers,
Adam


On 29. Jun 2022, at 22:52, Adam Getchell ( via cgal-discuss Mailing List) <> wrote:

Hello all,

I’m working on a bistellar flip for 3D triangulations, briefly as follows:

Step 1: Find a candidate edge for which a circulator around that edge obtains 4 incident cells.

Step 2: Get the 2 vertices comprising the candidate edge.

Step 3: Get the remaining 4 vertices in the 4-cell complex (there are 6 vertices in the cell complex).

Step 4: Obtain a new pivot edge between 2 different vertices for which a circulator around that pivot edge would obtain 4 new incident cells comprised of the 6 vertices.

Step 5: Find the 8 neighboring cells of the original 4-cell complex.

Step 6: Delete the old cells.

Step 7: Create the new cells using the same 6 vertices.

Step 8: Assign the 8 neighboring cells to the cells in the new 4-cell complex.


The issue is at the conclusion of Step 8, all cells have been verified as valid, cell orientations have been verified/reoriented, but the triangulation itself is not valid.

The error is: “neighbor of c has not c as neighbor”

My question is, do I also need to track the 32 neighboring cells of the 8 neighbors of the 4-cell complex being flipped? (And in my test case, the 8 neighbors are all infinite.)

Is there some other mistake?

Thanks for your advice,
Adam

P.S. I have looked at the Tetrahedral Remeshing package at Sebastien Loriot’s suggestion. I’m presently unsure if any of those functions (e.g. construct_opposite_vector_3_object()) are relevant.
-- 
Adam Getchell
https://adamgetchell.org




--
You are currently subscribed to cgal-discuss.
To unsubscribe or access the archives, go to
https://sympa.inria.fr/sympa/info/cgal-discuss



--
You are currently subscribed to cgal-discuss.
To unsubscribe or access the archives, go to
https://sympa.inria.fr/sympa/info/cgal-discuss






Archive powered by MHonArc 2.6.19+.

Top of Page