Download node_modules/three-mesh-bvh/src/webgpu/tsl/structs.js from SimWorld-AI/industrial-harbor-viewer: direct link, hf CLI and curl.
- Browser
- Download file 2.34 kB
-
https://huggingface.co/spaces/SimWorld-AI/industrial-harbor-viewer/resolve/main/node_modules/three-mesh-bvh/src/webgpu/tsl/structs.js
- Command line
-
hf download hf://spaces/SimWorld-AI/industrial-harbor-viewer/node_modules/three-mesh-bvh/src/webgpu/tsl/structs.js
-
curl -L -o structs.js https://huggingface.co/spaces/SimWorld-AI/industrial-harbor-viewer/resolve/main/node_modules/three-mesh-bvh/src/webgpu/tsl/structs.js
2.34 kB
| import { StructTypeNode } from 'three/webgpu'; | |
| export const bvhNodeBoundsStruct = new StructTypeNode( { | |
| min: 'array<f32, 3>', | |
| max: 'array<f32, 3>', | |
| }, 'BVHBoundingBox' ); | |
| bvhNodeBoundsStruct.getLength = () => 6; | |
| export const bvhNodeStruct = new StructTypeNode( { | |
| bounds: 'BVHBoundingBox', | |
| rightChildOrTriangleOffset: 'uint', | |
| splitAxisOrTriangleCount: 'uint', | |
| }, 'BVHNode' ); | |
| bvhNodeStruct.getLength = () => bvhNodeBoundsStruct.getLength() + 2; | |
| export const transformStruct = new StructTypeNode( { | |
| matrixWorld: 'mat4x4f', | |
| inverseMatrixWorld: 'mat4x4f', | |
| visible: 'uint', | |
| _alignment0: 'uint', | |
| _alignment1: 'uint', | |
| _alignment2: 'uint', | |
| }, 'TransformStruct' ); | |
| /** | |
| * WGSL struct node representing a ray with an origin, direction, and maximum trace distance. | |
| * Used as the input to BVH traversal and intersection functions. Traversal ignores hits at or | |
| * beyond "maxDist", and a value of 0 (the zero-initialized default) means unbounded. | |
| * @type {StructTypeNode} | |
| * @section TSL Structs | |
| */ | |
| export const rayStruct = new StructTypeNode( { | |
| origin: 'vec3f', | |
| direction: 'vec3f', | |
| maxDist: 'float', | |
| }, 'Ray' ); | |
| /** | |
| * WGSL struct node describing a ray–triangle intersection result, including barycentric | |
| * coordinates, world-space normal, hit distance, face side, triangle indices, and the | |
| * object index within the TLAS. | |
| * @type {StructTypeNode} | |
| * @section TSL Structs | |
| */ | |
| export const rayIntersectionResultStruct = new StructTypeNode( { | |
| indices: 'vec4u', | |
| normal: 'vec3f', | |
| didHit: 'bool', | |
| barycoord: 'vec3f', | |
| objectIndex: 'uint', | |
| side: 'float', | |
| dist: 'float', | |
| }, 'IntersectionResult' ); | |
| /** | |
| * WGSL struct node describing a closest-point query result, including the world-space | |
| * closest point, squared distance, barycentric coordinates, face normal, side, triangle | |
| * indices, and the object index within the TLAS. | |
| * | |
| * Barycoord convention matches {@link rayIntersectionResultStruct}: `(bary_a, bary_b, bary_c)` | |
| * where each component is the weight for the corresponding vertex in `faceIndices.xyz`. | |
| * @type {StructTypeNode} | |
| * @section TSL Structs | |
| */ | |
| export const pointQueryResultStruct = new StructTypeNode( { | |
| faceIndices: 'vec4u', | |
| closestPoint: 'vec3f', | |
| found: 'bool', | |
| barycoord: 'vec3f', | |
| objectIndex: 'uint', | |
| faceNormal: 'vec3f', | |
| side: 'float', | |
| distanceSq: 'float', | |
| }, 'PointQueryResult' ); | |