Changeset 1328 for XIOS/dev/branch_openmp/extern/remap/src/node.hpp
- Timestamp:
- 11/15/17 12:14:34 (6 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
XIOS/dev/branch_openmp/extern/remap/src/node.hpp
r1153 r1328 15 15 struct Circle 16 16 { 17 18 17 Coord centre; 18 double radius; 19 19 }; 20 20 … … 116 116 struct Node 117 117 { 118 119 120 121 122 123 124 125 126 127 128 129 118 int level; /* FIXME leafs are 0 and root is max level? */ 119 int leafCount; /* number of leafs that are descendants of this node (the elements in it's cycle) */ 120 Coord centre; 121 double radius; 122 NodePtr parent, ref; 123 std::vector<NodePtr> child; 124 std::list<NodePtr> intersectors; 125 bool reinserted; 126 int updateCount; // double var; 127 CBasicTree* tree; 128 void *data; 129 int route; 130 130 bool toDelete ; 131 131 132 133 134 132 Node() : level(0), leafCount(1), centre(ORIGIN), radius(0), reinserted(false), updateCount(0), toDelete(false) {} 133 Node(const Coord& centre, double radius, void *data) 134 : level(0), leafCount(1), centre(centre), radius(radius), reinserted(false), updateCount(0), data(data), toDelete(false) {} 135 135 136 136 //#ifdef DEBUG … … 178 178 //#endif 179 179 180 181 182 183 180 void move(const NodePtr node); 181 void remove(const NodePtr node); 182 void inflate(const NodePtr node); 183 void update(); 184 184 void output(std::ostream& flux, int level, int color) ; 185 186 187 188 189 190 191 192 193 185 NodePtr closest(std::vector<NodePtr>& list, int n = CLOSEST); 186 NodePtr farthest(std::vector<NodePtr>& list); 187 void findClosest(int level, NodePtr src, double& minDist, NodePtr &closest); 188 189 void search(NodePtr node); 190 bool centreInside(Node &node); 191 bool intersects(NodePtr node); 192 bool isInside(Node &node); 193 int incluCheck(); 194 194 void checkParent(void) ; 195 196 197 198 199 200 201 195 void printChildren(); 196 void assignRoute(std::vector<int>::iterator& rank, int level); 197 void assignCircleAndPropagateUp(Coord *centres, double *radia, int level); 198 void printLevel(int level); 199 void routeNode(NodePtr node, int level); 200 void routingIntersecting(std::vector<Node>* routingList, NodePtr node); 201 void routeIntersection(std::vector<int>& routes, NodePtr node); 202 202 void getNodeLevel(int level,std::list<NodePtr>& NodeList) ; 203 203 bool removeDeletedNodes(int assignLevel) ;
Note: See TracChangeset
for help on using the changeset viewer.