Example
#include bsp.h
void recursion( bspNode * node,int level )
{
vector<bspNode* > Q;
Q.push_back(node);
while (Q.size()>0)
{
bspNode * r = Q.back();
Q.pop_back();
bspPlane xz;
xz.n = get_plane_normal();
xz.d = (r->get_bcenter()*xz.n); // the plane cross the cell baricenter
r->split(xz); // split the cell
if (r->get_level() < level) // recursion until some level
{
Q.push_back(r->get_front());
Q.push_back(r->get_back());
}
}
}
int main()
{
bspTree mybsp;
recursion(mybsp.get_root(),7); // construction until nivel 7
mybsp.draw_level(7); // draw the level 7
} |