Buckets:
| import { Vector3 } from './Vector3.js'; | |
| import * as MathUtils from './MathUtils.js'; | |
| const _startP = /*@__PURE__*/ new Vector3(); | |
| const _startEnd = /*@__PURE__*/ new Vector3(); | |
| class Line3 { | |
| constructor( start = new Vector3(), end = new Vector3() ) { | |
| this.start = start; | |
| this.end = end; | |
| } | |
| set( start, end ) { | |
| this.start.copy( start ); | |
| this.end.copy( end ); | |
| return this; | |
| } | |
| copy( line ) { | |
| this.start.copy( line.start ); | |
| this.end.copy( line.end ); | |
| return this; | |
| } | |
| getCenter( target ) { | |
| return target.addVectors( this.start, this.end ).multiplyScalar( 0.5 ); | |
| } | |
| delta( target ) { | |
| return target.subVectors( this.end, this.start ); | |
| } | |
| distanceSq() { | |
| return this.start.distanceToSquared( this.end ); | |
| } | |
| distance() { | |
| return this.start.distanceTo( this.end ); | |
| } | |
| at( t, target ) { | |
| return this.delta( target ).multiplyScalar( t ).add( this.start ); | |
| } | |
| closestPointToPointParameter( point, clampToLine ) { | |
| _startP.subVectors( point, this.start ); | |
| _startEnd.subVectors( this.end, this.start ); | |
| const startEnd2 = _startEnd.dot( _startEnd ); | |
| const startEnd_startP = _startEnd.dot( _startP ); | |
| let t = startEnd_startP / startEnd2; | |
| if ( clampToLine ) { | |
| t = MathUtils.clamp( t, 0, 1 ); | |
| } | |
| return t; | |
| } | |
| closestPointToPoint( point, clampToLine, target ) { | |
| const t = this.closestPointToPointParameter( point, clampToLine ); | |
| return this.delta( target ).multiplyScalar( t ).add( this.start ); | |
| } | |
| applyMatrix4( matrix ) { | |
| this.start.applyMatrix4( matrix ); | |
| this.end.applyMatrix4( matrix ); | |
| return this; | |
| } | |
| equals( line ) { | |
| return line.start.equals( this.start ) && line.end.equals( this.end ); | |
| } | |
| clone() { | |
| return new this.constructor().copy( this ); | |
| } | |
| } | |
| export { Line3 }; | |
Xet Storage Details
- Size:
- 1.78 kB
- Xet hash:
- d4cc99f5a5b01a956ef3c54dfb9b74b8099a8c86d66471bc839268192ce60b39
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.