Add missing null check to SGLight's dim-factor expression

This commit is contained in:
Fernando García Liñán 2021-02-02 18:40:54 +01:00
parent a7a53921e4
commit 23a4fb1429
2 changed files with 14 additions and 10 deletions

View File

@ -123,11 +123,13 @@ SGLight::appendLight(const SGPropertyNode *configNode,
if (dim_factor) {
const SGExpressiond *expression =
read_value(dim_factor, modelRoot, "", 0, 1);
light->setUpdateCallback(
new SGLight::UpdateCallback(expression,
light->getAmbient(),
light->getDiffuse(),
light->getSpecular()));
if (expression) {
light->setUpdateCallback(
new SGLight::UpdateCallback(expression,
light->getAmbient(),
light->getDiffuse(),
light->getSpecular()));
}
}
osg::Shape *debug_shape = nullptr;

View File

@ -56,11 +56,13 @@ SGLightAnimation::SGLightAnimation(simgear::SGTransientModelData &modelData) :
if (dim_factor) {
const SGExpressiond *expression =
read_value(dim_factor, modelData.getModelRoot(), "", 0, 1);
light->setUpdateCallback(
new SGLight::UpdateCallback(expression,
light->getAmbient(),
light->getDiffuse(),
light->getSpecular()));
if (expression) {
light->setUpdateCallback(
new SGLight::UpdateCallback(expression,
light->getAmbient(),
light->getDiffuse(),
light->getSpecular()));
}
}
align->setName(getConfig()->getStringValue("name"));