commonShadowLightPropertyGridComponent.tsx 1.6 KB

12345678910111213141516171819202122232425262728293031
  1. import * as React from "react";
  2. import { Observable, IShadowLight } from "babylonjs";
  3. import { PropertyChangedEvent } from "../../../../propertyChangedEvent";
  4. import { LineContainerComponent } from "../../../lineContainerComponent";
  5. import { CheckBoxLineComponent } from "../../../lines/checkBoxLineComponent";
  6. import { FloatLineComponent } from "../../../lines/floatLineComponent";
  7. import { LockObject } from "../lockObject";
  8. interface ICommonShadowLightPropertyGridComponentProps {
  9. light: IShadowLight,
  10. lockObject: LockObject,
  11. onPropertyChangedObservable?: Observable<PropertyChangedEvent>
  12. }
  13. export class CommonShadowLightPropertyGridComponent extends React.Component<ICommonShadowLightPropertyGridComponentProps> {
  14. constructor(props: ICommonShadowLightPropertyGridComponentProps) {
  15. super(props);
  16. }
  17. render() {
  18. const light = this.props.light;
  19. return (
  20. <LineContainerComponent title="SHADOWS">
  21. <CheckBoxLineComponent label="Shadows enabled" target={light} propertyName="shadowEnabled" onPropertyChangedObservable={this.props.onPropertyChangedObservable} />
  22. <FloatLineComponent lockObject={this.props.lockObject} label="Shadows near plane" target={light} propertyName="shadowMinZ" onPropertyChangedObservable={this.props.onPropertyChangedObservable} />
  23. <FloatLineComponent lockObject={this.props.lockObject} label="Shadows far plane" target={light} propertyName="shadowMaxZ" onPropertyChangedObservable={this.props.onPropertyChangedObservable} />
  24. </LineContainerComponent>
  25. );
  26. }
  27. }