Skip to content

Commit d97324a

Browse files
committed
Editor: Added .parent() and fixed .removeObject().
1 parent d4b0a66 commit d97324a

File tree

5 files changed

+44
-38
lines changed

5 files changed

+44
-38
lines changed

editor/js/Editor.js

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,8 @@ var Editor = function () {
1414
snapChanged: new SIGNALS.Signal(),
1515
rendererChanged: new SIGNALS.Signal(),
1616

17+
sceneGraphChanged: new SIGNALS.Signal(),
18+
1719
objectSelected: new SIGNALS.Signal(),
1820
objectAdded: new SIGNALS.Signal(),
1921
objectChanged: new SIGNALS.Signal(),
@@ -67,6 +69,7 @@ Editor.prototype = {
6769
this.addHelper( object );
6870

6971
this.signals.objectAdded.dispatch( object );
72+
this.signals.sceneGraphChanged.dispatch();
7073

7174
},
7275

@@ -76,10 +79,11 @@ Editor.prototype = {
7679

7780
if ( confirm( 'Delete ' + object.name + '?' ) === false ) return;
7881

79-
this.scene.remove( object );
82+
object.parent.remove( object );
8083
this.removeHelper( object );
8184

8285
this.signals.objectRemoved.dispatch( object );
86+
this.signals.sceneGraphChanged.dispatch();
8387

8488
},
8589

@@ -166,6 +170,22 @@ Editor.prototype = {
166170

167171
//
168172

173+
parent: function ( object, parent ) {
174+
175+
if ( parent === undefined ) {
176+
177+
parent = this.scene;
178+
179+
}
180+
181+
parent.add( object );
182+
183+
this.signals.sceneGraphChanged.dispatch();
184+
185+
},
186+
187+
//
188+
169189
select: function ( object ) {
170190

171191
this.selected = object;

editor/js/Loader.js

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ var Loader = function ( editor ) {
3737

3838
};
3939

40+
var exporter = new THREE.ObjectExporter();
4041
var timeout;
4142

4243
this.saveLocalStorage = function ( scene ) {
@@ -45,10 +46,8 @@ var Loader = function ( editor ) {
4546

4647
timeout = setTimeout( function () {
4748

48-
var exporter = new THREE.ObjectExporter();
4949
localStorage.threejsEditor = JSON.stringify( exporter.parse( editor.scene ) );
50-
51-
console.log( 'Saved state to Local Storage' );
50+
console.log( '[' + /\d\d\:\d\d\:\d\d/.exec( new Date() )[ 0 ] + ']', 'Saved state to LocalStorage.' );
5251

5352
}, 3000 );
5453

editor/js/Sidebar.Object3D.js

Lines changed: 10 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -281,17 +281,7 @@ Sidebar.Object3D = function ( editor ) {
281281

282282
if ( object.parent.id !== newParentId && object.id !== newParentId ) {
283283

284-
var parent = scene.getObjectById( newParentId, true );
285-
286-
if ( parent === undefined ) {
287-
288-
parent = scene;
289-
290-
}
291-
292-
parent.add( object );
293-
294-
signals.sceneChanged.dispatch();
284+
editor.parent( object, editor.scene.getObjectById( newParentId, true ) );
295285

296286
}
297287

@@ -450,7 +440,15 @@ Sidebar.Object3D = function ( editor ) {
450440

451441
}
452442

453-
var updateObjectParent = function () {
443+
// events
444+
445+
signals.objectSelected.add( function ( object ) {
446+
447+
updateUI();
448+
449+
} );
450+
451+
signals.sceneGraphChanged.add( function () {
454452

455453
var scene = editor.scene;
456454

@@ -474,19 +472,8 @@ Sidebar.Object3D = function ( editor ) {
474472

475473
objectParent.setOptions( options );
476474

477-
};
478-
479-
// events
480-
481-
signals.objectSelected.add( function ( object ) {
482-
483-
updateUI();
484-
485475
} );
486476

487-
signals.objectAdded.add( updateObjectParent );
488-
signals.objectRemoved.add( updateObjectParent );
489-
490477
signals.objectChanged.add( function ( object ) {
491478

492479
if ( object !== editor.selected ) return;

editor/js/Sidebar.Scene.js

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -146,7 +146,7 @@ Sidebar.Scene = function ( editor ) {
146146

147147
// events
148148

149-
var updateUI = function () {
149+
signals.sceneGraphChanged.add( function () {
150150

151151
var scene = editor.scene;
152152

@@ -196,10 +196,7 @@ Sidebar.Scene = function ( editor ) {
196196

197197
refreshFogUI();
198198

199-
};
200-
201-
signals.objectAdded.add( updateUI );
202-
signals.objectRemoved.add( updateUI );
199+
} );
203200

204201
signals.objectSelected.add( function ( object ) {
205202

editor/js/Viewport.js

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -119,11 +119,13 @@ var Viewport = function ( editor ) {
119119

120120
editor.select( object );
121121

122+
/*
122123
if ( helpersToObjects[ object.id ] !== undefined ) {
123124
124125
editor.select( helpersToObjects[ object.id ] );
125126
126127
}
128+
*/
127129

128130
} else {
129131

@@ -205,6 +207,13 @@ var Viewport = function ( editor ) {
205207

206208
} );
207209

210+
signals.sceneGraphChanged.add( function () {
211+
212+
render();
213+
updateInfo();
214+
215+
} );
216+
208217
signals.objectSelected.add( function ( object ) {
209218

210219
selectionBox.visible = false;
@@ -241,9 +250,6 @@ var Viewport = function ( editor ) {
241250

242251
}
243252

244-
render();
245-
updateInfo();
246-
247253
} );
248254

249255
signals.objectChanged.add( function ( object ) {
@@ -274,9 +280,6 @@ var Viewport = function ( editor ) {
274280

275281
}
276282

277-
render();
278-
updateInfo();
279-
280283
} );
281284

282285
signals.materialChanged.add( function ( material ) {

0 commit comments

Comments
 (0)