[LYN-3913] Fix conversion to unsupported photometric unit on light type change.

When converting to a light type that doesn't support the currently used photometric unit, the editor component will convert the photometric unit to the universally supported lumen.

Signed-off-by: Ken Pruiksma <pruiksma@amazon.com>
main
Ken Pruiksma 5 years ago
parent b9964bbb5a
commit a75b8eb636

@ -264,6 +264,22 @@ namespace AZ
// Update the cached light type.
m_lightType = m_controller.m_configuration.m_lightType;
// Check to see if the current photometric type is supported by the light type. If not, convert to lumens before deactivating.
auto supportedPhotometricUnits = m_controller.m_configuration.GetValidPhotometricUnits();
auto foundIt = AZStd::find_if(
supportedPhotometricUnits.begin(),
supportedPhotometricUnits.end(),
[&](const Edit::EnumConstant<PhotometricUnit>& entry) -> bool
{
return AZStd::RemoveEnum<PhotometricUnit>::type(m_controller.m_configuration.m_intensityMode) == entry.m_value;
}
);
if (foundIt == supportedPhotometricUnits.end())
{
m_controller.ConvertToIntensityMode(PhotometricUnit::Lumen);
}
// componets may be removed or added here, so deactivate now and reactivate the entity when everything is done shifting around.
GetEntity()->Deactivate();
@ -334,6 +350,11 @@ namespace AZ
break;
}
if (foundIt == supportedPhotometricUnits.end())
{
m_controller.ConvertToIntensityMode(PhotometricUnit::Lumen);
}
return true;
}

Loading…
Cancel
Save