未验证 提交 854f455c 编写于 作者: M Michael Herzog 提交者: GitHub

Merge pull request #18226 from Mugen87/dev29

Editor: Fix ui.three.js.
...@@ -9,6 +9,10 @@ import { TGALoader } from '../../../examples/jsm/loaders/TGALoader.js'; ...@@ -9,6 +9,10 @@ import { TGALoader } from '../../../examples/jsm/loaders/TGALoader.js';
import { UIElement, UISpan, UIDiv, UIRow, UIButton, UICheckbox, UIText, UINumber } from './ui.js'; import { UIElement, UISpan, UIDiv, UIRow, UIButton, UICheckbox, UIText, UINumber } from './ui.js';
import { MoveObjectCommand } from '../commands/MoveObjectCommand.js'; import { MoveObjectCommand } from '../commands/MoveObjectCommand.js';
/**
* @author mrdoob / http://mrdoob.com/
*/
var UITexture = function ( mapping ) { var UITexture = function ( mapping ) {
UIElement.call( this ); UIElement.call( this );
...@@ -39,7 +43,7 @@ var UITexture = function ( mapping ) { ...@@ -39,7 +43,7 @@ var UITexture = function ( mapping ) {
input.click(); input.click();
}, false ); }, false );
canvas.addEventListener( 'drop', function ( event ) { canvas.addEventListener( 'drop', function () {
event.preventDefault(); event.preventDefault();
event.stopPropagation(); event.stopPropagation();
...@@ -48,12 +52,6 @@ var UITexture = function ( mapping ) { ...@@ -48,12 +52,6 @@ var UITexture = function ( mapping ) {
}, false ); }, false );
dom.appendChild( canvas ); dom.appendChild( canvas );
var name = document.createElement( 'input' );
name.disabled = true;
name.style.width = '64px';
name.style.border = '1px solid #ccc';
dom.appendChild( name );
function loadFile( file ) { function loadFile( file ) {
if ( file.type.match( 'image.*' ) ) { if ( file.type.match( 'image.*' ) ) {
...@@ -129,7 +127,6 @@ UITexture.prototype.getValue = function () { ...@@ -129,7 +127,6 @@ UITexture.prototype.getValue = function () {
UITexture.prototype.setValue = function ( texture ) { UITexture.prototype.setValue = function ( texture ) {
var canvas = this.dom.children[ 0 ]; var canvas = this.dom.children[ 0 ];
var name = this.dom.children[ 1 ];
var context = canvas.getContext( '2d' ); var context = canvas.getContext( '2d' );
if ( texture !== null ) { if ( texture !== null ) {
...@@ -138,21 +135,21 @@ UITexture.prototype.setValue = function ( texture ) { ...@@ -138,21 +135,21 @@ UITexture.prototype.setValue = function ( texture ) {
if ( image !== undefined && image.width > 0 ) { if ( image !== undefined && image.width > 0 ) {
name.value = texture.sourceFile; canvas.title = texture.sourceFile;
var scale = canvas.width / image.width; var scale = canvas.width / image.width;
context.drawImage( image, 0, 0, image.width * scale, image.height * scale ); context.drawImage( image, 0, 0, image.width * scale, image.height * scale );
} else { } else {
name.value = texture.sourceFile + ' (error)'; canvas.title = texture.sourceFile + ' (error)';
context.clearRect( 0, 0, canvas.width, canvas.height ); context.clearRect( 0, 0, canvas.width, canvas.height );
} }
} else { } else {
name.value = ''; canvas.title = 'empty';
if ( context !== null ) { if ( context !== null ) {
...@@ -203,7 +200,6 @@ var UIOutliner = function ( editor ) { ...@@ -203,7 +200,6 @@ var UIOutliner = function ( editor ) {
// hack // hack
this.scene = editor.scene; this.scene = editor.scene;
this.editor = editor;
// Prevent native scroll behavior // Prevent native scroll behavior
dom.addEventListener( 'keydown', function ( event ) { dom.addEventListener( 'keydown', function ( event ) {
...@@ -373,7 +369,7 @@ UIOutliner.prototype.setOptions = function ( options ) { ...@@ -373,7 +369,7 @@ UIOutliner.prototype.setOptions = function ( options ) {
if ( newParentIsChild ) return; if ( newParentIsChild ) return;
scope.editor.execute( new MoveObjectCommand( scope.editor, object, newParent, nextObject ) ); editor.execute( new MoveObjectCommand( editor, object, newParent, nextObject ) );
var changeEvent = document.createEvent( 'HTMLEvents' ); var changeEvent = document.createEvent( 'HTMLEvents' );
changeEvent.initEvent( 'change', true, true ); changeEvent.initEvent( 'change', true, true );
...@@ -423,16 +419,16 @@ UIOutliner.prototype.setValue = function ( value ) { ...@@ -423,16 +419,16 @@ UIOutliner.prototype.setValue = function ( value ) {
for ( var i = 0; i < this.options.length; i ++ ) { for ( var i = 0; i < this.options.length; i ++ ) {
var UIElement = this.options[ i ]; var element = this.options[ i ];
if ( UIElement.value === value ) { if ( element.value === value ) {
UIElement.classList.add( 'active' ); element.classList.add( 'active' );
// scroll into view // scroll into view
var y = UIElement.offsetTop - this.dom.offsetTop; var y = element.offsetTop - this.dom.offsetTop;
var bottomY = y + UIElement.offsetHeight; var bottomY = y + element.offsetHeight;
var minScroll = bottomY - this.dom.offsetHeight; var minScroll = bottomY - this.dom.offsetHeight;
if ( this.dom.scrollTop > y ) { if ( this.dom.scrollTop > y ) {
...@@ -449,7 +445,7 @@ UIOutliner.prototype.setValue = function ( value ) { ...@@ -449,7 +445,7 @@ UIOutliner.prototype.setValue = function ( value ) {
} else { } else {
UIElement.classList.remove( 'active' ); element.classList.remove( 'active' );
} }
...@@ -507,7 +503,7 @@ UIPoints.prototype.onChange = function ( callback ) { ...@@ -507,7 +503,7 @@ UIPoints.prototype.onChange = function ( callback ) {
UIPoints.prototype.clear = function () { UIPoints.prototype.clear = function () {
for ( var i = 0; i < this.pointslength; ++ i ) { for ( var i = 0; i < this.pointsUI.length; ++ i ) {
if ( this.pointsUI[ i ] ) { if ( this.pointsUI[ i ] ) {
...@@ -549,13 +545,13 @@ UIPoints2.prototype.constructor = UIPoints2; ...@@ -549,13 +545,13 @@ UIPoints2.prototype.constructor = UIPoints2;
UIPoints2.addRow = function () { UIPoints2.addRow = function () {
if ( this.pointslength === 0 ) { if ( this.pointsUI.length === 0 ) {
this.pointsList.add( this.createPointRow( 0, 0 ) ); this.pointsList.add( this.createPointRow( 0, 0 ) );
} else { } else {
var point = this.pointsUI[ this.pointslength - 1 ]; var point = this.pointsUI[ this.pointsUI.length - 1 ];
this.pointsList.add( this.createPointRow( point.x.getValue(), point.y.getValue() ) ); this.pointsList.add( this.createPointRow( point.x.getValue(), point.y.getValue() ) );
...@@ -568,14 +564,17 @@ UIPoints2.addRow = function () { ...@@ -568,14 +564,17 @@ UIPoints2.addRow = function () {
UIPoints2.prototype.getValue = function () { UIPoints2.prototype.getValue = function () {
var points = []; var points = [];
var count = 0;
for ( var i = 0; i < this.pointslength; i ++ ) { for ( var i = 0; i < this.pointsUI.length; i ++ ) {
var pointUI = this.pointsUI[ i ]; var pointUI = this.pointsUI[ i ];
if ( ! pointUI ) continue; if ( ! pointUI ) continue;
points.push( new THREE.Vector2( pointUI.x.getValue(), pointUI.y.getValue() ) ); points.push( new THREE.Vector2( pointUI.x.getValue(), pointUI.y.getValue() ) );
++ count;
pointUI.lbl.setValue( count );
} }
...@@ -615,7 +614,7 @@ UIPoints2.prototype.createPointRow = function ( x, y ) { ...@@ -615,7 +614,7 @@ UIPoints2.prototype.createPointRow = function ( x, y ) {
} ); } );
this.pointspush( { row: pointRow, lbl: lbl, x: txtX, y: txtY } ); this.pointsUI.push( { row: pointRow, lbl: lbl, x: txtX, y: txtY } );
++ this.lastPointIdx; ++ this.lastPointIdx;
pointRow.add( lbl, txtX, txtY, btn ); pointRow.add( lbl, txtX, txtY, btn );
...@@ -636,13 +635,13 @@ UIPoints3.prototype.constructor = UIPoints3; ...@@ -636,13 +635,13 @@ UIPoints3.prototype.constructor = UIPoints3;
UIPoints3.addRow = function () { UIPoints3.addRow = function () {
if ( this.pointslength === 0 ) { if ( this.pointsUI.length === 0 ) {
this.pointsList.add( this.createPointRow( 0, 0, 0 ) ); this.pointsList.add( this.createPointRow( 0, 0, 0 ) );
} else { } else {
var point = this.pointsUI[ this.pointslength - 1 ]; var point = this.pointsUI[ this.pointsUI.length - 1 ];
this.pointsList.add( this.createPointRow( point.x.getValue(), point.y.getValue(), point.z.getValue() ) ); this.pointsList.add( this.createPointRow( point.x.getValue(), point.y.getValue(), point.z.getValue() ) );
...@@ -655,14 +654,17 @@ UIPoints3.addRow = function () { ...@@ -655,14 +654,17 @@ UIPoints3.addRow = function () {
UIPoints3.prototype.getValue = function () { UIPoints3.prototype.getValue = function () {
var points = []; var points = [];
var count = 0;
for ( var i = 0; i < this.pointslength; i ++ ) { for ( var i = 0; i < this.pointsUI.length; i ++ ) {
var pointUI = this.pointsUI[ i ]; var pointUI = this.pointsUI[ i ];
if ( ! pointUI ) continue; if ( ! pointUI ) continue;
points.push( new THREE.Vector3( pointUI.x.getValue(), pointUI.y.getValue(), pointUI.z.getValue() ) ); points.push( new THREE.Vector3( pointUI.x.getValue(), pointUI.y.getValue(), pointUI.z.getValue() ) );
++ count;
pointUI.lbl.setValue( count );
} }
...@@ -703,7 +705,7 @@ UIPoints3.prototype.createPointRow = function ( x, y, z ) { ...@@ -703,7 +705,7 @@ UIPoints3.prototype.createPointRow = function ( x, y, z ) {
} ); } );
this.pointspush( { row: pointRow, lbl: lbl, x: txtX, y: txtY, z: txtZ } ); this.pointsUI.push( { row: pointRow, lbl: lbl, x: txtX, y: txtY, z: txtZ } );
++ this.lastPointIdx; ++ this.lastPointIdx;
pointRow.add( lbl, txtX, txtY, txtZ, btn ); pointRow.add( lbl, txtX, txtY, txtZ, btn );
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册