|
@@ -1,92 +0,0 @@
|
|
|
-/**
|
|
|
- * @author mrdoob / http://mrdoob.com/
|
|
|
- * based on http://papervision3d.googlecode.com/svn/trunk/as3/trunk/src/org/papervision3d/objects/primitives/Plane.as
|
|
|
- */
|
|
|
-
|
|
|
-THREE.PlaneGeometryB = function ( width, height, widthSegments, heightSegments ) {
|
|
|
-
|
|
|
- THREE.BufferGeometry.call( this );
|
|
|
-
|
|
|
- this.width = width;
|
|
|
- this.height = height;
|
|
|
-
|
|
|
- this.widthSegments = widthSegments || 1;
|
|
|
- this.heightSegments = heightSegments || 1;
|
|
|
-
|
|
|
- var width_half = width / 2;
|
|
|
- var height_half = height / 2;
|
|
|
-
|
|
|
- var gridX = this.widthSegments;
|
|
|
- var gridY = this.heightSegments;
|
|
|
-
|
|
|
- var gridX1 = gridX + 1;
|
|
|
- var gridY1 = gridY + 1;
|
|
|
-
|
|
|
- var segment_width = this.width / gridX;
|
|
|
- var segment_height = this.height / gridY;
|
|
|
-
|
|
|
- var vertices = new Float32Array( gridX1 * gridY1 * 3 );
|
|
|
- var normals = new Float32Array( gridX1 * gridY1 * 3 );
|
|
|
- var uvs = new Float32Array( gridX1 * gridY1 * 2 );
|
|
|
-
|
|
|
- var offset = 0;
|
|
|
- var offset2 = 0;
|
|
|
-
|
|
|
- for ( var iy = 0; iy < gridY1; iy ++ ) {
|
|
|
-
|
|
|
- var y = iy * segment_height - height_half;
|
|
|
-
|
|
|
- for ( var ix = 0; ix < gridX1; ix ++ ) {
|
|
|
-
|
|
|
- var x = ix * segment_width - width_half;
|
|
|
-
|
|
|
- vertices[ offset ] = x;
|
|
|
- vertices[ offset + 1 ] = - y;
|
|
|
-
|
|
|
- normals[ offset + 2 ] = 1;
|
|
|
-
|
|
|
- uvs[ offset2 ] = ix / gridX;
|
|
|
- uvs[ offset2 + 1 ] = iy / gridY;
|
|
|
-
|
|
|
- offset += 3;
|
|
|
- offset2 += 2;
|
|
|
-
|
|
|
- }
|
|
|
-
|
|
|
- }
|
|
|
-
|
|
|
- var indices = new Uint16Array( gridX * gridY * 6 );
|
|
|
-
|
|
|
- var offset = 0;
|
|
|
-
|
|
|
- for ( var iy = 0; iy < gridY; iy ++ ) {
|
|
|
-
|
|
|
- for ( var ix = 0; ix < gridX; ix ++ ) {
|
|
|
-
|
|
|
- var a = ix + gridX1 * iy;
|
|
|
- var b = ix + gridX1 * ( iy + 1 );
|
|
|
- var c = ( ix + 1 ) + gridX1 * ( iy + 1 );
|
|
|
- var d = ( ix + 1 ) + gridX1 * iy;
|
|
|
-
|
|
|
- indices[ offset ] = a;
|
|
|
- indices[ offset + 1 ] = b;
|
|
|
- indices[ offset + 2 ] = d;
|
|
|
-
|
|
|
- indices[ offset + 3 ] = b;
|
|
|
- indices[ offset + 4 ] = c;
|
|
|
- indices[ offset + 5 ] = d;
|
|
|
-
|
|
|
- offset += 6;
|
|
|
-
|
|
|
- }
|
|
|
-
|
|
|
- }
|
|
|
-
|
|
|
- this.attributes[ 'index' ] = { array: indices, itemSize: 1 };
|
|
|
- this.attributes[ 'position' ] = { array: vertices, itemSize: 3 };
|
|
|
- this.attributes[ 'normal' ] = { array: normals, itemSize: 3 };
|
|
|
- this.attributes[ 'uv' ] = { array: uvs, itemSize: 2 };
|
|
|
-
|
|
|
-};
|
|
|
-
|
|
|
-THREE.PlaneGeometryB.prototype = Object.create( THREE.BufferGeometry.prototype );
|