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

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

Loading…
Cancel
Save