{"versions":{"0.2.0":{"name":"frustum-intersects","version":"0.2.0","description":"Determines if camera's frustum intersects with aabb box and sphere","main":"dist/frustum-intersects.js","module":"src/index.js","jsnext:main":"src/index.js","scripts":{"build":"rollup -c rollup.config.js","dev":"rollup -w -c rollup.config.js","test":"mocha -r esm test/specs.js","tdd":"mocha -w -r esm test/specs.js","prepublish":"npm run build"},"repository":{"type":"git","url":"git+https://github.com/fuzhenn/frustum-intersects.git"},"bugs":{"url":"https://github.com/fuzhenn/frustum-intersects/issues"},"homepage":"https://github.com/fuzhenn/frustum-intersects","keywords":["webgl","frustum"],"author":{"name":"fuzhenn"},"license":"MIT","dependencies":{},"devDependencies":{"esm":"^3.0.74","mocha":"^5.2.0","rollup":"^0.64.1","rollup-plugin-uglify":"^4.0.0"},"gitHead":"67cea0259ee9a983f497e38265714f99010af96c","_id":"frustum-intersects@0.2.0","_nodeVersion":"12.16.1","_npmVersion":"6.14.7","dist":{"shasum":"e614f86acf89f52bc62397ea0720849f5b7c6072","size":3747,"noattachment":false,"tarball":"http://123.232.10.234:8212/nexus/content/groups/npm-public/frustum-intersects/-/frustum-intersects-0.2.0.tgz"},"maintainers":[{"name":"anonymous","email":"fuzhen@maptalks.org"}],"_npmUser":{"name":"anonymous","email":"fuzhen@maptalks.org"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/frustum-intersects_0.2.0_1597633823968_0.09319493898370634"},"_hasShrinkwrap":false,"publish_time":1597633824060,"_cnpm_publish_time":1597633824060,"contributors":[]},"0.1.0":{"name":"frustum-intersects","version":"0.1.0","description":"Determines if camera's frustum intersects with aabb box and sphere","main":"dist/frustum-intersects.js","module":"src/index.js","jsnext:main":"src/index.js","scripts":{"build":"rollup -c rollup.config.js","dev":"rollup -w -c rollup.config.js","test":"mocha -r esm test/specs.js","tdd":"mocha -w -r esm test/specs.js","prepublish":"npm run build"},"files":["src"],"keywords":["webgl","frustum"],"author":{"name":"fuzhenn"},"license":"MIT","dependencies":{},"devDependencies":{"esm":"^3.0.74","mocha":"^5.2.0","rollup":"^0.64.1","rollup-plugin-uglify":"^4.0.0"},"gitHead":"b3bcdff48f6bd5163da9738c3febce9cb60ed6b6","_id":"frustum-intersects@0.1.0","_npmVersion":"5.6.0","_nodeVersion":"9.11.2","_npmUser":{"name":"anonymous","email":"fuzhen@maptalks.org"},"dist":{"shasum":"d1d144099a40d8c5168b62acc83731434f5fa709","size":3295,"noattachment":false,"tarball":"http://123.232.10.234:8212/nexus/content/groups/npm-public/frustum-intersects/-/frustum-intersects-0.1.0.tgz"},"maintainers":[{"name":"anonymous","email":"fuzhen@maptalks.org"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/frustum-intersects_0.1.0_1533966469262_0.2126572528518471"},"_hasShrinkwrap":false,"publish_time":1533966469377,"_cnpm_publish_time":1533966469377,"contributors":[]},"0.2.1":{"name":"frustum-intersects","version":"0.2.1","description":"Determines if camera's frustum intersects with aabb box and sphere","main":"dist/frustum-intersects.js","module":"src/index.js","jsnext:main":"src/index.js","scripts":{"build":"rollup -c rollup.config.js","dev":"rollup -w -c rollup.config.js","test":"mocha -r @babel/register test/specs.js","tdd":"mocha -w -r @babel/register test/specs.js","prepublish":"npm run build"},"repository":{"type":"git","url":"git+https://github.com/fuzhenn/frustum-intersects.git"},"bugs":{"url":"https://github.com/fuzhenn/frustum-intersects/issues"},"homepage":"https://github.com/fuzhenn/frustum-intersects","keywords":["webgl","frustum"],"author":{"name":"fuzhenn"},"license":"MIT","dependencies":{},"devDependencies":{"mocha":"^5.2.0","rollup":"^0.64.1","rollup-plugin-uglify":"^4.0.0","@babel/cli":"^7.7.4","@babel/core":"^7.7.4","@babel/preset-env":"^7.7.4","@babel/register":"^7.7.4"},"gitHead":"b682edcfb6c7bc37ae8ac153e742489fb796955b","_id":"frustum-intersects@0.2.1","_nodeVersion":"14.17.4","_npmVersion":"7.20.5","dist":{"integrity":"sha512-t8tvu7DLpJdV1mNE6oI6gY6/9FtESKU6uexJiwReQ3M80Uj05EI5YU/HGLqf61wCLcahEPncg2xjCKOfqM5xgg==","shasum":"2014aef81497cba66dba4aa12db29a98f3664782","tarball":"http://123.232.10.234:8212/nexus/content/groups/npm-public/frustum-intersects/-/frustum-intersects-0.2.1.tgz","fileCount":5,"unpackedSize":10479,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh72EICRA9TVsSAnZWagAAMzMQAIbNphOvulHGH4VssTG8\nj47LMR8FHz+gHoM4acrJHDnWTzyJGaWSJNKyftAK4nnpQUTaNQdIICXf7u+R\nNVwZYGLL49nXBBi7UC91aPXxbhinyCGwXsrdNmJAGqBOjrT080Y9ZcPuaoPQ\ndSnr/FFRm2BHT14eNE1oj8Y6+4zYPth2831d2pus3RZmShcx10lIo0vivIrK\naYeAefDTICzQUraDOb4QjiSk1REviyWKW8+XTyRT2i4R+w9EQAK4rFnlzIIw\nJ0Cb8LSpSLfsUKyxoVnbe/qeMOLI/OEZnNew+RSYwT8R37OddXUz+n+kmHw1\n5/Oc14Uz/yOE4zNv7xAsx3pgRxcX83UOZkKGSRo4nhnk1gEd8T5AcpFrMlMT\nHQZMZ8pRZ6MaGk7137n1cK10kyAjN7ejYwbRMr7WsuIXJED4Wx24s7qKL93c\nrHR3c1xFsa2ojFb59DnON2atzxOXKmZEVmqhD5tpH2nREGqTIXMKqla0wSxq\nf3zdmd+eIOqM4YqdsjqAtXqGLQDsjW5MDm4dDzvFTHd/aUMCOk4Fmou+B5NL\nKSua+87KCkxc4ypVHOV62PCVAACh3IyXEbBLYHbZmo5Q7vRDY/tsxRDiVOMv\nEiXiJc/oTaLRPDoXAlTLZPnNy/vIJFvFNXlxTsnMeWHNbFU7Xlo3VbmvIkTL\nzMOv\r\n=xsDN\r\n-----END PGP SIGNATURE-----\r\n","size":3925},"_npmUser":{"name":"anonymous","email":"fuzhen@maptalks.org"},"directories":{},"maintainers":[{"name":"anonymous","email":"fuzhen@maptalks.org"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/frustum-intersects_0.2.1_1643077896167_0.48075772682725426"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2022-01-25T02:31:42.823Z","contributors":[]},"0.2.2":{"name":"frustum-intersects","version":"0.2.2","description":"Determines if camera's frustum intersects with aabb box and sphere","main":"dist/frustum-intersects.js","module":"src/index.js","jsnext:main":"src/index.js","scripts":{"build":"rollup -c rollup.config.js","dev":"rollup -w -c rollup.config.js","test":"mocha -r @babel/register test/specs.js","tdd":"mocha -w -r @babel/register test/specs.js","prepublish":"npm run build"},"repository":{"type":"git","url":"git+https://github.com/fuzhenn/frustum-intersects.git"},"bugs":{"url":"https://github.com/fuzhenn/frustum-intersects/issues"},"homepage":"https://github.com/fuzhenn/frustum-intersects","keywords":["webgl","frustum"],"author":{"name":"fuzhenn"},"license":"MIT","dependencies":{},"devDependencies":{"mocha":"^5.2.0","rollup":"^0.64.1","rollup-plugin-uglify":"^4.0.0","@babel/cli":"^7.7.4","@babel/core":"^7.7.4","@babel/preset-env":"^7.7.4","@babel/register":"^7.7.4"},"gitHead":"8c4b8641deb0d82582c63efa7a51b870eda6e259","_id":"frustum-intersects@0.2.2","_nodeVersion":"14.17.4","_npmVersion":"7.20.5","dist":{"integrity":"sha512-31BXXaL8Sw9MsRrhIIH3YfsQqA7oEpz2eZ4KVWHKuaEvi73MyI8C/r6EPhf1xsuZFKRn6Vadr+Te85JvGCw1RQ==","shasum":"5bd185cc25547462e413181d6a92e7434ee029f1","tarball":"http://123.232.10.234:8212/nexus/content/groups/npm-public/frustum-intersects/-/frustum-intersects-0.2.2.tgz","fileCount":5,"unpackedSize":10157,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh75JpCRA9TVsSAnZWagAA9ScQAIQdHc9IkCMyIYlkNtzP\nXfBortsq8vJR1XxxDyLkP3u3Kktp12dyvFtMAolEyWP78D9+/dotUU0YgsjR\nkULSZkprmjpJF0sdjmaGf6/4AbS1sNsRyPjEcJRdI+J94Wr41vgk4J6lBT72\nq2NWMtemcPVdiUbDuz8p45HhRSJLJDcbN19YuaaE3lQ6ser8GnrgUH51cUN1\nvuvSfTLh+JdU/zeeG40wXqVjgdSvRljM+osy2GfR8LOMpfzMbgLp6Hd8vRMd\nbhLOSKm1YTYCjekdaQEvR4ZFgcX09sjMEp90kGRqrWA75VGTE7krpnHA186U\nuUwo0tWtXsIc6gwrDqYduQ+AK0vAyPxrXiSmAAZhORa/iFL7t1SqAoQp9Ylr\nDRWv67SXRzb7TE4TMOCU+dz4y10lAOVT98fD8e5WeFzKoe+YnEpZpKtC6iTi\nDH/Dz7oVvDzwjGqHvUHilxuxXnnRvc1+36e1+Xl23juMzn5ZlrEMS3IS/Lzi\nZ94h0SPHbnRzVWrs0+dVE/zyDFC3JzITPVU79eVr2HizX5JobfylIglAUPf4\nxLgTT6znN7DFJiv93SayBxXik8ovCkdloDKy1dl+24FeQjOlfMR2Zitb4kIG\n0ikkQ49PRufSGzAuPYXemB7yPGgpozRr6bBSI1erNYsgRGjE3Hk5nsHOoXCT\nZh9f\r\n=WG5a\r\n-----END PGP SIGNATURE-----\r\n","size":3858},"_npmUser":{"name":"anonymous","email":"fuzhen@maptalks.org"},"directories":{},"maintainers":[{"name":"anonymous","email":"fuzhen@maptalks.org"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/frustum-intersects_0.2.2_1643090537829_0.8962451730227423"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2022-01-25T06:02:29.844Z","contributors":[]},"0.2.3":{"name":"frustum-intersects","version":"0.2.3","description":"Determines if camera's frustum intersects with aabb box and sphere","main":"dist/frustum-intersects.js","module":"src/index.js","jsnext:main":"src/index.js","scripts":{"build":"rollup -c rollup.config.js","dev":"rollup -w -c rollup.config.js","test":"mocha -r @babel/register test/specs.js","tdd":"mocha -w -r @babel/register test/specs.js","prepublish":"npm run build"},"repository":{"type":"git","url":"git+https://github.com/fuzhenn/frustum-intersects.git"},"bugs":{"url":"https://github.com/fuzhenn/frustum-intersects/issues"},"homepage":"https://github.com/fuzhenn/frustum-intersects","keywords":["webgl","frustum"],"author":{"name":"fuzhenn"},"license":"MIT","dependencies":{},"devDependencies":{"mocha":"^5.2.0","rollup":"^0.64.1","rollup-plugin-uglify":"^4.0.0","@babel/cli":"^7.7.4","@babel/core":"^7.7.4","@babel/preset-env":"^7.7.4","@babel/register":"^7.7.4"},"_id":"frustum-intersects@0.2.3","gitHead":"669724e4ec1144f6a8301b4b5966e79ff2736876","_nodeVersion":"20.10.0","_npmVersion":"10.2.3","dist":{"integrity":"sha512-T7Wd/OeLEhck9GDzihfbKync2v2fzdOIfLPQ6r8bJub4QDL4BzFHfyFpmMXw8DAjtu+3NcNfTrVRtYdH8tH+0w==","shasum":"ca3cc75f93c8bc44b0ccd51ba526be6c91bc07c3","tarball":"http://123.232.10.234:8212/nexus/content/groups/npm-public/frustum-intersects/-/frustum-intersects-0.2.3.tgz","fileCount":5,"unpackedSize":10022,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAdKa4AYjN15tN36Ul89p+cEJywwIYVKMimtLNQZp4EQAiAxXB8jV/wBSaDaUu1TKSl1qIMWFKxVirtH7S6j+w7aug=="}]},"_npmUser":{"name":"anonymous","email":"fuzhen@maptalks.org"},"directories":{},"maintainers":[{"name":"anonymous","email":"fuzhen@maptalks.org"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/frustum-intersects_0.2.3_1706526023972_0.5316615121040351"},"_hasShrinkwrap":false,"contributors":[]},"0.2.4":{"name":"frustum-intersects","version":"0.2.4","description":"Determines if camera's frustum intersects with aabb box and sphere","main":"dist/frustum-intersects.js","module":"src/index.js","jsnext:main":"src/index.js","scripts":{"build":"rollup -c rollup.config.js","dev":"rollup -w -c rollup.config.js","test":"mocha -r @babel/register test/specs.js","tdd":"mocha -w -r @babel/register test/specs.js","prepare":"npm run build"},"repository":{"type":"git","url":"git+https://github.com/fuzhenn/frustum-intersects.git"},"bugs":{"url":"https://github.com/fuzhenn/frustum-intersects/issues"},"homepage":"https://github.com/fuzhenn/frustum-intersects","keywords":["webgl","frustum"],"author":{"name":"fuzhenn"},"license":"MIT","dependencies":{},"devDependencies":{"mocha":"^5.2.0","rollup":"^0.64.1","rollup-plugin-uglify":"^4.0.0","@babel/cli":"^7.7.4","@babel/core":"^7.7.4","@babel/preset-env":"^7.7.4","@babel/register":"^7.7.4"},"_id":"frustum-intersects@0.2.4","gitHead":"d0716e15cf883faa43cc7684daa691ce991dc050","_nodeVersion":"20.10.0","_npmVersion":"10.2.3","dist":{"integrity":"sha512-TMlFs01jIHzRkYW9jJjLUa45UFt9Yi7cv5S+4d6cGg4u1W4HNwxa4QNXhinUzQdW7y5GNRV58NkuPmzugs2BCg==","shasum":"99294dc688dbea61abca02966c67d778267a80ca","tarball":"http://123.232.10.234:8212/nexus/content/groups/npm-public/frustum-intersects/-/frustum-intersects-0.2.4.tgz","fileCount":5,"unpackedSize":10019,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGR569/5dypSULiXBys4mTefW6xPvoqtHBecYd4YAYmjAiEAtVJCAt8iYLjmNxl817tQkcbow+wH8dd20AOu6vQVTLY="}]},"_npmUser":{"name":"anonymous","email":"fuzhen@maptalks.org"},"directories":{},"maintainers":[{"name":"anonymous","email":"fuzhen@maptalks.org"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/frustum-intersects_0.2.4_1706526089488_0.021094282606942905"},"_hasShrinkwrap":false,"contributors":[]}},"dist-tags":{"latest":"0.2.4"},"name":"frustum-intersects","time":{"modified":"2024-01-29T11:02:56.438Z","created":"2022-01-27T23:45:52.067Z","0.2.0":"2020-08-17T03:10:24.060Z","0.1.0":"2018-08-11T05:47:49.377Z","0.2.1":"2022-01-25T02:31:36.321Z","0.2.2":"2022-01-25T06:02:17.975Z","0.2.3":"2024-01-29T11:00:24.132Z","0.2.4":"2024-01-29T11:01:29.632Z"},"readme":"# Frustum-Intersects\r\n\r\n[![NPM Version](https://img.shields.io/npm/v/frustum-intersects.svg)](https://github.com/fuzhenn/frustum-intersects) [![CircleCI](https://circleci.com/gh/fuzhenn/frustum-intersects.svg?style=shield)](https://circleci.com/gh/fuzhenn/frustum-intersects)\r\n\r\nA zero-dependency lib extracted from [THREE.js](https://github.com/mrdoob/three.js) to determine if camera's frustum intersects with given box or sphere.\r\n\r\n## Usage\r\n\r\n### npm\r\n```shell\r\nnpm i frustum-intersects --save\r\n```\r\n\r\n```js\r\nimport { intersectsBox, intersectsSphere } from 'frustum-intersects';\r\n\r\nconst ret = intersectsBox([\r\n            1, 0, 0, 0,\r\n            0, 1, 0, 0,\r\n            0, 0, 1, 0,\r\n            0, 0, 0, 1],\r\n           [[-1,-1,-1], [1,1,1]]);\r\n\r\nconst ret2 = intersectsSphere([\r\n            1, 0, 0, 0,\r\n            0, 1, 0, 0,\r\n            0, 0, 1, 0,\r\n            0, 0, 0, 1],\r\n           [[0, 0, 0], 1]);\r\n```\r\n\r\n### Browser\r\n```html\r\n<script src=\"https://cdn.jsdelivr.net/npm/frustum-intersects/dist/frustum-intersects.js\"></script>\r\n\r\n<script>\r\nconst ret = frustum.intersectsBox(matrix, box);\r\n</script>\r\n\r\n```\r\n\r\n## API\r\n\r\n### intersectsBox(matrix, box, mask)\r\n\r\n* `matrix` camera's 4x4 projection view matrix array, compatible with gl-matrix\r\n* `box` the aabb box, [[minx, miny, minz], [maxx, maxy, maxz]]\r\n* `mask` A 6 chars string mask (e.g. `\"111111\"`) of frustum planes, plane with mask of `0` will always return `true`\r\n\r\n### intersectsSphere(matrix, sphere, mask)\r\n\r\n* `matrix` camera's 4x4 projection view matrix array, compatible with gl-matrix\r\n* `sphere` sphere, [[centerx, centery, centerz], radius]\r\n* `mask` A 6 chars string mask (e.g. `\"111111\"`) of frustum planes, plane with mask of `0` will always return `true`\r\n\r\n>> the planes' order of mask is `{right}{left}{bottom}{top}{z-far}{z-near}`,","users":{}}