diff --git a/editor/index.html b/editor/index.html
index 0d4ddf230f06369307bf7130939203be60cc6b06..93832b74e6e7fa2b4fbae2653597bc741066af01 100644
--- a/editor/index.html
+++ b/editor/index.html
@@ -160,6 +160,7 @@
var signals = editor.signals;
+ signals.geometryChanged.add( saveState );
signals.objectAdded.add( saveState );
signals.objectChanged.add( saveState );
signals.objectRemoved.add( saveState );
diff --git a/editor/js/Editor.js b/editor/js/Editor.js
index bc8b5654989d5b15f837ff4746ea5ab48ee42439..4fcd6744fb3c79252a942659d03ab39bec76df52 100644
--- a/editor/js/Editor.js
+++ b/editor/js/Editor.js
@@ -29,6 +29,8 @@ var Editor = function () {
cameraChanged: new SIGNALS.Signal(),
+ geometryChanged: new SIGNALS.Signal(),
+
objectSelected: new SIGNALS.Signal(),
objectAdded: new SIGNALS.Signal(),
objectChanged: new SIGNALS.Signal(),
diff --git a/editor/js/Sidebar.Geometry.BoxGeometry.js b/editor/js/Sidebar.Geometry.BoxGeometry.js
index 2d2c8e6431f24a89250f4167d2072ee7f0472db5..0170b6189bab52004a8bf93ccb10e337c1ec8699 100644
--- a/editor/js/Sidebar.Geometry.BoxGeometry.js
+++ b/editor/js/Sidebar.Geometry.BoxGeometry.js
@@ -82,7 +82,7 @@ Sidebar.Geometry.BoxGeometry = function ( signals, object ) {
object.geometry.buffersNeedUpdate = true;
object.geometry.computeBoundingSphere();
- signals.objectChanged.dispatch( object );
+ signals.geometryChanged.dispatch( object );
}
diff --git a/editor/js/Sidebar.Geometry.BufferGeometry.js b/editor/js/Sidebar.Geometry.BufferGeometry.js
index f1d0a2fa82c2ff2df56c6831bd185854891dd5d0..ab952e3a856c973e187f6ce07750d412c69a6093 100644
--- a/editor/js/Sidebar.Geometry.BufferGeometry.js
+++ b/editor/js/Sidebar.Geometry.BufferGeometry.js
@@ -55,7 +55,7 @@ Sidebar.Geometry.BufferGeometry = function ( signals ) {
};
signals.objectSelected.add( update );
- signals.objectChanged.add( update );
+ signals.geometryChanged.add( update );
return container;
diff --git a/editor/js/Sidebar.Geometry.CircleGeometry.js b/editor/js/Sidebar.Geometry.CircleGeometry.js
index 97c571393ececb53ce4cc93a083955e9e46799bf..d2c4340fa0b463e54fd4d58d8d018a9728c2bb4e 100644
--- a/editor/js/Sidebar.Geometry.CircleGeometry.js
+++ b/editor/js/Sidebar.Geometry.CircleGeometry.js
@@ -37,7 +37,7 @@ Sidebar.Geometry.CircleGeometry = function ( signals, object ) {
object.geometry.buffersNeedUpdate = true;
object.geometry.computeBoundingSphere();
- signals.objectChanged.dispatch( object );
+ signals.geometryChanged.dispatch( object );
}
diff --git a/editor/js/Sidebar.Geometry.CylinderGeometry.js b/editor/js/Sidebar.Geometry.CylinderGeometry.js
index 59b35a0179626e5ae29b24450275c065899aace4..9ba921bf6a539ae82b00f16d263911f5807d2d36 100644
--- a/editor/js/Sidebar.Geometry.CylinderGeometry.js
+++ b/editor/js/Sidebar.Geometry.CylinderGeometry.js
@@ -82,7 +82,7 @@ Sidebar.Geometry.CylinderGeometry = function ( signals, object ) {
object.geometry.buffersNeedUpdate = true;
object.geometry.computeBoundingSphere();
- signals.objectChanged.dispatch( object );
+ signals.geometryChanged.dispatch( object );
}
diff --git a/editor/js/Sidebar.Geometry.Geometry.js b/editor/js/Sidebar.Geometry.Geometry.js
index 95e714deca8648ad327d04d30066c13bf3e548f7..24c30dbdf0864707350fc63981232f5dabfecf54 100644
--- a/editor/js/Sidebar.Geometry.Geometry.js
+++ b/editor/js/Sidebar.Geometry.Geometry.js
@@ -46,7 +46,7 @@ Sidebar.Geometry.Geometry = function ( signals ) {
};
signals.objectSelected.add( update );
- signals.objectChanged.add( update );
+ signals.geometryChanged.add( update );
return container;
diff --git a/editor/js/Sidebar.Geometry.Modifiers.js b/editor/js/Sidebar.Geometry.Modifiers.js
index 2683bc9b12d8a6e9fbe38eaa1205746c442e4300..0cf07849bb1e0fe67a1f508a839b5a55d5ee7be0 100644
--- a/editor/js/Sidebar.Geometry.Modifiers.js
+++ b/editor/js/Sidebar.Geometry.Modifiers.js
@@ -21,7 +21,7 @@ Sidebar.Geometry.Modifiers = function ( signals, object ) {
}
- signals.objectChanged.dispatch( object );
+ signals.geometryChanged.dispatch( object );
} );
@@ -40,7 +40,7 @@ Sidebar.Geometry.Modifiers = function ( signals, object ) {
object.geometry = new THREE.Geometry().fromBufferGeometry( object.geometry );
- signals.objectChanged.dispatch( object );
+ signals.geometryChanged.dispatch( object );
} );
container.add( button );
@@ -54,7 +54,7 @@ Sidebar.Geometry.Modifiers = function ( signals, object ) {
object.geometry = new THREE.BufferGeometry().fromGeometry( object.geometry );
- signals.objectChanged.dispatch( object );
+ signals.geometryChanged.dispatch( object );
} );
container.add( button );
diff --git a/editor/js/Sidebar.Geometry.PlaneGeometry.js b/editor/js/Sidebar.Geometry.PlaneGeometry.js
index ccebd4384e7446d8112d70430672a4dd966b97f1..a4c60b833daf35e618858eec66ebf58f1f72cc95 100644
--- a/editor/js/Sidebar.Geometry.PlaneGeometry.js
+++ b/editor/js/Sidebar.Geometry.PlaneGeometry.js
@@ -61,7 +61,7 @@ Sidebar.Geometry.PlaneGeometry = function ( signals, object ) {
object.geometry.buffersNeedUpdate = true;
object.geometry.computeBoundingSphere();
- signals.objectChanged.dispatch( object );
+ signals.geometryChanged.dispatch( object );
}
diff --git a/editor/js/Sidebar.Geometry.SphereGeometry.js b/editor/js/Sidebar.Geometry.SphereGeometry.js
index 490b40b26cc858204804dacdabcec302c6cb425f..3a1ff54cd77549cea2db205bf1faeb9fa99ca918 100644
--- a/editor/js/Sidebar.Geometry.SphereGeometry.js
+++ b/editor/js/Sidebar.Geometry.SphereGeometry.js
@@ -94,7 +94,7 @@ Sidebar.Geometry.SphereGeometry = function ( signals, object ) {
object.geometry.buffersNeedUpdate = true;
object.geometry.computeBoundingSphere();
- signals.objectChanged.dispatch( object );
+ signals.geometryChanged.dispatch( object );
}
diff --git a/editor/js/Sidebar.Geometry.TorusGeometry.js b/editor/js/Sidebar.Geometry.TorusGeometry.js
index 221a6606609876ba7c66ec959e04b23e5ad4064f..9e82ab1311f80bd6645b54acf473afe9e397cc18 100644
--- a/editor/js/Sidebar.Geometry.TorusGeometry.js
+++ b/editor/js/Sidebar.Geometry.TorusGeometry.js
@@ -72,7 +72,7 @@ Sidebar.Geometry.TorusGeometry = function ( signals, object ) {
object.geometry.buffersNeedUpdate = true;
object.geometry.computeBoundingSphere();
- signals.objectChanged.dispatch( object );
+ signals.geometryChanged.dispatch( object );
}
diff --git a/editor/js/Sidebar.Geometry.TorusKnotGeometry.js b/editor/js/Sidebar.Geometry.TorusKnotGeometry.js
index 836cd60c74a62b1ab132c8f9806e2cb2bcdc9939..4854a79d3b9d4cd5f053813db161c56e22a65c1f 100644
--- a/editor/js/Sidebar.Geometry.TorusKnotGeometry.js
+++ b/editor/js/Sidebar.Geometry.TorusKnotGeometry.js
@@ -94,7 +94,7 @@ Sidebar.Geometry.TorusKnotGeometry = function ( signals, object ) {
object.geometry.buffersNeedUpdate = true;
object.geometry.computeBoundingSphere();
- signals.objectChanged.dispatch( object );
+ signals.geometryChanged.dispatch( object );
}
diff --git a/editor/js/Sidebar.Geometry.js b/editor/js/Sidebar.Geometry.js
index e1e66fcb0f50334f89950425a1056b7ce6634142..3fad484d59089d0274525f78f8fd0b1cf280fa5c 100644
--- a/editor/js/Sidebar.Geometry.js
+++ b/editor/js/Sidebar.Geometry.js
@@ -142,7 +142,6 @@ Sidebar.Geometry = function ( editor ) {
}
signals.objectSelected.add( build );
- signals.objectChanged.add( build );
return container;
diff --git a/editor/js/Viewport.Info.js b/editor/js/Viewport.Info.js
index 91eec1d9b56f0ad086bbb4f96ccb96831e182344..c06a318205dd7487fbb81ea99951fb3e026d3309 100644
--- a/editor/js/Viewport.Info.js
+++ b/editor/js/Viewport.Info.js
@@ -17,28 +17,12 @@ Viewport.Info = function ( editor ) {
container.add( new UI.Text( 'vertices' ), verticesText, new UI.Break() );
container.add( new UI.Text( 'triangles' ), trianglesText, new UI.Break() );
- signals.sceneGraphChanged.add( function () {
-
- update();
-
- } );
-
- signals.objectChanged.add( function ( object ) {
-
- // TODO: geometryChanged
-
- if ( object !== editor.camera ) {
-
- update();
-
- }
-
- } );
+ signals.objectAdded.add( update );
+ signals.objectRemoved.add( update );
+ signals.geometryChanged.add( update );
//
-
-
function update() {
var scene = editor.scene;
diff --git a/editor/js/Viewport.js b/editor/js/Viewport.js
index fa87010ac651f7da02bd398a3c412fdfab0971b3..69ec7829e25a5193ce54ad6a6f262663262ca3ef 100644
--- a/editor/js/Viewport.js
+++ b/editor/js/Viewport.js
@@ -283,6 +283,8 @@ var Viewport = function ( editor ) {
} );
+ signals.geometryChanged.add( render );
+
signals.objectAdded.add( function ( object ) {
var materialsNeedUpdate = false;