void LightDialog::exec() { for (int i = 0; i < renderer->getNumLights(); i++) { oldLights[i] = renderer->getLight(i); } lightChanged(currLight); QDialog::exec(); }
void QGLLightParameters::setQuadraticAttenuation(qreal value) { Q_D(QGLLightParameters); if (d->quadraticAttenuation != value) { d->quadraticAttenuation = value; emit quadraticAttenuationChanged(); emit lightChanged(); } }
void QGLLightParameters::setLinearAttenuation(qreal value) { Q_D(QGLLightParameters); if (d->linearAttenuation != value) { d->linearAttenuation = value; emit linearAttenuationChanged(); emit lightChanged(); } }
void QGLLightParameters::setConstantAttenuation(qreal value) { Q_D(QGLLightParameters); if (d->constantAttenuation != value) { d->constantAttenuation = value; emit constantAttenuationChanged(); emit lightChanged(); } }
void QGLLightParameters::setSpotExponent(qreal value) { Q_D(QGLLightParameters); if (d->spotExponent != value) { d->spotExponent = value; emit spotExponentChanged(); emit lightChanged(); } }
void QGLLightParameters::setSpotDirection(const QVector3D& vector) { Q_D(QGLLightParameters); if (d->spotDirection != vector) { d->spotDirection = vector; emit spotDirectionChanged(); emit lightChanged(); } }
void QGLLightParameters::setSpecularColor(const QColor& value) { Q_D(QGLLightParameters); if (d->specularColor != value) { d->specularColor = value; emit specularColorChanged(); emit lightChanged(); } }
void QGLLightParameters::setDiffuseColor(const QColor& value) { Q_D(QGLLightParameters); if (d->diffuseColor != value) { d->diffuseColor = value; emit diffuseColorChanged(); emit lightChanged(); } }
void QGLLightParameters::setAmbientColor(const QColor& value) { Q_D(QGLLightParameters); if (d->ambientColor != value) { d->ambientColor = value; emit ambientColorChanged(); emit lightChanged(); } }
void QGLLightParameters::setDirection(const QVector3D& value) { Q_D(QGLLightParameters); if (d->type == Directional) { if (d->position != value) { // Only the direction() has changed. d->position = value; emit directionChanged(); emit lightChanged(); } } else { // Both the position() and direction() are changed. d->type = Directional; d->position = value; emit positionChanged(); emit directionChanged(); emit lightChanged(); } }
void QGLLightParameters::setPosition(const QVector3D& point) { Q_D(QGLLightParameters); if (d->type == Positional) { if (d->position != point) { // Only the position() has changed. d->position = point; emit positionChanged(); emit lightChanged(); } } else { // Both the position() and direction() are changed. d->type = Positional; d->position = point; emit positionChanged(); emit directionChanged(); emit lightChanged(); } }
void QGLLightParameters::setSpotAngle(qreal value) { Q_D(QGLLightParameters); if (d->spotAngle != value) { d->spotAngle = value; if (value != 180.0f) d->spotCosAngle = qCos(value * M_PI / 180.0f); else d->spotCosAngle = -1.0f; emit spotAngleChanged(); emit lightChanged(); } }
void LightEditor::alphaBetaSliderValueChanged() { // Get alpha value in [-180, 180] degrees. float alpha = -180.0f + float(alphaSlider.value() - alphaSlider.minimum()) / float(alphaSlider.maximum() - alphaSlider.minimum()) * 360.0f; // Get beta value in [-90, 90] degrees. float beta = -90.0f + float(betaSlider.value() - betaSlider.minimum()) / float(betaSlider.maximum() - betaSlider.minimum()) * 180.0f; // Compute unit vector. float lightX = cos(alpha * M_PI/180.0f) * cos(beta * M_PI/180.0f); float lightY = sin(alpha * M_PI/180.0f) * cos(beta * M_PI/180.0f); float lightZ = sin(beta * M_PI/180.0f); // Update OSPRay light direction. ospSet3f(light, "direction", lightX, lightY, lightZ); // Commit and emit signal. ospCommit(light); emit lightChanged(); }
void OpenGLRenderSystem::detachLight(RendererLight& light) { ASSERT_MESSAGE(m_lights.find(&light) != m_lights.end(), "light could not be detached"); m_lights.erase(&light); lightChanged(light); }
void OpenGLRenderSystem::attachLight(RendererLight& light) { ASSERT_MESSAGE(m_lights.find(&light) == m_lights.end(), "light could not be attached"); m_lights.insert(&light); lightChanged(light); }