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: Marc Alexa <>
  • To:
  • Subject: Re: [cgal-discuss] On cell deletion, do neighboring cells need neighbors to be specified?
  • Date: Fri, 1 Jul 2022 10:50:46 +0200
  • Authentication-results: mail2-smtp-roc.national.inria.fr; spf=None ; spf=Pass ; spf=None
  • Ironport-data: A9a23:UHhycKjODOqWaQicMfGCI56fX161UBYKZh0ujC45NGQN5FlHY01je htvWWnVPa2LMGHzKt8nbIy1p0lVsJWEnN81SQs4ryE0RC1jpJueD7x1DG+gZnLIdpWroGFPt phFNIGYdKjYaleG+39B55C49SEUOZmgH+a6UKieUsxIbVcMpB0J0HqPoMZkxN8y6TSFK1nV4 4mq/JWGYAbNNwNcawr41YrT8HuDg9yp4Fv0jnRmDRyclAK2e9E9VfrzFInpR5fKatE88t2SG 44v+IqEElbxpH/BPD8KfoHTKSXmSpaKVeSHZ+E/t6KK2nCurQRquko32WZ1hUp/0120c95NJ NplnIetQD4JFLf1kscUcSlySmJXNLVi0eqSSZS/mZT7I0zudnLtx7BjDhhzM9BCvOlwBm5K+ LoTLzVlghKr3brnhuLmDLM11oJ+dqEHP6tH0p1k5TTQF/1gSJTOU6zi6tpR3TN2jcdLdRrbT 5ZCNmU3M0yeC/FJEm8JFbsUoeGOvybmVz1ytk3W5otuv2eGmWSd15C0aIaPEjCQfu1ekU+c4 27H5G/kGQoyL82a0TPD83S2h+aJkzmTZW4JPLix9/ovjV/Kg2JOUlsZUly0pfT/gUm7Mz5CF 6AK0gM1sKEL1Gaxd9PeVj+IiifHlxcEf/MFRoXW9zqx4qbT5g+YAE0NQThAdMEquacKqdoCh g/hczTBVWwHjVGFdZ6O3uzL8m7qaED5OUdHNHBUF1JUizX2iNhr1kqnczp1LEKiYjTI9dzYx jmLqG0zhexWg5NRkaq8+l/DjnSnoZ2hou8JCuf/DjjNAuBRPtbNi2mUBb7zs6sowGGxEATpg ZT8s5LChN3i9LnU/MB3fM0DHauy+9GOOyDGjFhkEvEJrmrwpSD6JtALum4vei+F1/ronxe5M Cc/XisBtPdu0IeCMMebnqrqVpt2lfO8fTgbfqmENosSCnSOSON31Hg2ORT4M5HFn08rnqUyU ap3gu79ZUv2/Z9PlWLsL89EieFD7nlnmQv7GM6mpzz6juL2TCPEEd8tbQrVBshkvfPsiFuPr 753aZDRoz0BC72WX8Ui2dRMRbz8BSNrW86eRg0+XrLrHzeK70lxU6CKnO1wJOSIXc19z4/1w 510YWcAoHKXuJENAVnihqlLZOy9UJBhg2g8OCBwb1+k12JyM4mq5aYbMZAweOB/puBkyPd1S dgDetmBUqwfEGSZp2xFYMmvtpFmeTSqmRmKYHiobT05SJhqGF7E99riSQ3w+XRcFSGwr8Y// +at21qDE5oOTghvFujMb/erww/jtHQRgrMgUE7BI90Vc0LpqdA4Jyv0h/4xAscNNRSTnmvAh 1jKWU8V/LCfrZU0/d/FgbG/g72oS+YuTFBHG2T77KqtMXaI82emx7hGWrnacD3YUlTy5/z+N +hYyvfLMMoHkkxPhIxyHus51qk5/dbu++ZXwwk4TnXGa1OnVuFpLnWch5Ids6RMwvpUu1LzV B/VvNZdPrqNNYXuF1tIfFgpaeGK1Pc1nDjO7KRqfB+runcvpLfXA19POxSsiTBGKOcnOo0Sx +p86tUd7Bayi0Z3P9va3DpY8X+Aci4JX6k97MpIBYbqjk8myAgHb8GGTCDx556LZpNHNUxze m2Yg6/LhrJ9wEvecipsSSKcg7IF3Zle6gpXyFIiJkiSnoaXjPEA2hAMoy88SR5Yz0ka3u9+U oSx25aZ+UlTE/ZUaMl/s6SEHghAAFiU+BW0xQZT0mLeSEasWyrGK2hV1SNhOqwG2zo0Q9SZ1 OjwJKXZvfLCc8T43y90UklgwxAmZcIk7RXMwahLAOzcd6TXolPZbmuGam8Bqh+hCsQ07KECS S+G484oAZDG2eUsT2HXxmVUOXn8iPxJGYCafcxcwQ==
  • Ironport-hdrordr: A9a23:tDaCTa4ojgXEYekg5APXwP/XdLJyesId70hD6qkRc202TiX8ra qTdZsgpHjJYVoqKRIdcJW7SdG9qA3nhOVICPgqTNKftWDd0QPCTL2Kr7GSpQEIcxeeygc379 YFT0ERMqyIMbG4t6rHCcuDfurIDOPpzEnRv5al856ld29XV50=
  • Ironport-phdr: A9a23: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
  • Ironport-sdr: QIIA/TNTOPfzsWNL8JYnVv4zX823YW7iWVL/n/7KRPHZEvnD49Vy3PmoHASWZ3EvgutX7/ghbd XN1sjRhDeG+5keSAnPNLgrPP+Uubt4nUYm3ht/BfcwXFsYTLdMXj4MEdA7Bgu7IyOmiXWXutxX 8w/NbiVcWNsXWqonIJtjjv02OnGLDDG0Zq/UMhXqKTQVZfQBoq2vN269eE3ZYxCzUpKaGP9QQ4 4RBZDx96JuoRD94kONgFa5sqki05+Xzb4PoE3d25D/d5zYph7gLoC3Te5UZiXyzWSIOOb+aomX nZrKA3VgjOKt2znBH5dZSMwt

The neighborhood information among the n_i should be fine. You want to fix the neighbors that used to be before_i to the correct after_i. 

Something like

n_1->set_neighbor(n_1->index(triangulation.tds().mirror_vertex(before_1,pivot_from_2) ), after_x);

with the correct choice of x (and fixing my probably broken CGAL syntax and usage). 




On 1. Jul 2022, at 00:00, Adam Getchell ( via cgal-discuss Mailing List) <> wrote:

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




--
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