Rerooted void tree

This commit is contained in:
Your Name 2011-02-24 14:11:12 -05:00
parent 6907129355
commit dbec582fca

View file

@ -162,16 +162,17 @@ public:
voids_for_zones[v.zId[j]].push_back(i); voids_for_zones[v.zId[j]].push_back(i);
} }
nodes = new VoidNode[totalNumNodes]; // One additional for the mega-root
nodes = new VoidNode[totalNumNodes+1];
for (int i = 0; i < rep.allVoids.size(); i++) for (int i = 0; i <= totalNumNodes; i++)
{ {
nodes[i].vid = i; nodes[i].vid = i;
nodes[i].parent = 0; nodes[i].parent = 0;
} }
std::cout << "Linking voids together..." << std::endl; std::cout << "Linking voids together..." << std::endl;
double volMin = 0;// 4*M_PI/3*pow(4.*512/500.,3); double volMin = 0;// 4*M_PI/3*pow(4.*512/500.,3);
int inserted = 0; int inserted = 0;
for (int i = rep.allVoids.size()-1; i>=0;i--) for (int i = rep.allVoids.size()-1; i>=0;i--)
{ {
@ -192,17 +193,13 @@ public:
inserted++; inserted++;
} }
rootNode = 0; rootNode = &nodes[inserted+1];
rootNode->vid = -1;
rootNode->parent = 0;
for (int i = 0; i < inserted; i++) for (int i = 0; i < inserted; i++)
if (nodes[i].parent == 0) if (nodes[i].parent == 0)
{ nodes[i].parent = rootNode;
if (rootNode != 0)
{
std::cerr << "Multiple root to the tree !!!" << std::endl;
abort();
}
rootNode = &nodes[i];
}
activeNodes = inserted; activeNodes = inserted;
} }