Changeset 2269 for XIOS/dev/dev_ym/XIOS_COUPLING/extern/remap/src/tree.cpp
- Timestamp:
- 12/07/21 12:00:23 (3 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
XIOS/dev/dev_ym/XIOS_COUPLING/extern/remap/src/tree.cpp
r1158 r2269 27 27 */ 28 28 29 void CBasicTree::routeNodes(vector<int>& route, vector<Node >& nodes, int assignLevel)29 void CBasicTree::routeNodes(vector<int>& route, vector<NodePtr>& nodes, int assignLevel) 30 30 { 31 31 for (int i = 0; i < nodes.size(); i++) 32 32 { 33 root->routeNode( &nodes[i], assignLevel);34 route[i] = nodes[i] .route;35 } 36 } 37 38 void CBasicTree::routeIntersections(vector<vector<int> >& routes, vector<Node >& nodes)33 root->routeNode(nodes[i], assignLevel); 34 route[i] = nodes[i]->route; 35 } 36 } 37 38 void CBasicTree::routeIntersections(vector<vector<int> >& routes, vector<NodePtr>& nodes) 39 39 { 40 40 for (int i = 0; i < nodes.size(); i++) 41 root->routeIntersection(routes[i], &nodes[i]);42 } 43 44 void CBasicTree::build(vector<Node >& nodes)41 root->routeIntersection(routes[i], nodes[i]); 42 } 43 44 void CBasicTree::build(vector<NodePtr>& nodes) 45 45 { 46 46 newRoot(1); … … 80 80 push_back(node); 81 81 82 NodePtr q ;82 NodePtr q=make_shared<Node>(); 83 83 while (pool.size()) 84 84 { … … 88 88 if (ri) 89 89 { 90 delete q;90 q.reset(); 91 91 ri = 0; 92 92 } … … 103 103 if (ri) 104 104 { 105 delete q;105 q.reset(); 106 106 ri = 0; 107 107 } … … 137 137 void CBasicTree::newRoot(int level) // newroot <- root 138 138 { 139 root = new Node;139 root = make_shared<Node>(); 140 140 // if (level > 1) cout << " newRoot level " << level << endl; 141 141 root->level = level; 142 root->parent = 0;142 root->parent.reset() ; 143 143 root->leafCount = 0; 144 144 // initialize root node on the sphere … … 155 155 //FIXME uncomment the next line and figure out why it segfault sometimes 156 156 //root->free_descendants(); // recursively deletes all nodes in the tree 157 if (root) delete root;158 } 159 160 void CTree::insertNodes(vector<Node >& nodes)157 if (root) root.reset(); 158 } 159 160 void CTree::insertNodes(vector<NodePtr>& nodes) 161 161 { 162 162 int stepSlim = MAX_NODE_SZ*MAX_NODE_SZ*2; … … 164 164 for (int i = 0; i < nodes.size(); i++) 165 165 { 166 insertNode( &nodes[i]);166 insertNode(nodes[i]); 167 167 168 168 if (root->leafCount > stepSlim) // time for slim down … … 175 175 176 176 177 void CSampleTree::insertNodes(vector<Node >& nodes)177 void CSampleTree::insertNodes(vector<NodePtr>& nodes) 178 178 { 179 179 bool first1 = true; … … 184 184 int i ; 185 185 186 // cout<<"CSampleTree::insertNodes : nb node to be inserted : "<<nodes.size()<<endl ;187 186 for (i = 0; i < nodes.size(); i++) 188 187 { 189 insertNode( &nodes[i]);188 insertNode(nodes[i]); 190 189 191 190 if (root->leafCount > stepSlim && levelSize[assignLevel] < keepNodes-2) // time for slim down
Note: See TracChangeset
for help on using the changeset viewer.