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));
		}
	}
[next]