!1691 优化:灯光配置可输入小数

pull/1688/MERGE
林三 3 years ago committed by ChenX
parent dadc9bfa4f
commit 8a698b2ad0

@ -297,14 +297,14 @@ export class PointLightStore implements IConfigStore
{
let lightStore = LightStore.GetInstance();
this.m_Option.CaseShadow = lightStore.lightData.CaseShadow;
this.m_Option.Intensity = parseInt(lightStore.lightData.Intensity);
this.m_Option.Intensity = parseFloat(lightStore.lightData.Intensity);
this.m_Option.lightColor = lightStore.lightData.Color;
this.m_Option.temperature = parseInt(lightStore.lightData.Temperature);
this.m_Option.IndirectLightingIntensity = parseInt(lightStore.lightData.IndirectLightingIntensity);
this.m_Option.temperature = parseFloat(lightStore.lightData.Temperature);
this.m_Option.IndirectLightingIntensity = parseFloat(lightStore.lightData.IndirectLightingIntensity);
this.m_Option.SpecularScale = parseFloat(lightStore.lightData.SpecularScale);
this.m_Option.SoftSourceRadius = parseInt(lightStore.lightData.SoftSourceRadius);
this.m_Option.SourceLength = parseInt(lightStore.lightData.SourceLength);
this.m_Option.SourceRadius = parseInt(lightStore.lightData.SourceRadius);
this.m_Option.SoftSourceRadius = parseFloat(lightStore.lightData.SoftSourceRadius);
this.m_Option.SourceLength = parseFloat(lightStore.lightData.SourceLength);
this.m_Option.SourceRadius = parseFloat(lightStore.lightData.SourceRadius);
//新的配置
let newConfig: IConfigOption = {};
@ -392,17 +392,17 @@ export class SpotLightStore implements IConfigStore
{
let lightStore = LightStore.GetInstance();
this.m_Option.CaseShadow = lightStore.lightData.CaseShadow;
this.m_Option.Intensity = parseInt(lightStore.lightData.Intensity);
this.m_Option.Intensity = parseFloat(lightStore.lightData.Intensity);
this.m_Option.lightColor = lightStore.lightData.Color;
this.m_Option.temperature = parseInt(lightStore.lightData.Temperature);
this.m_Option.IndirectLightingIntensity = parseInt(lightStore.lightData.IndirectLightingIntensity);
this.m_Option.temperature = parseFloat(lightStore.lightData.Temperature);
this.m_Option.IndirectLightingIntensity = parseFloat(lightStore.lightData.IndirectLightingIntensity);
this.m_Option.SpecularScale = parseFloat(lightStore.lightData.SpecularScale);
this.m_Option.Angle = parseInt(lightStore.lightData.Angle);
this.m_Option.InnerConeAngle = parseInt(lightStore.lightData.InnerConeAngle);
this.m_Option.SoftSourceRadius = parseInt(lightStore.lightData.SoftSourceRadius);
this.m_Option.SourceLength = parseInt(lightStore.lightData.SourceLength);
this.m_Option.SourceRadius = parseInt(lightStore.lightData.SourceRadius);
this.m_Option.AttenuationRadius = parseInt(lightStore.lightData.AttenuationRadius);
this.m_Option.Angle = parseFloat(lightStore.lightData.Angle);
this.m_Option.InnerConeAngle = parseFloat(lightStore.lightData.InnerConeAngle);
this.m_Option.SoftSourceRadius = parseFloat(lightStore.lightData.SoftSourceRadius);
this.m_Option.SourceLength = parseFloat(lightStore.lightData.SourceLength);
this.m_Option.SourceRadius = parseFloat(lightStore.lightData.SourceRadius);
this.m_Option.AttenuationRadius = parseFloat(lightStore.lightData.AttenuationRadius);
this.m_Option.ShowHelper = lightStore.lightData.ShowHelper;
//新的配置
let newConfig: IConfigOption = {};
@ -496,16 +496,16 @@ export class RectAreaLightStore implements IConfigStore
{
let lightStore = LightStore.GetInstance();
this.m_Option.CaseShadow = lightStore.lightData.CaseShadow;
this.m_Option.Intensity = parseInt(lightStore.lightData.Intensity);
this.m_Option.Intensity = parseFloat(lightStore.lightData.Intensity);
this.m_Option.lightColor = lightStore.lightData.Color;
this.m_Option.temperature = parseInt(lightStore.lightData.Temperature);
this.m_Option.IndirectLightingIntensity = parseInt(lightStore.lightData.IndirectLightingIntensity);
this.m_Option.temperature = parseFloat(lightStore.lightData.Temperature);
this.m_Option.IndirectLightingIntensity = parseFloat(lightStore.lightData.IndirectLightingIntensity);
this.m_Option.SpecularScale = parseFloat(lightStore.lightData.SpecularScale);
this.m_Option.Width = parseFloat(lightStore.lightData.Width);
this.m_Option.Height = parseFloat(lightStore.lightData.Height);
this.m_Option.BarnDoorAngle = parseInt(lightStore.lightData.BarnDoorAngle);
this.m_Option.BarnDoorLength = parseInt(lightStore.lightData.BarnDoorLength);
this.m_Option.AttenuationRadius = parseInt(lightStore.lightData.AttenuationRadius);
this.m_Option.BarnDoorAngle = parseFloat(lightStore.lightData.BarnDoorAngle);
this.m_Option.BarnDoorLength = parseFloat(lightStore.lightData.BarnDoorLength);
this.m_Option.AttenuationRadius = parseFloat(lightStore.lightData.AttenuationRadius);
this.m_Option.ShowHelper = lightStore.lightData.ShowHelper;
//新的配置
let newConfig: IConfigOption = {};

@ -468,20 +468,20 @@ export class InputAndSlider extends React.Component<{ pars: string[], store: Lig
{
case "InnerConeAngle":
this.props.store.lightData.InnerConeAngle = value;
this.props.store.currentSelectEnt[this.props.pars[0]] = parseInt(value);
if (parseInt(value) > parseInt(this.props.store.lightData.Angle))
this.props.store.currentSelectEnt[this.props.pars[0]] = parseFloat(value);
if (parseFloat(value) > parseFloat(this.props.store.lightData.Angle))
{
this.props.store.lightData.Angle = value;
this.props.store.currentSelectEnt["Angle"] = MathUtils.degToRad(parseInt(value));
this.props.store.currentSelectEnt["Angle"] = MathUtils.degToRad(parseFloat(value));
}
break;
case "Angle":
this.props.store.lightData.Angle = value;
this.props.store.currentSelectEnt["Angle"] = MathUtils.degToRad(parseInt(value));
if (parseInt(value) < parseInt(this.props.store.lightData.InnerConeAngle))
this.props.store.currentSelectEnt["Angle"] = MathUtils.degToRad(parseFloat(value));
if (parseFloat(value) < parseFloat(this.props.store.lightData.InnerConeAngle))
{
this.props.store.lightData.InnerConeAngle = value;
this.props.store.currentSelectEnt["InnerConeAngle"] = parseInt(value);
this.props.store.currentSelectEnt["InnerConeAngle"] = parseFloat(value);
}
break;
case "SpecularScale":
@ -490,7 +490,7 @@ export class InputAndSlider extends React.Component<{ pars: string[], store: Lig
break;
default:
this.props.store.lightData[this.props.pars[0]] = value;
this.props.store.currentSelectEnt[this.props.pars[0]] = parseInt(value);
this.props.store.currentSelectEnt[this.props.pars[0]] = parseFloat(value);
break;
}
if (userConfig.synchronousEnable)
@ -505,21 +505,21 @@ export class InputAndSlider extends React.Component<{ pars: string[], store: Lig
{
case "InnerConeAngle":
this.props.store.lightData.InnerConeAngle = value;
this.props.store.currentSelectEnt[this.props.pars[0]] = parseInt(value);
if (parseInt(value) > parseInt(this.props.store.lightData.Angle))
this.props.store.currentSelectEnt[this.props.pars[0]] = parseFloat(value);
if (parseFloat(value) > parseFloat(this.props.store.lightData.Angle))
{
this.props.store.lightData.Angle = value;
this.props.store.currentSelectEnt["Angle"] = MathUtils.degToRad(parseInt(value));
this.props.store.currentSelectEnt["Angle"] = MathUtils.degToRad(parseFloat(value));
}
this.props.store.currentSelectEnt.Update();
break;
case "Angle":
this.props.store.lightData.Angle = value;
this.props.store.currentSelectEnt["Angle"] = MathUtils.degToRad(parseInt(value));
if (parseInt(value) < parseInt(this.props.store.lightData.InnerConeAngle))
this.props.store.currentSelectEnt["Angle"] = MathUtils.degToRad(parseFloat(value));
if (parseFloat(value) < parseFloat(this.props.store.lightData.InnerConeAngle))
{
this.props.store.lightData.InnerConeAngle = value;
this.props.store.currentSelectEnt["InnerConeAngle"] = parseInt(value);
this.props.store.currentSelectEnt["InnerConeAngle"] = parseFloat(value);
}
break;
case "SpecularScale":
@ -528,7 +528,7 @@ export class InputAndSlider extends React.Component<{ pars: string[], store: Lig
break;
default:
this.props.store.lightData[this.props.pars[0]] = value;
this.props.store.currentSelectEnt[this.props.pars[0]] = parseInt(value);
this.props.store.currentSelectEnt[this.props.pars[0]] = parseFloat(value);
break;
}
app.Viewer.UpdateRender();
@ -552,7 +552,7 @@ export class InputAndSlider extends React.Component<{ pars: string[], store: Lig
}}
onValueChange={(num, value, e) =>
{
if (this.props.isFloat) // 处理小数点 Data赋值不上传
// 处理小数点 Data赋值不上传
if (num >= this.props.min && num < this.props.max && value === num + ".")
{
this.props.store.lightData[this.props.pars[0]] = num + ".";
@ -569,11 +569,9 @@ export class InputAndSlider extends React.Component<{ pars: string[], store: Lig
}}
onBlur={(e) =>
{
if (this.props.isFloat) // 去掉小数点
if (e.currentTarget.value[e.currentTarget.value.length - 1] === ".")
{
this.props.store.lightData[this.props.pars[0]] = 0;
this.props.store.lightData[this.props.pars[0]] = this.props.store.currentSelectEnt[this.props.pars[0]];
}
if (this.props.store.lightData[this.props.pars[0]] < this.props.min)
{

Loading…
Cancel
Save