@doegis/core
Version:
DOE GIS API
3 lines (1 loc) • 2.71 kB
JavaScript
import{isSome as t}from"./maybe.js";import{l as n,s as r}from"../chunks/vec3.js";import{s as u}from"../chunks/vec4.js";const e=new Float32Array(1);function i(t){--t;for(let n=1;n<32;n<<=1)t|=t>>n;return t+1}function a(t,n,r){return Math.min(Math.max(t,n),r)}function o(t,n){return 0===n?0:Math.round(t/n)*n}function c(t){return 0==(t&t-1)}function f(t){return t--,t|=t>>1,t|=t>>2,t|=t>>4,t|=t>>8,t|=t>>16,++t}function s(t){return 10**Math.ceil(Math.LOG10E*Math.log(t))}function h(t,n,r){return t+(n-t)*r}function M(t,n,r,u,e){return h(u,e,(t-n)/(r-n))}function m(t){return t*Math.PI/180}function b(t){return 180*t/Math.PI}function F(t,n=1e-6){return(t<0?-1:1)/Math.max(Math.abs(t),n)}function l(t){return Math.acos(a(t,-1,1))}function N(t){return Math.asin(a(t,-1,1))}function g(t,n,r=1e-6){if(t===n)return!0;if(!Number.isFinite(t)||!Number.isFinite(n))return!1;return(t>n?t-n:n-t)<=r}const E=new DataView(new ArrayBuffer(Float64Array.BYTES_PER_ELEMENT));function B(t){return E.setFloat64(0,t),E.getBigInt64(0)}function I(t){return E.setBigInt64(0,t),E.getFloat64(0)}const p=BigInt("1000000"),w=x(1);function x(t){const n=B(t=Math.abs(t)),r=I(n<=p?p:n-p);return Math.abs(t-r)}function y(n,r,u=w){if(n===r)return!0;if(!Number.isFinite(n)||!Number.isFinite(r))return!1;if(t(u)){if(x(Math.min(Math.abs(n),Math.abs(r)))<u)return Math.abs(n-r)<=u}const e=B(n),i=B(r);if(e<0!=i<0)return!1;return!((e<i?i-e:e-i)>p)}function j(t,n,r=1e-6){if(t===n)return!0;if(!Number.isFinite(t)||!Number.isFinite(n))return!1;const u=Math.abs(t-n),e=Math.abs(t),i=Math.abs(n);if(0===t||0===n||e<1e-12&&i<1e-12){if(u>.01*r)return!1}else if(u/(e+i)>r)return!1;return!0}function A(t){return P(Math.max(-D,Math.min(t,D)))}function P(t){return e[0]=t,e[0]}function k(t,n){return n<t?0:1}function v(t,n,r){const u=a((r-t)/(n-t),0,1);return u*u*(3-2*u)}function L(t,u){const e=n(t),i=N(t[2]/e),a=Math.atan2(t[1]/e,t[0]/e);return r(u,e,i,a),u}function T(t,n){const u=t[0],e=t[1],i=t[2],a=Math.cos(e);r(n,u*a*Math.cos(i),u*a*Math.sin(i),u*Math.sin(e))}function _(t,n,r){return u(t,n[0],n[1],n[2],n[3]*r)}function d(t){const n=t[0]*t[0]+t[1]*t[1]+t[2]*t[2],r=t[3]*t[3]+t[4]*t[4]+t[5]*t[5],u=t[6]*t[6]+t[7]*t[7]+t[8]*t[8];return!(g(n,1)&&g(r,1)&&g(u,1))}const D=P(34028234663852886e22);export{D as NUMBER_MAX_FLOAT32,l as acosClamped,_ as applyOpacity,N as asinClamped,L as cartesianToSpherical,a as clamp,A as clampFloat32,m as deg2rad,g as floatEqualAbsolute,j as floatEqualRelative,y as floatEqualUlp,d as hasScaling,c as isPowerOfTwo,h as lerp,s as nextHighestPowerOfTen,i as nextHighestPowerOfTwo,f as nextPowerOfTwo,b as rad2deg,F as reciprocalClamped,o as roundToNearest,M as scale,v as smoothstep,T as sphericalToCartesian,k as step};