提交 d0dff857 编写于 作者: D dubejf

Remove uses of .offsets

Store reading and writing to `.offsets`.

Avoid mutations to `.drawcalls` from outside the `BufferGeometry`.
上级 d2ca5091
......@@ -392,7 +392,7 @@ THREE.Projector = function () {
if ( geometry instanceof THREE.BufferGeometry ) {
var attributes = geometry.attributes;
var offsets = geometry.offsets;
var offsets = geometry.drawcalls;
if ( attributes.position === undefined ) continue;
......
......@@ -744,7 +744,7 @@ THREE.ProxyGeometry.prototype.clone = function () {
var buff = THREE.BufferGeometry.prototype.clone.call(this);
var geo = new THREE.ProxyGeometry();
geo.attributes = buff.attributes;
geo.offsets = buff.offsets;
geo.offsets = buff.drawcalls;
return geo;
......
......@@ -200,9 +200,9 @@
geometry.addAttribute( 'normal', new THREE.BufferAttribute( normals, 3 ) );
geometry.addAttribute( 'color', new THREE.BufferAttribute( colors, 3 ) );
var offsets = triangles / chunkSize;
var num_offsets = triangles / chunkSize;
for ( var i = 0; i < offsets; i ++ ) {
for ( var i = 0; i < num_offsets; i ++ ) {
var indexStart = i * chunkSize * 3;
var indexCount = Math.min( triangles - ( i * chunkSize ), chunkSize ) * 3;
......
......@@ -110,7 +110,7 @@ THREE.BufferGeometry.prototype = {
// TODO Clear attributes? Clear drawcalls? Copy morphTargets?
var attributes = geometry.attributes;
var offsets = geometry.offsets;
var offsets = geometry.drawcalls;
for ( var name in attributes ) {
......@@ -1064,7 +1064,7 @@ THREE.BufferGeometry.prototype = {
data.data = { attributes: {} };
var attributes = this.attributes;
var offsets = this.offsets;
var offsets = this.drawcalls;
var boundingSphere = this.boundingSphere;
for ( var key in attributes ) {
......@@ -1111,9 +1111,9 @@ THREE.BufferGeometry.prototype = {
}
for ( var i = 0, il = this.offsets.length; i < il; i ++ ) {
for ( var i = 0, il = this.drawcalls.length; i < il; i ++ ) {
var offset = this.offsets[ i ];
var offset = this.drawcalls[ i ];
geometry.addDrawCall( offset.start, offset.count, offset.index );
......
......@@ -51,7 +51,18 @@ THREE.BufferGeometryLoader.prototype = {
if ( offsets !== undefined ) {
geometry.offsets = JSON.parse( JSON.stringify( offsets ) );
var offsetsArray = JSON.parse( JSON.stringify( offsets ) );
for ( var i = 0; i < offsetsArray.length; i ++ ) {
var offset = offsetsArray[i];
var indexStart = offset.start;
var indexCount = offset.count;
var indexOffset = offset.index;
geometry.addAttribute( indexStart, indexCount, indexOffset );
}
}
......
......@@ -65,7 +65,7 @@ THREE.Line.prototype.raycast = ( function () {
var indices = attributes.index.array;
var positions = attributes.position.array;
var offsets = geometry.offsets;
var offsets = geometry.drawcalls.slice();
if ( offsets.length === 0 ) {
......
......@@ -111,7 +111,7 @@ THREE.Mesh.prototype.raycast = ( function () {
var indices = attributes.index.array;
var positions = attributes.position.array;
var offsets = geometry.offsets;
var offsets = geometry.drawcalls.slice();
if ( offsets.length === 0 ) {
......
......@@ -81,13 +81,13 @@ THREE.PointCloud.prototype.raycast = ( function () {
var indices = attributes.index.array;
if ( geometry.offsets.length === 0 ) {
if ( geometry.drawcalls.length === 0 ) {
offsets.addDrawCall( 0, indices.length, 0 );
}
var offsets = geometry.offsets;
var offsets = geometry.drawcalls;
for ( var oi = 0, ol = offsets.length; oi < ol; ++ oi ) {
......
......@@ -1072,7 +1072,7 @@ THREE.WebGLRenderer = function ( parameters ) {
}
var offsets = geometry.offsets;
var offsets = geometry.drawcalls;
if ( offsets.length === 0 ) {
......@@ -1157,7 +1157,7 @@ THREE.WebGLRenderer = function ( parameters ) {
// non-indexed triangles
var offsets = geometry.offsets;
var offsets = geometry.drawcalls;
if ( offsets.length === 0 ) {
......@@ -1278,7 +1278,7 @@ THREE.WebGLRenderer = function ( parameters ) {
}
var offsets = geometry.offsets;
var offsets = geometry.drawcalls;
if ( offsets.length === 0 ) {
......@@ -1335,7 +1335,7 @@ THREE.WebGLRenderer = function ( parameters ) {
}
var position = geometry.attributes.position;
var offsets = geometry.offsets;
var offsets = geometry.drawcalls;
if ( offsets.length === 0 ) {
......@@ -1387,7 +1387,7 @@ THREE.WebGLRenderer = function ( parameters ) {
}
var offsets = geometry.offsets;
var offsets = geometry.drawcalls;
if ( offsets.length === 0 ) {
......@@ -1444,7 +1444,7 @@ THREE.WebGLRenderer = function ( parameters ) {
}
var position = geometry.attributes.position;
var offsets = geometry.offsets;
var offsets = geometry.drawcalls;
if ( offsets.length === 0 ) {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册