Light::Light(LIGHT_TYPE type) { lights.push_back(this); if(availableLights.size() > 0) { lightNum = availableLights[0]; availableLights.erase(availableLights.begin()); Visible(true); setLightType(type); setPosition(0, 0, 0); setCutoff(45); setExponent(12); setSpotDirection(0, -1, 0); setAmbient(0, 0, 0, 1); setDiffuse(1, 1, 1, 1); setSpecular(1, 1, 1, 1); updateLight(); } else { lightNum = 0; Visible(false); } }
Light::Light(const int lightNum, const bool isCaster) : lightNum_(lightNum), ambient_(kDefaultAmbLight), diffuse_(kDefaultDiffLight), specular_(kBaseSpecularLight), constAtt_(1.f), linAtt_(0.001f), quadAtt_(0.f), enabled_(true) , castsShadow_(isCaster), spotCutoff_(180.f) { setPosition(BasePos); setSpotDirection(BaseDir); apply(); }
void Light::setSpotDirection(const GLfloat *params) { setSpotDirection(params[0], params[1], params[2]); }