pointLightPropertyGridComponent.tsx 2.4 KB

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