1/** 2 * declare THREEx namespace 3 * @type {[type]} 4 */ 5var THREEx = THREEx || {}; 6 7/** 8 * THREEx extension 9 * 10 * @constructor 11 */ 12THREEx.VertexAnimation = function(geometry, transformFct){ 13 transformFct = transformFct || function(originPosition, actualPosition, now){ 14 var angle = now*2 + actualPosition.y * 10; 15 actualPosition.x= originPosition.x + Math.cos(angle)*0.1; 16 } 17 console.assert(geometry instanceof THREE.Geometry); 18 19 // backup original vertices 20 var nVertices = geometry.vertices.length; 21 var origVertices= new Array(nVertices) 22 for(var i = 0; i < nVertices; i++){ 23 origVertices[i] = geometry.vertices[i].clone(); 24 } 25 geometry._origVertices = origVertices 26 27 // do the actual animation 28 this.update = function(delta, now){ 29 for(var i = 0; i < geometry.vertices.length; i++) { 30 var origin = geometry._origVertices[i]; 31 var position = geometry.vertices[i]; 32 transformFct(origin, position, delta, now); 33 } 34 // mark the vertices as dirty 35 geometry.verticesNeedUpdate = true; 36 } 37}
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.