123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115 |
- import { UIRow, UIText, UISpan, UIBreak, UICheckbox } from './libs/ui.js';
- function SidebarGeometryBufferGeometry( editor ) {
- const strings = editor.strings;
- const signals = editor.signals;
- const container = new UIRow();
- function update( object ) {
- if ( object === null ) return; // objectSelected.dispatch( null )
- if ( object === undefined ) return;
- const geometry = object.geometry;
- if ( geometry ) {
- container.clear();
- container.setDisplay( 'block' );
- // attributes
- const attributesRow = new UIRow();
- const textAttributes = new UIText( strings.getKey( 'sidebar/geometry/buffer_geometry/attributes' ) ).setClass( 'Label' );
- attributesRow.add( textAttributes );
- const containerAttributes = new UISpan().setDisplay( 'inline-block' ).setVerticalAlign( 'middle' ).setWidth( '160px' );
- attributesRow.add( containerAttributes );
- const index = geometry.index;
- if ( index !== null ) {
- containerAttributes.add( new UIText( strings.getKey( 'sidebar/geometry/buffer_geometry/index' ) ).setWidth( '80px' ) );
- containerAttributes.add( new UIText( editor.utils.formatNumber( index.count ) ).setFontSize( '12px' ) );
- containerAttributes.add( new UIBreak() );
- }
- const attributes = geometry.attributes;
- for ( const name in attributes ) {
- const attribute = attributes[ name ];
- containerAttributes.add( new UIText( name ).setWidth( '80px' ) );
- containerAttributes.add( new UIText( editor.utils.formatNumber( attribute.count ) + ' (' + attribute.itemSize + ')' ).setFontSize( '12px' ) );
- containerAttributes.add( new UIBreak() );
- }
- container.add( attributesRow );
- // morph targets
- const morphAttributes = geometry.morphAttributes;
- const hasMorphTargets = Object.keys( morphAttributes ).length > 0;
- if ( hasMorphTargets === true ) {
- // morph attributes
- const rowMorphAttributes = new UIRow();
- const textMorphAttributes = new UIText( strings.getKey( 'sidebar/geometry/buffer_geometry/morphAttributes' ) ).setClass( 'Label' );
- rowMorphAttributes.add( textMorphAttributes );
- const containerMorphAttributes = new UISpan().setDisplay( 'inline-block' ).setVerticalAlign( 'middle' ).setWidth( '160px' );
- rowMorphAttributes.add( containerMorphAttributes );
- for ( const name in morphAttributes ) {
- const morphTargets = morphAttributes[ name ];
- containerMorphAttributes.add( new UIText( name ).setWidth( '80px' ) );
- containerMorphAttributes.add( new UIText( editor.utils.formatNumber( morphTargets.length ) ).setFontSize( '12px' ) );
- containerMorphAttributes.add( new UIBreak() );
- }
- container.add( rowMorphAttributes );
- // morph relative
- const rowMorphRelative = new UIRow();
- const textMorphRelative = new UIText( strings.getKey( 'sidebar/geometry/buffer_geometry/morphRelative' ) ).setClass( 'Label' );
- rowMorphRelative.add( textMorphRelative );
- const checkboxMorphRelative = new UICheckbox().setValue( geometry.morphTargetsRelative ).setDisabled( true );
- rowMorphRelative.add( checkboxMorphRelative );
- container.add( rowMorphRelative );
- }
- } else {
- container.setDisplay( 'none' );
- }
- }
- signals.objectSelected.add( update );
- signals.geometryChanged.add( update );
- return container;
- }
- export { SidebarGeometryBufferGeometry };
|