a.attributes.position,c=[0],d=1,e=b.count;d<e;d++)eh.fromBufferAttribute(b,d-1),Tf.fromBufferAttribute(b,d),c[d]=c[d-1],c[d]+=eh.distanceTo(Tf);a.addAttribute("lineDistance",new A(c,1))}else console.warn("THREE.Line.computeLineDistances(): Computation only possible with non-indexed BufferGeometry.");else if(a.isGeometry)for(b=a.vertices,c=a.lineDistances,c[0]=0,d=1,e=b.length;d<e;d++)c[d]=c[d-1],c[d]+=b[d-1].distanceTo(b[d]);return this},raycast:function(a,b){void 0===Ic&&(fh=new Q,Qe=new bc,Ic=new ib);
a.index){for(var b=a.attributes.position,c=[0],d=1,e=b.count;d<e;d++)eh.fromBufferAttribute(b,d-1),Tf.fromBufferAttribute(b,d),c[d]=c[d-1],c[d]+=eh.distanceTo(Tf);a.addAttribute("lineDistance",new A(c,1))}else console.warn("THREE.Line.computeLineDistances(): Computation only possible with non-indexed BufferGeometry.");else if(a.isGeometry)for(b=a.vertices,c=a.lineDistances,c[0]=0,d=1,e=b.length;d<e;d++)c[d]=c[d-1],c[d]+=b[d-1].distanceTo(b[d]);return this},raycast:function(a,b){void 0===Ic&&(fh=new Q,
aa.prototype=Object.assign(Object.create(xa.prototype),{constructor:aa,isLineSegments:!0,computeLineDistances:function(){void 0===Ed&&(Re=new n,Ed=new n);var a=this.geometry;if(a.isBufferGeometry)if(null===a.index){for(var b=a.attributes.position,c=[],d=0,e=b.count;d<e;d+=2)Re.fromBufferAttribute(b,d),Ed.fromBufferAttribute(b,d+1),c[d]=0===d?0:c[d-1],c[d+1]=c[d]+Re.distanceTo(Ed);a.addAttribute("lineDistance",new A(c,1))}else console.warn("THREE.LineSegments.computeLineDistances(): Computation only possible with non-indexed BufferGeometry.");