spotLightPropertyGridComponent.tsx 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. import * as React from "react";
  2. import { Observable } from "babylonjs/Misc/observable";
  3. import { SpotLight } from "babylonjs/Lights/spotLight";
  4. import { PropertyChangedEvent } from "../../../../propertyChangedEvent";
  5. import { CommonLightPropertyGridComponent } from "./commonLightPropertyGridComponent";
  6. import { LineContainerComponent } from "../../../../../sharedUiComponents/lines/lineContainerComponent";
  7. import { Color3LineComponent } from "../../../../../sharedUiComponents/lines/color3LineComponent";
  8. import { Vector3LineComponent } from "../../../../../sharedUiComponents/lines/vector3LineComponent";
  9. import { FloatLineComponent } from "../../../../../sharedUiComponents/lines/floatLineComponent";
  10. import { CommonShadowLightPropertyGridComponent } from "./commonShadowLightPropertyGridComponent";
  11. import { LockObject } from "../../../../../sharedUiComponents/tabs/propertyGrids/lockObject";
  12. import { GlobalState } from '../../../../globalState';
  13. interface ISpotLightPropertyGridComponentProps {
  14. globalState: GlobalState,
  15. light: SpotLight,
  16. lockObject: LockObject,
  17. onPropertyChangedObservable?: Observable<PropertyChangedEvent>
  18. }
  19. export class SpotLightPropertyGridComponent extends React.Component<ISpotLightPropertyGridComponentProps> {
  20. constructor(props: ISpotLightPropertyGridComponentProps) {
  21. super(props);
  22. }
  23. render() {
  24. const light = this.props.light;
  25. return (
  26. <div className="pane">
  27. <CommonLightPropertyGridComponent globalState={this.props.globalState} lockObject={this.props.lockObject} light={light} onPropertyChangedObservable={this.props.onPropertyChangedObservable} />
  28. <LineContainerComponent title="SETUP">
  29. <Color3LineComponent label="Diffuse" target={light} propertyName="diffuse" onPropertyChangedObservable={this.props.onPropertyChangedObservable} />
  30. <Color3LineComponent label="Specular" target={light} propertyName="specular" onPropertyChangedObservable={this.props.onPropertyChangedObservable} />
  31. <Vector3LineComponent label="Position" target={light} propertyName="position" onPropertyChangedObservable={this.props.onPropertyChangedObservable} />
  32. <Vector3LineComponent label="Direction" target={light} propertyName="direction" onPropertyChangedObservable={this.props.onPropertyChangedObservable} />
  33. <FloatLineComponent lockObject={this.props.lockObject} useEuler={this.props.globalState.onlyUseEulers} label="Angle" target={light} propertyName="angle" onPropertyChangedObservable={this.props.onPropertyChangedObservable} />
  34. <FloatLineComponent lockObject={this.props.lockObject} useEuler={this.props.globalState.onlyUseEulers} label="Inner angle" target={light} propertyName="innerAngle" onPropertyChangedObservable={this.props.onPropertyChangedObservable} />
  35. <FloatLineComponent lockObject={this.props.lockObject} label="Exponent" target={light} propertyName="exponent" onPropertyChangedObservable={this.props.onPropertyChangedObservable} />
  36. </LineContainerComponent>
  37. <CommonShadowLightPropertyGridComponent globalState={this.props.globalState} lockObject={this.props.lockObject} light={light} onPropertyChangedObservable={this.props.onPropertyChangedObservable} />
  38. </div>
  39. );
  40. }
  41. }