{"version":3,"sources":["jsdelivr-header.js","/npm/tetrahedron-distance@0.0.23/index.js"],"names":[],"mappings":"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","file":"/npm/tetrahedron-distance@0.0.23/index.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /npm/tetrahedron-distance@0.0.23/index.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","function sign1 (x) {return typeof x === 'number' ? x ? x < 0.0 ? -1.0 : 1.0 : x === x ? 0.0 : NaN : NaN;}//see https://jsperf.com/signs/3\nfunction clamp1(x){return x < 0.0 ? 0.0 : x > 1.0 ? 1.0 : x;} //see https://jsperf.com/clamp-functions/7\n\nvar _va = new Float32Array(36);\nfunction triangleDFuncTurboSquared(_p, _a, _b, _c){\n    _va[0]=_b[0]-_a[0]; _va[1]=_b[1]-_a[1]; _va[2]= _b[2]-_a[2];\n    _va[3]=_p[0]-_a[0]; _va[4]=_p[1]-_a[1]; _va[5]= _p[2]-_a[2];\n    _va[6]=_c[0]-_b[0]; _va[7]=_c[1]-_b[1]; _va[8]= _c[2]-_b[2];\n    _va[9]=_p[0]-_b[0]; _va[10]=_p[1]-_b[1]; _va[11]= _p[2]-_b[2];\n    _va[12]=_a[0]-_c[0]; _va[13]=_a[1]-_c[1]; _va[14]= _a[2]-_c[2];\n    _va[15]=_p[0]-_c[0]; _va[16]=_p[1]-_c[1]; _va[17]= _p[2]-_c[2];\n\n    _va[18] = _va[1] * _va[14] - _va[2] * _va[13];\n    _va[19] = _va[2] * _va[12] - _va[0] * _va[14];\n    _va[20] = _va[0] * _va[13] - _va[1] * _va[12];\n\n    _va[30] = (_va[1] * _va[20] - _va[2] * _va[19])*_va[3] + (_va[2] * _va[18] - _va[0] * _va[20])*_va[4] + (_va[0] * _va[19] - _va[1] * _va[18])*_va[5];\n    _va[31] = (_va[7] * _va[20] - _va[8] * _va[19])*_va[9] + (_va[8] * _va[18] - _va[6] * _va[20])*_va[10] + (_va[6] * _va[19] - _va[7] * _va[18])*_va[11];\n    _va[32] = (_va[13] * _va[20] - _va[14] * _va[19])*_va[15] + (_va[14] * _va[18] - _va[12] * _va[20])*_va[16] + (_va[12] * _va[19] - _va[13] * _va[18])*_va[17];\n\n    if(sign1(_va[30])+sign1(_va[31])+sign1(_va[32])<2.0){\n\n        _va[33]= clamp1((_va[0]*_va[3]+_va[1]*_va[4]+_va[2]*_va[5])/(_va[0]*_va[0]+_va[1]*_va[1]+_va[2]*_va[2]));\n        _va[34]= clamp1((_va[6]*_va[9]+_va[7]*_va[10]+_va[8]*_va[11])/(_va[6]*_va[6]+_va[7]*_va[7]+_va[8]*_va[8]));\n        _va[35]= clamp1((_va[12]*_va[15]+_va[13]*_va[16]+_va[14]*_va[17])/(_va[12]*_va[12]+_va[13]*_va[13]+_va[14]*_va[14]));\n\n        _va[21]=_va[0]*_va[33]-_va[3]; _va[22]= _va[1]*_va[33]-_va[4];_va[23]= _va[2]*_va[33]-_va[5];\n        _va[24]=_va[6]*_va[34]-_va[9]; _va[25]= _va[7]*_va[34]-_va[10];_va[26]= _va[8]*_va[34]-_va[11];\n        _va[27]=_va[12]*_va[35]-_va[15]; _va[28]= _va[13]*_va[35]-_va[16];_va[29]= _va[14]*_va[35]-_va[17];\n        return (Math.min(Math.min(_va[21]*_va[21]+_va[22]*_va[22]+_va[23]*_va[23], _va[24]*_va[24]+_va[25]*_va[25]+_va[26]*_va[26]),  _va[27]*_va[27]+_va[28]*_va[28]+_va[29]*_va[29]));\n    }else{\n\n        _va[27] = _va[18]*_va[3] + _va[19]*_va[4] + _va[20]*_va[5]; //re-using 27\n        return (_va[27]*_va[27]/(_va[18]*_va[18]+_va[19]*_va[19]+_va[20]*_va[20]));\n    }\n}\n\nfunction dfTetrahedronSurface_direct(x,y,z,p0,p1,p2,p3){\n\n    //layout of verts:\n\n    //  p0\n    //  |\\ \\\n    // d| \\b \\p3\n    //  |a \\ / |\n    //  |   \\  |\n    //  | / c\\ |\n    //  p1----p2\n    //\n    // var faceA = [p0, p1, p2];\n    // var faceB = [p0, p3, p2];\n    // var faceC = [p1, p2, p3];\n    // var faceD = [p0, p1, p3];\n\n    var p = [x,y,z];\n    var distA = triangleDFuncTurboSquared(p,p0, p1, p2); //_p, _a, _b, _c\n    var distB = triangleDFuncTurboSquared(p,p0, p3, p2);\n    var distC = triangleDFuncTurboSquared(p,p1, p2, p3);\n    var distD = triangleDFuncTurboSquared(p,p0, p1, p3);\n    return Math.sqrt(Math.min(Math.min(distA,distB),Math.min(distC,distD))); //\"union\" of 4 surface triangle distances\n}\n\n// function tetraContainsPt(tet,pt){\n//     var d = tetraDeterminants_turbo(tet,pt);\n//     return d[0]*d[1]>=0 && d[0]*d[2]>=0 && d[2]*d[3]>=0 && d[4]*d[3]>=0; //checking if all signs equal\n// }\n\nvar tfv = new Float32Array(20);\nfunction tetraContainsPt_turbo(tet, pt) { //based on determinants -- see http://steve.hollasch.net/cgindex/geometry/ptintet.html\n    tfv[0]=pt[0]; //x\n    tfv[1]=pt[1]; //y\n    tfv[2]=pt[2]; //z\n    tfv[3]=tet[0][0]; //x1\n    tfv[4]=tet[0][1]; //y1\n    tfv[5]=tet[0][2]; //z1\n    tfv[6]=tet[1][0]; //x2\n    tfv[7]=tet[1][1]; //y2\n    tfv[8]=tet[1][2]; //z2\n    tfv[9]=tet[2][0]; //x3\n    tfv[10]=tet[2][1]; //y3\n    tfv[11]=tet[2][2]; //z3\n    tfv[12]=tet[3][0]; //x4\n    tfv[13]=tet[3][1]; //y4\n    tfv[14]=tet[3][2]; //z4\n\n    //d0\n    tfv[15] = 1 * tfv[8] * tfv[10] * tfv[12]  - tfv[5] * 1 * tfv[10] * tfv[12]-\n        1 * tfv[7] * tfv[11] * tfv[12] +tfv[4] * 1 * tfv[11] * tfv[12]+\n        tfv[5] * tfv[7] * 1 * tfv[12] -tfv[4] * tfv[8] * 1 * tfv[12]-\n        1 * tfv[8] * tfv[9] * tfv[13] +tfv[5] * 1 * tfv[9] * tfv[13]+\n        1 * tfv[6] * tfv[11] * tfv[13] -tfv[3] * 1 * tfv[11] * tfv[13]-\n        tfv[5] * tfv[6] * 1 * tfv[13] +tfv[3] * tfv[8] * 1 * tfv[13]+\n        1 * tfv[7] * tfv[9] * tfv[14] -tfv[4] * 1 * tfv[9] * tfv[14]-\n        1 * tfv[6] * tfv[10] * tfv[14] +tfv[3] * 1 * tfv[10] * tfv[14]+\n        tfv[4] * tfv[6] * 1 * tfv[14] -tfv[3] * tfv[7] * 1 * tfv[14]-\n        tfv[5] * tfv[7] * tfv[9] * 1 +tfv[4] * tfv[8] * tfv[9] * 1+\n        tfv[5] * tfv[6] * tfv[10] * 1 -tfv[3] * tfv[8] * tfv[10] * 1-\n        tfv[4] * tfv[6] * tfv[11] * 1 +tfv[3] * tfv[7] * tfv[11] * 1;\n\n    //d1\n    tfv[16] = 1 * tfv[8] * tfv[10] * tfv[12]  - tfv[2] * 1 * tfv[10] * tfv[12]-\n        1 * tfv[7] * tfv[11] * tfv[12] +tfv[1] * 1 * tfv[11] * tfv[12]+\n        tfv[2] * tfv[7] * 1 * tfv[12] -tfv[1] * tfv[8] * 1 * tfv[12]-\n        1 * tfv[8] * tfv[9] * tfv[13] +tfv[2] * 1 * tfv[9] * tfv[13]+\n        1 * tfv[6] * tfv[11] * tfv[13] -tfv[0] * 1 * tfv[11] * tfv[13]-\n        tfv[2] * tfv[6] * 1 * tfv[13] +tfv[0] * tfv[8] * 1 * tfv[13]+\n        1 * tfv[7] * tfv[9] * tfv[14] -tfv[1] * 1 * tfv[9] * tfv[14]-\n        1 * tfv[6] * tfv[10] * tfv[14] +tfv[0] * 1 * tfv[10] * tfv[14]+\n        tfv[1] * tfv[6] * 1 * tfv[14] -tfv[0] * tfv[7] * 1 * tfv[14]-\n        tfv[2] * tfv[7] * tfv[9] * 1 +tfv[1] * tfv[8] * tfv[9] * 1+\n        tfv[2] * tfv[6] * tfv[10] * 1 -tfv[0] * tfv[8] * tfv[10] * 1-\n        tfv[1] * tfv[6] * tfv[11] * 1 +tfv[0] * tfv[7] * tfv[11] * 1;\n\n    //d2\n    tfv[17] = 1 * tfv[2] * tfv[10] * tfv[12]  - tfv[5] * 1 * tfv[10] * tfv[12]-\n        1 * tfv[1] * tfv[11] * tfv[12] +tfv[4] * 1 * tfv[11] * tfv[12]+\n        tfv[5] * tfv[1] * 1 * tfv[12] -tfv[4] * tfv[2] * 1 * tfv[12]-\n        1 * tfv[2] * tfv[9] * tfv[13] +tfv[5] * 1 * tfv[9] * tfv[13]+\n        1 * tfv[0] * tfv[11] * tfv[13] -tfv[3] * 1 * tfv[11] * tfv[13]-\n        tfv[5] * tfv[0] * 1 * tfv[13] +tfv[3] * tfv[2] * 1 * tfv[13]+\n        1 * tfv[1] * tfv[9] * tfv[14] -tfv[4] * 1 * tfv[9] * tfv[14]-\n        1 * tfv[0] * tfv[10] * tfv[14] +tfv[3] * 1 * tfv[10] * tfv[14]+\n        tfv[4] * tfv[0] * 1 * tfv[14] -tfv[3] * tfv[1] * 1 * tfv[14]-\n        tfv[5] * tfv[1] * tfv[9] * 1 +tfv[4] * tfv[2] * tfv[9] * 1+\n        tfv[5] * tfv[0] * tfv[10] * 1 -tfv[3] * tfv[2] * tfv[10] * 1-\n        tfv[4] * tfv[0] * tfv[11] * 1 +tfv[3] * tfv[1] * tfv[11] * 1;\n\n    //d3\n    tfv[18] = 1 * tfv[8] * tfv[1] * tfv[12]  - tfv[5] * 1 * tfv[1] * tfv[12]-\n        1 * tfv[7] * tfv[2] * tfv[12] +tfv[4] * 1 * tfv[2] * tfv[12]+\n        tfv[5] * tfv[7] * 1 * tfv[12] -tfv[4] * tfv[8] * 1 * tfv[12]-\n        1 * tfv[8] * tfv[0] * tfv[13] +tfv[5] * 1 * tfv[0] * tfv[13]+\n        1 * tfv[6] * tfv[2] * tfv[13] -tfv[3] * 1 * tfv[2] * tfv[13]-\n        tfv[5] * tfv[6] * 1 * tfv[13] +tfv[3] * tfv[8] * 1 * tfv[13]+\n        1 * tfv[7] * tfv[0] * tfv[14] -tfv[4] * 1 * tfv[0] * tfv[14]-\n        1 * tfv[6] * tfv[1] * tfv[14] +tfv[3] * 1 * tfv[1] * tfv[14]+\n        tfv[4] * tfv[6] * 1 * tfv[14] -tfv[3] * tfv[7] * 1 * tfv[14]-\n        tfv[5] * tfv[7] * tfv[0] * 1 +tfv[4] * tfv[8] * tfv[0] * 1+\n        tfv[5] * tfv[6] * tfv[1] * 1 -tfv[3] * tfv[8] * tfv[1] * 1-\n        tfv[4] * tfv[6] * tfv[2] * 1 +tfv[3] * tfv[7] * tfv[2] * 1;\n\n    //d4\n    tfv[19] = 1 * tfv[8] * tfv[10] * tfv[0]  - tfv[5] * 1 * tfv[10] * tfv[0]-\n        1 * tfv[7] * tfv[11] * tfv[0] +tfv[4] * 1 * tfv[11] * tfv[0]+\n        tfv[5] * tfv[7] * 1 * tfv[0] -tfv[4] * tfv[8] * 1 * tfv[0]-\n        1 * tfv[8] * tfv[9] * tfv[1] +tfv[5] * 1 * tfv[9] * tfv[1]+\n        1 * tfv[6] * tfv[11] * tfv[1] -tfv[3] * 1 * tfv[11] * tfv[1]-\n        tfv[5] * tfv[6] * 1 * tfv[1] +tfv[3] * tfv[8] * 1 * tfv[1]+\n        1 * tfv[7] * tfv[9] * tfv[2] -tfv[4] * 1 * tfv[9] * tfv[2]-\n        1 * tfv[6] * tfv[10] * tfv[2] +tfv[3] * 1 * tfv[10] * tfv[2]+\n        tfv[4] * tfv[6] * 1 * tfv[2] -tfv[3] * tfv[7] * 1 * tfv[2]-\n        tfv[5] * tfv[7] * tfv[9] * 1 +tfv[4] * tfv[8] * tfv[9] * 1+\n        tfv[5] * tfv[6] * tfv[10] * 1 -tfv[3] * tfv[8] * tfv[10] * 1-\n        tfv[4] * tfv[6] * tfv[11] * 1 +tfv[3] * tfv[7] * tfv[11] * 1;\n\n    return tfv[15]*tfv[16]>=0 && tfv[15]*tfv[17]>=0 && tfv[17]*tfv[18]>=0 && tfv[19]*tfv[18]>=0;\n}\n\nfunction dfTetrahedron(p0, p1, p2, p3){\n\n    //layout of verts:\n    //  p0\n    //  |\\ \\\n    // d| \\b \\p3\n    //  |a \\ / |\n    //  |   \\  |\n    //  | / c\\ |\n    //  p1----p2\n\n    return function(x,y,z){\n        var dfsv = dfTetrahedronSurface_direct(x,y,z,p0,p1,p2,p3,0.0); //value from triangle surfaces\n        return tetraContainsPt_turbo([p0,p1,p2,p3],[x,y,z]) ? -dfsv : dfsv;\n    }\n}\n\nfunction dfTetrahedron_direct(pt,tet){\n\n    //layout of verts:\n    //  p0\n    //  |\\ \\\n    // d| \\b \\p3\n    //  |a \\ / |\n    //  |   \\  |\n    //  | / c\\ |\n    //  p1----p2\n\n    var dfsv = dfTetrahedronSurface_direct(pt[0],pt[1],pt[2],tet[0],tet[1],tet[2],tet[3]); //value from triangle surfaces\n    return tetraContainsPt_turbo(tet,pt) ? -dfsv : dfsv;\n}\n\nmodule.exports.tetrahedronContainsPt = function(p,t){\n    return tetraContainsPt_turbo(t,p);\n}\nmodule.exports.signedDistanceFunctionTetrahedron = dfTetrahedron;\nmodule.exports.signedDistanceTetrahedron = dfTetrahedron_direct;"]}