PHP 7.4.33
Preview: LineSegments.js Size: 1.59 KB
/var/www/uibuilder.cmshelp.dk/httpdocs/node_modules/three/src/objects/LineSegments.js
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();

/**
 * A series of lines drawn between pairs of vertices.
 *
 * @augments Line
 */
class LineSegments extends Line {

	/**
	 * Constructs a new line segments.
	 *
	 * @param {BufferGeometry} [geometry] - The line geometry.
	 * @param {Material|Array<Material>} [material] - The line material.
	 */
	constructor( geometry, material ) {

		super( geometry, material );

		/**
		 * This flag can be used for type testing.
		 *
		 * @type {boolean}
		 * @readonly
		 * @default true
		 */
		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 };

Directory Contents

Dirs: 0 × Files: 14
Name Size Perms Modified Actions
45.51 KB lrw-r--r-- 2025-03-28 11:04:37
Edit Download
612 B lrw-r--r-- 2025-03-28 11:04:37
Edit Download
1.30 KB lrw-r--r-- 2025-03-28 11:04:38
Edit Download
702 B lrw-r--r-- 2025-03-28 11:04:38
Edit Download
10.04 KB lrw-r--r-- 2025-03-28 11:04:38
Edit Download
8.12 KB lrw-r--r-- 2025-03-28 11:04:38
Edit Download
730 B lrw-r--r-- 2025-03-28 11:04:38
Edit Download
1.59 KB lrw-r--r-- 2025-03-28 11:04:38
Edit Download
6.33 KB lrw-r--r-- 2025-03-28 11:04:38
Edit Download
11.92 KB lrw-r--r-- 2025-03-28 11:04:38
Edit Download
5.58 KB lrw-r--r-- 2025-03-28 11:04:39
Edit Download
7.70 KB lrw-r--r-- 2025-03-28 11:04:39
Edit Download
8.47 KB lrw-r--r-- 2025-03-28 11:04:39
Edit Download
5.98 KB lrw-r--r-- 2025-03-28 11:04:39
Edit Download
If ZipArchive is unavailable, a .tar will be created (no compression).