Skip to content

Commit 5603241

Browse files
committed
WebGLObject: Moved code to BufferGeometry.
1 parent 50a327d commit 5603241

2 files changed

Lines changed: 45 additions & 40 deletions

File tree

src/core/BufferGeometry.js

Lines changed: 41 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -110,7 +110,7 @@ THREE.BufferGeometry.prototype = {
110110

111111
},
112112

113-
fromObject: function ( object ) {
113+
setFromObject: function ( object ) {
114114

115115
var geometry = object.geometry;
116116
var material = object.material;
@@ -140,6 +140,46 @@ THREE.BufferGeometry.prototype = {
140140

141141
},
142142

143+
updateFromObject: function ( object ) {
144+
145+
var geometry = object.geometry;
146+
147+
if ( object instanceof THREE.PointCloud || object instanceof THREE.Line ) {
148+
149+
if ( geometry.verticesNeedUpdate === true ) {
150+
151+
var attribute = this.attributes.position;
152+
153+
if ( attribute !== undefined ) {
154+
155+
attribute.copyVector3sArray( geometry.vertices );
156+
attribute.needsUpdate = true;
157+
158+
}
159+
160+
geometry.verticesNeedUpdate = false;
161+
162+
}
163+
164+
if ( geometry.colorsNeedUpdate === true ) {
165+
166+
var attribute = this.attributes.color;
167+
168+
if ( attribute !== undefined ) {
169+
170+
attribute.copyColorsArray( geometry.colors );
171+
attribute.needsUpdate = true;
172+
173+
}
174+
175+
geometry.colorsNeedUpdate = false;
176+
177+
}
178+
179+
}
180+
181+
},
182+
143183
fromGeometry: function ( geometry, settings ) {
144184

145185
settings = settings || { 'vertexColors': THREE.NoColors };

src/renderers/webgl/WebGLObjects.js

Lines changed: 4 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -129,7 +129,7 @@ THREE.WebGLObjects = function ( gl, info ) {
129129

130130
} else {
131131

132-
var bufferGeometry = new THREE.BufferGeometry().fromObject( object );
132+
var bufferGeometry = new THREE.BufferGeometry().setFromObject( object );
133133
geometries[ geometry.id ] = bufferGeometry;
134134

135135
console.log( 'THREE.WebGLObjects: Converting...', object, bufferGeometry );
@@ -174,45 +174,10 @@ THREE.WebGLObjects = function ( gl, info ) {
174174

175175
var geometry = object.geometry;
176176

177-
if ( geometry instanceof THREE.Geometry ) {
177+
if ( object.geometry instanceof THREE.Geometry ) {
178178

179-
var bufferGeometry = geometries[ geometry.id ];
180-
181-
if ( object instanceof THREE.PointCloud || object instanceof THREE.Line ) {
182-
183-
if ( geometry.verticesNeedUpdate === true ) {
184-
185-
var attribute = bufferGeometry.attributes.position;
186-
187-
if ( attribute !== undefined ) {
188-
189-
attribute.copyVector3sArray( geometry.vertices );
190-
attribute.needsUpdate = true;
191-
192-
}
193-
194-
geometry.verticesNeedUpdate = false;
195-
196-
}
197-
198-
if ( geometry.colorsNeedUpdate === true ) {
199-
200-
var attribute = bufferGeometry.attributes.color;
201-
202-
if ( attribute !== undefined ) {
203-
204-
attribute.copyColorsArray( geometry.colors );
205-
attribute.needsUpdate = true;
206-
207-
}
208-
209-
geometry.colorsNeedUpdate = false;
210-
211-
}
212-
213-
}
214-
215-
geometry = bufferGeometry;
179+
geometry = geometries[ geometry.id ];
180+
geometry.updateFromObject( object );
216181

217182
}
218183

0 commit comments

Comments
 (0)