Spaces:
Running
Running
| /** | |
| * @author mrdoob / http://mrdoob.com/ | |
| */ | |
| import { LineSegments } from '../objects/LineSegments.js'; | |
| import { VertexColors } from '../constants.js'; | |
| import { LineBasicMaterial } from '../materials/LineBasicMaterial.js'; | |
| import { Float32BufferAttribute } from '../core/BufferAttribute.js'; | |
| import { BufferGeometry } from '../core/BufferGeometry.js'; | |
| import { Color } from '../math/Color.js'; | |
| function GridHelper( size, divisions, color1, color2 ) { | |
| size = size || 10; | |
| divisions = divisions || 10; | |
| color1 = new Color( color1 !== undefined ? color1 : 0x444444 ); | |
| color2 = new Color( color2 !== undefined ? color2 : 0x888888 ); | |
| var center = divisions / 2; | |
| var step = size / divisions; | |
| var halfSize = size / 2; | |
| var vertices = [], colors = []; | |
| for ( var i = 0, j = 0, k = - halfSize; i <= divisions; i ++, k += step ) { | |
| vertices.push( - halfSize, 0, k, halfSize, 0, k ); | |
| vertices.push( k, 0, - halfSize, k, 0, halfSize ); | |
| var color = i === center ? color1 : color2; | |
| 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 BufferGeometry(); | |
| geometry.addAttribute( 'position', new Float32BufferAttribute( vertices, 3 ) ); | |
| geometry.addAttribute( 'color', new Float32BufferAttribute( colors, 3 ) ); | |
| var material = new LineBasicMaterial( { vertexColors: VertexColors } ); | |
| LineSegments.call( this, geometry, material ); | |
| } | |
| GridHelper.prototype = Object.assign( Object.create( LineSegments.prototype ), { | |
| constructor: GridHelper, | |
| copy: function ( source ) { | |
| LineSegments.prototype.copy.call( this, source ); | |
| this.geometry.copy( source.geometry ); | |
| this.material.copy( source.material ); | |
| return this; | |
| }, | |
| clone: function () { | |
| return new this.constructor().copy( this ); | |
| } | |
| } ); | |
| export { GridHelper }; | |