UNPKG

@arcgis/core

Version:

ArcGIS Maps SDK for JavaScript: A complete 2D and 3D mapping and data visualization API

3 lines (2 loc) 2.12 kB
/* COPYRIGHT Esri - https://js.arcgis.com/5.0.8/LICENSE.txt */ import{copy as t,sub as e}from"../../../../../core/libs/gl-matrix-2/math/vec3.js";import{create as i}from"../../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{ElevationAgnosticBVH as r}from"./ElevationAgnosticBVH.js";import{intersectRayTrianglesWithVerticalOffsetENUGlobal as s,intersectRayTriangles as a}from"../../lib/RayIntersections.js";import{generateTriangleAabbsLocal as n,generateTriangleAabbsGlobal as h}from"../../lib/triangleIntersectionUtils.js";class l{constructor(t,e,s,a,n,h,l,o,c){this.componentIndex=t,this.vertexData=e,this.vertexStride=s,this.indexData=a,this.startTriangleNumber=n,this.endTriangleNumber=h,this.geometryMinZ=l,this.planetCenterZ=o,this.localMode=c,this.maxBspNodeDepth=8,this.minElementCountForBVH=20,this.minBspNodeElementCount=10,this.rayDirection=i(),this.ray0=i(),this.isVerticalRay=!1,this._triangleHitCallback=m,this.totalElevationOffset=0,this.normalRequired=!1,this._bvh=new r(h-n,this)}getAabbs2D(){return this.localMode?n(this.startTriangleNumber,this.endTriangleNumber,this.indexData,this.vertexData,this.vertexStride):h(this.startTriangleNumber,this.endTriangleNumber,this.indexData,this.vertexData,this.vertexStride,this.geometryMinZ,this.planetCenterZ)}get numTriangles(){return this.endTriangleNumber-this.startTriangleNumber}intersectRay(i,r,s,a,n,h){t(this.ray0,i),e(this.rayDirection,r,i),this.isVerticalRay=s,this.totalElevationOffset=a,this.normalRequired=h,this._triangleHitCallback=n,this._bvh.intersectRay(i,r,s),this._triangleHitCallback=m}intersectRange(t,e){const i=this._bvh.elementIndexMap;o(this.ray0,this.rayDirection,t,e,this.indexData,this.vertexData,this.vertexStride,this.totalElevationOffset,this.planetCenterZ,this.normalRequired,this._triangleHitCallback,i,this.startTriangleNumber)}getTriangleElevationOffset(t){return this.totalElevationOffset}}function o(t,e,i,r,n,h,l,o,m,c,g,b=null,u=0){0!==o?s(t,e,i,r,n,h,l,o,m,c,g,b,u):a(t,e,i,r,n,h,l,c,g,b,u)}function m(){}export{l as ComponentObjectElevationAgnosticComponentGeometryBVH,o as intersectTriangleRangeForComponent};