提交 da7e7255 编写于 作者: M Mr.doob

Implemented extend pattern in WebGLRenderer2 objects.

上级 82f90a00
THREE.WebGLRenderer.LineRenderer = function ( lowlevelrenderer, info ) {
THREE.WebGLRenderer.LineRenderer = function(lowlevelrenderer, info){
THREE.WebGLRenderer.Object3DRenderer.call( this, lowlevelrenderer, info );
};
};
THREE.WebGLRenderer.LineRenderer.prototype = Object.create( THREE.WebGLRenderer.Object3DRenderer.prototype );
THREE.WebGLRenderer.LineRenderer.prototype.createBuffers = function( geometry ) {
THREE.extend( THREE.WebGLRenderer.LineRenderer.prototype, {
createBuffers: function ( geometry ) {
var renderer = this.renderer;
geometry.__webglVertexBuffer = renderer.createBuffer();
......@@ -15,9 +17,10 @@ THREE.WebGLRenderer.LineRenderer.prototype.createBuffers = function( geometry )
geometry.__webglLineDistanceBuffer = renderer.createBuffer();
this.info.memory.geometries ++;
};
THREE.WebGLRenderer.LineRenderer.prototype.initBuffers = function( geometry, object ) {
},
initBuffers: function ( geometry, object ) {
var nvertices = geometry.vertices.length;
......@@ -28,10 +31,10 @@ THREE.WebGLRenderer.LineRenderer.prototype.initBuffers = function( geometry, obj
geometry.__webglLineCount = nvertices;
this.initCustomAttributes ( geometry, object );
};
},
THREE.WebGLRenderer.LineRenderer.prototype.setBuffers = function( geometry, object) {
setBuffers: function ( geometry, object ) {
var renderer = this.renderer;
var v, c, d, vertex, offset, color,
......@@ -197,4 +200,7 @@ THREE.WebGLRenderer.LineRenderer.prototype.setBuffers = function( geometry, obje
}
}
};
}
} );
THREE.WebGLRenderer.MeshRenderer = function ( lowlevelrenderer, info ) {
THREE.WebGLRenderer.MeshRenderer = function(lowlevelrenderer, info){
THREE.WebGLRenderer.Object3DRenderer.call( this, lowlevelrenderer, info );
};
};
THREE.WebGLRenderer.MeshRenderer.prototype = Object.create( THREE.WebGLRenderer.Object3DRenderer.prototype );
THREE.WebGLRenderer.MeshRenderer.prototype.createBuffers = function( geometryGroup ) {
THREE.extend( THREE.WebGLRenderer.MeshRenderer.prototype, {
createBuffers: function ( geometryGroup ) {
var renderer = this.renderer;
geometryGroup.__webglVertexBuffer = renderer.createBuffer();
......@@ -51,9 +53,9 @@ THREE.WebGLRenderer.MeshRenderer.prototype.createBuffers = function( geometryGro
this.info.memory.geometries ++;
};
},
THREE.WebGLRenderer.MeshRenderer.prototype.initBuffers = function( geometryGroup, object ) {
initBuffers: function ( geometryGroup, object ) {
var geometry = object.geometry,
faces3 = geometryGroup.faces3,
......@@ -203,11 +205,9 @@ THREE.WebGLRenderer.MeshRenderer.prototype.initBuffers = function( geometryGroup
geometryGroup.__inittedArrays = true;
};
},
THREE.WebGLRenderer.MeshRenderer.prototype.setBuffers = function( geometryGroup, object, dispose, material ) {
setBuffers: function ( geometryGroup, object, dispose, material ) {
if ( ! geometryGroup.__inittedArrays ) {
......@@ -1613,4 +1613,6 @@ THREE.WebGLRenderer.MeshRenderer.prototype.setBuffers = function( geometryGroup,
}
};
}
} );
THREE.WebGLRenderer.Object3DRenderer = function ( lowlevelrenderer, info ) {
THREE.WebGLRenderer.Object3DRenderer = function(lowlevelrenderer, info){
this.renderer = lowlevelrenderer;
this.info = info;
};
THREE.WebGLRenderer.Object3DRenderer.prototype.getBufferMaterial = function( object, geometryGroup ) {
THREE.extend( THREE.WebGLRenderer.Object3DRenderer.prototype, {
getBufferMaterial: function ( object, geometryGroup ) {
return object.material instanceof THREE.MeshFaceMaterial
? object.material.materials[ geometryGroup.materialIndex ]
: object.material;
};
},
THREE.WebGLRenderer.Object3DRenderer.prototype.bufferGuessUVType = function( material ) {
bufferGuessUVType: function ( material ) {
// material must use some texture to require uvs
......@@ -25,9 +28,9 @@ THREE.WebGLRenderer.Object3DRenderer.prototype.bufferGuessUVType = function( mat
return false;
};
},
THREE.WebGLRenderer.Object3DRenderer.prototype.bufferGuessNormalType = function ( material ) {
bufferGuessNormalType: function ( material ) {
// only MeshBasicMaterial and MeshDepthMaterial don't need normals
......@@ -47,16 +50,15 @@ THREE.WebGLRenderer.Object3DRenderer.prototype.bufferGuessNormalType = function
}
};
},
THREE.WebGLRenderer.Object3DRenderer.prototype.materialNeedsSmoothNormals = function ( material ) {
materialNeedsSmoothNormals: function ( material ) {
return material && material.shading !== undefined && material.shading === THREE.SmoothShading;
};
},
THREE.WebGLRenderer.Object3DRenderer.prototype.bufferGuessVertexColorType = function ( material ) {
bufferGuessVertexColorType: function ( material ) {
if ( material.vertexColors ) {
......@@ -66,10 +68,9 @@ THREE.WebGLRenderer.Object3DRenderer.prototype.bufferGuessVertexColorType = func
return false;
};
},
THREE.WebGLRenderer.Object3DRenderer.prototype.initCustomAttributes = function( geometry, object ) {
initCustomAttributes: function ( geometry, object ) {
var nvertices = geometry.vertices.length;
......@@ -115,10 +116,12 @@ THREE.WebGLRenderer.Object3DRenderer.prototype.initCustomAttributes = function(
}
};
},
THREE.WebGLRenderer.Object3DRenderer.prototype.numericalSort = function( a, b ) {
numericalSort: function ( a, b ) {
return b[ 0 ] - a[ 0 ];
};
}
} );
THREE.WebGLRenderer.ParticleRenderer = function ( lowlevelrenderer, info ) {
THREE.WebGLRenderer.ParticleRenderer = function(lowlevelrenderer, info){
THREE.WebGLRenderer.Object3DRenderer.call( this, lowlevelrenderer, info );
};
THREE.WebGLRenderer.ParticleRenderer.prototype = Object.create( THREE.WebGLRenderer.Object3DRenderer.prototype );
THREE.WebGLRenderer.ParticleRenderer.prototype.createBuffers = function( geometry ) {
THREE.extend( THREE.WebGLRenderer.ParticleRenderer.prototype, {
createBuffers: function ( geometry ) {
var renderer = this.renderer;
geometry.__webglVertexBuffer = renderer.createBuffer();
geometry.__webglColorBuffer = renderer.createBuffer();
this.info.memory.geometries ++;
};
},
THREE.WebGLRenderer.ParticleRenderer.prototype.initBuffers = function( geometry, object ) {
initBuffers: function ( geometry, object ) {
var nvertices = geometry.vertices.length;
......@@ -28,10 +31,9 @@ THREE.WebGLRenderer.ParticleRenderer.prototype.initBuffers = function( geometry,
this.initCustomAttributes ( geometry, object );
};
},
THREE.WebGLRenderer.ParticleRenderer.prototype.setBuffers = function( geometry, object , projectionScreenMatrix) {
setBuffers: function ( geometry, object , projectionScreenMatrix ) {
var renderer = this.renderer;
var v, c, vertex, offset, index, color,
......@@ -350,8 +352,9 @@ THREE.WebGLRenderer.ParticleRenderer.prototype.setBuffers = function( geometry,
}
}
};
} );
THREE.WebGLRenderer.ParticleRenderer._m1 = new THREE.Matrix4();
THREE.WebGLRenderer.ParticleRenderer._v1 = new THREE.Vector3();
THREE.WebGLRenderer.RibbonRenderer = function ( lowlevelrenderer, info ) {
THREE.WebGLRenderer.RibbonRenderer = function(lowlevelrenderer, info){
THREE.WebGLRenderer.Object3DRenderer.call( this, lowlevelrenderer, info );
};
THREE.WebGLRenderer.RibbonRenderer.prototype = Object.create( THREE.WebGLRenderer.Object3DRenderer.prototype );
THREE.WebGLRenderer.RibbonRenderer.prototype.createBuffers = function( geometry ) {
THREE.extend( THREE.WebGLRenderer.RibbonRenderer.prototype, {
createBuffers: function ( geometry ) {
var renderer = this.renderer;
geometry.__webglVertexBuffer = renderer.createBuffer();
......@@ -14,9 +17,9 @@ THREE.WebGLRenderer.RibbonRenderer.prototype.createBuffers = function( geometry
geometry.__webglNormalBuffer = renderer.createBuffer();
this.info.memory.geometries ++;
};
},
THREE.WebGLRenderer.RibbonRenderer.prototype.initBuffers = function( geometry, object ) {
initBuffers: function ( geometry, object ) {
var nvertices = geometry.vertices.length;
......@@ -28,10 +31,9 @@ THREE.WebGLRenderer.RibbonRenderer.prototype.initBuffers = function( geometry, o
this.initCustomAttributes ( geometry, object );
};
},
THREE.WebGLRenderer.RibbonRenderer.prototype.setBuffers = function( geometry, object , projectionScreenMatrix) {
setBuffers: function ( geometry, object , projectionScreenMatrix ) {
var renderer = this.renderer;
var v, c, n, vertex, offset, color, normal,
......@@ -202,4 +204,6 @@ THREE.WebGLRenderer.RibbonRenderer.prototype.setBuffers = function( geometry, ob
}
};
}
} );
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册