import * as THREE from '../../build/three.module.js'; import { UIRow, UIText, UINumber, UIInteger } from './libs/ui.js'; import { SetGeometryCommand } from './commands/SetGeometryCommand.js'; function GeometryParametersPanel( editor, object ) { var strings = editor.strings; var container = new UIRow(); var geometry = object.geometry; var parameters = geometry.parameters; // width var widthRow = new UIRow(); var width = new UINumber( parameters.width ).onChange( update ); widthRow.add( new UIText( strings.getKey( 'sidebar/geometry/box_geometry/width' ) ).setWidth( '90px' ) ); widthRow.add( width ); container.add( widthRow ); // height var heightRow = new UIRow(); var height = new UINumber( parameters.height ).onChange( update ); heightRow.add( new UIText( strings.getKey( 'sidebar/geometry/box_geometry/height' ) ).setWidth( '90px' ) ); heightRow.add( height ); container.add( heightRow ); // depth var depthRow = new UIRow(); var depth = new UINumber( parameters.depth ).onChange( update ); depthRow.add( new UIText( strings.getKey( 'sidebar/geometry/box_geometry/depth' ) ).setWidth( '90px' ) ); depthRow.add( depth ); container.add( depthRow ); // widthSegments var widthSegmentsRow = new UIRow(); var widthSegments = new UIInteger( parameters.widthSegments ).setRange( 1, Infinity ).onChange( update ); widthSegmentsRow.add( new UIText( strings.getKey( 'sidebar/geometry/box_geometry/widthseg' ) ).setWidth( '90px' ) ); widthSegmentsRow.add( widthSegments ); container.add( widthSegmentsRow ); // heightSegments var heightSegmentsRow = new UIRow(); var heightSegments = new UIInteger( parameters.heightSegments ).setRange( 1, Infinity ).onChange( update ); heightSegmentsRow.add( new UIText( strings.getKey( 'sidebar/geometry/box_geometry/heightseg' ) ).setWidth( '90px' ) ); heightSegmentsRow.add( heightSegments ); container.add( heightSegmentsRow ); // depthSegments var depthSegmentsRow = new UIRow(); var depthSegments = new UIInteger( parameters.depthSegments ).setRange( 1, Infinity ).onChange( update ); depthSegmentsRow.add( new UIText( strings.getKey( 'sidebar/geometry/box_geometry/depthseg' ) ).setWidth( '90px' ) ); depthSegmentsRow.add( depthSegments ); container.add( depthSegmentsRow ); // function update() { editor.execute( new SetGeometryCommand( editor, object, new THREE.BoxGeometry( width.getValue(), height.getValue(), depth.getValue(), widthSegments.getValue(), heightSegments.getValue(), depthSegments.getValue() ) ) ); } return container; } export { GeometryParametersPanel };