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

Completed Helpers switch to BufferGeometry.

上级 ff340dc7
......@@ -583,7 +583,7 @@ THREE.BufferGeometry.prototype = {
var box = new THREE.Box3();
var vector = new THREE.Vector3();
return function () {
return function computeBoundingSphere() {
if ( this.boundingSphere === null ) {
......
......@@ -16,10 +16,10 @@
THREE.ArrowHelper = ( function () {
var lineGeometry = new THREE.Geometry();
lineGeometry.vertices.push( new THREE.Vector3( 0, 0, 0 ), new THREE.Vector3( 0, 1, 0 ) );
var lineGeometry = new THREE.BufferGeometry();
lineGeometry.addAttribute( 'position', new THREE.Float32Attribute( [ 0, 0, 0, 0, 1, 0 ], 3 ) );
var coneGeometry = new THREE.CylinderGeometry( 0, 0.5, 1, 5, 1 );
var coneGeometry = new THREE.CylinderBufferGeometry( 0, 0.5, 1, 5, 1 );
coneGeometry.translate( 0, - 0.5, 0 );
return function ArrowHelper( dir, origin, length, color, headLength, headWidth ) {
......@@ -34,7 +34,7 @@ THREE.ArrowHelper = ( function () {
if ( headWidth === undefined ) headWidth = 0.2 * headLength;
this.position.copy( origin );
this.line = new THREE.Line( lineGeometry, new THREE.LineBasicMaterial( { color: color } ) );
this.line.matrixAutoUpdate = false;
this.add( this.line );
......@@ -46,7 +46,7 @@ THREE.ArrowHelper = ( function () {
this.setDirection( dir );
this.setLength( length, headLength, headWidth );
}
};
}() );
......@@ -100,7 +100,7 @@ THREE.ArrowHelper.prototype.setLength = function ( length, headLength, headWidth
THREE.ArrowHelper.prototype.setColor = function ( color ) {
this.line.material.color.set( color );
this.cone.material.color.set( color );
this.line.material.color.copy( color );
this.cone.material.color.copy( color );
};
......@@ -14,34 +14,25 @@ THREE.DirectionalLightHelper = function ( light, size ) {
this.matrix = light.matrixWorld;
this.matrixAutoUpdate = false;
size = size || 1;
if ( size === undefined ) size = 1;
var geometry = new THREE.Geometry();
geometry.vertices.push(
new THREE.Vector3( - size, size, 0 ),
new THREE.Vector3( size, size, 0 ),
new THREE.Vector3( size, - size, 0 ),
new THREE.Vector3( - size, - size, 0 ),
new THREE.Vector3( - size, size, 0 )
);
var geometry = new THREE.BufferGeometry();
geometry.addAttribute( 'position', new THREE.Float32Attribute( [
- size, size, 0,
size, size, 0,
size, - size, 0,
- size, - size, 0,
- size, size, 0
], 3 ) );
var material = new THREE.LineBasicMaterial( { fog: false } );
material.color.copy( this.light.color ).multiplyScalar( this.light.intensity );
this.lightPlane = new THREE.Line( geometry, material );
this.add( this.lightPlane );
this.add( new THREE.Line( geometry, material ) );
geometry = new THREE.Geometry();
geometry.vertices.push(
new THREE.Vector3(),
new THREE.Vector3()
);
geometry = new THREE.BufferGeometry();
geometry.addAttribute( 'position', new THREE.Float32Attribute( [ 0, 0, 0, 0, 0, 1 ], 3 ) );
material = new THREE.LineBasicMaterial( { fog: false } );
material.color.copy( this.light.color ).multiplyScalar( this.light.intensity );
this.targetLine = new THREE.Line( geometry, material );
this.add( this.targetLine );
this.add( new THREE.Line( geometry, material ));
this.update();
......@@ -52,10 +43,13 @@ THREE.DirectionalLightHelper.prototype.constructor = THREE.DirectionalLightHelpe
THREE.DirectionalLightHelper.prototype.dispose = function () {
this.lightPlane.geometry.dispose();
this.lightPlane.material.dispose();
this.targetLine.geometry.dispose();
this.targetLine.material.dispose();
var lightPlane = this.children[ 0 ];
var targetLine = this.children[ 1 ];
lightPlane.geometry.dispose();
lightPlane.material.dispose();
targetLine.geometry.dispose();
targetLine.material.dispose();
};
......@@ -71,12 +65,14 @@ THREE.DirectionalLightHelper.prototype.update = function () {
v2.setFromMatrixPosition( this.light.target.matrixWorld );
v3.subVectors( v2, v1 );
this.lightPlane.lookAt( v3 );
this.lightPlane.material.color.copy( this.light.color ).multiplyScalar( this.light.intensity );
var lightPlane = this.children[ 0 ];
var targetLine = this.children[ 1 ];
lightPlane.lookAt( v3 );
lightPlane.material.color.copy( this.light.color ).multiplyScalar( this.light.intensity );
this.targetLine.geometry.vertices[ 1 ].copy( v3 );
this.targetLine.geometry.verticesNeedUpdate = true;
this.targetLine.material.color.copy( this.lightPlane.material.color );
targetLine.lookAt( v3 );
targetLine.scale.z = v3.length();
};
......
......@@ -105,6 +105,6 @@ THREE.FaceNormalsHelper.prototype.update = ( function () {
return this;
}
};
}() );
......@@ -2,27 +2,34 @@
* @author mrdoob / http://mrdoob.com/
*/
THREE.GridHelper = function ( size, step ) {
THREE.GridHelper = function ( size, step, color1, color2 ) {
var geometry = new THREE.Geometry();
var material = new THREE.LineBasicMaterial( { vertexColors: THREE.VertexColors } );
color1 = new THREE.Color( color1 !== undefined ? color1 : 0x444444 );
color2 = new THREE.Color( color2 !== undefined ? color2 : 0x888888 );
this.color1 = new THREE.Color( 0x444444 );
this.color2 = new THREE.Color( 0x888888 );
var vertices = [];
var colors = [];
for ( var i = - size; i <= size; i += step ) {
for ( var i = - size, j = 0; i <= size; i += step ) {
geometry.vertices.push(
new THREE.Vector3( - size, 0, i ), new THREE.Vector3( size, 0, i ),
new THREE.Vector3( i, 0, - size ), new THREE.Vector3( i, 0, size )
);
vertices.push( - size, 0, i, size, 0, i );
vertices.push( i, 0, - size, i, 0, size );
var color = i === 0 ? this.color1 : this.color2;
var color = i === 0 ? color1 : color2;
geometry.colors.push( color, color, color, color );
color.toArray( colors, j ); j += 3;
color.toArray( colors, j ); j += 3;
color.toArray( colors, j ); j += 3;
color.toArray( colors, j ); j += 3;
}
var geometry = new THREE.BufferGeometry();
geometry.addAttribute( 'position', new THREE.Float32Attribute( vertices, 3 ) );
geometry.addAttribute( 'color', new THREE.Float32Attribute( colors, 3 ) );
var material = new THREE.LineBasicMaterial( { vertexColors: THREE.VertexColors } );
THREE.LineSegments.call( this, geometry, material );
};
......@@ -30,11 +37,8 @@ THREE.GridHelper = function ( size, step ) {
THREE.GridHelper.prototype = Object.create( THREE.LineSegments.prototype );
THREE.GridHelper.prototype.constructor = THREE.GridHelper;
THREE.GridHelper.prototype.setColors = function( colorCenterLine, colorGrid ) {
this.color1.set( colorCenterLine );
this.color2.set( colorGrid );
THREE.GridHelper.prototype.setColors = function () {
this.geometry.colorsNeedUpdate = true;
console.error( 'THREE.GridHelper: setColors() has been deprecated, pass them in the constructor instead.' );
};
......@@ -55,6 +55,6 @@ THREE.HemisphereLightHelper.prototype.update = function () {
this.lightSphere.lookAt( vector.setFromMatrixPosition( this.light.matrixWorld ).negate() );
this.lightSphere.geometry.colorsNeedUpdate = true;
}
};
}();
......@@ -8,7 +8,7 @@ THREE.PointLightHelper = function ( light, sphereSize ) {
this.light = light;
this.light.updateMatrixWorld();
var geometry = new THREE.SphereGeometry( sphereSize, 4, 2 );
var geometry = new THREE.SphereBufferGeometry( sphereSize, 4, 2 );
var material = new THREE.MeshBasicMaterial( { wireframe: true, fog: false } );
material.color.copy( this.light.color ).multiplyScalar( this.light.intensity );
......
......@@ -25,7 +25,7 @@ THREE.VertexNormalsHelper = function ( object, size, hex, linewidth ) {
} else if ( objGeometry instanceof THREE.BufferGeometry ) {
nNormals = objGeometry.attributes.normal.count
nNormals = objGeometry.attributes.normal.count;
}
......@@ -140,6 +140,6 @@ THREE.VertexNormalsHelper.prototype.update = ( function () {
return this;
}
};
}() );
......@@ -15,7 +15,7 @@ THREE.Line = function ( geometry, material, mode ) {
this.type = 'Line';
this.geometry = geometry !== undefined ? geometry : new THREE.Geometry();
this.geometry = geometry !== undefined ? geometry : new THREE.BufferGeometry();
this.material = material !== undefined ? material : new THREE.LineBasicMaterial( { color: Math.random() * 0xffffff } );
};
......
......@@ -11,7 +11,7 @@ THREE.Mesh = function ( geometry, material ) {
this.type = 'Mesh';
this.geometry = geometry !== undefined ? geometry : new THREE.Geometry();
this.geometry = geometry !== undefined ? geometry : new THREE.BufferGeometry();
this.material = material !== undefined ? material : new THREE.MeshBasicMaterial( { color: Math.random() * 0xffffff } );
this.drawMode = THREE.TrianglesDrawMode;
......
......@@ -8,7 +8,7 @@ THREE.Points = function ( geometry, material ) {
this.type = 'Points';
this.geometry = geometry !== undefined ? geometry : new THREE.Geometry();
this.geometry = geometry !== undefined ? geometry : new THREE.BufferGeometry();
this.material = material !== undefined ? material : new THREE.PointsMaterial( { color: Math.random() * 0xffffff } );
};
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册