Buckets:
ktongue/docker_container / simsite /frontend /node_modules /three-mesh-bvh /src /utils /ArrayBoxUtilities.js
| export function arrayToBox( nodeIndex32, array, target ) { | |
| target.min.x = array[ nodeIndex32 ]; | |
| target.min.y = array[ nodeIndex32 + 1 ]; | |
| target.min.z = array[ nodeIndex32 + 2 ]; | |
| target.max.x = array[ nodeIndex32 + 3 ]; | |
| target.max.y = array[ nodeIndex32 + 4 ]; | |
| target.max.z = array[ nodeIndex32 + 5 ]; | |
| return target; | |
| } | |
| export function makeEmptyBounds( target ) { | |
| target[ 0 ] = target[ 1 ] = target[ 2 ] = Infinity; | |
| target[ 3 ] = target[ 4 ] = target[ 5 ] = - Infinity; | |
| } | |
| export function getLongestEdgeIndex( bounds ) { | |
| let splitDimIdx = - 1; | |
| let splitDist = - Infinity; | |
| for ( let i = 0; i < 3; i ++ ) { | |
| const dist = bounds[ i + 3 ] - bounds[ i ]; | |
| if ( dist > splitDist ) { | |
| splitDist = dist; | |
| splitDimIdx = i; | |
| } | |
| } | |
| return splitDimIdx; | |
| } | |
| // copies bounds a into bounds b | |
| export function copyBounds( source, target ) { | |
| target.set( source ); | |
| } | |
| // sets bounds target to the union of bounds a and b | |
| export function unionBounds( a, b, target ) { | |
| let aVal, bVal; | |
| for ( let d = 0; d < 3; d ++ ) { | |
| const d3 = d + 3; | |
| // set the minimum values | |
| aVal = a[ d ]; | |
| bVal = b[ d ]; | |
| target[ d ] = aVal < bVal ? aVal : bVal; | |
| // set the max values | |
| aVal = a[ d3 ]; | |
| bVal = b[ d3 ]; | |
| target[ d3 ] = aVal > bVal ? aVal : bVal; | |
| } | |
| } | |
| // expands the given bounds by the provided triangle bounds | |
| export function expandByTriangleBounds( startIndex, triangleBounds, bounds ) { | |
| for ( let d = 0; d < 3; d ++ ) { | |
| const tCenter = triangleBounds[ startIndex + 2 * d ]; | |
| const tHalf = triangleBounds[ startIndex + 2 * d + 1 ]; | |
| const tMin = tCenter - tHalf; | |
| const tMax = tCenter + tHalf; | |
| if ( tMin < bounds[ d ] ) { | |
| bounds[ d ] = tMin; | |
| } | |
| if ( tMax > bounds[ d + 3 ] ) { | |
| bounds[ d + 3 ] = tMax; | |
| } | |
| } | |
| } | |
| // compute bounds surface area | |
| export function computeSurfaceArea( bounds ) { | |
| const d0 = bounds[ 3 ] - bounds[ 0 ]; | |
| const d1 = bounds[ 4 ] - bounds[ 1 ]; | |
| const d2 = bounds[ 5 ] - bounds[ 2 ]; | |
| return 2 * ( d0 * d1 + d1 * d2 + d2 * d0 ); | |
| } | |
Xet Storage Details
- Size:
- 2.01 kB
- Xet hash:
- e150fd7add26c737bf7e4e67ae5104167bd285c99bdb97c44b30309b6db59cf9
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.