created site just for chat
This commit is contained in:
55
site/game/node_modules/three/src/objects/LineSegments.js
generated
vendored
Normal file
55
site/game/node_modules/three/src/objects/LineSegments.js
generated
vendored
Normal file
@ -0,0 +1,55 @@
|
||||
import { Line } from './Line.js';
|
||||
import { Vector3 } from '../math/Vector3.js';
|
||||
import { Float32BufferAttribute } from '../core/BufferAttribute.js';
|
||||
|
||||
const _start = /*@__PURE__*/ new Vector3();
|
||||
const _end = /*@__PURE__*/ new Vector3();
|
||||
|
||||
class LineSegments extends Line {
|
||||
|
||||
constructor( geometry, material ) {
|
||||
|
||||
super( geometry, material );
|
||||
|
||||
this.isLineSegments = true;
|
||||
|
||||
this.type = 'LineSegments';
|
||||
|
||||
}
|
||||
|
||||
computeLineDistances() {
|
||||
|
||||
const geometry = this.geometry;
|
||||
|
||||
// we assume non-indexed geometry
|
||||
|
||||
if ( geometry.index === null ) {
|
||||
|
||||
const positionAttribute = geometry.attributes.position;
|
||||
const lineDistances = [];
|
||||
|
||||
for ( let i = 0, l = positionAttribute.count; i < l; i += 2 ) {
|
||||
|
||||
_start.fromBufferAttribute( positionAttribute, i );
|
||||
_end.fromBufferAttribute( positionAttribute, i + 1 );
|
||||
|
||||
lineDistances[ i ] = ( i === 0 ) ? 0 : lineDistances[ i - 1 ];
|
||||
lineDistances[ i + 1 ] = lineDistances[ i ] + _start.distanceTo( _end );
|
||||
|
||||
}
|
||||
|
||||
geometry.setAttribute( 'lineDistance', new Float32BufferAttribute( lineDistances, 1 ) );
|
||||
|
||||
} else {
|
||||
|
||||
console.warn( 'THREE.LineSegments.computeLineDistances(): Computation only possible with non-indexed BufferGeometry.' );
|
||||
|
||||
}
|
||||
|
||||
return this;
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
export { LineSegments };
|
Reference in New Issue
Block a user