#include #include "lightGroup.h" /************************************************************************/ /* Performer type data */ pfType *lightGroup::classType_ = NULL; void lightGroup::init(void) { if (classType_ == NULL) { pfGroup::init(); classType_ = new pfType(pfGroup::getClassType(), "lightGroup"); } } /************************************************************************/ lightGroup::lightGroup(void) { setType(classType_); lights_ = new pfList(sizeof(pfLight *),8); setTravFuncs(PFTRAV_DRAW,preDraw,postDraw); } void lightGroup::addLight(pfLight *l) { lights_->add(l); } pfList * lightGroup::lights(void) { return lights_; } void lightGroup::lightsOn(void) { int i; for (i=0; i < lights_->getNum(); i++) { pfLight * light = (pfLight *) lights_->get(i); light->on(); } } void lightGroup::lightsOff(void) { int i; for (i=0; i < lights_->getNum(); i++) { pfLight * light = (pfLight *) lights_->get(i); light->off(); } } int lightGroup::preDraw(pfTraverser *trav,void *) { lightGroup * lg = (lightGroup *) trav->getNode(); lg->lightsOn(); return PFTRAV_CONT; } int lightGroup::postDraw(pfTraverser *trav,void *) { lightGroup * lg = (lightGroup *) trav->getNode(); lg->lightsOff(); return PFTRAV_CONT; }