commonRenderingPipelinePropertyGridComponent.tsx 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. import * as React from "react";
  2. import { Observable } from "babylonjs/Misc/observable";
  3. import { PropertyChangedEvent } from "../../../../propertyChangedEvent";
  4. import { LineContainerComponent } from "../../../lineContainerComponent";
  5. import { TextLineComponent } from "../../../lines/textLineComponent";
  6. import { LockObject } from "../lockObject";
  7. import { PostProcessRenderPipeline } from 'babylonjs/PostProcesses/RenderPipeline/postProcessRenderPipeline';
  8. import { GlobalState } from '../../../../globalState';
  9. import { SliderLineComponent } from '../../../lines/sliderLineComponent';
  10. interface ICommonRenderingPipelinePropertyGridComponentProps {
  11. globalState: GlobalState;
  12. renderPipeline: PostProcessRenderPipeline;
  13. lockObject: LockObject;
  14. onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
  15. }
  16. export class CommonRenderingPipelinePropertyGridComponent extends React.Component<ICommonRenderingPipelinePropertyGridComponentProps> {
  17. constructor(props: ICommonRenderingPipelinePropertyGridComponentProps) {
  18. super(props);
  19. }
  20. render() {
  21. const renderPipeline = this.props.renderPipeline;
  22. const renderPipelineAsAny = renderPipeline as any;
  23. return (
  24. <div>
  25. <LineContainerComponent globalState={this.props.globalState} title="GENERAL">
  26. <TextLineComponent label="Class" value={renderPipeline.getClassName()} />
  27. {
  28. renderPipelineAsAny.samples !== undefined &&
  29. <SliderLineComponent label="Samples" minimum={1} maximum={8} step={1} decimalCount={0} target={renderPipeline} propertyName="samples" onPropertyChangedObservable={this.props.onPropertyChangedObservable} />
  30. }
  31. </LineContainerComponent>
  32. </div>
  33. );
  34. }
  35. }