|
@@ -228,15 +228,23 @@ THREE.BufferGeometry.prototype = {
|
|
|
|
|
|
updateFromObject: function ( object ) {
|
|
|
|
|
|
- var geometry;
|
|
|
+ var geometry = object.geometry;
|
|
|
|
|
|
- if ( object instanceof THREE.PointCloud || object instanceof THREE.Line ) {
|
|
|
+ if ( object instanceof THREE.Mesh ) {
|
|
|
|
|
|
- geometry = object.geometry;
|
|
|
+ var direct = geometry.__directGeometry;
|
|
|
|
|
|
- } else if ( object instanceof THREE.Mesh ) {
|
|
|
+ direct.verticesNeedUpdate = geometry.verticesNeedUpdate;
|
|
|
+ direct.normalsNeedUpdate = geometry.normalsNeedUpdate;
|
|
|
+ direct.colorsNeedUpdate = geometry.colorsNeedUpdate;
|
|
|
+ direct.uvsNeedUpdate = geometry.uvsNeedUpdate;
|
|
|
+
|
|
|
+ geometry.verticesNeedUpdate = false;
|
|
|
+ geometry.normalsNeedUpdate = false;
|
|
|
+ geometry.colorsNeedUpdate = false;
|
|
|
+ geometry.uvsNeedUpdate = false;
|
|
|
|
|
|
- geometry = object.geometry.__directGeometry.updateFromGeometry( object.geometry );
|
|
|
+ geometry = direct;
|
|
|
|
|
|
}
|
|
|
|
|
@@ -299,9 +307,6 @@ THREE.BufferGeometry.prototype = {
|
|
|
|
|
|
fromDirectGeometry: function ( geometry ) {
|
|
|
|
|
|
- var indices = new Uint16Array( geometry.indices.length * 3 );
|
|
|
- this.addAttribute( 'index', new THREE.BufferAttribute( indices, 1 ).copyIndicesArray( geometry.indices ) );
|
|
|
-
|
|
|
if ( geometry.vertices.length > 0 ) {
|
|
|
|
|
|
var positions = new Float32Array( geometry.vertices.length * 3 );
|