Performer Scene Graphs
Traversing a scene
void recursiveTraversal(pfNode * node)
{
int i;
if (node->isOfType(pfGeode::getClassType()))
{
pfGeode *geode = (pfGeode *)node;
for (i=0; i < geode->getNumGSets(); i++)
{
pfGeoSet *gset = geode->getGSet(i);
/* Do something */
gset->getGState()->setMode(PFSTATE_TRANSPARENCY, PFTR_ON);
gset->setDrawBin(PFSORT_TRANSP_BIN);
}
}
else if (node->isOfType(pfGroup::getClassType()))
{
pfGroup *group = (pfGroup *)node;
for (i=0; i < group->getNumChildren(); i++)
recursiveTraversal(group->getChild(i));
}
}