|
@@ -23,6 +23,8 @@ import { CustomPropertyGridComponent } from '../customPropertyGridComponent';
|
|
import { StandardMaterial } from 'babylonjs/Materials/standardMaterial';
|
|
import { StandardMaterial } from 'babylonjs/Materials/standardMaterial';
|
|
import { Color3LineComponent } from '../../../lines/color3LineComponent';
|
|
import { Color3LineComponent } from '../../../lines/color3LineComponent';
|
|
import { MorphTarget } from 'babylonjs/Morph/morphTarget';
|
|
import { MorphTarget } from 'babylonjs/Morph/morphTarget';
|
|
|
|
+import { OptionsLineComponent } from '../../../lines/optionsLineComponent';
|
|
|
|
+import { AbstractMesh } from 'babylonjs/Meshes/abstractMesh';
|
|
|
|
|
|
interface IMeshPropertyGridComponentProps {
|
|
interface IMeshPropertyGridComponentProps {
|
|
globalState: GlobalState;
|
|
globalState: GlobalState;
|
|
@@ -218,6 +220,17 @@ export class MeshPropertyGridComponent extends React.Component<IMeshPropertyGrid
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ var algorithmOptions = [
|
|
|
|
+ { label: "Accurate", value: AbstractMesh.OCCLUSION_ALGORITHM_TYPE_ACCURATE },
|
|
|
|
+ { label: "Conservative", value: AbstractMesh.OCCLUSION_ALGORITHM_TYPE_CONSERVATIVE },
|
|
|
|
+ ];
|
|
|
|
+
|
|
|
|
+ var occlusionTypeOptions = [
|
|
|
|
+ { label: "None", value: AbstractMesh.OCCLUSION_TYPE_NONE },
|
|
|
|
+ { label: "Optimistic", value: AbstractMesh.OCCLUSION_TYPE_OPTIMISTIC },
|
|
|
|
+ { label: "Strict", value: AbstractMesh.OCCLUSION_TYPE_STRICT },
|
|
|
|
+ ];
|
|
|
|
+
|
|
return (
|
|
return (
|
|
<div className="pane">
|
|
<div className="pane">
|
|
<CustomPropertyGridComponent globalState={this.props.globalState} target={mesh}
|
|
<CustomPropertyGridComponent globalState={this.props.globalState} target={mesh}
|
|
@@ -311,6 +324,11 @@ export class MeshPropertyGridComponent extends React.Component<IMeshPropertyGrid
|
|
<TextLineComponent label="Type" value={this.convertPhysicsTypeToString()} />
|
|
<TextLineComponent label="Type" value={this.convertPhysicsTypeToString()} />
|
|
</LineContainerComponent>
|
|
</LineContainerComponent>
|
|
}
|
|
}
|
|
|
|
+ <LineContainerComponent globalState={this.props.globalState} title="OCCLUSIONS" closed={true}>
|
|
|
|
+ <OptionsLineComponent label="Type" options={occlusionTypeOptions} target={mesh} propertyName="occlusionType" onPropertyChangedObservable={this.props.onPropertyChangedObservable} />
|
|
|
|
+ <SliderLineComponent label="Retry count" minimum={-1} maximum={10} decimalCount={0} step={1} target={mesh} propertyName="occlusionRetryCount" onPropertyChangedObservable={this.props.onPropertyChangedObservable} />
|
|
|
|
+ <OptionsLineComponent label="Algorithm" options={algorithmOptions} target={mesh} propertyName="occlusionQueryAlgorithmType" onPropertyChangedObservable={this.props.onPropertyChangedObservable} />
|
|
|
|
+ </LineContainerComponent>
|
|
<LineContainerComponent globalState={this.props.globalState} title="EDGE RENDERING" closed={true}>
|
|
<LineContainerComponent globalState={this.props.globalState} title="EDGE RENDERING" closed={true}>
|
|
<CheckBoxLineComponent label="Enable" target={mesh} isSelected={() => mesh.edgesRenderer != null} onSelect={value => {
|
|
<CheckBoxLineComponent label="Enable" target={mesh} isSelected={() => mesh.edgesRenderer != null} onSelect={value => {
|
|
if (value) {
|
|
if (value) {
|