Skip to Content.
Sympa Menu

cgal-discuss - Re: [cgal-discuss] Octree refinement by splitting nodes in a list.

Subject: CGAL users discussion list

List archive

Re: [cgal-discuss] Octree refinement by splitting nodes in a list.


Chronological Thread 
  • From: Tariq Dinar <>
  • To:
  • Subject: Re: [cgal-discuss] Octree refinement by splitting nodes in a list.
  • Date: Sat, 1 Apr 2023 06:31:45 +0200
  • Authentication-results: mail3-smtp-sop.national.inria.fr; spf=None ; spf=Pass ; spf=None
  • Ironport-data: A9a23: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
  • Ironport-hdrordr: A9a23:hL2ppKrFti2pbq3qXiSEG5IaV5oSeYIsimQD101hICG9E/bo7v xG+c5w6faaskd1ZJhNo6HjBEDEewK+yXcX2+gs1NWZLW3bUQKTRekI0WKh+V3d8kbFh4lgPM lbAs5D4R7LYWSST/yW3OB1KbkdKRC8npyVuQ==
  • Ironport-phdr: A9a23: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
  • Ironport-sdr: 6427b3bf_T3xJoq/1eMLlF6YsWa0cb8a6zQskYoC8nxgy17UBmUb9sUG qYpGnlCFVQTJEdPrMfEK+J0rk4rN9xNhbUFuwJg==

You are correct, the tree will change size. However the pointers to nodes were not the problem.
It turns out CGAL::Orthtrees::Node_access::split(node) is for testing only and you need to provide a predicate for refinement that suits your purpose.
Please refer to this thread on CGAL discussions on Github.  
Best.

On Thu, Mar 30, 2023 at 3:25 PM Carsten <> wrote:
Just an uninformed suggestion:
Wouldn't the "tree_nodes" (the full list of nodes) change size if any of its leafs are split? I mean, a real split would provide 8 more (child-) nodes and render the node itself no longer a leaf.
I'm talking from principles, not from the inner workings or experience of CGAL::Orthtrees



Fra: <> på vegne af Tariq Dinar <>
Sendt: 25. marts 2023 14:40
Til: <>
Emne: [cgal-discuss] Octree refinement by splitting nodes in a list.
 
Hi,
I am trying to split leaf nodes that are stored  by means of  pointers in a list . When iterating over the list, while splitting each node, I get a violation of is_leaf() precondition, which should not occur in my list. It seems as if the tree is changing within the loop making some of the pointers not valid. Please have a look at the code below and advice if you may. 

```
 while (iter != tree_nodes.end() ){
    Quadtree::Node node = *iter;
    if (node.is_leaf()){
      list_nodes.push_back(&node);
    }
    iter++;
  }
  std::vector<Quadtree::Node*>::iterator index = list_nodes.begin();
  while (index != list_nodes.end() ){
    Quadtree::Node* p = *index;
    Quadtree::Node node = *p;
    CGAL::Orthtrees::Node_access::split(node);
    index++;
  }
```
Tariq
Thank you.

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



  • Re: [cgal-discuss] Octree refinement by splitting nodes in a list., Tariq Dinar, 04/01/2023

Archive powered by MHonArc 2.6.19+.

Top of Page