{"_id":"js-quadtree","_rev":"52-6e9662079910903415831d90590dba0c","name":"js-quadtree","dist-tags":{"latest":"3.3.6","canary":"0.0.0-fd8a676","alpha":"3.3.2-alpha.6"},"versions":{"1.0.0":{"name":"js-quadtree","version":"1.0.0","description":"quadtree-js. A simple quadtree implementation for javascript (nodejs or browser with module bundler).","main":"build/index.js","scripts":{"test":"jest test/","build":"gulp","prepublish":"yarn build"},"repository":{"type":"git","url":"git+https://github.com/CorentinTh/browser-i18n.git"},"keywords":["quadtree","qt","quadtree.js","quadtree javascript"],"author":{"name":"Corentin Th","email":"corentin.thomasset74+npm@gmail.com","url":"https://github.com/CorentinTh"},"license":"MIT","devDependencies":{"babel-core":"^6.26.3","babel-jest":"^23.2.0","babel-preset-env":"^1.7.0","babel-register":"^6.26.0","del":"^3.0.0","gulp":"^3.9.1","gulp-eslint":"^4.0.2","gulp-export":"^2.2.0","gulp-sourcemaps":"^2.6.4","jest":"^23.2.0"},"gitHead":"be0981c38ac7b50ffa06f12b60b5fd204bea27a7","bugs":{"url":"https://github.com/CorentinTh/browser-i18n/issues"},"homepage":"https://github.com/CorentinTh/browser-i18n#readme","_id":"js-quadtree@1.0.0","_npmVersion":"6.1.0","_nodeVersion":"8.11.1","_npmUser":{"name":"corentinth","email":"corentin.thomasset74+npm@gmail.com"},"dist":{"integrity":"sha512-ZhctivzcdTpVLpNWcLss/nMHQnvmr967F7mGhqGnaTAf4ENt24JcHSvMleN+7B9OzjPOBAQXx+OQbKBWIt1giA==","shasum":"1d8910860e7257b912def803bd2bd1cf74f82f6b","tarball":"https://registry.npmjs.org/js-quadtree/-/js-quadtree-1.0.0.tgz","fileCount":20,"unpackedSize":222271,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbNA1gCRA9TVsSAnZWagAAyaIP/ihLUSV/jRln/mWSaE/I\n1CTwuwXztZWElOZu2rD8QbJTDJLy6XD6QvZRMmSKotCUsDcVy6aNe8p+Dgik\n1bmqgryJqavtpbHvJJ5kolVU3FHMQK6X7FjR6qDyM9xuLX7NXqMEhoKquBvq\nIBZQauHZKBm0zgUJ03BeHg7GEL0FHm+13hYJJ9UyKY09gLsxyu2KbJz0ZGtQ\nGV4Yo5ZivUDDpy2VypAopczfiiibnccFxM0gok213T7MmgfYFbe649pqeZZP\nbb8TVa5FMa7D1/jUVHVs3pOp/kqX7Bbz6QyxMCMJnQvDACCFZPv7G5xbGK5C\nqtkJ1pa6/N5VauttkorFHBq2gCBof5EbUSEh1dZ51RpZZczCIZcKhvUyl5PH\ndn0C67PVqXGp6P0o2oMB1JXi+8fGbtE269cbvBiKn+LWxoe/PyMa7yHLFFXx\nq9fRXsQCOrXu++ZTO9QdYAAywNpNqnIXY+YnUgrai8Idlex3+xrGn5Y+dJux\ntRDooI9L8kX7v/tKz0zd2S4nl+OkVKq2sMRIcY+grNlZA7Pt8pgGhbo1oL1C\nRWRJYI423z4T8u6aoY05j96zTpmbcVKroQto+uoLAyV88NQcjddtJPQWZIBG\nSOjszawJceA7pBvXcT9BlU9UCF3Y9pKBjK35Oa68hpb30plI9MoETY0AWDX6\nfDpO\r\n=kIKa\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCVxNQV0HlsOOhp78y+lCg6S3c827oTHtWp+18vUXmLKgIgcGjUmc0IXOyjWWBHDmArdsOQlLkPmJ/c4QVXZNAWYS8="}]},"maintainers":[{"name":"corentinth","email":"corentin.thomasset74+npm@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/js-quadtree_1.0.0_1530137952041_0.6490346356987811"},"_hasShrinkwrap":false},"1.0.1":{"name":"js-quadtree","version":"1.0.1","description":"quadtree-js. A simple quadtree implementation for javascript (nodejs or browser with module bundler).","main":"build/index.js","scripts":{"test":"jest test/","build":"gulp","prepublish":"yarn build"},"repository":{"type":"git","url":"git+https://github.com/CorentinTh/quadtree-js.git"},"keywords":["quadtree","qt","quadtree.js","quadtree javascript"],"author":{"name":"Corentin Th","email":"corentin.thomasset74+npm@gmail.com","url":"https://github.com/CorentinTh"},"license":"MIT","devDependencies":{"babel-core":"^6.26.3","babel-jest":"^23.2.0","babel-preset-env":"^1.7.0","babel-register":"^6.26.0","del":"^3.0.0","gulp":"^3.9.1","gulp-eslint":"^4.0.2","gulp-export":"^2.2.0","gulp-sourcemaps":"^2.6.4","jest":"^23.2.0"},"gitHead":"542fe8d0bda31691583eae005c2875dc4693f35b","bugs":{"url":"https://github.com/CorentinTh/quadtree-js/issues"},"homepage":"https://github.com/CorentinTh/quadtree-js#readme","_id":"js-quadtree@1.0.1","_npmVersion":"6.1.0","_nodeVersion":"8.11.1","_npmUser":{"name":"corentinth","email":"corentin.thomasset74+npm@gmail.com"},"dist":{"integrity":"sha512-chNvdI8yEc1FiwrJQIpSgDWTDFzVqoAHU/UohELpkJDxdOhWZ9y/3aSFuMOtSA84twAbPmNSN3Oscy2MUyjV4g==","shasum":"107afdd8b5c985d2abfcda8dfe83820187ef03e9","tarball":"https://registry.npmjs.org/js-quadtree/-/js-quadtree-1.0.1.tgz","fileCount":20,"unpackedSize":222290,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbNA36CRA9TVsSAnZWagAAlP4QAJNdm6TKIOdeBBe1MTAd\n5OFvybYmgaV212FF1rRZwAHQY9IIcYAoIoH6k7jCsJG6Boy7vfSCGKfKiIJG\n7da9SfWMnbHc3QA5INa5BVuAs18Nkjx4kGDPJknbKyEwuYyH58l7ddykmO9u\nWDVoOf5/+d4b+cb+ctcWPpEyaZcIEg3boBeFPeE9k4xX3/kKK1ttHXpMsDON\nL0m1OfdEAQKJxkr9WXug1A+o+5jsV8iMeI0uW1MnV6D2R3rXDwE1njsH77ts\nqG/mFJcyzKjh42gZz4Nl9xx1zPCqic0IYhJvg2H4ORjyizF8Mj417AATL8Wz\njnov20DfKFyCyFQ72Lir9caoQq6xMVNGSaF+44JIRoCinm7C1Mo5JFETvQBv\nOQy579Rw46S9ALJLc+fd4LI4jo5S/6QvNzbvZ/bPF9UmHMnDRVJl8HkAQurO\nuvF+OHm90l/8QEUasLSjQt3Z1z4wVtln2FpJ6mOQm5mks2OfMbekiWE8DzoZ\ntJAxpiEFPtLZqGnG+ntbBLfcBLYiXmabN9DPGkAMhlZjQ/Z89HxWroCQiMc/\nLllqiziyQt8XSyyat9A7AWW7zLd3/18gd11xPMqXqlGSoEP/6ZvwXXz5zI80\nn3nr3xOypsdPcuYgA4B/GlyoypADhFNIut7ZujG0Tc+LFdLx2rzysejR7P55\nXZnJ\r\n=tvd8\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDKq5qBgyTj/QlEGV9AqXTS4UhRw9Y99WuUv06NHAhnGgIgDgS74Z/bAIJNHD6qMjApRyMdho3f+dBDw64RGzuYqoc="}]},"maintainers":[{"name":"corentinth","email":"corentin.thomasset74+npm@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/js-quadtree_1.0.1_1530138106264_0.13863058574806963"},"_hasShrinkwrap":false},"1.0.2":{"name":"js-quadtree","version":"1.0.2","description":"quadtree-js. A simple quadtree implementation for javascript (nodejs or browser with module bundler).","main":"build/index.js","scripts":{"test":"jest test/","build":"gulp","prepublish":"yarn build"},"repository":{"type":"git","url":"git+https://github.com/CorentinTh/quadtree-js.git"},"keywords":["quadtree","qt","quadtree.js","quadtree javascript"],"author":{"name":"Corentin Th","email":"corentin.thomasset74+npm@gmail.com","url":"https://github.com/CorentinTh"},"license":"MIT","devDependencies":{"babel-core":"^6.26.3","babel-jest":"^23.2.0","babel-preset-env":"^1.7.0","babel-register":"^6.26.0","del":"^3.0.0","gulp":"^3.9.1","gulp-eslint":"^4.0.2","gulp-export":"^2.2.0","gulp-sourcemaps":"^2.6.4","jest":"^23.2.0"},"gitHead":"e8cbdb01868318010bf2bd635fc85b8e34cf8e95","bugs":{"url":"https://github.com/CorentinTh/quadtree-js/issues"},"homepage":"https://github.com/CorentinTh/quadtree-js#readme","_id":"js-quadtree@1.0.2","_npmVersion":"6.1.0","_nodeVersion":"8.11.1","_npmUser":{"name":"corentinth","email":"corentin.thomasset74+npm@gmail.com"},"dist":{"integrity":"sha512-hgVo3vnXCveptk0xJx1VnHHioFVF4/BoYm6MgzFhmG0mhohDrkHIzI7hwgzFa7QkbMQWEwDUs5Ht2bqXmYSn9g==","shasum":"7eb3e1719cb8ac92f8fda53c5b2b51a292f2ccb8","tarball":"https://registry.npmjs.org/js-quadtree/-/js-quadtree-1.0.2.tgz","fileCount":20,"unpackedSize":222912,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbNMQVCRA9TVsSAnZWagAAIYEP/jru1mRFIGifaEbf1h9V\n7SdLEn8MknJ12rTkkUJWHuZ5WMqEiEj2t58jgiA7VBOWr+nBkPQi0qtDklWW\nCaO+puekOmBQXr/yTNJaAlSkyc+EdVAxWWQrIozj5uroHUUWXH/BKD8aXAfh\nbru+98rKMzpNxQIoc4oZSAsYa8/0jgpNiv1l5G3JizCCVb8f3TnypbMEz75+\nEW7mglE/Dol1ubktS58QkLbh0WySUYoZmlmuU0xHj3PoahDifXCapr5Y3C/2\nZkrTIujICHuDoZ6OON4dUkgFWqoGdVlRHrfbPC9IRGFJoSRRaMf3TEMpIA1y\n6gW7A2B3ofmdGrpXrp94zpHX8uLJLSShpgeLh3qKOqWYV6z8saPNARfKFaob\nKMr3hjgmBdrPlL4Kpy82j+aAXo6xcEjhbdERXAitXXTXFAKiynjCSYsP+xss\n/hVODEQ2q7nWrsny8JbXJI/zlatL+0TA1/K5TF3GTgormqgej0o35CEAp1ov\nWW55BGuCQa+UVtKLcstTBJm9miPytTzWSP0fdDF9sRgun6shjdGA2m+AUCtU\nuIx03Ux5M6NlabSFZMyrOoRLMaDmsGf/uUZuxuNv34x4VBc0ufx2LGEyskaH\nhtGpKA7XRTE7QQ6DK/junxCYyVCZln7uUyEKJqAdn1XAWYuC/+Pcr0Gt16j8\ngXRk\r\n=f28n\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBipWEQ/JAGtam2rZDOUe9z34C1cEHNsJDJnI16FblsmAiBRbR+KjI2NE1iMNMcix333A+h9iKmcjvE8m/2iWnfUpg=="}]},"maintainers":[{"name":"corentinth","email":"corentin.thomasset74+npm@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/js-quadtree_1.0.2_1530184725187_0.4377940475076625"},"_hasShrinkwrap":false},"1.1.0":{"name":"js-quadtree","version":"1.1.0","description":"quadtree-js. A simple quadtree implementation for javascript (nodejs or browser with module bundler).","main":"build/index.js","scripts":{"test":"jest test/","build":"gulp","prepublish":"yarn build"},"repository":{"type":"git","url":"git+https://github.com/CorentinTh/quadtree-js.git"},"keywords":["quadtree","qt","quadtree.js","quadtree javascript"],"author":{"name":"Corentin Th","email":"corentin.thomasset74+npm@gmail.com","url":"https://github.com/CorentinTh"},"license":"MIT","devDependencies":{"babel-jest":"^23.2.0","babel-preset-env":"^1.7.0","babel-register":"^6.26.0","del":"^3.0.0","gulp":"^3.9.1","gulp-concat":"^2.6.1","gulp-eslint":"^4.0.2","gulp-insert":"^0.5.0","gulp-sourcemaps":"^2.6.4","jest":"^23.2.0"},"dependencies":{},"gitHead":"5bb96792bf0f04acd0198a43358fb54a2a79b6a5","bugs":{"url":"https://github.com/CorentinTh/quadtree-js/issues"},"homepage":"https://github.com/CorentinTh/quadtree-js#readme","_id":"js-quadtree@1.1.0","_npmVersion":"6.1.0","_nodeVersion":"8.11.1","_npmUser":{"name":"corentinth","email":"corentin.thomasset74+npm@gmail.com"},"dist":{"integrity":"sha512-oykBWNEzv5hV1D8noC1qlocIiGf7vNBSuqPKbM959c1Bn42ZaFRBKKshKUPqq4DICswb++auZBd+hYN7IPZbGA==","shasum":"8ead4cedd0ef0c54d3c3cd9b9580919c935e098d","tarball":"https://registry.npmjs.org/js-quadtree/-/js-quadtree-1.1.0.tgz","fileCount":16,"unpackedSize":229967,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbQPgSCRA9TVsSAnZWagAAwrcP/jvOOQmnGReU5EwMf2YS\nUg57qbrMG6R25ndGnPXBmMgPOjzUL9n0749m9nuT5pqSsfRhAUGMBX4nkBf/\nLScShuFkPhIAqXJjOLm9uJOQlLXjlc9vvElDxRdj3n4GGuqC6vD/Hd4joR5I\n4J/xNO87WLNDOt7QCYZUNwp3AkfZbxWNtl+b1LqD2e/gas8sP1Zs41yNXFFU\nEVsGIRzjMNLuK5Wz44IVTtTDEiTBV6n7qljJFAvDRsavud8kWrPoRoHOeEi9\nHgWTzy9stvQkKtidfdtIPSbKgVYOiNNgkqgI8UiRYwSM9rJRWwA6EltdnfWo\nQXoyR6g+5ImECfIaJUd49NLhkIvZW0C7PRcAgyTAkLp2+Ycg+riVJkByuFae\nYtSLsRb/a8AZSoLl7RCN2GZS3/5Vh0KVzcxr9c2wYNc+7QIURvB8HQf6MXEO\nhYZKFShCz+pXX43g2qK2cn7NmzbMnIz7I7ENqP1bDY2mNSLMvql9mUuHXyVY\nuniBGPSIEbIZy75H5UDEfEGhKKZQCNyfMBgy4Krf8kYAnjEzfdkOpXwF4nZF\nVM0ikAEfAkdT0APKaCd82mtq3Jrka/jkIKrnp7yxOpbe+/iShQ9eonQqu0S6\nJUs6FoEcocXLNrhhN3D6wu4SUilJVkaNBlsDvLaECnmHQCb1l1kQgMAN3FkW\nZtlp\r\n=sKTI\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCfJPzpccrv9uSG2RX+4L7gq1zFm1gaeV1tVuUGfKOrZgIhAPp3k8G3SlT8Og50IuPHf+rrJ/N28x7UCPzywPy3nhA6"}]},"maintainers":[{"name":"corentinth","email":"corentin.thomasset74+npm@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/js-quadtree_1.1.0_1530984466630_0.9475370069523048"},"_hasShrinkwrap":false},"1.2.0":{"name":"js-quadtree","version":"1.2.0","description":"quadtree-js. A simple quadtree implementation for javascript (nodejs or browser with module bundler).","main":"build/index.js","scripts":{"test":"jest test/","build":"gulp","prepublish":"yarn build"},"repository":{"type":"git","url":"git+https://github.com/CorentinTh/quadtree-js.git"},"keywords":["quadtree","qt","quadtree.js","quadtree javascript"],"author":{"name":"Corentin Th","email":"corentin.thomasset74+npm@gmail.com","url":"https://github.com/CorentinTh"},"license":"MIT","devDependencies":{"babel-jest":"^23.2.0","babel-preset-env":"^1.7.0","babel-register":"^6.26.0","del":"^3.0.0","gulp":"^3.9.1","gulp-concat":"^2.6.1","gulp-eslint":"^4.0.2","gulp-insert":"^0.5.0","gulp-sourcemaps":"^2.6.4","jest":"^23.2.0"},"dependencies":{},"gitHead":"48e8270626b99b51953ee1a7b0a821fc120008ed","bugs":{"url":"https://github.com/CorentinTh/quadtree-js/issues"},"homepage":"https://github.com/CorentinTh/quadtree-js#readme","_id":"js-quadtree@1.2.0","_npmVersion":"6.1.0","_nodeVersion":"8.11.1","_npmUser":{"name":"corentinth","email":"corentin.thomasset74+npm@gmail.com"},"dist":{"integrity":"sha512-sKDwXGm+uzpCS2tHaT3MUFq68U8cgKCxA8rVxB7KUR1if4C81dn6c/UVH323WdEXaWr/Jjyn7+uj1nin84FRfA==","shasum":"e6eabf204a25e09bf5cee8659b571bdc20cf6000","tarball":"https://registry.npmjs.org/js-quadtree/-/js-quadtree-1.2.0.tgz","fileCount":16,"unpackedSize":232550,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbRI48CRA9TVsSAnZWagAAmfIP/23a0H9kWaXh5c0kn/U1\nWeC+V+DNqfUqPoBB3P2rCuXywsg8PC5wqZhLqNHmTGYst5tWhCYLAoVR9kg+\nKdaGO/PxGF78TjYplSEyLb9TMjzX7YOrI7GZs5o1sjWMaW/u5umekKHDbvkW\nPQ+wGsw09aNq6q0xPJEmSgxQQ/aMfBvR8zFTaKlbdyBSlYhi1ZY4zzZheI+F\nFz3UyCW5FEapx5qZScFUlIMJBkiyxtzSQk4WJISjHcpAr2n1nxAxumy0I7GK\nTSFEN1GyC/qvBtgN+foTdhtbc6D31prMitOLNayjGod6/yyRIS+3z+WFToc8\ntAIh2eWNACdKM3ZJEciqOpz6SKw0Kl9jb8udA0k8iMIYz7AyzQPbquAjJO7i\nVziWbiPqBiNilf0lN7bSZ2XNVIZM90RJgZLVUjX3D40i9M4+23uCL7sPHzzZ\nDWgJAh/sMFAfRgKncxZdXDeRvVqcVSxBRR9omUpfHwxqAC9tofTO3zFpdKub\n2DFxvTibP37Dr4iugwu207vw+DjNjcjdVJEENcJ2HzYhcWHpoyTbLJln0pAd\nAT9dus7JBIGS0FTegQ7vwhkkiZK+5jbWQr7zBEkCgvei8irXP8A6hyVV/tiT\nX6etoLVBbgleAAuGQdga7sJbRjtb00bM/WUQEdUb7BXhxUGj6rE70wLAAfKn\nxNom\r\n=mSjd\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGUIwAL/Jbdx0I0lnZ4PZwV8dCwTqo7QS/agurizEmt6AiBiZBy3jNdqoViV4ALfqn99aU2rKVzGRfuAGencXdzWbw=="}]},"maintainers":[{"name":"corentinth","email":"corentin.thomasset74+npm@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/js-quadtree_1.2.0_1531219516372_0.5113747688248098"},"_hasShrinkwrap":false},"2.0.0":{"name":"js-quadtree","version":"2.0.0","description":"A simple quadtree implementation for javascript (nodejs or browser with module bundler).","main":"index.js","scripts":{"lint":"eslint ./src/ ./test/","test":"jest test/","coveralls":"jest ./test/ --coverage --collectCoverageFrom=src/*.js --coverageReporters=text-lcov | coveralls"},"repository":{"type":"git","url":"git+https://github.com/CorentinTh/quadtree-js.git"},"keywords":["quadtree","qt","quadtree.js","quadtree javascript"],"author":{"name":"Corentin Th","email":"corentin.thomasset74+npm@gmail.com","url":"https://github.com/CorentinTh"},"license":"MIT","devDependencies":{"coveralls":"^3.0.3","eslint":"^5.16.0","jest":"^23.2.0"},"dependencies":{},"gitHead":"57b2e0f6042c0004811749c62f5cdc7fe9c3e6f7","bugs":{"url":"https://github.com/CorentinTh/quadtree-js/issues"},"homepage":"https://github.com/CorentinTh/quadtree-js#readme","_id":"js-quadtree@2.0.0","_npmVersion":"6.4.1","_nodeVersion":"10.15.3","_npmUser":{"name":"corentinth","email":"corentin.thomasset74+npm@gmail.com"},"dist":{"integrity":"sha512-YhQ6kBFC9DNWkvF1AHrgLb9lyBf8nvMeRT3q6t9vzTnPcjAiCds3aK/zhsyAJAvti2X8h2qy6ysZAt/PjHQGgw==","shasum":"6f7170956c18ec8862db9a79143a1488beab4fdd","tarball":"https://registry.npmjs.org/js-quadtree/-/js-quadtree-2.0.0.tgz","fileCount":10,"unpackedSize":184509,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcuIB5CRA9TVsSAnZWagAA+iIQAJdnBbDVgDe3ORml+M0Z\nm/QPxUMkomQsFIXTld8DDuBanoag9VAFW0o5H8IcU+s+p8AacdybVHvubRHe\nVLHGfIxqwRHwmlwTA6sQxg8DYG6ucez2nKm4iXkLLuXAFNTTxL+vpfDIMuii\nmqrF9mm54UTdRkdTcnu4P00oElZKfGGiBivYILoS4f6OTCTfJUX8CL08qafa\nh6k1nPDHBZKleZtrdANfdL6n1YavxGGSDDz4u2240enHj2DAcmppKBaRNkil\nFrumGcMji4IgG0rdAYOrk0WLreg+g0w+Kjhss6sm3rPD2SJrck9ubSxn5FTx\nC3ZFAcsc02LbnjepTTWKRrJUKNvkj+96lbRi+RjnuLEu8OrmYe3XYQjg+HqK\nt2CdRw87gvvvKAZ+bsQ+Q9fD9vNLefu6j+YNeuwRBdJYCSnfl9snJ932echG\nIjPIymUExy2RXjzP4U7iKdQoFsUNpHjFjPKdfzRssszasREn12V5UNPQE1SH\nTRepDCHI1GT08byOpUL1ImCLq0PneD1zzR/A7gZyXPfQlHFYq5kuoqG64GQE\n5f9sSK5Jep8FcEIZ5/mBDstnpd2MNZkRT9vJAqQjkvaKki5Lth+MQTcmMzqz\n6ziPnFC6aQFbpL/40PXlrwFWenLwc+fMMd3tw8bALv784rljHj2RE6yKod9m\nz0MS\r\n=PnYy\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAYFx1Yxw1znHuk9sYxsml4xc7SQCifs8hOTvwlxt8meAiB+gBpm6IopEvUbZ8S35VT5wSxFadYsRT+YG57P5kmR/Q=="}]},"maintainers":[{"name":"corentinth","email":"corentin.thomasset74+npm@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/js-quadtree_2.0.0_1555595384821_0.7945831264147405"},"_hasShrinkwrap":false},"2.0.1":{"name":"js-quadtree","version":"2.0.1","description":"A simple quadtree implementation for javascript (nodejs or browser with module bundler).","main":"index.js","scripts":{"lint":"eslint ./src/ ./test/","test":"jest test/","coveralls":"jest ./test/ --coverage --collectCoverageFrom=src/*.js --coverageReporters=text-lcov | coveralls"},"repository":{"type":"git","url":"git+https://github.com/CorentinTh/quadtree-js.git"},"keywords":["quadtree","qt","quadtree.js","quadtree javascript"],"author":{"name":"Corentin Th","email":"corentin.thomasset74+npm@gmail.com","url":"https://github.com/CorentinTh"},"license":"MIT","devDependencies":{"coveralls":"^3.0.3","eslint":"^5.16.0","jest":"^23.2.0"},"dependencies":{},"gitHead":"b938c4836adf22f622e75e465ea7bbf19f26c2a4","bugs":{"url":"https://github.com/CorentinTh/quadtree-js/issues"},"homepage":"https://github.com/CorentinTh/quadtree-js#readme","_id":"js-quadtree@2.0.1","_npmVersion":"6.4.1","_nodeVersion":"10.15.3","_npmUser":{"name":"corentinth","email":"corentin.thomasset74+npm@gmail.com"},"dist":{"integrity":"sha512-zGfp6fKLtc5dVgS+D6zXiPHSfH2ZGbA5TtwV3woWFJQXEriSd1koiXltoz0t12HuAPpc9ZnLrCCotQttRTecDA==","shasum":"f4fc7d4bb58ec06c064f2b598cb2595b2cadf42d","tarball":"https://registry.npmjs.org/js-quadtree/-/js-quadtree-2.0.1.tgz","fileCount":10,"unpackedSize":184491,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcuJN0CRA9TVsSAnZWagAANyMP/30gBdE+5D0odNR6yzcS\nPBc2Nu+f8Rlh0fdoG1maaeRYzPP8diGffMzYb2pBdjIcd9q1Lsam7hyuf+bx\nZti2e41LpZPOSGczeMpSV2R+YnoS5yes2PsNIWstR/wkKnx1P7qtKFgdzZ9Y\n3vIz8zExNTqqKAqESPWKIfUsh2xDldoGTltMuj2IVjaiBUeIu8dMh50YCbZp\nhx0yV6lEnzndWy9RRhpI0rUFbUdO5RUHqhfZ6RISpp+BuAvPlvoSXEcwLZfP\nVjtAXhI5xtLhJz2REODWkaBf4+A54TKS5yAqr+66lmOpxUbe7o/5+XZhpD2d\nke63tD1TWt/YUVZYRn7J4V8vJe7zvbw+A8LjeZf0YlfpGuvUW8IGL8YBxZav\nTPPDt+ndv7voRck0hVmd79kZSRT58A8OX3rxkpcQg0S443ZPyEWQnN/pl00P\nvPVY3hw2UmLSfEiO1RXFMtEpzW9/V18IbNdUPiZgwiicpbXxhe7Yja1/FLBw\nRoT7t6a1NX9S+/CUkXvANRxc/JIMvpcZM3JsI4XfRvBIHk+4+cdgxuqVWlNG\nJD00e2/CDwb8Qu386lAx1m1yjzCgOd4OffrmsQ82pRtgk149Y54UDsoIFj+C\nyakcak/hWbK6qpx2Xg6KtAS0hBSO3D13OLsznW1Ou8Lvzm5WExB5v3mF6VbN\nAgkW\r\n=Egl6\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEiFwwlsp2FXpM7W46Ss2kDsttxTiUx0YHEPyjjVKYMlAiEArKW7lmXzIjCHOya4ZjIhUdZlSTKkl4S0Zq9CuG71Yco="}]},"maintainers":[{"name":"corentinth","email":"corentin.thomasset74+npm@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/js-quadtree_2.0.1_1555600244128_0.2818134416427156"},"_hasShrinkwrap":false},"0.0.0-fd7b0f3":{"name":"js-quadtree","version":"0.0.0-fd7b0f3","description":"A simple quadtree implementation for javascript (nodejs or browser with module bundler).","main":"dist/index.js","module":"dist/index.es.js","browser":"dist/index.js","scripts":{"build":"rollup -c","lint":"eslint ./src/**","test":"jest","prepare":"npm run build"},"repository":{"type":"git","url":"git+https://github.com/CorentinTh/quadtree-js.git"},"keywords":["quadtree","qt","quadtree.js","quadtree javascript"],"author":{"name":"Corentin Th","email":"corentin.thomasset74+npm@gmail.com","url":"https://github.com/CorentinTh"},"license":"MIT","devDependencies":{"@rollup/plugin-typescript":"^4.0.0","@types/jest":"^25.1.4","@typescript-eslint/eslint-plugin":"^2.22.0","@typescript-eslint/parser":"^2.22.0","eslint":"^6.8.0","jest":"^25.1.0","rollup":"^2.0.2","rollup-plugin-terser":"^5.2.0","rollup-plugin-typescript2":"^0.26.0","ts-jest":"^25.2.1","typescript":"^3.8.3"},"dependencies":{},"gitHead":"40ecb90c0cee822362008bc9b5213749ac73e719","readme":"\n<p align=\"center\">\n    <img src=\".github/logo.png\" alt=\"logo\">\n</p>\n\n\n<p align=\"center\">\n    <a href=\"https://www.npmjs.com/package/js-quadtree\"><img src=\"https://img.shields.io/npm/dw/js-quadtree.svg\" alt=\"Weekly Downloads\" /></a>\n    <a href=\"https://travis-ci.com/CorentinTh/quadtree-js\"><img src=\"https://travis-ci.com/CorentinTh/quadtree-js.svg?branch=master\" alt=\"Build Status\" /></a>\n    <a href='https://coveralls.io/github/CorentinTh/quadtree-js?branch=master'><img src='https://coveralls.io/repos/github/CorentinTh/quadtree-js/badge.svg?branch=master' alt='Coverage Status' /></a>\n    <a href=\"https://www.npmjs.com/package/js-quadtree\"><img src=\"https://img.shields.io/bundlephobia/minzip/js-quadtree.svg\" alt=\"npm bundle size\" /></a>\n    <a href=\"https://www.npmjs.com/package/js-quadtree\"><img src=\"https://img.shields.io/github/package-json/v/CorentinTh/quadtree-js.svg\" alt=\"GitHub package.json version\" /></a>\n    <a href='LICENCE'><img src=\"https://img.shields.io/github/license/CorentinTh/quadtree-js.svg\" alt=\"Licence Badge\" /></a>\n</p>\n\n\n\nA powerful quadtree implementation in javascript. It can be used for nodejs or directly in the browser.\n\n## Installation\n\n**Quadtree-js** can be installed using yarn or npm.\n\n```bash\nnpm install js-quadtree\n# or\nyarn add js-quadtree\n```\n\nAnd import :\n\n```javascript\nconst {QuadTree, Box, Point, Circle} = require('js-quadtree');\n\nconst quadtree = new QuadTree(new Box(0, 0, 1000, 1000));\n\nquadtree.insert(new Point(100, 200, {custom: 'data'}));\n\nconst results = quadtree.query(new Circle(150, 150, 100));\n```\n\n## Usage\n### Creation\n```javascript\n// Create the bounding area of the quadtree\nconst boundingArea = new Box(0, 0, 1000, 1000);\n\n// Instantiate  the new quadtree\nconst quadtree = new QuadTree(boundingArea);\n```\n\nYou can also specify the following optional parameters:\n```javascript\n// Create the bounding area of the quadtree\nconst boundingArea = new Box(0, 0, 1000, 1000);\n\nconst config = {\n    capacity: 10,           // Specify the maximum amount of point per node (default: 4)\n    removeEmptyNodes : true // Specify if the quadtree has to remove subnodes if they are empty (default: false).\n};\n\n// An array of point to insert directly (same as quadtree.insert(points) )\nconst points = [new Point(10, 10), new Point(52, 64)];\n\nconst quadtree = new QuadTree(boundingArea, config, points);\n```\n\n### Insert\n\nYou can insert a **Point** element, an array of **Point** element, your **own element** as long as it has an **x** and a **y** property or an array of custom element.\n\n```javascript\nconst point = new Point(10, 25);\n\nconst pointArray = [\n    new Point(45, 22),\n    new Point(30, 60),\n    new Point(14, 12)\n];\n\nconst customPoint = {\n    x: 94,\n    y: 23,\n    customField:{}\n};\n\nquadtree.insert(point);\nquadtree.insert(pointArray);\nquadtree.insert(customPoint);\n```\n\nYou can add your data in a **Point** element:\n```javascript\nconst myData = {\n    foo: 'bar'\n};\n\nconst point = new Point(50, 50, myData);\n\nconsole.log(point.data.foo); // 'bar'\n```\n\n### Remove\n\nAs the **insert** method, you can remove a **Point** element, an array of **Point** element, your **own element** as long as it has an **x** and a **y** property or an array of custom element.\n\n```javascript\nconst point = new Point(10, 25);\n\nconst pointArray = [\n    new Point(45, 22),\n    new Point(30, 60),\n    new Point(14, 12)\n];\n\nconst customPoint = {\n    x: 94,\n    y: 23\n};\n\nquadtree.remove(point);\nquadtree.remove(pointArray);\nquadtree.remove(customPoint);\n```\n\n**Note**: it doesn't have to be the same object, the test is done with the coordinates.\n\n### Query\n\nUse the **query** method to get all the point within a range.\n\n\n```javascript\n// This will return all the points in the given Box\nconst points = quadtree.query(new Box(10, 10, 100, 100));\n```\n\n```javascript\n// This will return all the points in the given Circle\nconst points = quadtree.query(new Circle(10, 10, 100));\n```\n\nYou can use a **Box** or a **Circle** as a range or even your own range element as long as it has the following methods:\n* **contains**: return true if a point is within this range, false otherwise.\n* **intersects**: return true if a **Box** intersects with this range, false otherwise.\nSee [the Box definition](src/Box.js) for a good example.\n\n### Get all the point\n\nIf want to retrieve all the point, you can use this method:\n\n```javascript\nconst points = quadtree.getAllPoints();\n```\n\n**Note**: you may want to store your points in a side array since, it have to look trough all the child nodes.\n\n### Get Tree\n\nYou can get the amount of points by nodes with the `getTree()` method.\n\n```javascript\nconst qt = new QuadTree(new Box(0, 0, 10, 10));\n\nqt.insert(new Point(5, 5));\nqt.insert(new Point(6, 5));\nqt.insert(new Point(4, 5));\nqt.insert(new Point(3, 5));\nqt.insert(new Point(2, 5));\nqt.insert(new Point(1, 5));\n\nconsole.log(qt.getTree());\n\n// {\n//     ne: 2, \n//     nw: {\n//         ne: 0, \n//         nw: 0, \n//         se: 3, \n//         sw: 2\n//     }, \n//     se: 2,\n//     sw: 3\n// }\n```\n\n### Clear\n\nUse this method to clear the quadtree. It remove all the points and sub-nodes.\n\n```javascript\nquadtree.clear();\n```\n\n## License\n\nThis project is under the [MIT license](LICENSE).\n","readmeFilename":"README.md","bugs":{"url":"https://github.com/CorentinTh/quadtree-js/issues"},"homepage":"https://github.com/CorentinTh/quadtree-js#readme","_id":"js-quadtree@0.0.0-fd7b0f3","_nodeVersion":"10.19.0","_npmVersion":"6.13.4","dist":{"integrity":"sha512-dLvCrQOuS+qDRLhV6XfhdIprhpA2AZhqYaJ865DUuyQq/fFbq9xfdigH6eHStxNvdkdM1XlGXcu+2dyjHa+afg==","shasum":"7edf47d954bbc8efde10a49070178aeec35cc5d7","tarball":"https://registry.npmjs.org/js-quadtree/-/js-quadtree-0.0.0-fd7b0f3.tgz","fileCount":20,"unpackedSize":63336,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeZVP2CRA9TVsSAnZWagAAIkwQAIH7a32wgAZXWPbg6iA1\nh0xAlXUDknDicgJxuPzNZyH769uFApnJASOdpW1M4vHMZ7KEJQhFEsvvnPQw\na0M/nw+48zmLL/wh/84T3hKobcrBn96tJiilLI0hvCgRWqONbis7Z3DMQx9Y\nXpr3f2ss2sFzOkOoLAZ/nmjCd4wrhKi42jJSJZV4RMyi5wq8vWztMIbv/KAR\n+92YQlWuJz8q/8Q9m5mzTOW+J62+Z6kUOVPgkEW6DcJfbnPfUeOsxW5wKN3/\nVSSmQ1BEQSQ804br47Na3ONpmQa9kOjbyApKVA+CAVUFhnkeHZ/DKsJnzTqQ\ndkVF3gGOAu/uw5bb72dXo3CJRZS9QIUJh/C8UNy9+ZabytCEwA494AT1RQBK\n8zqnw8I6uDAcJGV0x5qogh7rjB0UQL8EE/fzx6d/STfP0KTLGH5Mh6V9yOF3\nfcLqDax2dHYcN42ggEFI0xGiiiLJhDR66rWg5U4LyPeekgI3oGuzbAUs9SnJ\nuPTrpDfGZ9xcVEpPe9xzBcg1tKvC9Kn6h77S67pnq8cRMIhrBV7abVlUu0+M\nqWZfJsjzLPI839bT7aMKIZgbM2kV2evFgglde+2hcjYQAPl8ofGogL67D5of\n44qv/rvgJvjzNyZRWK9MOVy27rORgm4vlYX7W+nC3W5FwOOjYEg8cH6PnrxE\nVKrr\r\n=Jrki\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGQ6Qo8XWLMSpXFAA8EqwJ0exojn5OgsU9JCBZmsHyLHAiEApWGiGNms+19RcN2VnK88U/F1tK+CS8kOVZZS4THuQHA="}]},"maintainers":[{"name":"corentinth","email":"corentin.thomasset74+npm@gmail.com"}],"_npmUser":{"name":"corentinth","email":"corentin.thomasset74+npm@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/js-quadtree_0.0.0-fd7b0f3_1583698933704_0.2174416854708665"},"_hasShrinkwrap":false},"0.0.0-24a9882":{"name":"js-quadtree","version":"0.0.0-24a9882","description":"A simple quadtree implementation for javascript (nodejs or browser with module bundler).","main":"dist/index.js","module":"dist/index.es.js","browser":"dist/index.js","scripts":{"build":"rollup -c","lint":"eslint ./src/**","test":"jest","prepare":"npm run build"},"repository":{"type":"git","url":"git+https://github.com/CorentinTh/quadtree-js.git"},"keywords":["quadtree","qt","quadtree.js","quadtree javascript"],"author":{"name":"Corentin Th","email":"corentin.thomasset74+npm@gmail.com","url":"https://github.com/CorentinTh"},"license":"MIT","devDependencies":{"@rollup/plugin-typescript":"^4.0.0","@types/jest":"^25.1.4","@typescript-eslint/eslint-plugin":"^2.22.0","@typescript-eslint/parser":"^2.22.0","eslint":"^6.8.0","jest":"^25.1.0","rollup":"^2.0.2","rollup-plugin-terser":"^5.2.0","rollup-plugin-typescript2":"^0.26.0","ts-jest":"^25.2.1","typescript":"^3.8.3"},"dependencies":{},"gitHead":"71afee5a876e82d3b9368a48d1464fa63942a507","readme":"\n<p align=\"center\">\n    <img src=\".github/logo.png\" alt=\"logo\">\n</p>\n\n\n<p align=\"center\">\n    <a href=\"https://www.npmjs.com/package/js-quadtree\"><img src=\"https://img.shields.io/npm/dw/js-quadtree.svg\" alt=\"Weekly Downloads\" /></a>\n    <a href=\"https://github.com/CorentinTh/quadtree-js/actions?query=workflow%3A%22Node+CI%22\"><img alt=\"GitHub Workflow Status\" src=\"https://img.shields.io/github/workflow/status/CorentinTh/quadtree-js/Node CI\"></a>\n    <a href='https://codecov.io/gh/CorentinTh/quadtree-js'><img src='https://codecov.io/gh/CorentinTh/quadtree-js/branch/master/graph/badge.svg\"' alt='Coverage Status' /></a>\n    <a href=\"https://www.npmjs.com/package/js-quadtree\"><img src=\"https://img.shields.io/bundlephobia/minzip/js-quadtree.svg\" alt=\"npm bundle size\" /></a>\n    <a href=\"https://www.npmjs.com/package/js-quadtree\"><img src=\"https://img.shields.io/github/package-json/v/CorentinTh/quadtree-js.svg\" alt=\"GitHub package.json version\" /></a>\n    <a href='LICENCE'><img src=\"https://img.shields.io/github/license/CorentinTh/quadtree-js.svg\" alt=\"Licence Badge\" /></a>\n</p>\n\n\n\nA powerful quadtree implementation in javascript. It can be used for nodejs or directly in the browser.\n\n## Installation\n\n**Quadtree-js** can be installed using yarn or npm.\n\n```bash\nnpm install js-quadtree\n# or\nyarn add js-quadtree\n```\n\nAnd import :\n\n```javascript\nconst {QuadTree, Box, Point, Circle} = require('js-quadtree');\n\nconst quadtree = new QuadTree(new Box(0, 0, 1000, 1000));\n\nquadtree.insert(new Point(100, 200, {custom: 'data'}));\n\nconst results = quadtree.query(new Circle(150, 150, 100));\n```\n\n## Usage\n### Creation\n```javascript\n// Create the bounding area of the quadtree\nconst boundingArea = new Box(0, 0, 1000, 1000);\n\n// Instantiate  the new quadtree\nconst quadtree = new QuadTree(boundingArea);\n```\n\nYou can also specify the following optional parameters:\n```javascript\n// Create the bounding area of the quadtree\nconst boundingArea = new Box(0, 0, 1000, 1000);\n\nconst config = {\n    capacity: 10,           // Specify the maximum amount of point per node (default: 4)\n    removeEmptyNodes : true // Specify if the quadtree has to remove subnodes if they are empty (default: false).\n};\n\n// An array of point to insert directly (same as quadtree.insert(points) )\nconst points = [new Point(10, 10), new Point(52, 64)];\n\nconst quadtree = new QuadTree(boundingArea, config, points);\n```\n\n### Insert\n\nYou can insert a **Point** element, an array of **Point** element, your **own element** as long as it has an **x** and a **y** property or an array of custom element.\n\n```javascript\nconst point = new Point(10, 25);\n\nconst pointArray = [\n    new Point(45, 22),\n    new Point(30, 60),\n    new Point(14, 12)\n];\n\nconst customPoint = {\n    x: 94,\n    y: 23,\n    customField:{}\n};\n\nquadtree.insert(point);\nquadtree.insert(pointArray);\nquadtree.insert(customPoint);\n```\n\nYou can add your data in a **Point** element:\n```javascript\nconst myData = {\n    foo: 'bar'\n};\n\nconst point = new Point(50, 50, myData);\n\nconsole.log(point.data.foo); // 'bar'\n```\n\n### Remove\n\nAs the **insert** method, you can remove a **Point** element, an array of **Point** element, your **own element** as long as it has an **x** and a **y** property or an array of custom element.\n\n```javascript\nconst point = new Point(10, 25);\n\nconst pointArray = [\n    new Point(45, 22),\n    new Point(30, 60),\n    new Point(14, 12)\n];\n\nconst customPoint = {\n    x: 94,\n    y: 23\n};\n\nquadtree.remove(point);\nquadtree.remove(pointArray);\nquadtree.remove(customPoint);\n```\n\n**Note**: it doesn't have to be the same object, the test is done with the coordinates.\n\n### Query\n\nUse the **query** method to get all the point within a range.\n\n\n```javascript\n// This will return all the points in the given Box\nconst points = quadtree.query(new Box(10, 10, 100, 100));\n```\n\n```javascript\n// This will return all the points in the given Circle\nconst points = quadtree.query(new Circle(10, 10, 100));\n```\n\nYou can use a **Box** or a **Circle** as a range or even your own range element as long as it has the following methods:\n* **contains**: return true if a point is within this range, false otherwise.\n* **intersects**: return true if a **Box** intersects with this range, false otherwise.\nSee [the Box definition](src/Box.js) for a good example.\n\n### Get all the point\n\nIf want to retrieve all the point, you can use this method:\n\n```javascript\nconst points = quadtree.getAllPoints();\n```\n\n**Note**: you may want to store your points in a side array since, it have to look trough all the child nodes.\n\n### Get Tree\n\nYou can get the amount of points by nodes with the `getTree()` method.\n\n```javascript\nconst qt = new QuadTree(new Box(0, 0, 10, 10));\n\nqt.insert(new Point(5, 5));\nqt.insert(new Point(6, 5));\nqt.insert(new Point(4, 5));\nqt.insert(new Point(3, 5));\nqt.insert(new Point(2, 5));\nqt.insert(new Point(1, 5));\n\nconsole.log(qt.getTree());\n\n// {\n//     ne: 2, \n//     nw: {\n//         ne: 0, \n//         nw: 0, \n//         se: 3, \n//         sw: 2\n//     }, \n//     se: 2,\n//     sw: 3\n// }\n```\n\n### Clear\n\nUse this method to clear the quadtree. It remove all the points and sub-nodes.\n\n```javascript\nquadtree.clear();\n```\n\n## License\n\nThis project is under the [MIT license](LICENSE).\n","readmeFilename":"README.md","bugs":{"url":"https://github.com/CorentinTh/quadtree-js/issues"},"homepage":"https://github.com/CorentinTh/quadtree-js#readme","_id":"js-quadtree@0.0.0-24a9882","_nodeVersion":"10.19.0","_npmVersion":"6.13.4","dist":{"integrity":"sha512-Sr8C/GifOn2tDgGVl3NsKt9/Y1BwKOdgGduAfB8gnTTtRPvg2Wav2m9EnCa7Bb5nRtjl6IQuu9eyY9FQWwXh5w==","shasum":"ad9eba2af3e604552fac0dc2cb0250c0ed5b63d9","tarball":"https://registry.npmjs.org/js-quadtree/-/js-quadtree-0.0.0-24a9882.tgz","fileCount":20,"unpackedSize":63369,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeZVj1CRA9TVsSAnZWagAAAksP/2Toj5K8+sr0ev/KWgo6\n1KYVg4P66B9rXwWeailQJNpLN4pXNmQzgEwGKdcdq4UUV74MZWFe2aUwUa3f\nDsUYOgXgwSIbGMiMV86QUwhlFp1gY6sDHR883ZOm2XoHJOEq+bBaVkXnZzuk\ns4lt8dee3hyfIy/jKPVowxPxF2/9lCIA2lAQBWJ46IbPwtL9KG5cgcc0Kg7y\noIAHFHaSOXrHad2CG0zwZuZAeryGWf+3zzLH0dVVjodItve/eLNDXdp4KI5c\n7BwVbW1ShBlJt/+m5K0OSQAbHKpcxsE3T+KmVigeT88mlhHJ2SrKBl+maNyh\nQ5P8WwL1h+TSK8OxMeXKYnELZpKauljwNgPfs0ztR3/mm83RtEfuKaK5aron\nwtE5/+hJg6gnY8a2eFMd9W7G6ulN2nRBa2lmx7XtFvvkDcTnYVg+haxlcfPo\n7q5z6YKs2U8nWfgQ5L+VRtC5xnR1+ad/g/9z0acp4l3Qvs+yqBP4PfCBml+U\n+l+tkP+bq49DvMAVxkPlOpd5yJ+QYPcRtIbcPFvfIElpaqNy5I9VPaMP/9e0\nMSPZolRHSjZHRwg9xpUiiO2WM7I8VYYwzW81YcLUnjFCz4+h3Dpen+PezqCG\njove21/51zz0+DiwgB7GyKz67oOIebuBss0jnX4CPn9jHjeSgdMIqCsmrXvq\nFfa0\r\n=3PQo\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFcSaJlryFokqOIOlTRSGIb/5voS0RmpH498GU3jZ4LoAiEA/wn6efn3w+SOrzGvBLvpbcsIq7UcNMg+6rcouVyQOWU="}]},"maintainers":[{"name":"corentinth","email":"corentin.thomasset74+npm@gmail.com"}],"_npmUser":{"name":"corentinth","email":"corentin.thomasset74+npm@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/js-quadtree_0.0.0-24a9882_1583700212800_0.2792206411155034"},"_hasShrinkwrap":false},"0.0.0-4167bc8":{"name":"js-quadtree","version":"0.0.0-4167bc8","description":"A simple quadtree implementation for javascript (nodejs or browser with module bundler).","main":"dist/index.js","module":"dist/index.es.js","browser":"dist/index.js","scripts":{"build":"rollup -c","lint":"eslint ./src/**","test":"jest","prepare":"npm run build"},"repository":{"type":"git","url":"git+https://github.com/CorentinTh/quadtree-js.git"},"keywords":["quadtree","qt","quadtree.js","quadtree javascript"],"author":{"name":"Corentin Th","email":"corentin.thomasset74+npm@gmail.com","url":"https://github.com/CorentinTh"},"license":"MIT","devDependencies":{"@rollup/plugin-typescript":"^4.0.0","@types/jest":"^25.1.4","@typescript-eslint/eslint-plugin":"^2.22.0","@typescript-eslint/parser":"^2.22.0","eslint":"^6.8.0","jest":"^25.1.0","rollup":"^2.0.2","rollup-plugin-terser":"^5.2.0","rollup-plugin-typescript2":"^0.26.0","ts-jest":"^25.2.1","typescript":"^3.8.3"},"dependencies":{},"gitHead":"4112412d60a89c6b5302b3c7d74e4d84a40e48fd","readme":"\n<p align=\"center\">\n    <img src=\".github/logo.png\" alt=\"logo\">\n</p>\n\n\n<p align=\"center\">\n    <a href=\"https://www.npmjs.com/package/js-quadtree\"><img src=\"https://img.shields.io/npm/dw/js-quadtree.svg\" alt=\"Weekly Downloads\" /></a>\n    <a href=\"https://github.com/CorentinTh/quadtree-js/actions?query=workflow%3A%22Node+CI%22\"><img alt=\"GitHub Workflow Status\" src=\"https://img.shields.io/github/workflow/status/CorentinTh/quadtree-js/Node CI\"></a>\n    <a href='https://codecov.io/gh/CorentinTh/quadtree-js'><img src='https://codecov.io/gh/CorentinTh/quadtree-js/branch/master/graph/badge.svg\"' alt='Coverage Status' /></a>\n    <a href=\"https://www.npmjs.com/package/js-quadtree\"><img src=\"https://img.shields.io/bundlephobia/minzip/js-quadtree.svg\" alt=\"npm bundle size\" /></a>\n    <a href=\"https://www.npmjs.com/package/js-quadtree\"><img src=\"https://img.shields.io/github/package-json/v/CorentinTh/quadtree-js.svg\" alt=\"GitHub package.json version\" /></a>\n    <a href='LICENCE'><img src=\"https://img.shields.io/github/license/CorentinTh/quadtree-js.svg\" alt=\"Licence Badge\" /></a>\n</p>\n\n\n\nA powerful quadtree implementation in javascript. It can be used for nodejs or directly in the browser.\n\n## Installation\n\n**Quadtree-js** can be installed using yarn or npm.\n\n```bash\nnpm install js-quadtree\n# or\nyarn add js-quadtree\n```\n\nAnd import :\n\n```javascript\nconst {QuadTree, Box, Point, Circle} = require('js-quadtree');\n\nconst quadtree = new QuadTree(new Box(0, 0, 1000, 1000));\n\nquadtree.insert(new Point(100, 200, {custom: 'data'}));\n\nconst results = quadtree.query(new Circle(150, 150, 100));\n```\n\n## Usage\n### Creation\n```javascript\n// Create the bounding area of the quadtree\nconst boundingArea = new Box(0, 0, 1000, 1000);\n\n// Instantiate  the new quadtree\nconst quadtree = new QuadTree(boundingArea);\n```\n\nYou can also specify the following optional parameters:\n```javascript\n// Create the bounding area of the quadtree\nconst boundingArea = new Box(0, 0, 1000, 1000);\n\nconst config = {\n    capacity: 10,           // Specify the maximum amount of point per node (default: 4)\n    removeEmptyNodes : true // Specify if the quadtree has to remove subnodes if they are empty (default: false).\n};\n\n// An array of point to insert directly (same as quadtree.insert(points) )\nconst points = [new Point(10, 10), new Point(52, 64)];\n\nconst quadtree = new QuadTree(boundingArea, config, points);\n```\n\n### Insert\n\nYou can insert a **Point** element, an array of **Point** element, your **own element** as long as it has an **x** and a **y** property or an array of custom element.\n\n```javascript\nconst point = new Point(10, 25);\n\nconst pointArray = [\n    new Point(45, 22),\n    new Point(30, 60),\n    new Point(14, 12)\n];\n\nconst customPoint = {\n    x: 94,\n    y: 23,\n    customField:{}\n};\n\nquadtree.insert(point);\nquadtree.insert(pointArray);\nquadtree.insert(customPoint);\n```\n\nYou can add your data in a **Point** element:\n```javascript\nconst myData = {\n    foo: 'bar'\n};\n\nconst point = new Point(50, 50, myData);\n\nconsole.log(point.data.foo); // 'bar'\n```\n\n### Remove\n\nAs the **insert** method, you can remove a **Point** element, an array of **Point** element, your **own element** as long as it has an **x** and a **y** property or an array of custom element.\n\n```javascript\nconst point = new Point(10, 25);\n\nconst pointArray = [\n    new Point(45, 22),\n    new Point(30, 60),\n    new Point(14, 12)\n];\n\nconst customPoint = {\n    x: 94,\n    y: 23\n};\n\nquadtree.remove(point);\nquadtree.remove(pointArray);\nquadtree.remove(customPoint);\n```\n\n**Note**: it doesn't have to be the same object, the test is done with the coordinates.\n\n### Query\n\nUse the **query** method to get all the point within a range.\n\n\n```javascript\n// This will return all the points in the given Box\nconst points = quadtree.query(new Box(10, 10, 100, 100));\n```\n\n```javascript\n// This will return all the points in the given Circle\nconst points = quadtree.query(new Circle(10, 10, 100));\n```\n\nYou can use a **Box** or a **Circle** as a range or even your own range element as long as it has the following methods:\n* **contains**: return true if a point is within this range, false otherwise.\n* **intersects**: return true if a **Box** intersects with this range, false otherwise.\nSee [the Box definition](src/Box.js) for a good example.\n\n### Get all the point\n\nIf want to retrieve all the point, you can use this method:\n\n```javascript\nconst points = quadtree.getAllPoints();\n```\n\n**Note**: you may want to store your points in a side array since, it have to look trough all the child nodes.\n\n### Get Tree\n\nYou can get the amount of points by nodes with the `getTree()` method.\n\n```javascript\nconst qt = new QuadTree(new Box(0, 0, 10, 10));\n\nqt.insert(new Point(5, 5));\nqt.insert(new Point(6, 5));\nqt.insert(new Point(4, 5));\nqt.insert(new Point(3, 5));\nqt.insert(new Point(2, 5));\nqt.insert(new Point(1, 5));\n\nconsole.log(qt.getTree());\n\n// {\n//     ne: 2, \n//     nw: {\n//         ne: 0, \n//         nw: 0, \n//         se: 3, \n//         sw: 2\n//     }, \n//     se: 2,\n//     sw: 3\n// }\n```\n\n### Clear\n\nUse this method to clear the quadtree. It remove all the points and sub-nodes.\n\n```javascript\nquadtree.clear();\n```\n\n## Contribute\n**Pull requests are welcome !** Feel free to contribute.\n\n## Credits\nCoded with ❤️ by [Corentin Thomasset](//corentin-thomasset.fr).\n\n## License\n\nThis project is under the [MIT license](LICENSE).\n","readmeFilename":"README.md","bugs":{"url":"https://github.com/CorentinTh/quadtree-js/issues"},"homepage":"https://github.com/CorentinTh/quadtree-js#readme","_id":"js-quadtree@0.0.0-4167bc8","_nodeVersion":"10.19.0","_npmVersion":"6.13.4","dist":{"integrity":"sha512-sOP9s92PJoD8gnczQJOtLeWbGM6tG408Zp1CzTpbTpeuoFXr8slc5K3JJWGPhcoMqdRCZ2FovU6O/Nw3AxpH3g==","shasum":"b385a547fcaaabe0d467c8293c634bf5a534f238","tarball":"https://registry.npmjs.org/js-quadtree/-/js-quadtree-0.0.0-4167bc8.tgz","fileCount":20,"unpackedSize":63521,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeZVl4CRA9TVsSAnZWagAAQtsP/ivm8AaxwcY75YMS8gat\n2Dtld8Wd8L9nSXHTKzGiIWA6aXGik8SnMNmWwhDV5VRzS1Dc6j9M50rlFcBh\niHxFnCtmBAb6bLTxZOUGKSBSi7kjOkKPE056ERFBrqC/35HDoyorG4Hb7DAw\ngPlkB0N3okbCfeR8avt7pxmPHxD6p+cSFb+lTnNlPALuzr0xn+91n/K2rV6x\n6CMlmRJC0D+xbQqJkS7cT2IeuRHK5/UcDjq/LIIwtWDUozjDCYeCf09rAhfm\ndh7fTOM6S+wKc794s9kIp12mKkDrzsg8FI27TorTg0GKBEtkvCOTMMKcChvf\nE4Tk7FCQng4s3qayYdZYP3xfV5xWsZ98vCsMDUd5dNw25r2eErG7QrGmjs8f\nu5Ep1trMcxSLXBAgW17tbgt0dVJ8WXCP/G2W7dA0E55uU+gX9vrthhzz8l5x\n9GZ8mYgtoVbGvXYe6CtC13vszz4hMwPdJgVbzRgTicgFNODtrBwn0ViNTSJV\n1CwhjQ+T+42cR9cwZlWrRkPgXu22jOEN9MTgODJvdH2PWH6nF1D7rel2AjCS\nm1eRG+Y3EV6dPLrcddVXmqTZ6C7UTMWgw9fznLBCwbhWq/LaOHfojhrvEGL4\nyVQGXZO+ioIVURGhVeK3K01LznsdpqhOXEdgYhN74HJFVJ67d5InTtP/Rauu\ntBvp\r\n=tHHE\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIQCs2KN+ugh72Q4m9gARCN4BvIu26ux8+d5NhEOM1cPxhAIffC20/7LEqKzeFRWJh+1RxzdJFIIfO2r1y6hLt1jMSg=="}]},"maintainers":[{"name":"corentinth","email":"corentin.thomasset74+npm@gmail.com"}],"_npmUser":{"name":"corentinth","email":"corentin.thomasset74+npm@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/js-quadtree_0.0.0-4167bc8_1583700344291_0.27715427393552394"},"_hasShrinkwrap":false},"0.0.0-c8604bf":{"name":"js-quadtree","version":"0.0.0-c8604bf","description":"A simple quadtree implementation for javascript (nodejs or browser with module bundler).","main":"dist/index.js","module":"dist/index.es.js","browser":"dist/index.js","scripts":{"build":"rollup -c","lint":"eslint ./src/**","test":"jest","prepare":"npm run build"},"repository":{"type":"git","url":"git+https://github.com/CorentinTh/quadtree-js.git"},"keywords":["quadtree","qt","quadtree.js","quadtree javascript"],"author":{"name":"Corentin Th","email":"corentin.thomasset74+npm@gmail.com","url":"https://github.com/CorentinTh"},"license":"MIT","devDependencies":{"@rollup/plugin-typescript":"^4.0.0","@types/jest":"^25.1.4","@typescript-eslint/eslint-plugin":"^2.22.0","@typescript-eslint/parser":"^2.22.0","eslint":"^6.8.0","jest":"^25.1.0","rollup":"^2.0.2","rollup-plugin-terser":"^5.2.0","rollup-plugin-typescript2":"^0.26.0","ts-jest":"^25.2.1","typescript":"^3.8.3"},"dependencies":{},"gitHead":"b389e6856bc6fa7cb799c91a76467903fdd3cb6c","readme":"\n<p align=\"center\">\n    <img src=\".github/logo.png\" alt=\"logo\">\n</p>\n\n\n<p align=\"center\">\n    <a href=\"https://www.npmjs.com/package/js-quadtree\"><img src=\"https://img.shields.io/npm/dw/js-quadtree.svg\" alt=\"Weekly Downloads\" /></a>\n    <a href=\"https://github.com/CorentinTh/quadtree-js/actions?query=workflow%3A%22Node+CI%22\"><img alt=\"GitHub Workflow Status\" src=\"https://img.shields.io/github/workflow/status/CorentinTh/quadtree-js/Node CI\"></a>\n    <a href='https://codecov.io/gh/CorentinTh/quadtree-js'><img src='https://codecov.io/gh/CorentinTh/quadtree-js/branch/master/graph/badge.svg\"' alt='Coverage Status' /></a>\n    <a href=\"https://www.npmjs.com/package/js-quadtree\"><img src=\"https://img.shields.io/bundlephobia/minzip/js-quadtree.svg\" alt=\"npm bundle size\" /></a>\n    <a href=\"https://www.npmjs.com/package/js-quadtree\"><img src=\"https://img.shields.io/github/package-json/v/CorentinTh/quadtree-js.svg\" alt=\"GitHub package.json version\" /></a>\n    <a href='LICENCE'><img src=\"https://img.shields.io/github/license/CorentinTh/quadtree-js.svg\" alt=\"Licence Badge\" /></a>\n</p>\n\n\n\nA powerful quadtree implementation in javascript. It can be used for nodejs or directly in the browser.\n\n## Installation\n### Node JS\n**Quadtree-js** can be installed using yarn or npm.\n\n```bash\nnpm install js-quadtree\n# or\nyarn add js-quadtree\n```\n\nAnd import :\n\n```javascript\nconst {QuadTree, Box, Point, Circle} = require('js-quadtree');\n\nconst quadtree = new QuadTree(new Box(0, 0, 1000, 1000));\n\nquadtree.insert(new Point(100, 200, {custom: 'data'}));\n\nconst results = quadtree.query(new Circle(150, 150, 100));\n```\n### Browser\n\nYou can use the CDN:\n```html\n<script src=\"https://unpkg.com/js-quadtree\"></script>\n```\nAnd everything is globally accessible and **prefixed with `QT`**:\n```javascript\nconst quadtree = new QT.QuadTree(new QT.Box(0, 0, 1000, 1000));\n\nquadtree.insert(new QT.Point(100, 200, {custom: 'data'}));\n\nconst results = quadtree.query(new QT.Circle(150, 150, 100));\n```\n \n## Usage\n### Creation\n```javascript\n// Create the bounding area of the quadtree\nconst boundingArea = new Box(0, 0, 1000, 1000);\n\n// Instantiate  the new quadtree\nconst quadtree = new QuadTree(boundingArea);\n```\n\nYou can also specify the following optional parameters:\n```javascript\n// Create the bounding area of the quadtree\nconst boundingArea = new Box(0, 0, 1000, 1000);\n\nconst config = {\n    capacity: 10,           // Specify the maximum amount of point per node (default: 4)\n    removeEmptyNodes : true // Specify if the quadtree has to remove subnodes if they are empty (default: false).\n};\n\n// An array of point to insert directly (same as quadtree.insert(points) )\nconst points = [new Point(10, 10), new Point(52, 64)];\n\nconst quadtree = new QuadTree(boundingArea, config, points);\n```\n\n### Insert\n\nYou can insert a **Point** element, an array of **Point** element, your **own element** as long as it has an **x** and a **y** property or an array of custom element.\n\n```javascript\nconst point = new Point(10, 25);\n\nconst pointArray = [\n    new Point(45, 22),\n    new Point(30, 60),\n    new Point(14, 12)\n];\n\nconst customPoint = {\n    x: 94,\n    y: 23,\n    customField:{}\n};\n\nquadtree.insert(point);\nquadtree.insert(pointArray);\nquadtree.insert(customPoint);\n```\n\nYou can add your data in a **Point** element:\n```javascript\nconst myData = {\n    foo: 'bar'\n};\n\nconst point = new Point(50, 50, myData);\n\nconsole.log(point.data.foo); // 'bar'\n```\n\n### Remove\n\nAs the **insert** method, you can remove a **Point** element, an array of **Point** element, your **own element** as long as it has an **x** and a **y** property or an array of custom element.\n\n```javascript\nconst point = new Point(10, 25);\n\nconst pointArray = [\n    new Point(45, 22),\n    new Point(30, 60),\n    new Point(14, 12)\n];\n\nconst customPoint = {\n    x: 94,\n    y: 23\n};\n\nquadtree.remove(point);\nquadtree.remove(pointArray);\nquadtree.remove(customPoint);\n```\n\n**Note**: it doesn't have to be the same object, the test is done with the coordinates.\n\n### Query\n\nUse the **query** method to get all the point within a range.\n\n\n```javascript\n// This will return all the points in the given Box\nconst points = quadtree.query(new Box(10, 10, 100, 100));\n```\n\n```javascript\n// This will return all the points in the given Circle\nconst points = quadtree.query(new Circle(10, 10, 100));\n```\n\nYou can use a **Box** or a **Circle** as a range or even your own range element as long as it has the following methods:\n* **contains**: return true if a point is within this range, false otherwise.\n* **intersects**: return true if a **Box** intersects with this range, false otherwise.\nSee [the Box definition](src/Box.js) for a good example.\n\n### Get all the point\n\nIf want to retrieve all the point, you can use this method:\n\n```javascript\nconst points = quadtree.getAllPoints();\n```\n\n**Note**: you may want to store your points in a side array since, it have to look trough all the child nodes.\n\n### Get Tree\n\nYou can get the amount of points by nodes with the `getTree()` method.\n\n```javascript\nconst qt = new QuadTree(new Box(0, 0, 10, 10));\n\nqt.insert(new Point(5, 5));\nqt.insert(new Point(6, 5));\nqt.insert(new Point(4, 5));\nqt.insert(new Point(3, 5));\nqt.insert(new Point(2, 5));\nqt.insert(new Point(1, 5));\n\nconsole.log(qt.getTree());\n\n// {\n//     ne: 2, \n//     nw: {\n//         ne: 0, \n//         nw: 0, \n//         se: 3, \n//         sw: 2\n//     }, \n//     se: 2,\n//     sw: 3\n// }\n```\n\n### Clear\n\nUse this method to clear the quadtree. It remove all the points and sub-nodes.\n\n```javascript\nquadtree.clear();\n```\n\n## Contribute\n**Pull requests are welcome !** Feel free to contribute.\n\n## Credits\nCoded with ❤️ by [Corentin Thomasset](//corentin-thomasset.fr).\n\n## License\n\nThis project is under the [MIT license](LICENSE).\n","readmeFilename":"README.md","bugs":{"url":"https://github.com/CorentinTh/quadtree-js/issues"},"homepage":"https://github.com/CorentinTh/quadtree-js#readme","_id":"js-quadtree@0.0.0-c8604bf","_nodeVersion":"10.19.0","_npmVersion":"6.13.4","dist":{"integrity":"sha512-wD1WPeX1n5V9FxLrmfUSoX8jErQJLLhdkS4uQvUkh7jlgMKmLhJdO/0xQ7o3jr6WzWeJX5VqghjBYTd75NX9wQ==","shasum":"9f860ce0f1fccd0d8ae4d23c5dfc23aff5b98902","tarball":"https://registry.npmjs.org/js-quadtree/-/js-quadtree-0.0.0-c8604bf.tgz","fileCount":20,"unpackedSize":63904,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeZWOeCRA9TVsSAnZWagAAEiQP/RmQQ18ttNabmkpdY3YL\nqjb+IhXGqM3d4Lob1k65NQkpsykCFQntm04z8oYMTiHkIBL42JYDEhCmCaRL\nlmRdVbw226/lV3E3mYyvtfwnVTbA8FoCDwuy0U6VUPC+sCoX3evz9NqPFsEW\nBDJv7qwX4saujuZ4s9Hzf5xBt9/7vTOSFGaBxYXxx5ss5G3zmWMzcANuDmNR\nOEHRuyrGaNEtUgbXxI7VoRL1wkqBRj2SLbFKO5FX41Ff0pyufSqmZcjIn7tJ\nriJ8N6U0VBNiHbFYADOBT+XbOaPs2EW7JhYR3y6Yox/Rz9LZ1e9UotZ25zYG\noh/mNSB46SLdGwCYBK1JMNQDtPoj5DWvoWhhBfiyd/VBMHo0eCGyhPlAejCx\nRtQd+03+x6Euu7EL+VDYSZdsbbGdeAbZLarJdgWfCZb80GVaFnjOQvDhmGaI\n/tyH0Ev9hxDhL31nowosY0YUHp/q8s4RWPVF556aNCE9d7nKROkRCv8AtABc\nH+rikne6NlqfUodwMHhvX+ODp8UtWobYJ6X6+Pw+zDno1H73eHrEJqq5v0Oe\nbfKmMDLHXciQ1Q+Vc0C1I2I9uYcuF1BOv1Se3kz2QTgnHOL+4cCDmpSz7qKq\nfJKpDnn9Ks8mlyZKjuLMsict1260i1OBNsGv8Y1xq89AZQuNKCqsJsgEngKM\n4e/T\r\n=JkQt\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCqwhA10L/juprNCmn5eBt/y6lLRN289wJKh9h/fPdQ2QIgZjkzZF/vLkzBLPVLwMeQL7Y4veQ7VckqzaU+f5eMR5w="}]},"maintainers":[{"name":"corentinth","email":"corentin.thomasset74+npm@gmail.com"}],"_npmUser":{"name":"corentinth","email":"corentin.thomasset74+npm@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/js-quadtree_0.0.0-c8604bf_1583702942387_0.8140005835906963"},"_hasShrinkwrap":false},"0.0.0-7f89835":{"name":"js-quadtree","version":"0.0.0-7f89835","description":"A simple quadtree implementation for javascript (nodejs or browser with module bundler).","main":"dist/index.js","module":"dist/index.es.js","browser":"dist/index.js","scripts":{"build":"rollup -c","lint":"eslint ./src/**","test":"jest","prepare":"npm run build"},"repository":{"type":"git","url":"git+https://github.com/CorentinTh/quadtree-js.git"},"keywords":["quadtree","qt","quadtree.js","quadtree javascript"],"author":{"name":"Corentin Th","email":"corentin.thomasset74+npm@gmail.com","url":"https://github.com/CorentinTh"},"license":"MIT","devDependencies":{"@rollup/plugin-typescript":"^4.0.0","@types/jest":"^25.1.4","@typescript-eslint/eslint-plugin":"^2.22.0","@typescript-eslint/parser":"^2.22.0","eslint":"^6.8.0","jest":"^25.1.0","rollup":"^2.0.2","rollup-plugin-terser":"^5.2.0","rollup-plugin-typescript2":"^0.26.0","ts-jest":"^25.2.1","typescript":"^3.8.3"},"dependencies":{},"gitHead":"1880ce7e003ee7f9f6b7d234f82367564ee620d1","readme":"\n<p align=\"center\">\n    <img src=\".github/logo.png\" alt=\"logo\">\n</p>\n\n\n<p align=\"center\">\n    <a href=\"https://www.npmjs.com/package/js-quadtree\"><img src=\"https://img.shields.io/npm/dw/js-quadtree.svg\" alt=\"Weekly Downloads\" /></a>\n    <a href=\"https://github.com/CorentinTh/quadtree-js/actions?query=workflow%3A%22Node+CI%22\"><img alt=\"GitHub Workflow Status\" src=\"https://img.shields.io/github/workflow/status/CorentinTh/quadtree-js/Node CI\"></a>\n    <a href='https://codecov.io/gh/CorentinTh/quadtree-js'><img src='https://codecov.io/gh/CorentinTh/quadtree-js/branch/master/graph/badge.svg\"' alt='Coverage Status' /></a>\n    <a href=\"https://www.npmjs.com/package/js-quadtree\"><img src=\"https://img.shields.io/bundlephobia/minzip/js-quadtree.svg\" alt=\"npm bundle size\" /></a>\n    <a href=\"https://www.npmjs.com/package/js-quadtree\"><img src=\"https://img.shields.io/github/package-json/v/CorentinTh/quadtree-js.svg\" alt=\"GitHub package.json version\" /></a>\n    <a href='LICENCE'><img src=\"https://img.shields.io/github/license/CorentinTh/quadtree-js.svg\" alt=\"Licence Badge\" /></a>\n</p>\n\n\n\nA powerful quadtree implementation in javascript. It can be used for nodejs or directly in the browser.\n\n## Installation\n### Node JS\n**Quadtree-js** can be installed using yarn or npm.\n\n```bash\nnpm install js-quadtree\n# or\nyarn add js-quadtree\n```\n\nAnd import :\n\n```javascript\n// EMAScript import\nimport {QuadTree, Box, Point, Circle} from 'js-quadtree';\n// Or Common JS:\nconst {QuadTree, Box, Point, Circle} = require('js-quadtree');\n\nconst quadtree = new QuadTree(new Box(0, 0, 1000, 1000));\n\nquadtree.insert(new Point(100, 200, {custom: 'data'}));\n\nconst results = quadtree.query(new Circle(150, 150, 100));\n```\n### Browser\n\nYou can use the CDN:\n```html\n<script src=\"https://unpkg.com/js-quadtree\"></script>\n```\nAnd everything is globally accessible and **prefixed with `QT`**:\n```javascript\nconst quadtree = new QT.QuadTree(new QT.Box(0, 0, 1000, 1000));\n\nquadtree.insert(new QT.Point(100, 200, {custom: 'data'}));\n\nconst results = quadtree.query(new QT.Circle(150, 150, 100));\n```\n \n## Usage\n### Creation\n```javascript\n// Create the bounding area of the quadtree\nconst boundingArea = new Box(0, 0, 1000, 1000);\n\n// Instantiate  the new quadtree\nconst quadtree = new QuadTree(boundingArea);\n```\n\nYou can also specify the following optional parameters:\n```javascript\n// Create the bounding area of the quadtree\nconst boundingArea = new Box(0, 0, 1000, 1000);\n\nconst config = {\n    capacity: 10,           // Specify the maximum amount of point per node (default: 4)\n    removeEmptyNodes : true // Specify if the quadtree has to remove subnodes if they are empty (default: false).\n};\n\n// An array of point to insert directly (same as quadtree.insert(points) )\nconst points = [new Point(10, 10), new Point(52, 64)];\n\nconst quadtree = new QuadTree(boundingArea, config, points);\n```\n\n### Insert\n\nYou can insert a **Point** element, an array of **Point** element, your **own element** as long as it has an **x** and a **y** property or an array of custom element.\n\n```javascript\nconst point = new Point(10, 25);\n\nconst pointArray = [\n    new Point(45, 22),\n    new Point(30, 60),\n    new Point(14, 12)\n];\n\nconst customPoint = {\n    x: 94,\n    y: 23,\n    customField:{}\n};\n\nquadtree.insert(point);\nquadtree.insert(pointArray);\nquadtree.insert(customPoint);\n```\n\nYou can add your data in a **Point** element:\n```javascript\nconst myData = {\n    foo: 'bar'\n};\n\nconst point = new Point(50, 50, myData);\n\nconsole.log(point.data.foo); // 'bar'\n```\n\n### Remove\n\nAs the **insert** method, you can remove a **Point** element, an array of **Point** element, your **own element** as long as it has an **x** and a **y** property or an array of custom element.\n\n```javascript\nconst point = new Point(10, 25);\n\nconst pointArray = [\n    new Point(45, 22),\n    new Point(30, 60),\n    new Point(14, 12)\n];\n\nconst customPoint = {\n    x: 94,\n    y: 23\n};\n\nquadtree.remove(point);\nquadtree.remove(pointArray);\nquadtree.remove(customPoint);\n```\n\n**Note**: it doesn't have to be the same object, the test is done with the coordinates.\n\n### Query\n\nUse the **query** method to get all the point within a range.\n\n\n```javascript\n// This will return all the points in the given Box\nconst points = quadtree.query(new Box(10, 10, 100, 100));\n```\n\n```javascript\n// This will return all the points in the given Circle\nconst points = quadtree.query(new Circle(10, 10, 100));\n```\n\nYou can use a **Box** or a **Circle** as a range or even your own range element as long as it has the following methods:\n* **contains**: return true if a point is within this range, false otherwise.\n* **intersects**: return true if a **Box** intersects with this range, false otherwise.\nSee [the Box definition](src/Box.js) for a good example.\n\n### Get all the point\n\nIf want to retrieve all the point, you can use this method:\n\n```javascript\nconst points = quadtree.getAllPoints();\n```\n\n**Note**: you may want to store your points in a side array since, it have to look trough all the child nodes.\n\n### Get Tree\n\nYou can get the amount of points by nodes with the `getTree()` method.\n\n```javascript\nconst qt = new QuadTree(new Box(0, 0, 10, 10));\n\nqt.insert(new Point(5, 5));\nqt.insert(new Point(6, 5));\nqt.insert(new Point(4, 5));\nqt.insert(new Point(3, 5));\nqt.insert(new Point(2, 5));\nqt.insert(new Point(1, 5));\n\nconsole.log(qt.getTree());\n\n// {\n//     ne: 2, \n//     nw: {\n//         ne: 0, \n//         nw: 0, \n//         se: 3, \n//         sw: 2\n//     }, \n//     se: 2,\n//     sw: 3\n// }\n```\n\n### Clear\n\nUse this method to clear the quadtree. It remove all the points and sub-nodes.\n\n```javascript\nquadtree.clear();\n```\n\n## Contribute\n**Pull requests are welcome !** Feel free to contribute.\n\n## Credits\nCoded with ❤️ by [Corentin Thomasset](//corentin-thomasset.fr).\n\n## License\n\nThis project is under the [MIT license](LICENSE).\n","readmeFilename":"README.md","bugs":{"url":"https://github.com/CorentinTh/quadtree-js/issues"},"homepage":"https://github.com/CorentinTh/quadtree-js#readme","_id":"js-quadtree@0.0.0-7f89835","_nodeVersion":"10.19.0","_npmVersion":"6.13.4","dist":{"integrity":"sha512-RMpoiSIsEaFSpfZubEoMpVYEFc/sfTzRmdZJNDHVyrUMx9z4Y9ePBL2UleQyBUYCSdV8PXve3CEVHIGuf+Ri1A==","shasum":"41a2030669eff7dcc8dd9bbabb93379fe862bb9c","tarball":"https://registry.npmjs.org/js-quadtree/-/js-quadtree-0.0.0-7f89835.tgz","fileCount":20,"unpackedSize":63999,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeZWPVCRA9TVsSAnZWagAABgcQAIvdhn31w3dQkUw7rZHu\nnHAKY6CdVWyrFJjpdfC9o2ApnoktbEOGtSiGFdiJCiYg63vRzejJbFzz4724\nYLb4hAPemIhm3Ln/79AvJNr1iQDJDpzAwDLY+vFexEuopcOlq9gOISe+BpLB\nEyVVcWuREajGN3pbqSth/0sN7q+nD/z8F1fHWAF0gqXZ5FujtNnz2TkARrhm\nFRlafZT4eY2Ijj1EC65cTDdfuT1EsRQaOATNWOxXjPQHeW+s7WcWCaUioHoY\nNFQ1VpKlJzu9ZIlapW8Ze7hbkmwkql8k3fJd4TDVQPNaKqvfdoZIl9KKj8ib\nM1k/hxzTassT5g0CYKQ6WdzkFrvB9c4QQWKBHY0/rzJQh6yQ8uXE0Tc5gMeB\nvHxKFbDqtUNamEk2F3fyYHZrbRNTUk0lzrrNNLIYy+RHzWWCTmzyxxS8Cm6/\nGViwfteTtksbmYmq5vzmekfHpyYsbnpT1rGfkuieJd9epwDrRJOuDrJODtBn\nO5R0z1aYaLNMTR9kKh8BFEHWcjCOH3uaucM+DXdTlP6Uny/M1HNN2qvcLYTk\nbvg1UsbUPiOa2g4bVmAp0JiFUlbVNg36H7Aur+w7t1MO7HwezXJNb3ZV86Ay\nua0uuE8OYUK9BiyvkzFvOAIYgD+iA3IIhe/Nd1MHqUeoo2HMY2e75D1vJgLo\nfwSx\r\n=U72Q\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBTd8JEezScwAbTa31TFFGa1vC8z1TVTelb6bILnKKZdAiAs9ALNnDEnbKc3mITouRkxas7+4vVe5LUHEaB3KkSUDA=="}]},"maintainers":[{"name":"corentinth","email":"corentin.thomasset74+npm@gmail.com"}],"_npmUser":{"name":"corentinth","email":"corentin.thomasset74+npm@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/js-quadtree_0.0.0-7f89835_1583702997210_0.9188327159049936"},"_hasShrinkwrap":false},"0.0.0-ba247ac":{"name":"js-quadtree","version":"0.0.0-ba247ac","description":"A simple quadtree implementation for javascript (nodejs or browser with module bundler).","main":"dist/index.js","module":"dist/index.es.js","browser":"dist/index.js","scripts":{"build":"rollup -c","lint":"eslint ./src/**","test":"jest","prepare":"npm run build"},"repository":{"type":"git","url":"git+https://github.com/CorentinTh/quadtree-js.git"},"keywords":["quadtree","qt","quadtree.js","quadtree javascript"],"author":{"name":"Corentin Th","email":"corentin.thomasset74+npm@gmail.com","url":"https://github.com/CorentinTh"},"license":"MIT","devDependencies":{"@rollup/plugin-typescript":"^4.0.0","@types/jest":"^25.1.4","@typescript-eslint/eslint-plugin":"^2.22.0","@typescript-eslint/parser":"^2.22.0","eslint":"^6.8.0","jest":"^25.1.0","rollup":"^2.0.2","rollup-plugin-terser":"^5.2.0","rollup-plugin-typescript2":"^0.26.0","ts-jest":"^25.2.1","typescript":"^3.8.3"},"dependencies":{},"gitHead":"21e04b0f92cb35dc06c3a561982392bdae7ff293","readme":"\n<p align=\"center\">\n    <img src=\".github/logo.png\" alt=\"logo\">\n</p>\n\n\n<p align=\"center\">\n    <a href=\"https://www.npmjs.com/package/js-quadtree\"><img src=\"https://img.shields.io/npm/dw/js-quadtree.svg\" alt=\"Weekly Downloads\" /></a>\n    <a href=\"https://github.com/CorentinTh/quadtree-js/actions?query=workflow%3A%22Node+CI%22\"><img alt=\"GitHub Workflow Status\" src=\"https://img.shields.io/github/workflow/status/CorentinTh/quadtree-js/Node CI\"></a>\n    <a href='https://codecov.io/gh/CorentinTh/quadtree-js'><img src='https://codecov.io/gh/CorentinTh/quadtree-js/branch/master/graph/badge.svg\"' alt='Coverage Status' /></a>\n    <a href=\"https://www.npmjs.com/package/js-quadtree\"><img src=\"https://img.shields.io/bundlephobia/minzip/js-quadtree.svg\" alt=\"npm bundle size\" /></a>\n    <a href=\"https://www.npmjs.com/package/js-quadtree\"><img src=\"https://img.shields.io/github/package-json/v/CorentinTh/quadtree-js.svg\" alt=\"GitHub package.json version\" /></a>\n    <a href='LICENCE'><img src=\"https://img.shields.io/github/license/CorentinTh/quadtree-js.svg\" alt=\"Licence Badge\" /></a>\n</p>\n\n\n\nA powerful quadtree implementation in javascript. It can be used for nodejs or directly in the browser.\n\n## Installation\n### Node JS\n**Quadtree-js** can be installed using yarn or npm.\n\n```bash\nnpm install js-quadtree\n# or\nyarn add js-quadtree\n```\n\nAnd import :\n\n```javascript\n// EMAScript import\nimport {QuadTree, Box, Point, Circle} from 'js-quadtree';\n// Or Common JS:\nconst {QuadTree, Box, Point, Circle} = require('js-quadtree');\n\nconst quadtree = new QuadTree(new Box(0, 0, 1000, 1000));\n\nquadtree.insert(new Point(100, 200, {custom: 'data'}));\n\nconst results = quadtree.query(new Circle(150, 150, 100));\n```\n### Browser\n\nYou can use the CDN:\n```html\n<script src=\"https://unpkg.com/js-quadtree\"></script>\n```\nAnd everything is globally accessible and **prefixed with `QT`**:\n```javascript\nconst quadtree = new QT.QuadTree(new QT.Box(0, 0, 1000, 1000));\n\nquadtree.insert(new QT.Point(100, 200, {custom: 'data'}));\n\nconst results = quadtree.query(new QT.Circle(150, 150, 100));\n```\n \n## Usage\n### Creation\n```javascript\n// Create the bounding area of the quadtree\nconst boundingArea = new Box(0, 0, 1000, 1000);\n\n// Instantiate  the new quadtree\nconst quadtree = new QuadTree(boundingArea);\n```\n\nYou can also specify the following optional parameters:\n```javascript\n// Create the bounding area of the quadtree\nconst boundingArea = new Box(0, 0, 1000, 1000);\n\nconst config = {\n    capacity: 10,           // Specify the maximum amount of point per node (default: 4)\n    removeEmptyNodes : true // Specify if the quadtree has to remove subnodes if they are empty (default: false).\n};\n\n// An array of point to insert directly (same as quadtree.insert(points) )\nconst points = [new Point(10, 10), new Point(52, 64)];\n\nconst quadtree = new QuadTree(boundingArea, config, points);\n```\n\n### Insert\n\nYou can insert a **Point** element, an array of **Point** element, your **own element** as long as it has an **x** and a **y** property or an array of custom element.\n\n```javascript\nconst point = new Point(10, 25);\n\nconst pointArray = [\n    new Point(45, 22),\n    new Point(30, 60),\n    new Point(14, 12)\n];\n\nconst customPoint = {\n    x: 94,\n    y: 23,\n    customField:{}\n};\n\nquadtree.insert(point);\nquadtree.insert(pointArray);\nquadtree.insert(customPoint);\n```\n\nYou can add your data in a **Point** element:\n```javascript\nconst myData = {\n    foo: 'bar'\n};\n\nconst point = new Point(50, 50, myData);\n\nconsole.log(point.data.foo); // 'bar'\n```\n\n### Remove\n\nAs the **insert** method, you can remove a **Point** element, an array of **Point** element, your **own element** as long as it has an **x** and a **y** property or an array of custom element.\n\n```javascript\nconst point = new Point(10, 25);\n\nconst pointArray = [\n    new Point(45, 22),\n    new Point(30, 60),\n    new Point(14, 12)\n];\n\nconst customPoint = {\n    x: 94,\n    y: 23\n};\n\nquadtree.remove(point);\nquadtree.remove(pointArray);\nquadtree.remove(customPoint);\n```\n\n**Note**: it doesn't have to be the same object, the test is done with the coordinates.\n\n### Query\n\nUse the **query** method to get all the point within a range.\n\n\n```javascript\n// This will return all the points in the given Box\nconst points = quadtree.query(new Box(10, 10, 100, 100));\n```\n\n```javascript\n// This will return all the points in the given Circle\nconst points = quadtree.query(new Circle(10, 10, 100));\n```\n\nYou can use a **Box** or a **Circle** as a range or even your own range element as long as it has the following methods:\n* **contains**: return true if a point is within this range, false otherwise.\n* **intersects**: return true if a **Box** intersects with this range, false otherwise.\nSee [the Box definition](src/Box.js) for a good example.\n\n### Get all the point\n\nIf want to retrieve all the point, you can use this method:\n\n```javascript\nconst points = quadtree.getAllPoints();\n```\n\n**Note**: you may want to store your points in a side array since, it have to look trough all the child nodes.\n\n### Get Tree\n\nYou can get the amount of points by nodes with the `getTree()` method.\n\n```javascript\nconst qt = new QuadTree(new Box(0, 0, 10, 10));\n\nqt.insert(new Point(5, 5));\nqt.insert(new Point(6, 5));\nqt.insert(new Point(4, 5));\nqt.insert(new Point(3, 5));\nqt.insert(new Point(2, 5));\nqt.insert(new Point(1, 5));\n\nconsole.log(qt.getTree());\n\n// {\n//     ne: 2, \n//     nw: {\n//         ne: 0, \n//         nw: 0, \n//         se: 3, \n//         sw: 2\n//     }, \n//     se: 2,\n//     sw: 3\n// }\n```\n\n### Clear\n\nUse this method to clear the quadtree. It remove all the points and sub-nodes.\n\n```javascript\nquadtree.clear();\n```\n\n## Contribute\n**Pull requests are welcome !** Feel free to contribute.\n\n## Credits\nCoded with ❤️ by [Corentin Thomasset](//corentin-thomasset.fr).\n\n## License\n\nThis project is under the [MIT license](LICENSE).\n","readmeFilename":"README.md","bugs":{"url":"https://github.com/CorentinTh/quadtree-js/issues"},"homepage":"https://github.com/CorentinTh/quadtree-js#readme","_id":"js-quadtree@0.0.0-ba247ac","_nodeVersion":"10.19.0","_npmVersion":"6.13.4","dist":{"integrity":"sha512-VyE+PGJVE9ZShOVKoKIl5v5pmR0elP5+UbEm3oBRqTEFldo0Hi4iokbdTd0TQzy+fWYV4Rr3em7qQxmKQBJOEg==","shasum":"1597947833121b83c04502873f3dcb50c30177f3","tarball":"https://registry.npmjs.org/js-quadtree/-/js-quadtree-0.0.0-ba247ac.tgz","fileCount":20,"unpackedSize":64019,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeZWTcCRA9TVsSAnZWagAA8FoP+gP3p44fMn9MubXCBnU6\nQopqXc5YVipEAkyqrmaXOrbsJ38LWBHebXoy/8sEedvnOw/2dHUWKdLqZrgc\nuKI1xhcbznLtf4cgUw/w45qBUoBvLleRkzDmCQJOAH8BsMLb/pP2ocaHM23K\nyQUPEhwx3lq/iEbygFZP+yEbPo86INP7kG6UxFB7WlhPd2opRl+4HKQFr/sq\neGncvor90H/g1wZQ/FWKhdrdaM2DgMa2HUcNz35h8Y42/EWBPLWxUIC4pp3N\nFIzadQOwZr7MuIiVz/zYg9JkZjIKUm2cFvnD0zHDFLGbPkhhVQugMJiQ8qWk\nzfCsfAzcckt5stVviKP13CtTaqBUmkqy7jz6kWn137swjXv0AgW0Q3GbOCfG\n3VWRZr3+pnWnS7ubiUptGpNdLETykLCxbyT61quCvBz9vNTcblCaidyDXeoJ\nTFOCxC3VPc7Sr7Awma3Icq18qXjyMBSJfL+xNn2bMBdktnPTiPINyBFo+Cw1\nU+Bu+eUWZy/woJIcgxW3+nDy9O5mqQdueqWSAVV0IMSv3KT4GXKi3cbpyFnt\nNWqTA6wNrDh2i+vi3/N8nAyBSpeuf46HM3LVY7dYdJrK+m2FYOol6z3l2dOx\n060yDpnW7D7yZOJXQB1xXRADJ2NRaJqpTB8qoTILqk47uj+K6vvK4fyEQw9c\nMoI+\r\n=UrNj\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAIRY5CvO8WZ+qb5wFkNxXG2qyOJFCNbmqWubzeQeiw8AiAo7vtJzL53OQUewM5VBU4k78XSCPiCRuYllQiHnb2R0g=="}]},"maintainers":[{"name":"corentinth","email":"corentin.thomasset74+npm@gmail.com"}],"_npmUser":{"name":"corentinth","email":"corentin.thomasset74+npm@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/js-quadtree_0.0.0-ba247ac_1583703259690_0.39774035643418326"},"_hasShrinkwrap":false},"3.0.0":{"name":"js-quadtree","version":"3.0.0","description":"A simple quadtree implementation for javascript (nodejs or browser with module bundler).","main":"dist/index.js","module":"dist/index.es.js","browser":"dist/index.js","scripts":{"build":"rollup -c","lint":"eslint ./src/**","test":"jest","prepare":"npm run build"},"repository":{"type":"git","url":"git+https://github.com/CorentinTh/quadtree-js.git"},"keywords":["quadtree","qt","quadtree.js","quadtree javascript"],"author":{"name":"Corentin Th","email":"corentin.thomasset74+npm@gmail.com","url":"https://github.com/CorentinTh"},"license":"MIT","devDependencies":{"@rollup/plugin-typescript":"^4.0.0","@types/jest":"^25.1.4","@typescript-eslint/eslint-plugin":"^2.22.0","@typescript-eslint/parser":"^2.22.0","eslint":"^6.8.0","jest":"^25.1.0","rollup":"^2.0.2","rollup-plugin-terser":"^5.2.0","rollup-plugin-typescript2":"^0.26.0","ts-jest":"^25.2.1","typescript":"^3.8.3"},"dependencies":{},"gitHead":"cdfcf366b839c6ac6730fd3f9cc0f71536ebcc2f","bugs":{"url":"https://github.com/CorentinTh/quadtree-js/issues"},"homepage":"https://github.com/CorentinTh/quadtree-js#readme","_id":"js-quadtree@3.0.0","_nodeVersion":"10.19.0","_npmVersion":"6.13.4","dist":{"integrity":"sha512-aAeBZnLPzHOGEduCRBkGfUQ9cnVhOrUvhHwSYUcKVZktO/upPnqW7EhPDUJlfiS3mTTGHBz9n3ewdpmzHh8n7g==","shasum":"c6902c93cf6c684a17f77702cd16abd19b9f17c6","tarball":"https://registry.npmjs.org/js-quadtree/-/js-quadtree-3.0.0.tgz","fileCount":20,"unpackedSize":64011,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeZWVECRA9TVsSAnZWagAANLEP+gPgXK5RMHn+fPYiLd/T\n2gfTO/XxGjMkPLpPGgScRB9EXf8hrBZlU8m0ngPeA+bnynRTWIEeFkVqFoXd\nHwBvpTDrFRqUAloxdVSblQEKH7oVEo1p5uQ7WdKwBAvTMOxl4gviKbky0/7a\neOB0RuJtNv74Pft+vEyEIXKsIQgomAmjwrOacn1zuO1AlmhW4dnnHkLLfG3b\nu5PH+71r1kizvXvK9r7DFfWHVh2Xs0trdShNYEifGx8XEwjEzvPwsq3/D6Vu\n3gu05Zm30369iN6O3rCVTlN9As+P2gyEUoTF8GwFLI5h2L17YyFr7IlydHUx\n2VG3vPNfOTwVzoEdWLIeD2+HwXsXR1mcRjgqb2DDCAJaS8H3U0xxCdQJnCBE\nSgdLUC/tE5xYUGYvzqMON8VTxo7Ghhziq3LVemSJqL95yFE/AJCF9okitqk6\n6wxIlLlFgT1KPBEodHX8lWAdK5qB0bgjbJWqXew7oGY/VMtMhXuExtgf2alB\n30Xx888YvwrpZe2ziWOuKylGqmZh5R8SONED3i2OEHMKLXKD6oWeziYxHawz\nqe/vZEevirMd37by4wvsdUGPEIsAkMrG3eWxxz/TqfJd2IjA6lvpjypfZXo7\na/lUpb7MAHDv15loaoJ/ztDO0qKEwwEbBqu12zebblaDNTLpDcpg2tvhNz8T\n3Ebt\r\n=Ob5p\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCB/DtOqxEZFBfOevlyGrX59mr/GPqbP0ZQGkGaWzcwvAIhAKwvGRiuAsxKTp92+akIXBlbswI07lPR/sXYs/anXnbx"}]},"maintainers":[{"name":"corentinth","email":"corentin.thomasset74+npm@gmail.com"}],"_npmUser":{"name":"corentinth","email":"corentin.thomasset74+npm@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/js-quadtree_3.0.0_1583703363817_0.7938232842968043"},"_hasShrinkwrap":false},"0.0.0-8fc07e1":{"name":"js-quadtree","version":"0.0.0-8fc07e1","description":"A simple quadtree implementation for javascript (nodejs or browser with module bundler).","main":"dist/index.js","module":"dist/index.es.js","browser":"dist/index.js","scripts":{"build":"rollup -c","lint":"eslint ./src/**","test":"jest","prepare":"npm run build"},"repository":{"type":"git","url":"git+https://github.com/CorentinTh/quadtree-js.git"},"keywords":["quadtree","qt","quadtree.js","quadtree javascript"],"author":{"name":"Corentin Th","email":"corentin.thomasset74+npm@gmail.com","url":"https://github.com/CorentinTh"},"license":"MIT","devDependencies":{"@rollup/plugin-typescript":"^4.0.0","@types/jest":"^25.1.4","@typescript-eslint/eslint-plugin":"^2.22.0","@typescript-eslint/parser":"^2.22.0","eslint":"^6.8.0","jest":"^25.1.0","rollup":"^2.0.2","rollup-plugin-terser":"^5.2.0","rollup-plugin-typescript2":"^0.26.0","ts-jest":"^25.2.1","typescript":"^3.8.3"},"dependencies":{},"gitHead":"7816358fd53df0b2fdaf5264297ddc66715be57b","readme":"\n<p align=\"center\">\n    <img src=\".github/logo.png\" alt=\"logo\">\n</p>\n\n\n<p align=\"center\">\n    <a href=\"https://www.npmjs.com/package/js-quadtree\"><img src=\"https://img.shields.io/npm/dw/js-quadtree.svg\" alt=\"Weekly Downloads\" /></a>\n    <a href=\"https://github.com/CorentinTh/quadtree-js/actions?query=workflow%3A%22Node+CI%22\"><img alt=\"GitHub Workflow Status\" src=\"https://img.shields.io/github/workflow/status/CorentinTh/quadtree-js/Node CI\"></a>\n    <a href='https://codecov.io/gh/CorentinTh/quadtree-js'><img src='https://codecov.io/gh/CorentinTh/quadtree-js/branch/master/graph/badge.svg\"' alt='Coverage Status' /></a>\n    <a href=\"https://www.npmjs.com/package/js-quadtree\"><img src=\"https://img.shields.io/bundlephobia/minzip/js-quadtree.svg\" alt=\"npm bundle size\" /></a>\n    <a href=\"https://www.npmjs.com/package/js-quadtree\"><img src=\"https://img.shields.io/github/package-json/v/CorentinTh/quadtree-js.svg\" alt=\"GitHub package.json version\" /></a>\n    <a href='LICENCE'><img src=\"https://img.shields.io/github/license/CorentinTh/quadtree-js.svg\" alt=\"Licence Badge\" /></a>\n</p>\n\n\n\nA powerful quadtree implementation in javascript. It can be used for nodejs or directly in the browser.\n\n## Installation\n### Node JS\n**Quadtree-js** can be installed using yarn or npm.\n\n```bash\nnpm install js-quadtree\n# or\nyarn add js-quadtree\n```\n\nAnd import :\n\n```javascript\n// EMAScript import\nimport {QuadTree, Box, Point, Circle} from 'js-quadtree';\n// Or Common JS:\nconst {QuadTree, Box, Point, Circle} = require('js-quadtree');\n\nconst quadtree = new QuadTree(new Box(0, 0, 1000, 1000));\n\nquadtree.insert(new Point(100, 200, {custom: 'data'}));\n\nconst results = quadtree.query(new Circle(150, 150, 100));\n```\n### Browser\n\nYou can use the CDN:\n```html\n<script src=\"https://unpkg.com/js-quadtree\"></script>\n```\nAnd everything is globally accessible and **prefixed with `QT`**:\n```javascript\nconst quadtree = new QT.QuadTree(new QT.Box(0, 0, 1000, 1000));\n\nquadtree.insert(new QT.Point(100, 200, {custom: 'data'}));\n\nconst results = quadtree.query(new QT.Circle(150, 150, 100));\n```\n \n## Usage\n### Creation\n```javascript\n// Create the bounding area of the quadtree\nconst boundingArea = new Box(0, 0, 1000, 1000);\n\n// Instantiate  the new quadtree\nconst quadtree = new QuadTree(boundingArea);\n```\n\nYou can also specify the following optional parameters:\n```javascript\n// Create the bounding area of the quadtree\nconst boundingArea = new Box(0, 0, 1000, 1000);\n\nconst config = {\n    capacity: 10,           // Specify the maximum amount of point per node (default: 4)\n    removeEmptyNodes : true // Specify if the quadtree has to remove subnodes if they are empty (default: false).\n};\n\n// An array of point to insert directly (same as quadtree.insert(points) )\nconst points = [new Point(10, 10), new Point(52, 64)];\n\nconst quadtree = new QuadTree(boundingArea, config, points);\n```\n\n### Insert\n\nYou can insert a **Point** element, an array of **Point** element, your **own element** as long as it has an **x** and a **y** property or an array of custom element.\n\n```javascript\nconst point = new Point(10, 25);\n\nconst pointArray = [\n    new Point(45, 22),\n    new Point(30, 60),\n    new Point(14, 12)\n];\n\nconst customPoint = {\n    x: 94,\n    y: 23,\n    customField:{}\n};\n\nquadtree.insert(point);\nquadtree.insert(pointArray);\nquadtree.insert(customPoint);\n```\n\nYou can add your data in a **Point** element:\n```javascript\nconst myData = {\n    foo: 'bar'\n};\n\nconst point = new Point(50, 50, myData);\n\nconsole.log(point.data.foo); // 'bar'\n```\n\n### Remove\n\nAs the **insert** method, you can remove a **Point** element, an array of **Point** element, your **own element** as long as it has an **x** and a **y** property or an array of custom element.\n\n```javascript\nconst point = new Point(10, 25);\n\nconst pointArray = [\n    new Point(45, 22),\n    new Point(30, 60),\n    new Point(14, 12)\n];\n\nconst customPoint = {\n    x: 94,\n    y: 23\n};\n\nquadtree.remove(point);\nquadtree.remove(pointArray);\nquadtree.remove(customPoint);\n```\n\n**Note**: it doesn't have to be the same object, the test is done with the coordinates.\n\n### Query\n\nUse the **query** method to get all the point within a range.\n\n\n```javascript\n// This will return all the points in the given Box\nconst points = quadtree.query(new Box(10, 10, 100, 100));\n```\n\n```javascript\n// This will return all the points in the given Circle\nconst points = quadtree.query(new Circle(10, 10, 100));\n```\n\nYou can use a **Box** or a **Circle** as a range or even your own range element as long as it has the following methods:\n* **contains**: return true if a point is within this range, false otherwise.\n* **intersects**: return true if a **Box** intersects with this range, false otherwise.\nSee [the Box definition](src/Box.js) for a good example.\n\n### Get all the point\n\nIf want to retrieve all the point, you can use this method:\n\n```javascript\nconst points = quadtree.getAllPoints();\n```\n\n**Note**: you may want to store your points in a side array since, it have to look trough all the child nodes.\n\n### Get Tree\n\nYou can get the amount of points by nodes with the `getTree()` method.\n\n```javascript\nconst qt = new QuadTree(new Box(0, 0, 10, 10));\n\nqt.insert(new Point(5, 5));\nqt.insert(new Point(6, 5));\nqt.insert(new Point(4, 5));\nqt.insert(new Point(3, 5));\nqt.insert(new Point(2, 5));\nqt.insert(new Point(1, 5));\n\nconsole.log(qt.getTree());\n\n// {\n//     ne: 2, \n//     nw: {\n//         ne: 0, \n//         nw: 0, \n//         se: 3, \n//         sw: 2\n//     }, \n//     se: 2,\n//     sw: 3\n// }\n```\n\n### Clear\n\nUse this method to clear the quadtree. It remove all the points and sub-nodes.\n\n```javascript\nquadtree.clear();\n```\n\n## Contribute\n**Pull requests are welcome !** Feel free to contribute.\n\n## Credits\nCoded with ❤️ by [Corentin Thomasset](//corentin-thomasset.fr).\n\n## License\n\nThis project is under the [MIT license](LICENSE).\n","readmeFilename":"README.md","bugs":{"url":"https://github.com/CorentinTh/quadtree-js/issues"},"homepage":"https://github.com/CorentinTh/quadtree-js#readme","_id":"js-quadtree@0.0.0-8fc07e1","_nodeVersion":"10.19.0","_npmVersion":"6.13.4","dist":{"integrity":"sha512-ojQ0tazYqe6E0JmNVfbCE2ek0xoDBQedmEwxmj9C3rN1xoQs/R2uolcBlRPH+V0KRndZxNumBTXV3Xx5PbKYPA==","shasum":"78b50ac5b7004823a00fc0a67f8d632696adb8eb","tarball":"https://registry.npmjs.org/js-quadtree/-/js-quadtree-0.0.0-8fc07e1.tgz","fileCount":20,"unpackedSize":64019,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJebMZcCRA9TVsSAnZWagAAwFMP/1P4tjFWzw5oGsSz4cDZ\nbdijhvA7eVSRyKoNsw4XRHEbIVC1a/qb1IjmMr78CUJuq/+PG+lp2+fXmGnU\nh+fPAxn2SWVem/xcAakHOs6OFl8Xgmb6VGv24Gislesi1ZzM0Oz0eXXW5vGL\ntxmOixOVLKOadZs5PTF5QH8OfpnPwDUvoLnUlkzt5ijda26J4Z4eK0N0j7zf\nBWsiFy8/JN5g87OcEvTNDC+0ZlUMQvF38dgxhwmuTFlXkAK+wcTormMYVyRW\ntTRUwtIXBUyhnUetRYAezkAmaS9LvIMqw1Oc/z9W32zn4t7MMK78WpzcTRh+\naGHy/4qyYmGSQ8e/ivj1RTuMi2VKcyymwrBfaIZQYhUTJT5jcxnCW51gdF6g\ng91D0O0k0dveP5V4bn0/nBhM3oxvA3P3UiqcTWTUrvGWIaQWBdGEAOZCq4IP\nVxN0+cnH8aTiA2vdtpoUSltWKygE+8jujI68+ZYIITK6kMD7NmXciThRah8c\npFP4T4XThySokNeCTWMSNOZYQBqnKL73xWkoXiJ2fXrAwTF7ErIGcKPSa1Ov\nlcigW/rd3jPBxrLZCfvsMeoTCy4MU5J7peuCzRAVEO+mzdMyVB4x9qtm0rNP\nxn5OnDzX4EMACaQ+74KP8+tEN0S8GhwbsUPG7eL29bBM8Yofo/tapIsi+QfD\n8QCc\r\n=dRfT\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCGUjHUsn+TrLq60nnW2Xl941iVVrLsHrJA/rQal4WxgwIgc8klZsnmkhUULpzL8GZ836cf8vfmTsTIBa1CrzjinKY="}]},"maintainers":[{"name":"corentinth","email":"corentin.thomasset74+npm@gmail.com"}],"_npmUser":{"name":"corentinth","email":"corentin.thomasset74+npm@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/js-quadtree_0.0.0-8fc07e1_1584186971829_0.8471214029663223"},"_hasShrinkwrap":false},"0.0.0-88e4927":{"name":"js-quadtree","version":"0.0.0-88e4927","description":"A simple quadtree implementation for javascript (nodejs or browser with module bundler).","main":"dist/index.js","module":"dist/index.es.js","browser":"dist/index.js","scripts":{"build":"rollup -c","lint":"eslint ./src/**","test":"jest","prepare":"npm run build"},"repository":{"type":"git","url":"git+https://github.com/CorentinTh/quadtree-js.git"},"keywords":["quadtree","qt","quadtree.js","quadtree javascript"],"author":{"name":"Corentin Th","email":"corentin.thomasset74+npm@gmail.com","url":"https://github.com/CorentinTh"},"license":"MIT","devDependencies":{"@rollup/plugin-typescript":"^4.0.0","@types/jest":"^25.1.4","@typescript-eslint/eslint-plugin":"^2.22.0","@typescript-eslint/parser":"^2.22.0","eslint":"^6.8.0","jest":"^25.1.0","rollup":"^2.0.2","rollup-plugin-terser":"^5.2.0","rollup-plugin-typescript2":"^0.26.0","ts-jest":"^25.2.1","typescript":"^3.8.3"},"dependencies":{},"gitHead":"e109f5795e9b900f532fa5a379818ed99bb5eef4","readme":"\n<p align=\"center\">\n    <img src=\".github/logo.png\" alt=\"logo\">\n</p>\n\n\n<p align=\"center\">\n    <a href=\"https://www.npmjs.com/package/js-quadtree\"><img src=\"https://img.shields.io/npm/dw/js-quadtree.svg\" alt=\"Weekly Downloads\" /></a>\n    <a href=\"https://github.com/CorentinTh/quadtree-js/actions?query=workflow%3A%22Node+CI%22\"><img alt=\"GitHub Workflow Status\" src=\"https://img.shields.io/github/workflow/status/CorentinTh/quadtree-js/Node CI\"></a>\n    <a href='https://codecov.io/gh/CorentinTh/quadtree-js'><img src='https://codecov.io/gh/CorentinTh/quadtree-js/branch/master/graph/badge.svg\"' alt='Coverage Status' /></a>\n    <a href=\"https://www.npmjs.com/package/js-quadtree\"><img src=\"https://img.shields.io/bundlephobia/minzip/js-quadtree.svg\" alt=\"npm bundle size\" /></a>\n    <a href=\"https://www.npmjs.com/package/js-quadtree\"><img src=\"https://img.shields.io/github/package-json/v/CorentinTh/quadtree-js.svg\" alt=\"GitHub package.json version\" /></a>\n    <a href='LICENCE'><img src=\"https://img.shields.io/github/license/CorentinTh/quadtree-js.svg\" alt=\"Licence Badge\" /></a>\n</p>\n\n\n\nA powerful quadtree implementation in javascript. It can be used for nodejs or directly in the browser.\n\n## Installation\n### Node JS\n**Quadtree-js** can be installed using yarn or npm.\n\n```bash\nnpm install js-quadtree\n# or\nyarn add js-quadtree\n```\n\nAnd import :\n\n```javascript\n// EMAScript import\nimport {QuadTree, Box, Point, Circle} from 'js-quadtree';\n// Or Common JS:\nconst {QuadTree, Box, Point, Circle} = require('js-quadtree');\n\nconst quadtree = new QuadTree(new Box(0, 0, 1000, 1000));\n\nquadtree.insert(new Point(100, 200, {custom: 'data'}));\n\nconst results = quadtree.query(new Circle(150, 150, 100));\n```\n### Browser\n\nYou can use the CDN:\n```html\n<script src=\"https://unpkg.com/js-quadtree\"></script>\n```\nAnd everything is globally accessible and **prefixed with `QT`**:\n```javascript\nconst quadtree = new QT.QuadTree(new QT.Box(0, 0, 1000, 1000));\n\nquadtree.insert(new QT.Point(100, 200, {custom: 'data'}));\n\nconst results = quadtree.query(new QT.Circle(150, 150, 100));\n```\n \n## Usage\n### Creation\n```javascript\n// Create the bounding area of the quadtree\nconst boundingArea = new Box(0, 0, 1000, 1000);\n\n// Instantiate  the new quadtree\nconst quadtree = new QuadTree(boundingArea);\n```\n\nYou can also specify the following optional parameters:\n```javascript\n// Create the bounding area of the quadtree\nconst boundingArea = new Box(0, 0, 1000, 1000);\n\nconst config = {\n    capacity: 10,            // Specify the maximum amount of point per node (default: 4)\n    removeEmptyNodes : true, // Specify if the quadtree has to remove subnodes if they are empty (default: false).\n    maximumDepth : 5         // Specify the maximum depth of the quadtree. -1 for no limit (default: -1).\n};\n\n// An array of point to insert directly (same as quadtree.insert(points) )\nconst points = [new Point(10, 10), new Point(52, 64)];\n\nconst quadtree = new QuadTree(boundingArea, config, points);\n```\n\n### Insert\n\nYou can insert a **Point** element, an array of **Point** element, your **own element** as long as it has an **x** and a **y** property or an array of custom element.\n\n```javascript\nconst point = new Point(10, 25);\n\nconst pointArray = [\n    new Point(45, 22),\n    new Point(30, 60),\n    new Point(14, 12)\n];\n\nconst customPoint = {\n    x: 94,\n    y: 23,\n    customField:{}\n};\n\nquadtree.insert(point);\nquadtree.insert(pointArray);\nquadtree.insert(customPoint);\n```\n\nYou can add your data in a **Point** element:\n```javascript\nconst myData = {\n    foo: 'bar'\n};\n\nconst point = new Point(50, 50, myData);\n\nconsole.log(point.data.foo); // 'bar'\n```\n\n### Remove\n\nAs the **insert** method, you can remove a **Point** element, an array of **Point** element, your **own element** as long as it has an **x** and a **y** property or an array of custom element.\n\n```javascript\nconst point = new Point(10, 25);\n\nconst pointArray = [\n    new Point(45, 22),\n    new Point(30, 60),\n    new Point(14, 12)\n];\n\nconst customPoint = {\n    x: 94,\n    y: 23\n};\n\nquadtree.remove(point);\nquadtree.remove(pointArray);\nquadtree.remove(customPoint);\n```\n\n**Note**: it doesn't have to be the same object, the test is done with the coordinates.\n\n### Query\n\nUse the **query** method to get all the point within a range.\n\n\n```javascript\n// This will return all the points in the given Box\nconst points = quadtree.query(new Box(10, 10, 100, 100));\n```\n\n```javascript\n// This will return all the points in the given Circle\nconst points = quadtree.query(new Circle(10, 10, 100));\n```\n\nYou can use a **Box** or a **Circle** as a range or even your own range element as long as it has the following methods:\n* **contains**: return true if a point is within this range, false otherwise.\n* **intersects**: return true if a **Box** intersects with this range, false otherwise.\nSee [the Box definition](src/Box.js) for a good example.\n\n### Get all the point\n\nIf want to retrieve all the point, you can use this method:\n\n```javascript\nconst points = quadtree.getAllPoints();\n```\n\n**Note**: you may want to store your points in a side array since, it have to look trough all the child nodes.\n\n### Get Tree\n\nYou can get the amount of points by nodes with the `getTree()` method.\n\n```javascript\nconst qt = new QuadTree(new Box(0, 0, 10, 10));\n\nqt.insert(new Point(5, 5));\nqt.insert(new Point(6, 5));\nqt.insert(new Point(4, 5));\nqt.insert(new Point(3, 5));\nqt.insert(new Point(2, 5));\nqt.insert(new Point(1, 5));\n\nconsole.log(qt.getTree());\n\n// {\n//     ne: 2, \n//     nw: {\n//         ne: 0, \n//         nw: 0, \n//         se: 3, \n//         sw: 2\n//     }, \n//     se: 2,\n//     sw: 3\n// }\n```\n\n### Clear\n\nUse this method to clear the quadtree. It remove all the points and sub-nodes.\n\n```javascript\nquadtree.clear();\n```\n\n## Contribute\n**Pull requests are welcome !** Feel free to contribute.\n\n## Credits\nCoded with ❤️ by [Corentin Thomasset](//corentin-thomasset.fr).\n\n## License\n\nThis project is under the [MIT license](LICENSE).\n","readmeFilename":"README.md","bugs":{"url":"https://github.com/CorentinTh/quadtree-js/issues"},"homepage":"https://github.com/CorentinTh/quadtree-js#readme","_id":"js-quadtree@0.0.0-88e4927","_nodeVersion":"10.19.0","_npmVersion":"6.13.4","dist":{"integrity":"sha512-81mzSnsPj+fUt3WBPEnj1sWdQmv43cCsyBt/NzjsUlB+GSIuWVqOqEewq+6E8pzmMmxU0OFiSoGMMD6MRH8p6Q==","shasum":"62830a89386c9310576c606eb3487a04f755506c","tarball":"https://registry.npmjs.org/js-quadtree/-/js-quadtree-0.0.0-88e4927.tgz","fileCount":20,"unpackedSize":66380,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeibQ/CRA9TVsSAnZWagAAlp0QAI2j1BBYne3IZbsem2Nj\nbRlkCp1baAFxorxTvNrcAh4U4OY+LiJnEC8jGSn2o4AnpaxNl9foHUuyNpoS\nXlixrZ8tEfgKVzLDuHlazHxPshlIMXb+CkDBvNhPMGLHa+Ss2B6kj1l65Hms\nnvN7X6DLR7TkM8TG9GiBeN7w1bFMUeELwU20F+O1P9XAEm9haR0rjZTa1H6I\nqkIwMQtpHn25dhnWw+X7q7TulFd3vwjmY+YzghDT9Z65BtF0vnNIlOZayaKV\nFSh6OmIWPZLC20hjGoPWjZv9tq1PvLRdPuUI56ACZKkzr0nMxiaZ1fdA4tbQ\nVoJ4IHtr1MQgaLNfE8oeUxZwWIJDttyxwIyCtnBC01DWanfa2yjVf3nqWadr\ne+d2IQRd9UmqoPqg9X10rMMkbBaMHWTBw6b+ambi7Rmda/IDdFzvC0R1jrKK\nHczm5NJD2LE57acIuKqSPfho8g2tKhkEbsVri5k3n0wzgCDVdfw5C+5z8v2H\nQYoKmOzMfnV7mpI7n727JBFH0q/SRBHTUjbbj+tdOGvHZbPWKMYwXfLF4h95\nHGzfrUmPanzXMFkVs4wQSy9r0i/wMMmOx1Y8Mq7Q1O8nbBuVbUOArXTW0r4t\nLSx2oWiCs2iAz3Utfg3n3/qFE0t6ogFdc/DVbA7n9l7etkNIwTWI82U/LiFN\n1DSF\r\n=EQ5H\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCpTIWfwzKhcwMUQ1e0JUqx8tSJ9Vx3H4/USJsBNyhuAQIhAPwAZ38F0Zpmrkt0QtvcU556LrTl943FANB2654UWQYW"}]},"maintainers":[{"name":"corentinth","email":"corentin.thomasset74+npm@gmail.com"}],"_npmUser":{"name":"corentinth","email":"corentin.thomasset74+npm@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/js-quadtree_0.0.0-88e4927_1586082879040_0.11565344081413853"},"_hasShrinkwrap":false},"3.1.0":{"name":"js-quadtree","version":"3.1.0","description":"A simple quadtree implementation for javascript (nodejs or browser with module bundler).","main":"dist/index.js","module":"dist/index.es.js","browser":"dist/index.js","scripts":{"build":"rollup -c","lint":"eslint ./src/**","test":"jest","prepare":"npm run build"},"repository":{"type":"git","url":"git+https://github.com/CorentinTh/quadtree-js.git"},"keywords":["quadtree","qt","quadtree.js","quadtree javascript"],"author":{"name":"Corentin Th","email":"corentin.thomasset74+npm@gmail.com","url":"https://github.com/CorentinTh"},"license":"MIT","devDependencies":{"@rollup/plugin-typescript":"^4.0.0","@types/jest":"^25.1.4","@typescript-eslint/eslint-plugin":"^2.22.0","@typescript-eslint/parser":"^2.22.0","eslint":"^6.8.0","jest":"^25.1.0","rollup":"^2.0.2","rollup-plugin-terser":"^5.2.0","rollup-plugin-typescript2":"^0.26.0","ts-jest":"^25.2.1","typescript":"^3.8.3"},"dependencies":{},"gitHead":"26323ed222a7741abbe0f3ae63e7af37f7c24385","bugs":{"url":"https://github.com/CorentinTh/quadtree-js/issues"},"homepage":"https://github.com/CorentinTh/quadtree-js#readme","_id":"js-quadtree@3.1.0","_nodeVersion":"10.19.0","_npmVersion":"6.13.4","dist":{"integrity":"sha512-hywoJbtPkKWmBNjg+pKl7/IFM5GQTofkLYpm/cwQ5C9l4/hsvLLi+LhE+FR7ZBm3SunJoynGLQzpiFNyU2SCPA==","shasum":"1ce4b34366f6de3d58abafad19635e4f222cd8de","tarball":"https://registry.npmjs.org/js-quadtree/-/js-quadtree-3.1.0.tgz","fileCount":20,"unpackedSize":66372,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeibYaCRA9TVsSAnZWagAAueQP/AmsHg1BXm5wxeNA2AW/\nTF1KPzqGL1/UOKmxwPQOH8CzSm4gqkbIMN1GRBLdRFdVpGKn/u24qNkliPjD\nnHQ6f23nWe3IdlpIhdX5uaOr3fFMJdb6LLFIm+40hbt2mzjiG8VZdrVlWxjp\nZyiGHiiym1OhXhiKFlWXgxVwvscR2UxPiqQyG9eD2t21RE5wuo+9avepW9e+\nOF3zzzzGHi1kJF89yli8sCKuWGRTsX2dsXO6QEFZAiwlJJueEBRnfaLG10CT\nqhTNs/qOGPfgjwSYjuCYxsNKlTt/T/qXG29jWNShiIREZkKKGQkaYLDesaBo\nwL7kfbrXsBtuXLOpmEuYkuwF1rFeu/74eSoZXkJhf9oULJ3mlHyq687gkNpp\nu1QDk/rks7pl0BaYubGIpCpbAOXcZKiQB+zsdSc2q5kCoP2kyWVze8GG2e2j\n7wSXDdNNyWyyslSJ+1ByMF0Fa65laL7h4pGHkl2hE5MADn/ZoQJe0hw4Vqne\nCRks4DH0V43LJuvCgLcT+vxKLKowHrYzqf6Ce9AN3BCNOF8coK0F18xOyXu0\nd+odAp03o4FEMpSwcVK84cCswnpg1ybNi/EibTERwZMC+5iieX1o+imiTh4x\n5MM7ijkCeghsjRxO1wFGuxsvw4PZI7qJn7+mGh2QuRihz7YGsj5PyOFOdLUz\n4S+z\r\n=3fKA\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC4N+dCZ23bgWaJPFphHNq1IIUsdmsBodLE7iqgnkx/QgIgUFoa3F1axasckeyiIedLzvi+CfFJbLyCWw9QaGgnv/0="}]},"maintainers":[{"name":"corentinth","email":"corentin.thomasset74+npm@gmail.com"}],"_npmUser":{"name":"corentinth","email":"corentin.thomasset74+npm@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/js-quadtree_3.1.0_1586083353578_0.3716903488930736"},"_hasShrinkwrap":false},"0.0.0-f9c5e53":{"name":"js-quadtree","version":"0.0.0-f9c5e53","description":"A simple quadtree implementation for javascript (nodejs or browser with module bundler).","main":"dist/index.js","module":"dist/index.es.js","browser":"dist/index.js","scripts":{"build":"rollup -c","lint":"eslint ./src/**","test":"jest","prepare":"npm run build"},"repository":{"type":"git","url":"git+https://github.com/CorentinTh/quadtree-js.git"},"keywords":["quadtree","qt","quadtree.js","quadtree javascript"],"author":{"name":"Corentin Th","email":"corentin.thomasset74+npm@gmail.com","url":"https://github.com/CorentinTh"},"license":"MIT","devDependencies":{"@rollup/plugin-typescript":"^4.0.0","@types/jest":"^25.1.4","@typescript-eslint/eslint-plugin":"^2.22.0","@typescript-eslint/parser":"^2.22.0","eslint":"^6.8.0","jest":"^25.1.0","rollup":"^2.0.2","rollup-plugin-terser":"^5.2.0","rollup-plugin-typescript2":"^0.26.0","ts-jest":"^25.2.1","typescript":"^3.8.3"},"dependencies":{},"gitHead":"b72dd3d4ff1e101461567a125be1188f5e56b01b","readme":"\n<p align=\"center\">\n    <img src=\".github/logo.png\" alt=\"logo\">\n</p>\n\n\n<p align=\"center\">\n    <a href=\"https://www.npmjs.com/package/js-quadtree\"><img src=\"https://img.shields.io/npm/dw/js-quadtree.svg\" alt=\"Weekly Downloads\" /></a>\n    <a href=\"https://github.com/CorentinTh/quadtree-js/actions?query=workflow%3A%22Node+CI%22\"><img alt=\"GitHub Workflow Status\" src=\"https://img.shields.io/github/workflow/status/CorentinTh/quadtree-js/Node CI\"></a>\n    <a href='https://codecov.io/gh/CorentinTh/quadtree-js'><img src='https://codecov.io/gh/CorentinTh/quadtree-js/branch/master/graph/badge.svg' alt='Coverage Status' /></a>\n    <a href=\"https://www.npmjs.com/package/js-quadtree\"><img src=\"https://img.shields.io/bundlephobia/minzip/js-quadtree.svg\" alt=\"npm bundle size\" /></a>\n    <a href=\"https://www.npmjs.com/package/js-quadtree\"><img src=\"https://img.shields.io/github/package-json/v/CorentinTh/quadtree-js.svg\" alt=\"GitHub package.json version\" /></a>\n    <a href='LICENCE'><img src=\"https://img.shields.io/github/license/CorentinTh/quadtree-js.svg\" alt=\"Licence Badge\" /></a>\n</p>\n\n\n\nA powerful quadtree implementation in javascript. It can be used for nodejs or directly in the browser.\n\n## Installation\n### Node JS\n**Quadtree-js** can be installed using yarn or npm.\n\n```bash\nnpm install js-quadtree\n# or\nyarn add js-quadtree\n```\n\nAnd import :\n\n```javascript\n// EMAScript import\nimport {QuadTree, Box, Point, Circle} from 'js-quadtree';\n// Or Common JS:\nconst {QuadTree, Box, Point, Circle} = require('js-quadtree');\n\nconst quadtree = new QuadTree(new Box(0, 0, 1000, 1000));\n\nquadtree.insert(new Point(100, 200, {custom: 'data'}));\n\nconst results = quadtree.query(new Circle(150, 150, 100));\n```\n### Browser\n\nYou can use the CDN:\n```html\n<script src=\"https://unpkg.com/js-quadtree\"></script>\n```\nAnd everything is globally accessible and **prefixed with `QT`**:\n```javascript\nconst quadtree = new QT.QuadTree(new QT.Box(0, 0, 1000, 1000));\n\nquadtree.insert(new QT.Point(100, 200, {custom: 'data'}));\n\nconst results = quadtree.query(new QT.Circle(150, 150, 100));\n```\n \n## Usage\n### Creation\n```javascript\n// Create the bounding area of the quadtree\nconst boundingArea = new Box(0, 0, 1000, 1000);\n\n// Instantiate  the new quadtree\nconst quadtree = new QuadTree(boundingArea);\n```\n\nYou can also specify the following optional parameters:\n```javascript\n// Create the bounding area of the quadtree\nconst boundingArea = new Box(0, 0, 1000, 1000);\n\nconst config = {\n    capacity: 10,            // Specify the maximum amount of point per node (default: 4)\n    removeEmptyNodes : true, // Specify if the quadtree has to remove subnodes if they are empty (default: false).\n    maximumDepth : 5         // Specify the maximum depth of the quadtree. -1 for no limit (default: -1).\n};\n\n// An array of point to insert directly (same as quadtree.insert(points) )\nconst points = [new Point(10, 10), new Point(52, 64)];\n\nconst quadtree = new QuadTree(boundingArea, config, points);\n```\n\n### Insert\n\nYou can insert a **Point** element, an array of **Point** element, your **own element** as long as it has an **x** and a **y** property or an array of custom element.\n\n```javascript\nconst point = new Point(10, 25);\n\nconst pointArray = [\n    new Point(45, 22),\n    new Point(30, 60),\n    new Point(14, 12)\n];\n\nconst customPoint = {\n    x: 94,\n    y: 23,\n    customField:{}\n};\n\nquadtree.insert(point);\nquadtree.insert(pointArray);\nquadtree.insert(customPoint);\n```\n\nYou can add your data in a **Point** element:\n```javascript\nconst myData = {\n    foo: 'bar'\n};\n\nconst point = new Point(50, 50, myData);\n\nconsole.log(point.data.foo); // 'bar'\n```\n\n### Remove\n\nAs the **insert** method, you can remove a **Point** element, an array of **Point** element, your **own element** as long as it has an **x** and a **y** property or an array of custom element.\n\n```javascript\nconst point = new Point(10, 25);\n\nconst pointArray = [\n    new Point(45, 22),\n    new Point(30, 60),\n    new Point(14, 12)\n];\n\nconst customPoint = {\n    x: 94,\n    y: 23\n};\n\nquadtree.remove(point);\nquadtree.remove(pointArray);\nquadtree.remove(customPoint);\n```\n\n**Note**: it doesn't have to be the same object, the test is done with the coordinates.\n\n### Query\n\nUse the **query** method to get all the point within a range.\n\n\n```javascript\n// This will return all the points in the given Box\nconst points = quadtree.query(new Box(10, 10, 100, 100));\n```\n\n```javascript\n// This will return all the points in the given Circle\nconst points = quadtree.query(new Circle(10, 10, 100));\n```\n\nYou can use a **Box** or a **Circle** as a range or even your own range element as long as it has the following methods:\n* **contains**: return true if a point is within this range, false otherwise.\n* **intersects**: return true if a **Box** intersects with this range, false otherwise.\nSee [the Box definition](src/Box.js) for a good example.\n\n### Get all the point\n\nIf want to retrieve all the point, you can use this method:\n\n```javascript\nconst points = quadtree.getAllPoints();\n```\n\n**Note**: you may want to store your points in a side array since, it have to look trough all the child nodes.\n\n### Get Tree\n\nYou can get the amount of points by nodes with the `getTree()` method.\n\n```javascript\nconst qt = new QuadTree(new Box(0, 0, 10, 10));\n\nqt.insert(new Point(5, 5));\nqt.insert(new Point(6, 5));\nqt.insert(new Point(4, 5));\nqt.insert(new Point(3, 5));\nqt.insert(new Point(2, 5));\nqt.insert(new Point(1, 5));\n\nconsole.log(qt.getTree());\n\n// {\n//     ne: 2, \n//     nw: {\n//         ne: 0, \n//         nw: 0, \n//         se: 3, \n//         sw: 2\n//     }, \n//     se: 2,\n//     sw: 3\n// }\n```\n\n### Clear\n\nUse this method to clear the quadtree. It remove all the points and sub-nodes.\n\n```javascript\nquadtree.clear();\n```\n\n## Contribute\n**Pull requests are welcome !** Feel free to contribute.\n\n## Credits\nCoded with ❤️ by [Corentin Thomasset](//corentin-thomasset.fr).\n\n## License\n\nThis project is under the [MIT license](LICENSE).\n","readmeFilename":"README.md","bugs":{"url":"https://github.com/CorentinTh/quadtree-js/issues"},"homepage":"https://github.com/CorentinTh/quadtree-js#readme","_id":"js-quadtree@0.0.0-f9c5e53","_nodeVersion":"10.19.0","_npmVersion":"6.13.4","dist":{"integrity":"sha512-aOOQsPpVddf4B7l5jExnKqX7kYCJnM4mcyOIbWn+cwChr0Vo15lEqgvEjzaVwXb7JWLS4iV13YqHIQJ+VyluNw==","shasum":"d6c8b14ef9d717d427fb36431beef61efe0f9b80","tarball":"https://registry.npmjs.org/js-quadtree/-/js-quadtree-0.0.0-f9c5e53.tgz","fileCount":20,"unpackedSize":66379,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJejgF8CRA9TVsSAnZWagAAtPMP/RP5OPrsV6lkFlugSraY\nY6hwbaHb26gQ8ocjcVe7bueIZJ+5evOcQUlWrZ7bgBTZRei2mw/jPjDSsmIy\nZtUfi1zZhZ+WhuORCBZ/Kk/2CeveMsXmkrf8inNyDopYsuaaklLDSUsrvjfb\n0cZted3zBAG4ND5Jp4RHZz2fQxH8DAwlxQDkvHxUHfdNXMq/oYLDOPqNMX/L\nkz866w686cbuvzYm6FTsSjO9Q6QdRhjYKzhllyvMvXKy0N/lrCb/+sSV9U1z\nNAqvgGTqn/i+XHzhhjSky0zS006pdWlP+2rYpM63GUhdHuNHRrXJpBh0yU1X\nLMdA/OUf2mvAH41e58MiQX8uTMQfLb44loz9+zF4uK9R5Q7aBkxqQw4aqdXK\nXTCefBUv/mm2sfroa7KUOdvCbZoG6sil/QIRooE5xzPVqzi2C5lUYeu+92Af\nNrIfzFHnqMzIQq0CvTvLEQ7STeiagPO5X7TR2W/ARax//HvOq0yOUoy1aO8l\n4m2zNl0RrqVOdIt/42sU/hbMqSc6La97KwRM/TJT7VSoK0kVujX43KKTq8HC\n7wymN+euil1sLThqK6mQ7Tx+w7FNZBG4sZueRcoOb1NeSezczXW4XOjP6mIQ\nZFvNf08cybQuQjkjvhh2pnkzBtBLV8Y70jBwZXx/tW+iHijGoW2Q/6LdeA33\nMO+Q\r\n=AGIG\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD+iDfaJE92zWLAEowd4knyJp8pRnUmL+PL456LfvitDAIhAMaYIfX1pi/fl1baFAi99ng92KEUiULaKhe+yjmXY5Yf"}]},"maintainers":[{"name":"corentinth","email":"corentin.thomasset74+npm@gmail.com"}],"_npmUser":{"name":"corentinth","email":"corentin.thomasset74+npm@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/js-quadtree_0.0.0-f9c5e53_1586364796460_0.3146453986354756"},"_hasShrinkwrap":false},"0.0.0-d81730b":{"name":"js-quadtree","version":"0.0.0-d81730b","description":"A simple quadtree implementation for javascript (nodejs or browser with module bundler).","main":"dist/index.js","module":"dist/index.es.js","browser":"dist/index.js","scripts":{"build":"rollup -c","lint":"eslint ./src/**","test":"jest","prepare":"npm run build"},"repository":{"type":"git","url":"git+https://github.com/CorentinTh/quadtree-js.git"},"keywords":["quadtree","qt","quadtree.js","quadtree javascript"],"author":{"name":"Corentin Th","email":"corentin.thomasset74+npm@gmail.com","url":"https://github.com/CorentinTh"},"license":"MIT","devDependencies":{"@rollup/plugin-typescript":"^4.0.0","@types/jest":"^25.1.4","@typescript-eslint/eslint-plugin":"^2.22.0","@typescript-eslint/parser":"^2.22.0","eslint":"^6.8.0","jest":"^25.1.0","rollup":"^2.0.2","rollup-plugin-terser":"^5.2.0","rollup-plugin-typescript2":"^0.26.0","ts-jest":"^25.2.1","typescript":"^3.8.3"},"dependencies":{},"gitHead":"8476cc219015ddaf5ca4af74bff8d049d8eec4b2","readme":"\n<p align=\"center\">\n    <img src=\".github/logo.png\" alt=\"logo\">\n</p>\n\n\n<p align=\"center\">\n    <a href=\"https://www.npmjs.com/package/js-quadtree\"><img src=\"https://img.shields.io/npm/dw/js-quadtree.svg\" alt=\"Weekly Downloads\" /></a>\n    <a href=\"https://github.com/CorentinTh/quadtree-js/actions?query=workflow%3A%22Node+CI%22\"><img alt=\"GitHub Workflow Status\" src=\"https://img.shields.io/github/workflow/status/CorentinTh/quadtree-js/Node CI\"></a>\n    <a href='https://codecov.io/gh/CorentinTh/quadtree-js'><img src='https://codecov.io/gh/CorentinTh/quadtree-js/branch/master/graph/badge.svg' alt='Coverage Status' /></a>\n    <a href=\"https://www.npmjs.com/package/js-quadtree\"><img src=\"https://img.shields.io/bundlephobia/minzip/js-quadtree.svg\" alt=\"npm bundle size\" /></a>\n    <a href=\"https://www.npmjs.com/package/js-quadtree\"><img src=\"https://img.shields.io/github/package-json/v/CorentinTh/quadtree-js.svg\" alt=\"GitHub package.json version\" /></a>\n    <a href='LICENCE'><img src=\"https://img.shields.io/github/license/CorentinTh/quadtree-js.svg\" alt=\"Licence Badge\" /></a>\n</p>\n\n\n\nA powerful quadtree implementation in javascript. It can be used for nodejs or directly in the browser.\n\n## Installation\n### Node JS\n**Quadtree-js** can be installed using yarn or npm.\n\n```bash\nnpm install js-quadtree\n# or\nyarn add js-quadtree\n```\n\nAnd import :\n\n```javascript\n// EMAScript import\nimport {QuadTree, Box, Point, Circle} from 'js-quadtree';\n// Or Common JS:\nconst {QuadTree, Box, Point, Circle} = require('js-quadtree');\n\nconst quadtree = new QuadTree(new Box(0, 0, 1000, 1000));\n\nquadtree.insert(new Point(100, 200, {custom: 'data'}));\n\nconst results = quadtree.query(new Circle(150, 150, 100));\n```\n### Browser\n\nYou can use the CDN:\n```html\n<script src=\"https://unpkg.com/js-quadtree\"></script>\n```\nAnd everything is globally accessible and **prefixed with `QT`**:\n```javascript\nconst quadtree = new QT.QuadTree(new QT.Box(0, 0, 1000, 1000));\n\nquadtree.insert(new QT.Point(100, 200, {custom: 'data'}));\n\nconst results = quadtree.query(new QT.Circle(150, 150, 100));\n```\n \n## Usage\n### Creation\n```javascript\n// Create the bounding area of the quadtree\nconst boundingArea = new Box(0, 0, 1000, 1000);\n\n// Instantiate  the new quadtree\nconst quadtree = new QuadTree(boundingArea);\n```\n\nYou can also specify the following optional parameters:\n```javascript\n// Create the bounding area of the quadtree\nconst boundingArea = new Box(0, 0, 1000, 1000);\n\nconst config = {\n    capacity: 10,            // Specify the maximum amount of point per node (default: 4)\n    removeEmptyNodes : true, // Specify if the quadtree has to remove subnodes if they are empty (default: false).\n    maximumDepth : 5         // Specify the maximum depth of the quadtree. -1 for no limit (default: -1).\n};\n\n// An array of point to insert directly (same as quadtree.insert(points) )\nconst points = [new Point(10, 10), new Point(52, 64)];\n\nconst quadtree = new QuadTree(boundingArea, config, points);\n```\n\n### Insert\n\nYou can insert a **Point** element, an array of **Point** element, your **own element** as long as it has an **x** and a **y** property or an array of custom element.\n\n```javascript\nconst point = new Point(10, 25);\n\nconst pointArray = [\n    new Point(45, 22),\n    new Point(30, 60),\n    new Point(14, 12)\n];\n\nconst customPoint = {\n    x: 94,\n    y: 23,\n    customField:{}\n};\n\nquadtree.insert(point);\nquadtree.insert(pointArray);\nquadtree.insert(customPoint);\n```\n\nYou can add your data in a **Point** element:\n```javascript\nconst myData = {\n    foo: 'bar'\n};\n\nconst point = new Point(50, 50, myData);\n\nconsole.log(point.data.foo); // 'bar'\n```\n\n### Remove\n\nAs the **insert** method, you can remove a **Point** element, an array of **Point** element, your **own element** as long as it has an **x** and a **y** property or an array of custom element.\n\n```javascript\nconst point = new Point(10, 25);\n\nconst pointArray = [\n    new Point(45, 22),\n    new Point(30, 60),\n    new Point(14, 12)\n];\n\nconst customPoint = {\n    x: 94,\n    y: 23\n};\n\nquadtree.remove(point);\nquadtree.remove(pointArray);\nquadtree.remove(customPoint);\n```\n\n**Note**: it doesn't have to be the same object, the test is done with the coordinates.\n\n### Query\n\nUse the **query** method to get all the point within a range.\n\n\n```javascript\n// This will return all the points in the given Box\nconst points = quadtree.query(new Box(10, 10, 100, 100));\n```\n\n```javascript\n// This will return all the points in the given Circle\nconst points = quadtree.query(new Circle(10, 10, 100));\n```\n\nYou can use a **Box** or a **Circle** as a range or even your own range element as long as it has the following methods:\n* **contains**: return true if a point is within this range, false otherwise.\n* **intersects**: return true if a **Box** intersects with this range, false otherwise.\nSee [the Box definition](src/Box.js) for a good example.\n\n### Get all the point\n\nIf want to retrieve all the point, you can use this method:\n\n```javascript\nconst points = quadtree.getAllPoints();\n```\n\n**Note**: you may want to store your points in a side array since, it have to look trough all the child nodes.\n\n### Get Tree\n\nYou can get the amount of points by nodes with the `getTree()` method.\n\n```javascript\nconst qt = new QuadTree(new Box(0, 0, 10, 10));\n\nqt.insert(new Point(5, 5));\nqt.insert(new Point(6, 5));\nqt.insert(new Point(4, 5));\nqt.insert(new Point(3, 5));\nqt.insert(new Point(2, 5));\nqt.insert(new Point(1, 5));\n\nconsole.log(qt.getTree());\n\n// {\n//     ne: 2, \n//     nw: {\n//         ne: 0, \n//         nw: 0, \n//         se: 3, \n//         sw: 2\n//     }, \n//     se: 2,\n//     sw: 3\n// }\n```\n\n### Clear\n\nUse this method to clear the quadtree. It remove all the points and sub-nodes.\n\n```javascript\nquadtree.clear();\n```\n\n## Contribute\n**Pull requests are welcome !** Feel free to contribute.\n\n## Credits\nCoded with ❤️ by [Corentin Thomasset](//corentin-thomasset.fr).\n\n## License\n\nThis project is under the [MIT license](LICENSE).\n","readmeFilename":"README.md","bugs":{"url":"https://github.com/CorentinTh/quadtree-js/issues"},"homepage":"https://github.com/CorentinTh/quadtree-js#readme","_id":"js-quadtree@0.0.0-d81730b","_nodeVersion":"10.19.0","_npmVersion":"6.13.4","dist":{"integrity":"sha512-eZP2ymzpn/A3ZPEp2m0dlrfyQajNhAHVLYmaeoY7XSkDNhaCFuganJ0iLc8zF4HLmnZvX/Db0Zbkk3WCltpI0A==","shasum":"1eade7b2eaabd8da2cab92a4402bd25df10965c5","tarball":"https://registry.npmjs.org/js-quadtree/-/js-quadtree-0.0.0-d81730b.tgz","fileCount":20,"unpackedSize":65748,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJejgHlCRA9TVsSAnZWagAAOtAP/AgeM8LuWv7081NahBA5\nB36qr0eY3EIDAY65Bg8Kr61J+dSiL0K41Hm6m4sNC5OHgPlhl7zxQr3ZhQr+\nEP7OGPI2m/SKwzyrX0O14IAxWXARjtSqioXgy2bHpb1X/Y1hshpJgeOWYn/Y\nUtA4VqX2qY9dz5C6FPMZvfaUAV+7Ic9KKAx1gJsYyaB8er6JweIrIUTcEgaE\nTd5y/NWZS8tLyWiBPsJzq7RjjjF8ou3WHKgoCXVtomKikiJ35iRger44JIf1\nwV8jekv32zuIfwn0OmAPXdSgGlkARA4EXhY/VP3+njThZr+EEZRZowDgu5UF\ncf5P141vMRUKdBLMSxxc0AIkDw7LdSrgktH0rhf479kz3R7pRRQtDoxo76al\nuU67aHF0wE2evfdCkXSefdD/BI2W1RuBZpnfR8knqvT/2fnZ7pwNubkUQrZy\nGMFuQU4hdQAmM9n6fEmRUSUmFKZcImKfSy4lo0tWnBVirPmbszfdrgW2A/w8\nl0LRtRWOr6PsqrL9hqtwfsQ6UP07wJlRLPzTsE18ii88U3au78ohxK0W+zcd\nYjCygjDbVRYcRw+9RnuDHZ399aweIJwgNHLVPsKk5jpJGjy9fhLtvs/+Hskr\ngexGELXeH0VLmsOYjnx2W8T9gMYN/ljl+Pq6yHSquQGPO5nWT5m6qn1CTVQA\nbehv\r\n=fCAi\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBzu0JBheSmh/HQc5ueXHLFe3zf/aNYbwFY7NA0YwvA3AiEAm26/W/J9VQRAXGFjv3JMOYutgecrnX54Jl6M17591WE="}]},"maintainers":[{"name":"corentinth","email":"corentin.thomasset74+npm@gmail.com"}],"_npmUser":{"name":"corentinth","email":"corentin.thomasset74+npm@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/js-quadtree_0.0.0-d81730b_1586364900568_0.0599864083549122"},"_hasShrinkwrap":false},"0.0.0-2b81fe8":{"name":"js-quadtree","version":"0.0.0-2b81fe8","description":"A simple quadtree implementation for javascript (nodejs or browser with module bundler).","main":"dist/index.js","module":"dist/index.es.js","browser":"dist/index.js","scripts":{"build":"rollup -c","lint":"eslint ./src/**","test":"jest","prepare":"npm run build"},"repository":{"type":"git","url":"git+https://github.com/CorentinTh/quadtree-js.git"},"keywords":["quadtree","qt","quadtree.js","quadtree javascript"],"author":{"name":"Corentin Th","email":"corentin.thomasset74+npm@gmail.com","url":"https://github.com/CorentinTh"},"license":"MIT","devDependencies":{"@rollup/plugin-typescript":"^4.0.0","@types/jest":"^25.1.4","@typescript-eslint/eslint-plugin":"^2.22.0","@typescript-eslint/parser":"^2.22.0","eslint":"^6.8.0","jest":"^25.1.0","rollup":"^2.0.2","rollup-plugin-terser":"^5.2.0","rollup-plugin-typescript2":"^0.26.0","ts-jest":"^25.2.1","typescript":"^3.8.3"},"dependencies":{},"gitHead":"a88a3c2e104d7bdf524d846bafef505cc99e05ba","readme":"\n<p align=\"center\">\n    <img src=\".github/logo.png\" alt=\"logo\">\n</p>\n\n\n<p align=\"center\">\n    <a href=\"https://www.npmjs.com/package/js-quadtree\"><img src=\"https://img.shields.io/npm/dw/js-quadtree.svg\" alt=\"Weekly Downloads\" /></a>\n    <a href=\"https://github.com/CorentinTh/quadtree-js/actions?query=workflow%3A%22Node+CI%22\"><img alt=\"GitHub Workflow Status\" src=\"https://img.shields.io/github/workflow/status/CorentinTh/quadtree-js/Node CI\"></a>\n    <a href='https://codecov.io/gh/CorentinTh/quadtree-js'><img src='https://codecov.io/gh/CorentinTh/quadtree-js/branch/master/graph/badge.svg' alt='Coverage Status' /></a>\n    <a href=\"https://www.npmjs.com/package/js-quadtree\"><img src=\"https://img.shields.io/bundlephobia/minzip/js-quadtree.svg\" alt=\"npm bundle size\" /></a>\n    <a href=\"https://www.npmjs.com/package/js-quadtree\"><img src=\"https://img.shields.io/github/package-json/v/CorentinTh/quadtree-js.svg\" alt=\"GitHub package.json version\" /></a>\n    <a href='LICENCE'><img src=\"https://img.shields.io/github/license/CorentinTh/quadtree-js.svg\" alt=\"Licence Badge\" /></a>\n</p>\n\n\n\nA powerful quadtree implementation in javascript. It can be used for nodejs or directly in the browser.\n\n## Installation\n### Node JS\n**Quadtree-js** can be installed using yarn or npm.\n\n```bash\nnpm install js-quadtree\n# or\nyarn add js-quadtree\n```\n\nAnd import :\n\n```javascript\n// EMAScript import\nimport {QuadTree, Box, Point, Circle} from 'js-quadtree';\n// Or Common JS:\nconst {QuadTree, Box, Point, Circle} = require('js-quadtree');\n\nconst quadtree = new QuadTree(new Box(0, 0, 1000, 1000));\n\nquadtree.insert(new Point(100, 200, {custom: 'data'}));\n\nconst results = quadtree.query(new Circle(150, 150, 100));\n```\n### Browser\n\nYou can use the CDN:\n```html\n<script src=\"https://unpkg.com/js-quadtree\"></script>\n```\nAnd everything is globally accessible and **prefixed with `QT`**:\n```javascript\nconst quadtree = new QT.QuadTree(new QT.Box(0, 0, 1000, 1000));\n\nquadtree.insert(new QT.Point(100, 200, {custom: 'data'}));\n\nconst results = quadtree.query(new QT.Circle(150, 150, 100));\n```\n \n## Usage\n### Creation\n```javascript\n// Create the bounding area of the quadtree\nconst boundingArea = new Box(0, 0, 1000, 1000);\n\n// Instantiate  the new quadtree\nconst quadtree = new QuadTree(boundingArea);\n```\n\nYou can also specify the following optional parameters:\n```javascript\n// Create the bounding area of the quadtree\nconst boundingArea = new Box(0, 0, 1000, 1000);\n\nconst config = {\n    capacity: 10,            // Specify the maximum amount of point per node (default: 4)\n    removeEmptyNodes : true, // Specify if the quadtree has to remove subnodes if they are empty (default: false).\n    maximumDepth : 5         // Specify the maximum depth of the quadtree. -1 for no limit (default: -1).\n};\n\n// An array of point to insert directly (same as quadtree.insert(points) )\nconst points = [new Point(10, 10), new Point(52, 64)];\n\nconst quadtree = new QuadTree(boundingArea, config, points);\n```\n\n### Insert\n\nYou can insert a **Point** element, an array of **Point** element, your **own element** as long as it has an **x** and a **y** property or an array of custom element.\n\n```javascript\nconst point = new Point(10, 25);\n\nconst pointArray = [\n    new Point(45, 22),\n    new Point(30, 60),\n    new Point(14, 12)\n];\n\nconst customPoint = {\n    x: 94,\n    y: 23,\n    customField:{}\n};\n\nquadtree.insert(point);\nquadtree.insert(pointArray);\nquadtree.insert(customPoint);\n```\n\nYou can add your data in a **Point** element:\n```javascript\nconst myData = {\n    foo: 'bar'\n};\n\nconst point = new Point(50, 50, myData);\n\nconsole.log(point.data.foo); // 'bar'\n```\n\n### Remove\n\nAs the **insert** method, you can remove a **Point** element, an array of **Point** element, your **own element** as long as it has an **x** and a **y** property or an array of custom element.\n\n```javascript\nconst point = new Point(10, 25);\n\nconst pointArray = [\n    new Point(45, 22),\n    new Point(30, 60),\n    new Point(14, 12)\n];\n\nconst customPoint = {\n    x: 94,\n    y: 23\n};\n\nquadtree.remove(point);\nquadtree.remove(pointArray);\nquadtree.remove(customPoint);\n```\n\n**Note**: it doesn't have to be the same object, the test is done with the coordinates.\n\n### Query\n\nUse the **query** method to get all the point within a range.\n\n\n```javascript\n// This will return all the points in the given Box\nconst points = quadtree.query(new Box(10, 10, 100, 100));\n```\n\n```javascript\n// This will return all the points in the given Circle\nconst points = quadtree.query(new Circle(10, 10, 100));\n```\n\nYou can use a **Box** or a **Circle** as a range or even your own range element as long as it has the following methods:\n* **contains**: return true if a point is within this range, false otherwise.\n* **intersects**: return true if a **Box** intersects with this range, false otherwise.\nSee [the Box definition](src/Box.js) for a good example.\n\n### Get all the point\n\nIf want to retrieve all the point, you can use this method:\n\n```javascript\nconst points = quadtree.getAllPoints();\n```\n\n**Note**: you may want to store your points in a side array since, it have to look trough all the child nodes.\n\n### Get Tree\n\nYou can get the amount of points by nodes with the `getTree()` method.\n\n```javascript\nconst qt = new QuadTree(new Box(0, 0, 10, 10));\n\nqt.insert(new Point(5, 5));\nqt.insert(new Point(6, 5));\nqt.insert(new Point(4, 5));\nqt.insert(new Point(3, 5));\nqt.insert(new Point(2, 5));\nqt.insert(new Point(1, 5));\n\nconsole.log(qt.getTree());\n\n// {\n//     ne: 2, \n//     nw: {\n//         ne: 0, \n//         nw: 0, \n//         se: 3, \n//         sw: 2\n//     }, \n//     se: 2,\n//     sw: 3\n// }\n```\n\n### Clear\n\nUse this method to clear the quadtree. It remove all the points and sub-nodes.\n\n```javascript\nquadtree.clear();\n```\n\n## Contribute\n**Pull requests are welcome !** Feel free to contribute.\n\n## Credits\nCoded with ❤️ by [Corentin Thomasset](//corentin-thomasset.fr).\n\n## License\n\nThis project is under the [MIT license](LICENSE).\n","readmeFilename":"README.md","bugs":{"url":"https://github.com/CorentinTh/quadtree-js/issues"},"homepage":"https://github.com/CorentinTh/quadtree-js#readme","_id":"js-quadtree@0.0.0-2b81fe8","_nodeVersion":"10.19.0","_npmVersion":"6.13.4","dist":{"integrity":"sha512-B17tY7HwY6Ec2qIHdVlvzrpX2YBACBRbbozuwqBj/+IhVoW7jPTYlUQqrqNGM0rreLCPDag025BZ7Azp922iFg==","shasum":"04986c09360d05b4d5815299b1fdb2eec2a04953","tarball":"https://registry.npmjs.org/js-quadtree/-/js-quadtree-0.0.0-2b81fe8.tgz","fileCount":20,"unpackedSize":65868,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJejgKQCRA9TVsSAnZWagAA3CkQAKJLav7NcxLHyppmHWZb\n+bqKfhvq/67a8McVx3TTAm6gewN5ER94cqE/KabnQXrJ0swof5eVdqwV4mb+\nNirhsQ5bEayptb10Ybsb5EUfh4iQGY8RuDyiHuuawdnWGMMJwgGJx3mIUglj\n9bvI7JOYVYunyLePYwq8BoC+VhXrjgPokiF12pUsRu63ihEtagzqaf30tT12\nO+o8Sd0fY2QmTfoyGlYnLwGKh2p0xEAphw5+9yw4C4W6dlEkFuZznUum+mSv\nyTxsauBoU9I+N69bkyTaj9iUpCq0C3iikxfc8jW7Tc3kW0tCfwQEvPFMnK03\n82AP4vr8UsGSB0OQq/kM80HWN3nn5deI2MGj5lobiQGfntWGNhJuldzgZGYE\nRo1NbBaUlGwV5W1w4llXvJFZ8v7u11odVWvqvJanfENhgjZ7MGwOFdSB2YD6\nMioNhhjaEeHF/mFQIeT8gTDZ7VN8Y6Gy4gQ15V+6GzqBwvPZXU7bKVL2QGo5\nR0WWZzCHBuv5ZCBysM9MNb2I1aRxQKRiUJMHxy/XmlOB8dXM7+ynnQ5fs36F\nXaCw1y8OlDIMz8psbjfW07FkosWhC4SbB6Au+xruHdoPCXtBOFaLYWRuhz8p\nAab2I13zRkjTuGUk8mJRIZzycHR+j/8OK9Ge3mkv7hLpBmVkRtk0tbbxBo6O\nEopd\r\n=HiYY\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCF30zCbACxadBn92o0Dxn9Xc99HDns04+9Irr8GZhl3QIgNSYXih7d1WMARNWivKSnIU/msuWkbfCgFUAa1ePnHTs="}]},"maintainers":[{"name":"corentinth","email":"corentin.thomasset74+npm@gmail.com"}],"_npmUser":{"name":"corentinth","email":"corentin.thomasset74+npm@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/js-quadtree_0.0.0-2b81fe8_1586365071967_0.3921066289375741"},"_hasShrinkwrap":false},"3.1.1":{"name":"js-quadtree","version":"3.1.1","description":"A simple quadtree implementation for javascript (nodejs or browser with module bundler).","main":"dist/index.js","module":"dist/index.es.js","browser":"dist/index.js","scripts":{"build":"rollup -c","lint":"eslint ./src/**","test":"jest","prepare":"npm run build"},"repository":{"type":"git","url":"git+https://github.com/CorentinTh/quadtree-js.git"},"keywords":["quadtree","qt","quadtree.js","quadtree javascript"],"author":{"name":"Corentin Th","email":"corentin.thomasset74+npm@gmail.com","url":"https://github.com/CorentinTh"},"license":"MIT","devDependencies":{"@rollup/plugin-typescript":"^4.0.0","@types/jest":"^25.1.4","@typescript-eslint/eslint-plugin":"^2.22.0","@typescript-eslint/parser":"^2.22.0","eslint":"^6.8.0","jest":"^25.1.0","rollup":"^2.0.2","rollup-plugin-terser":"^5.2.0","rollup-plugin-typescript2":"^0.26.0","ts-jest":"^25.2.1","typescript":"^3.8.3"},"dependencies":{},"gitHead":"02db4b9810167547220ee259257cad8cfe0ef500","bugs":{"url":"https://github.com/CorentinTh/quadtree-js/issues"},"homepage":"https://github.com/CorentinTh/quadtree-js#readme","_id":"js-quadtree@3.1.1","_nodeVersion":"10.19.0","_npmVersion":"6.13.4","dist":{"integrity":"sha512-GItLrCy1EBweAD1AZFXBZ+XRM+mhx458TJjS1ESOwKQfWfTxbusnERt8Ph1ocjlCeeK1CK9t22VIq+B2sc8Zqg==","shasum":"9ceb1d30648658bf179ea315812b7fdb44508623","tarball":"https://registry.npmjs.org/js-quadtree/-/js-quadtree-3.1.1.tgz","fileCount":20,"unpackedSize":65860,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJejgMbCRA9TVsSAnZWagAAZA0P/2gffW1QbXwZmvWu6Q3X\n9PAzb3fVuykaK7Xj7lY8CQcgTbJ1NRaBg3VZi0nRGWmgc0Sm56Gr2H9rZL0K\nx8flBJg+2ZcjLePQ91U1Jo0wi4cbNxCfX0tm0YQJ9gyJgpvrkwlm/qrY7W2q\n65WQqXrpxUSZjLHTmhd1LzOsuJDJVllnhpxjlCHKSg7WyP3X08aTSoUkCl4o\ng16W+/TQQL11ZmZzj5RzcJmBp4vodezKR1XG04B+IkPsbVUE9jWBpb/jFIwH\njzzzxerXUXd4HxIMcUAKFi/EOUQ6gIme/I/EzCxmIShS+gMVBSz6Wiwr3t2E\nxKe19mfXm2qbzYwGJKNP44u7MC3VzZZfdRx65UwdbtAPPTuiHetMRlnIRejl\nUoaF4aU2AxQ3AqbDpAIQdbwnvVn11s6AYT4nOo16mhwxRkpPZgXkdYdax58r\n5cUx8nmIleSOyOV2MA/LegQih8PIhSnksyj5+/MBEx6DdhsfA63z5mHErTrt\nBDfjr+zPONHLpu4fykRtpWtq2Wf8pnjGrgQ4C4BudaV8+X0F8/K9sy5zKndB\nbItvYHZGz97YzTExuc/lBHbcwBmHI6Ru5oL0bKmWd/nu3WTZNmbaIKYQiCd3\nHkddyaOFNKHZ3xrLP687sMikVf9pUCOZbqkie9dclmOseCTNQVO472Y6M0zG\npGVp\r\n=7ujD\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFy7cFyfEVTO0Vn2gJzX+udBbzdAzkTfbDiTXabHN7ZYAiEAkBnfXsW8JlxJnQh1sLIL5UghuranuVSOUYtqsWInvoQ="}]},"maintainers":[{"name":"corentinth","email":"corentin.thomasset74+npm@gmail.com"}],"_npmUser":{"name":"corentinth","email":"corentin.thomasset74+npm@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/js-quadtree_3.1.1_1586365211116_0.1353634079185786"},"_hasShrinkwrap":false},"0.0.0-30bec57":{"name":"js-quadtree","version":"0.0.0-30bec57","description":"A simple quadtree implementation for javascript (nodejs or browser with module bundler).","main":"dist/index.js","module":"dist/index.es.js","browser":"dist/index.js","scripts":{"build":"rollup -c","lint":"eslint ./src/**","test":"jest","prepare":"npm run build"},"repository":{"type":"git","url":"git+https://github.com/CorentinTh/quadtree-js.git"},"keywords":["quadtree","qt","quadtree.js","quadtree javascript"],"author":{"name":"Corentin Th","email":"corentin.thomasset74+npm@gmail.com","url":"https://github.com/CorentinTh"},"license":"MIT","devDependencies":{"@rollup/plugin-typescript":"^4.0.0","@types/jest":"^25.1.4","@typescript-eslint/eslint-plugin":"^2.22.0","@typescript-eslint/parser":"^2.22.0","eslint":"^6.8.0","jest":"^25.1.0","rollup":"^2.0.2","rollup-plugin-terser":"^5.2.0","rollup-plugin-typescript2":"^0.26.0","ts-jest":"^25.2.1","typescript":"^3.8.3"},"dependencies":{},"gitHead":"d2a8e76b0a9a3f4a8b007151b7230f645a6824ef","readme":"\n<p align=\"center\">\n    <img src=\".github/logo.png\" alt=\"logo\">\n</p>\n\n\n<p align=\"center\">\n    <a href=\"https://www.npmjs.com/package/js-quadtree\"><img src=\"https://img.shields.io/npm/dw/js-quadtree.svg\" alt=\"Weekly Downloads\" /></a>\n    <a href=\"https://github.com/CorentinTh/quadtree-js/actions?query=workflow%3A%22Node+CI%22\"><img alt=\"GitHub Workflow Status\" src=\"https://img.shields.io/github/workflow/status/CorentinTh/quadtree-js/Node CI\"></a>\n    <a href='https://codecov.io/gh/CorentinTh/quadtree-js'><img src='https://codecov.io/gh/CorentinTh/quadtree-js/branch/master/graph/badge.svg' alt='Coverage Status' /></a>\n    <a href=\"https://www.npmjs.com/package/js-quadtree\"><img src=\"https://img.shields.io/bundlephobia/minzip/js-quadtree.svg\" alt=\"npm bundle size\" /></a>\n    <a href=\"https://www.npmjs.com/package/js-quadtree\"><img src=\"https://img.shields.io/github/package-json/v/CorentinTh/quadtree-js.svg\" alt=\"GitHub package.json version\" /></a>\n    <a href='LICENCE'><img src=\"https://img.shields.io/github/license/CorentinTh/quadtree-js.svg\" alt=\"Licence Badge\" /></a>\n</p>\n\n\n\nA powerful quadtree implementation in javascript. It can be used for nodejs or directly in the browser.\n\n## Installation\n### Node JS\n**Quadtree-js** can be installed using yarn or npm.\n\n```bash\nnpm install js-quadtree\n# or\nyarn add js-quadtree\n```\n\nAnd import :\n\n```javascript\n// EMAScript import\nimport {QuadTree, Box, Point, Circle} from 'js-quadtree';\n// Or Common JS:\nconst {QuadTree, Box, Point, Circle} = require('js-quadtree');\n\nconst quadtree = new QuadTree(new Box(0, 0, 1000, 1000));\n\nquadtree.insert(new Point(100, 200, {custom: 'data'}));\n\nconst results = quadtree.query(new Circle(150, 150, 100));\n```\n### Browser\n\nYou can use the CDN:\n```html\n<script src=\"https://unpkg.com/js-quadtree\"></script>\n```\nAnd everything is globally accessible and **prefixed with `QT`**:\n```javascript\nconst quadtree = new QT.QuadTree(new QT.Box(0, 0, 1000, 1000));\n\nquadtree.insert(new QT.Point(100, 200, {custom: 'data'}));\n\nconst results = quadtree.query(new QT.Circle(150, 150, 100));\n```\n \n## Usage\n### Creation\n```javascript\n// Create the bounding area of the quadtree\nconst boundingArea = new Box(0, 0, 1000, 1000);\n\n// Instantiate  the new quadtree\nconst quadtree = new QuadTree(boundingArea);\n```\n\nYou can also specify the following optional parameters:\n```javascript\n// Create the bounding area of the quadtree\nconst boundingArea = new Box(0, 0, 1000, 1000);\n\nconst config = {\n    capacity: 10,            // Specify the maximum amount of point per node (default: 4)\n    removeEmptyNodes : true, // Specify if the quadtree has to remove subnodes if they are empty (default: false).\n    maximumDepth : 5         // Specify the maximum depth of the quadtree. -1 for no limit (default: -1).\n};\n\n// An array of point to insert directly (same as quadtree.insert(points) )\nconst points = [new Point(10, 10), new Point(52, 64)];\n\nconst quadtree = new QuadTree(boundingArea, config, points);\n```\n\n### Insert\n\nYou can insert a **Point** element, an array of **Point** element, your **own element** as long as it has an **x** and a **y** property or an array of custom element.\n\n```javascript\nconst point = new Point(10, 25);\n\nconst pointArray = [\n    new Point(45, 22),\n    new Point(30, 60),\n    new Point(14, 12)\n];\n\nconst customPoint = {\n    x: 94,\n    y: 23,\n    customField:{}\n};\n\nquadtree.insert(point);\nquadtree.insert(pointArray);\nquadtree.insert(customPoint);\n```\n\nYou can add your data in a **Point** element:\n```javascript\nconst myData = {\n    foo: 'bar'\n};\n\nconst point = new Point(50, 50, myData);\n\nconsole.log(point.data.foo); // 'bar'\n```\n\n### Remove\n\nAs the **insert** method, you can remove a **Point** element, an array of **Point** element, your **own element** as long as it has an **x** and a **y** property or an array of custom element.\n\n```javascript\nconst point = new Point(10, 25);\n\nconst pointArray = [\n    new Point(45, 22),\n    new Point(30, 60),\n    new Point(14, 12)\n];\n\nconst customPoint = {\n    x: 94,\n    y: 23\n};\n\nquadtree.remove(point);\nquadtree.remove(pointArray);\nquadtree.remove(customPoint);\n```\n\n**Note**: it doesn't have to be the same object, the test is done with the coordinates.\n\n### Query\n\nUse the **query** method to get all the point within a range.\n\n\n```javascript\n// This will return all the points in the given Box\nconst points = quadtree.query(new Box(10, 10, 100, 100));\n```\n\n```javascript\n// This will return all the points in the given Circle\nconst points = quadtree.query(new Circle(10, 10, 100));\n```\n\nYou can use a **Box** or a **Circle** as a range or even your own range element as long as it has the following methods:\n* **contains**: return true if a point is within this range, false otherwise.\n* **intersects**: return true if a **Box** intersects with this range, false otherwise.\nSee [the Box definition](src/Box.js) for a good example.\n\n### Get all the point\n\nIf want to retrieve all the point, you can use this method:\n\n```javascript\nconst points = quadtree.getAllPoints();\n```\n\n**Note**: you may want to store your points in a side array since, it have to look trough all the child nodes.\n\n### Get Tree\n\nYou can get the amount of points by nodes with the `getTree()` method.\n\n```javascript\nconst qt = new QuadTree(new Box(0, 0, 10, 10));\n\nqt.insert(new Point(5, 5));\nqt.insert(new Point(6, 5));\nqt.insert(new Point(4, 5));\nqt.insert(new Point(3, 5));\nqt.insert(new Point(2, 5));\nqt.insert(new Point(1, 5));\n\nconsole.log(qt.getTree());\n\n// {\n//     ne: 2, \n//     nw: {\n//         ne: 0, \n//         nw: 0, \n//         se: 3, \n//         sw: 2\n//     }, \n//     se: 2,\n//     sw: 3\n// }\n```\n\n### Clear\n\nUse this method to clear the quadtree. It remove all the points and sub-nodes.\n\n```javascript\nquadtree.clear();\n```\n\n## Contribute\n**Pull requests are welcome !** Feel free to contribute.\n\n## Credits\nCoded with ❤️ by [Corentin Thomasset](//corentin-thomasset.fr).\n\n## License\n\nThis project is under the [MIT license](LICENSE).\n","readmeFilename":"README.md","bugs":{"url":"https://github.com/CorentinTh/quadtree-js/issues"},"homepage":"https://github.com/CorentinTh/quadtree-js#readme","_id":"js-quadtree@0.0.0-30bec57","_nodeVersion":"10.20.1","_npmVersion":"6.14.4","dist":{"integrity":"sha512-iGtiMg5+25f0aJQpaMIO2leA4BfKa4vJlHaEP91TNfL8EzjQAusZ4v0EFk7ZDonAHs8+ctE7+MWaAGaALhHXmA==","shasum":"c1aebab071e625e9052832bba9b5c115c3756d1b","tarball":"https://registry.npmjs.org/js-quadtree/-/js-quadtree-0.0.0-30bec57.tgz","fileCount":20,"unpackedSize":66563,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJer+VICRA9TVsSAnZWagAAWDcP/jz9KQdSSxy92Cb8KTg4\nRfgE1/QZjO3Zniw+qrrJ4YylnPHbZM9bBTbamXK0DISWTKA/lgRHL3oeh7d9\nWh1xi5kCk+UBSRVufLdXeU0ubPV/GyCKGEBHzL4GGf1MbVohqkXYB81cjhTp\ndWDExw+TUpekLvusWIccc9mwXBjxNMQVlGEleWOnTTPZdopz297swC6x+GeT\nC38ChdA0bAk/UKzKlGANP8tq0bnBbG47Ul2u9ACXn3GM38s1qflByA/M5oXX\ncSS52gO6d2ysRe9Kxw/sPYpROt/vDVuJeOxTV6YrmxcpJI66kublu8AChMrj\nTfArMSCfX8XIC4qKmQf6vsFrDkz/N5oOt3TCn+RU/ZS/ac9T5rC9iTs1n44K\nPC51miDTN/LUCvpI/pSmWsX6bXsVKt4EUWa8Txxixgmup2NZ7qG5s3kLQ8jc\nOmX1OXoeYCuRu299LP7I+50ArGdFcqdNyfj44hz7E+XA6ukZWkkdB4Iz82nz\nLAXQn2fMhX011bWrcsXlXoBJtte2059NxRj0r2wo9jtNGdimhjZifM38PC+Z\nhtJWRyZgRb6hmJFDdSI8ObUUeqPioXDGkisuiwCwQ/0SInijPON2MZI3HUmu\n4AvH/0827+Fg1Nu6ZNI/WgJi74GRWcAQZZYHYfSrk1UbLt3w2vKDNFRj58w2\nk4BY\r\n=nJSj\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIB3NkKZMQ6YQnnKcEljGE1umhWJfVWQGGgYPDTu+DMDFAiAhkR5DoaME8Yrn+9x9n+ybI5D3YqlQh5NdrvkogB8Y9w=="}]},"maintainers":[{"name":"corentinth","email":"corentin.thomasset74+npm@gmail.com"}],"_npmUser":{"name":"corentinth","email":"corentin.thomasset74+npm@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/js-quadtree_0.0.0-30bec57_1588585799768_0.6830780598272361"},"_hasShrinkwrap":false},"0.0.0-7c20355":{"name":"js-quadtree","version":"0.0.0-7c20355","description":"A simple quadtree implementation for javascript (nodejs or browser with module bundler).","main":"dist/index.js","module":"dist/index.es.js","browser":"dist/index.js","scripts":{"build":"rollup -c","lint":"eslint ./src/**","test":"jest","prepare":"npm run build"},"repository":{"type":"git","url":"git+https://github.com/CorentinTh/quadtree-js.git"},"keywords":["quadtree","qt","quadtree.js","quadtree javascript"],"author":{"name":"Corentin Th","email":"corentin.thomasset74+npm@gmail.com","url":"https://github.com/CorentinTh"},"license":"MIT","devDependencies":{"@rollup/plugin-typescript":"^4.0.0","@types/jest":"^25.1.4","@typescript-eslint/eslint-plugin":"^2.22.0","@typescript-eslint/parser":"^2.22.0","eslint":"^6.8.0","jest":"^25.1.0","rollup":"^2.0.2","rollup-plugin-terser":"^5.2.0","rollup-plugin-typescript2":"^0.26.0","ts-jest":"^25.2.1","typescript":"^3.8.3"},"dependencies":{},"gitHead":"05ab1799a40157a3d99c00e0def07950e788aec0","readme":"\n<p align=\"center\">\n    <img src=\".github/logo.png\" alt=\"logo\">\n</p>\n\n\n<p align=\"center\">\n    <a href=\"https://www.npmjs.com/package/js-quadtree\"><img src=\"https://img.shields.io/npm/dw/js-quadtree.svg\" alt=\"Weekly Downloads\" /></a>\n    <a href=\"https://github.com/CorentinTh/quadtree-js/actions?query=workflow%3A%22Node+CI%22\"><img alt=\"GitHub Workflow Status\" src=\"https://img.shields.io/github/workflow/status/CorentinTh/quadtree-js/Node CI\"></a>\n    <a href='https://codecov.io/gh/CorentinTh/quadtree-js'><img src='https://codecov.io/gh/CorentinTh/quadtree-js/branch/master/graph/badge.svg' alt='Coverage Status' /></a>\n    <a href=\"https://www.npmjs.com/package/js-quadtree\"><img src=\"https://img.shields.io/bundlephobia/minzip/js-quadtree.svg\" alt=\"npm bundle size\" /></a>\n    <a href=\"https://www.npmjs.com/package/js-quadtree\"><img src=\"https://img.shields.io/github/package-json/v/CorentinTh/quadtree-js.svg\" alt=\"GitHub package.json version\" /></a>\n    <a href='LICENCE'><img src=\"https://img.shields.io/github/license/CorentinTh/quadtree-js.svg\" alt=\"Licence Badge\" /></a>\n</p>\n\n\n\nA powerful quadtree implementation in javascript. It can be used for nodejs or directly in the browser.\n\n## Installation\n### Node JS\n**Quadtree-js** can be installed using yarn or npm.\n\n```bash\nnpm install js-quadtree\n# or\nyarn add js-quadtree\n```\n\nAnd import :\n\n```javascript\n// EMAScript import\nimport {QuadTree, Box, Point, Circle} from 'js-quadtree';\n// Or Common JS:\nconst {QuadTree, Box, Point, Circle} = require('js-quadtree');\n\nconst quadtree = new QuadTree(new Box(0, 0, 1000, 1000));\n\nquadtree.insert(new Point(100, 200, {custom: 'data'}));\n\nconst results = quadtree.query(new Circle(150, 150, 100));\n```\n### Browser\n\nYou can use the CDN:\n```html\n<script src=\"https://unpkg.com/js-quadtree\"></script>\n```\nAnd everything is globally accessible and **prefixed with `QT`**:\n```javascript\nconst quadtree = new QT.QuadTree(new QT.Box(0, 0, 1000, 1000));\n\nquadtree.insert(new QT.Point(100, 200, {custom: 'data'}));\n\nconst results = quadtree.query(new QT.Circle(150, 150, 100));\n```\n \n## Usage\n### Creation\n```javascript\n// Create the bounding area of the quadtree\nconst boundingArea = new Box(0, 0, 1000, 1000);\n\n// Instantiate  the new quadtree\nconst quadtree = new QuadTree(boundingArea);\n```\n\nYou can also specify the following optional parameters:\n```javascript\n// Create the bounding area of the quadtree\nconst boundingArea = new Box(0, 0, 1000, 1000);\n\nconst config = {\n    capacity: 10,            // Specify the maximum amount of point per node (default: 4)\n    removeEmptyNodes: true,  // Specify if the quadtree has to remove subnodes if they are empty (default: false).\n    maximumDepth: 5,         // Specify the maximum depth of the quadtree. -1 for no limit (default: -1).\n    // Specify a custom method to compare point for removal (default: (point1, point2) => point1.x === point2.x && point1.y === point2.y).\n    arePointsEqual: (point1, point2) => point1.data.foo === point2.data.foo      \n};\n\n// An array of point to insert directly (same as quadtree.insert(points) )\nconst points = [new Point(10, 10), new Point(52, 64)];\n\nconst quadtree = new QuadTree(boundingArea, config, points);\n```\n\n### Insert\n\nYou can insert a **Point** element, an array of **Point** element, your **own element** as long as it has an **x** and a **y** property or an array of custom element.\n\n```javascript\nconst point = new Point(10, 25);\n\nconst pointArray = [\n    new Point(45, 22),\n    new Point(30, 60),\n    new Point(14, 12)\n];\n\nconst customPoint = {\n    x: 94,\n    y: 23,\n    customField:{}\n};\n\nquadtree.insert(point);\nquadtree.insert(pointArray);\nquadtree.insert(customPoint);\n```\n\nYou can add your data in a **Point** element:\n```javascript\nconst myData = {\n    foo: 'bar'\n};\n\nconst point = new Point(50, 50, myData);\n\nconsole.log(point.data.foo); // 'bar'\n```\n\n### Remove\n\nAs the **insert** method, you can remove a **Point** element, an array of **Point** element, your **own element** as long as it has an **x** and a **y** property or an array of custom element.\n\nBy default, points having the same **x** and **y** values will be removed. To override this behavior, add a method under `arePointsEqual` in the config of the quadtree that takes two points in parameters and return a boolean if the points are equal.\nExample: `const quadtree = new QuadTree(boundingArea, {arePointsEqual: (point1, point2) => point1.data.foo === point2.data.foo});` \n\n```javascript\nconst point = new Point(10, 25);\n\nconst pointArray = [\n    new Point(45, 22),\n    new Point(30, 60),\n    new Point(14, 12)\n];\n\nconst customPoint = {\n    x: 94,\n    y: 23\n};\n\nquadtree.remove(point);\nquadtree.remove(pointArray);\nquadtree.remove(customPoint);\n```\n\n**Note**: it doesn't have to be the same object, the test is done with the coordinates.\n\n### Query\n\nUse the **query** method to get all the point within a range.\n\n\n```javascript\n// This will return all the points in the given Box\nconst points = quadtree.query(new Box(10, 10, 100, 100));\n```\n\n```javascript\n// This will return all the points in the given Circle\nconst points = quadtree.query(new Circle(10, 10, 100));\n```\n\nYou can use a **Box** or a **Circle** as a range or even your own range element as long as it has the following methods:\n* **contains**: return true if a point is within this range, false otherwise.\n* **intersects**: return true if a **Box** intersects with this range, false otherwise.\nSee [the Box definition](src/Box.js) for a good example.\n\n### Get all the point\n\nIf want to retrieve all the point, you can use this method:\n\n```javascript\nconst points = quadtree.getAllPoints();\n```\n\n**Note**: you may want to store your points in a side array since, it have to look trough all the child nodes.\n\n### Get Tree\n\nYou can get the amount of points by nodes with the `getTree()` method.\n\n```javascript\nconst qt = new QuadTree(new Box(0, 0, 10, 10));\n\nqt.insert(new Point(5, 5));\nqt.insert(new Point(6, 5));\nqt.insert(new Point(4, 5));\nqt.insert(new Point(3, 5));\nqt.insert(new Point(2, 5));\nqt.insert(new Point(1, 5));\n\nconsole.log(qt.getTree());\n\n// {\n//     ne: 2, \n//     nw: {\n//         ne: 0, \n//         nw: 0, \n//         se: 3, \n//         sw: 2\n//     }, \n//     se: 2,\n//     sw: 3\n// }\n```\n\n### Clear\n\nUse this method to clear the quadtree. It remove all the points and sub-nodes.\n\n```javascript\nquadtree.clear();\n```\n\n## Contribute\n**Pull requests are welcome !** Feel free to contribute.\n\n## Credits\nCoded with ❤️ by [Corentin Thomasset](//corentin-thomasset.fr).\n\n## License\n\nThis project is under the [MIT license](LICENSE).\n","readmeFilename":"README.md","bugs":{"url":"https://github.com/CorentinTh/quadtree-js/issues"},"homepage":"https://github.com/CorentinTh/quadtree-js#readme","_id":"js-quadtree@0.0.0-7c20355","_nodeVersion":"10.20.1","_npmVersion":"6.14.4","dist":{"integrity":"sha512-PIS7UVZnxp3OEh8rLfq2k+gxfKAKlXvR3kfud+712crkJyGVXjMxRQiPOOtJWkQEIqG4W6r5DkFUK/KhFWCGBA==","shasum":"7f4277feb2627f17823537f998339c4ff213e7f1","tarball":"https://registry.npmjs.org/js-quadtree/-/js-quadtree-0.0.0-7c20355.tgz","fileCount":20,"unpackedSize":67232,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJer+gqCRA9TVsSAnZWagAA2q0P/AzAyBaf5z3/WW0BX5GV\nvACYNhKqHRK0Xsg9blTaNFTzumaTezBrsLu+R/I99j6958rvr15OeNUo8/DM\nnEi2y9pq7txCRx6Ivrizih719D8ocaoNClqw9gL98zQihTLnV0D+Ej8FaqSW\nT+QEDB1T6MlVTuE3XE42ThJ7ANr1JfTnO/j+Ad4wYsegoRxZRC4ZYnwjG5Y8\nG/A7sjSeYSVLNfzUC98m4T2T9sTsBulKmFkMOmPzW0acUQot593l0Yq9OAgH\nO09zmfge8CM+4yEO2kJmdMnujGhywgzvmUe4+eR6jfy5ns6/PgtM+gzF9A8O\nRtK0d4LhKqBCxEbAEVlnlbxxTag+EU0bClXnnfKpoFUx7XxcAovnLOR/CCKT\n+7OjImmok9JCtPXv2W4bzpsROuyfweGHtbCYI0gB5t1xYTZs8GtPINwcqZxP\nBIBpGcsoy4mdgmjjinkqZ6MjzLJ7W4vwPCBUqsVNSrZIFlGNlL/o5U4hSP4e\noLIGMJIyDPbwvXMUeDfD7RzKojuEZ0HOpXdHYMum0LZiYGJhPo1qTuH4PRC6\nGfO+eYvH35XWG1rX+nN909NrOhSG/WxDG/coocEbrK+S6TbnrzbZD2tYwMn4\ny+hBC/M4F6aHzmKRZaj6X0WoouPcUPAbutyx2Z14XKWi7ekiNFmqM+FrS7Ju\nxBTB\r\n=ySTQ\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDxEPMbUmWQLrTVRaB6LbI2/kZZeXI5Nvn9pLzkaygJFgIhAMN6VpST74HKmyMOrM3OsiZSzs7216PqwDHgJsuBhzJR"}]},"maintainers":[{"name":"corentinth","email":"corentin.thomasset74+npm@gmail.com"}],"_npmUser":{"name":"corentinth","email":"corentin.thomasset74+npm@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/js-quadtree_0.0.0-7c20355_1588586538346_0.8140806212528522"},"_hasShrinkwrap":false},"0.0.0-fd8a676":{"name":"js-quadtree","version":"0.0.0-fd8a676","description":"A simple quadtree implementation for javascript (nodejs or browser with module bundler).","main":"dist/index.js","module":"dist/index.es.js","browser":"dist/index.js","scripts":{"build":"rollup -c","lint":"eslint ./src/**","test":"jest","prepare":"npm run build"},"repository":{"type":"git","url":"git+https://github.com/CorentinTh/quadtree-js.git"},"keywords":["quadtree","qt","quadtree.js","quadtree javascript"],"author":{"name":"Corentin Th","email":"corentin.thomasset74+npm@gmail.com","url":"https://github.com/CorentinTh"},"license":"MIT","devDependencies":{"@rollup/plugin-typescript":"^4.0.0","@types/jest":"^25.1.4","@typescript-eslint/eslint-plugin":"^2.22.0","@typescript-eslint/parser":"^2.22.0","eslint":"^6.8.0","jest":"^25.1.0","rollup":"^2.0.2","rollup-plugin-terser":"^5.2.0","rollup-plugin-typescript2":"^0.26.0","ts-jest":"^25.2.1","typescript":"^3.8.3"},"dependencies":{},"gitHead":"b77e759260dd96485c06c67d8c4a8ffd90f63b68","readme":"\n<p align=\"center\">\n    <img src=\".github/logo.png\" alt=\"logo\">\n</p>\n\n\n<p align=\"center\">\n    <a href=\"https://www.npmjs.com/package/js-quadtree\"><img src=\"https://img.shields.io/npm/dw/js-quadtree.svg\" alt=\"Weekly Downloads\" /></a>\n    <a href=\"https://github.com/CorentinTh/quadtree-js/actions?query=workflow%3A%22Node+CI%22\"><img alt=\"GitHub Workflow Status\" src=\"https://img.shields.io/github/workflow/status/CorentinTh/quadtree-js/Node CI\"></a>\n    <a href='https://codecov.io/gh/CorentinTh/quadtree-js'><img src='https://codecov.io/gh/CorentinTh/quadtree-js/branch/master/graph/badge.svg' alt='Coverage Status' /></a>\n    <a href=\"https://www.npmjs.com/package/js-quadtree\"><img src=\"https://img.shields.io/bundlephobia/minzip/js-quadtree.svg\" alt=\"npm bundle size\" /></a>\n    <a href=\"https://www.npmjs.com/package/js-quadtree\"><img src=\"https://img.shields.io/github/package-json/v/CorentinTh/quadtree-js.svg\" alt=\"GitHub package.json version\" /></a>\n    <a href='LICENCE'><img src=\"https://img.shields.io/github/license/CorentinTh/quadtree-js.svg\" alt=\"Licence Badge\" /></a>\n</p>\n\n\n\nA powerful quadtree implementation in javascript. It can be used for nodejs or directly in the browser.\n\n## Installation\n### Node JS\n**Quadtree-js** can be installed using yarn or npm.\n\n```bash\nnpm install js-quadtree\n# or\nyarn add js-quadtree\n```\n\nAnd import :\n\n```javascript\n// EMAScript import\nimport {QuadTree, Box, Point, Circle} from 'js-quadtree';\n// Or Common JS:\nconst {QuadTree, Box, Point, Circle} = require('js-quadtree');\n\nconst quadtree = new QuadTree(new Box(0, 0, 1000, 1000));\n\nquadtree.insert(new Point(100, 200, {custom: 'data'}));\n\nconst results = quadtree.query(new Circle(150, 150, 100));\n```\n### Browser\n\nYou can use the CDN:\n```html\n<script src=\"https://unpkg.com/js-quadtree\"></script>\n```\nAnd everything is globally accessible and **prefixed with `QT`**:\n```javascript\nconst quadtree = new QT.QuadTree(new QT.Box(0, 0, 1000, 1000));\n\nquadtree.insert(new QT.Point(100, 200, {custom: 'data'}));\n\nconst results = quadtree.query(new QT.Circle(150, 150, 100));\n```\n \n## Usage\n### Creation\n```javascript\n// Create the bounding area of the quadtree\nconst boundingArea = new Box(0, 0, 1000, 1000);\n\n// Instantiate  the new quadtree\nconst quadtree = new QuadTree(boundingArea);\n```\n\nYou can also specify the following optional parameters:\n```javascript\n// Create the bounding area of the quadtree\nconst boundingArea = new Box(0, 0, 1000, 1000);\n\nconst config = {\n    capacity: 10,            // Specify the maximum amount of point per node (default: 4)\n    removeEmptyNodes: true,  // Specify if the quadtree has to remove subnodes if they are empty (default: false).\n    maximumDepth: 5,         // Specify the maximum depth of the quadtree. -1 for no limit (default: -1).\n    // Specify a custom method to compare point for removal (default: (point1, point2) => point1.x === point2.x && point1.y === point2.y).\n    arePointsEqual: (point1, point2) => point1.data.foo === point2.data.foo      \n};\n\n// An array of point to insert directly (same as quadtree.insert(points) )\nconst points = [new Point(10, 10), new Point(52, 64)];\n\nconst quadtree = new QuadTree(boundingArea, config, points);\n```\n\n### Insert\n\nYou can insert a **Point** element, an array of **Point** element, your **own element** as long as it has an **x** and a **y** property or an array of custom element.\n\n```javascript\nconst point = new Point(10, 25);\n\nconst pointArray = [\n    new Point(45, 22),\n    new Point(30, 60),\n    new Point(14, 12)\n];\n\nconst customPoint = {\n    x: 94,\n    y: 23,\n    customField:{}\n};\n\nquadtree.insert(point);\nquadtree.insert(pointArray);\nquadtree.insert(customPoint);\n```\n\nYou can add your data in a **Point** element:\n```javascript\nconst myData = {\n    foo: 'bar'\n};\n\nconst point = new Point(50, 50, myData);\n\nconsole.log(point.data.foo); // 'bar'\n```\n\n### Remove\n\nAs the **insert** method, you can remove a **Point** element, an array of **Point** element, your **own element** as long as it has an **x** and a **y** property or an array of custom element.\n\nBy default, points having the same **x** and **y** values will be removed. To override this behavior, add a method under `arePointsEqual` in the config of the quadtree that takes two points in parameters and return a boolean if the points are equal.\nExample: `const quadtree = new QuadTree(boundingArea, {arePointsEqual: (point1, point2) => point1.data.foo === point2.data.foo});` \n\n```javascript\nconst point = new Point(10, 25);\n\nconst pointArray = [\n    new Point(45, 22),\n    new Point(30, 60),\n    new Point(14, 12)\n];\n\nconst customPoint = {\n    x: 94,\n    y: 23\n};\n\nquadtree.remove(point);\nquadtree.remove(pointArray);\nquadtree.remove(customPoint);\n```\n\n**Note**: it doesn't have to be the same object, the test is done with the coordinates.\n\n### Query\n\nUse the **query** method to get all the point within a range.\n\n\n```javascript\n// This will return all the points in the given Box\nconst points = quadtree.query(new Box(10, 10, 100, 100));\n```\n\n```javascript\n// This will return all the points in the given Circle\nconst points = quadtree.query(new Circle(10, 10, 100));\n```\n\nYou can use a **Box** or a **Circle** as a range or even your own range element as long as it has the following methods:\n* **contains**: return true if a point is within this range, false otherwise.\n* **intersects**: return true if a **Box** intersects with this range, false otherwise.\nSee [the Box definition](src/Box.js) for a good example.\n\n### Get all the point\n\nIf want to retrieve all the point, you can use this method:\n\n```javascript\nconst points = quadtree.getAllPoints();\n```\n\n**Note**: you may want to store your points in a side array since, it have to look trough all the child nodes.\n\n### Get Tree\n\nYou can get the amount of points by nodes with the `getTree()` method.\n\n```javascript\nconst qt = new QuadTree(new Box(0, 0, 10, 10));\n\nqt.insert(new Point(5, 5));\nqt.insert(new Point(6, 5));\nqt.insert(new Point(4, 5));\nqt.insert(new Point(3, 5));\nqt.insert(new Point(2, 5));\nqt.insert(new Point(1, 5));\n\nconsole.log(qt.getTree());\n\n// {\n//     ne: 2, \n//     nw: {\n//         ne: 0, \n//         nw: 0, \n//         se: 3, \n//         sw: 2\n//     }, \n//     se: 2,\n//     sw: 3\n// }\n```\n\n### Clear\n\nUse this method to clear the quadtree. It remove all the points and sub-nodes.\n\n```javascript\nquadtree.clear();\n```\n\n## Contribute\n**Pull requests are welcome !** Feel free to contribute.\n\n## Credits\nCoded with ❤️ by [Corentin Thomasset](//corentin-thomasset.fr).\n\n## License\n\nThis project is under the [MIT license](LICENSE).\n","readmeFilename":"README.md","bugs":{"url":"https://github.com/CorentinTh/quadtree-js/issues"},"homepage":"https://github.com/CorentinTh/quadtree-js#readme","_id":"js-quadtree@0.0.0-fd8a676","_nodeVersion":"10.20.1","_npmVersion":"6.14.4","dist":{"integrity":"sha512-som3CbkKah45VvPQQVxKoYNZgVFOiRw3zTFGvPoMAEKLt/pMXD0LZD27kwMWyzETv9kGQDhLmNbwHY7RYtGzjA==","shasum":"d7c79f67f1e85290340ec9aa50f4d56c9b81e538","tarball":"https://registry.npmjs.org/js-quadtree/-/js-quadtree-0.0.0-fd8a676.tgz","fileCount":20,"unpackedSize":67232,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJer+jQCRA9TVsSAnZWagAAt9kP/RGuO3myNJVOPRGBPMPq\nsDn9NapPz3mz3ArAGTg+91mZU8pd/LuDCOx5Upzusc8Hkfng/a/VFTrImWLJ\ntabkPX3PAKzQn2aUFbggAWFHXlTBys5XxwE9ybnVLxhh83CL9+7jgDKhJRNy\nlgio4kpIkgCyunr+z9iZH+lo/pLhGxeBlTmFbmbyTitBYqbYL/4VvKk6/4xe\nTkAdjCQJVLmAxMlrX72ZgBBvsPU0QbOW8YOnPQPjVPK3Pp+kXR46UKyW73+f\nWSOBl4WS9c2CaCcWYQvZnlXWmC1UQVeslmGBnTFnx/pYiZRSJFhbtbkn1nwR\noa3tm8E2uuTEmmQthMrjA24cmE9eUATIj3bEMc6eGw4fk+e1Ay+ndsdnhMGY\nTcMjYvbqYAdEHAOUNAWm0LCr29KJE4+BjX3griaVJK16p6X9VGFC/FQxiQHw\nfKrFEhu0ZZaH67digUIZgmrIO5a88XSxyibG/napbb/PewmyQ6XoeQS1OswB\n3yspftbphdYsDabIHyJJdywRVPaLgBvfVoN3qkJvkdDYflLlMVb9rWvgYTQC\nkiCL8xaZJKrYwMMeVii3Hc3aZ6QwmwR7UpD22SmVJJj1xF/MEyUXKocHWa6V\neam9gslCOlZPncTdb4xHoB7uTDARw9mMR/KU1sPFThhheN+DPLjVDy+DjiPz\nY39u\r\n=pkvG\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCSCb64lmWP09DSldP/3Y+INF04p5Z3qrhwe4CcTRbe2QIgAxjtXM90XQ3PrXkhe0/lGnWBmyJfhAHYgLbrbrxt8F8="}]},"maintainers":[{"name":"corentinth","email":"corentin.thomasset74+npm@gmail.com"}],"_npmUser":{"name":"corentinth","email":"corentin.thomasset74+npm@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/js-quadtree_0.0.0-fd8a676_1588586704001_0.7332819672676407"},"_hasShrinkwrap":false},"3.2.0":{"name":"js-quadtree","version":"3.2.0","description":"A simple quadtree implementation for javascript (nodejs or browser with module bundler).","main":"dist/index.js","module":"dist/index.es.js","browser":"dist/index.js","scripts":{"build":"rollup -c","lint":"eslint ./src/**","test":"jest","prepare":"npm run build"},"repository":{"type":"git","url":"git+https://github.com/CorentinTh/quadtree-js.git"},"keywords":["quadtree","qt","quadtree.js","quadtree javascript"],"author":{"name":"Corentin Th","email":"corentin.thomasset74+npm@gmail.com","url":"https://github.com/CorentinTh"},"license":"MIT","devDependencies":{"@rollup/plugin-typescript":"^4.0.0","@types/jest":"^25.1.4","@typescript-eslint/eslint-plugin":"^2.22.0","@typescript-eslint/parser":"^2.22.0","eslint":"^6.8.0","jest":"^25.1.0","rollup":"^2.0.2","rollup-plugin-terser":"^5.2.0","rollup-plugin-typescript2":"^0.26.0","ts-jest":"^25.2.1","typescript":"^3.8.3"},"dependencies":{},"gitHead":"a6199f8a0f3a4f2e0c4a52a0a0ceff910e53f6df","bugs":{"url":"https://github.com/CorentinTh/quadtree-js/issues"},"homepage":"https://github.com/CorentinTh/quadtree-js#readme","_id":"js-quadtree@3.2.0","_nodeVersion":"10.20.1","_npmVersion":"6.14.4","dist":{"integrity":"sha512-o1ogj0fOdWkMSqk8JGJ6ZS9SMu+MzCzGpL6me2d1AXr739Z6JZ1y+bB0LjfxI4qfyEZ1CAaLYnfKdAPEAc4VpA==","shasum":"4b263b67d052f3995a87feb9caa77a465d0cfaf6","tarball":"https://registry.npmjs.org/js-quadtree/-/js-quadtree-3.2.0.tgz","fileCount":20,"unpackedSize":67225,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJer+qsCRA9TVsSAnZWagAA/p8P/jW2L6iziEFkgqgFN4QV\nTnHN78xJz6D9REkZYLMNEvCnaKbQfX8WVTCaQ/7mdjLAcgO4eC+ZGfjPDxDL\nwl9V4sqU5VW4Q7XPbYW2GF6rKVuBC/ZwZTu2lOiWOawsJvMxK+oOjYh9mKY2\nnFRzE1CxWoLrD9S4rLhtHz08PnjN4R/vN9Sk97o/hho7Eig0/6YK7SDoW1Yv\n1RPJHLrYUGQr/+m4Q7P9X1qt9+F7U07kfjJntLJtkSrA551GHvECoG9cPUnK\nJq1VgnrDrENWOa19U8JCSEOH119fAlvBsRNuzNmZb814eboigpxr5Oy7QHk+\nklAnl+yGc2IOEDCSzH2ksxcmT9YGgxcvKe0ZJpWpVjIkMnFQlgLVDLmAyd8U\n8t6K6V3dTxVyi/nUM7BOshfVmALHhju3JUrkxDsfXtFE7DQwg1+0EplizLO5\nvc3IuI9oco5J7YzhMo08+pCTEizeA0r1MoO6q60DlOSFt7lIaNGILx4fLf2E\nqSQuYPZuSuUowpzmnShW+nZD0bX3U/iN8Tm4Fbg1X3w7BsKPg6HusjQ7/LQg\n8ZjQfoywJC68pVHRxLUhbbPN8S1N0gjtlBT8Wih9otgnekATssY5UZfb/4s0\nXs3oFg8GNb+/y1reL53bfU3lq9rPFH/RGZTR25iFN9pWOa5sAf/kraTZawbn\nx6Kn\r\n=RU/h\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAXduCdsM5nLgqrDebFHt+OuWhSayegHGSinHAAwuEmJAiEAmsLxYBIB5XcKnUrbiYHuO8NccZLo/308SnywGnCGXcI="}]},"maintainers":[{"name":"corentinth","email":"corentin.thomasset74+npm@gmail.com"}],"_npmUser":{"name":"corentinth","email":"corentin.thomasset74+npm@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/js-quadtree_3.2.0_1588587180015_0.7565543033339424"},"_hasShrinkwrap":false},"3.2.3":{"name":"js-quadtree","version":"3.2.3","description":"A simple quadtree implementation for javascript (nodejs or browser with module bundler).","main":"dist/index.js","module":"dist/index.es.js","browser":"dist/index.js","scripts":{"build":"rollup -c","lint":"eslint ./src/**","test":"jest","prepare":"npm run build"},"repository":{"type":"git","url":"git+https://github.com/CorentinTh/quadtree-js.git"},"keywords":["quadtree","qt","quadtree.js","quadtree javascript"],"author":{"name":"Corentin Th","email":"corentin.thomasset74+npm@gmail.com","url":"https://github.com/CorentinTh"},"license":"MIT","devDependencies":{"@rollup/plugin-typescript":"^4.0.0","@types/jest":"^25.1.4","@typescript-eslint/eslint-plugin":"^2.22.0","@typescript-eslint/parser":"^2.22.0","eslint":"^6.8.0","jest":"^25.1.0","rollup":"^2.0.2","rollup-plugin-terser":"^5.2.0","rollup-plugin-typescript2":"^0.26.0","ts-jest":"^25.2.1","typescript":"^3.8.3"},"dependencies":{},"gitHead":"9eba31be3feef429f47d1d7b35668fcb8de530fb","bugs":{"url":"https://github.com/CorentinTh/quadtree-js/issues"},"homepage":"https://github.com/CorentinTh/quadtree-js#readme","_id":"js-quadtree@3.2.3","_nodeVersion":"12.16.3","_npmVersion":"6.14.4","dist":{"integrity":"sha512-i7fkpDm+LDJ6zGRLoCAVPm8z9HfSnHqzfy0PLtZfBB5ReDo1sjqi/IyqrQIiyYVyiQSO/b3XgpKBcqHpc9oWZA==","shasum":"5f01130ccc0e90a02c3edcf28bcc8bc70440c3c5","tarball":"https://registry.npmjs.org/js-quadtree/-/js-quadtree-3.2.3.tgz","fileCount":20,"unpackedSize":67308,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJezUNKCRA9TVsSAnZWagAATC0QAJBdvhVzLpyv7rnour46\nvhyH11HAf4uqPYfEhIyLHsQ9hSIqzVxe3+1s1FoRXqhRQr3xMaQRh6JDWpgw\nwBoDPig9Web8WZS3cdGy0PVUqKf7L+177HCT+B+18o96+0uOJCmag7sRc3/n\np4+toY2yoONO+wUzqqfMQjodJ2kFlb2iMvAPa+X1e3qEilf4geZEhtdiujdL\nHtx2Jo2P4hy83FqmZ0nPeQhh2cTpiIxCVeUWtRqL1BciDVE7y4sSt51N+bTb\nsfkD6lXXvKwNHq/uCtb2K5McJth7Gp4cAXiTjY7cVrt/alPmExAPeGCMhfnK\nH7GwiGJ3z5qQ53Z34KAJmUPpK6I5cfI4UEN814s58FG+6aITRjkOjdlV0t/N\nigHxq3v+rZ+bZZqY3GWq1CKOM1TmMf10pzRvRtLedMjFhxPPE4TOFlqrtz+x\nE28CrTXJ6tYp3LUqDJESFkMN7ZoZUQia71ayMz1RmqFpLE4dIeA+W+h1Lv0I\nkbswsgQtTArVBKHEhdBu7XSWtvw5p8vt5mNra/wEe/UpbtKG/YEPZvQnIA4z\nyp2lfYjESOjyjkWWHt1LGw2dOml/uBUwQp3nl8yRhp9qbynwK9tgttvAddOG\n9C3yMwI1N9MKVRUgFrEzv7cphBDULLEqxzUiPaGEHiFgFL3U0mnEgJbVbCB1\nFUcf\r\n=6tsE\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD0SChORPWzmpp52QKFCtPY77U3yoqu6mm/2M4/CL8pVQIhAJyUdI+EJoyLjCbirqZQq831QNWreiEf6HB4RDRfg7Y/"}]},"maintainers":[{"name":"corentinth","email":"corentin.thomasset74+npm@gmail.com"}],"_npmUser":{"name":"corentinth","email":"corentin.thomasset74+npm@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/js-quadtree_3.2.3_1590510410414_0.7964015342516271"},"_hasShrinkwrap":false},"3.2.4":{"name":"js-quadtree","version":"3.2.4","description":"A simple quadtree implementation for javascript (nodejs or browser with module bundler).","main":"dist/index.js","module":"dist/index.es.js","browser":"dist/index.js","scripts":{"build":"rollup -c","lint":"eslint ./src/**","test":"jest","prepare":"npm run build"},"repository":{"type":"git","url":"git+https://github.com/CorentinTh/quadtree-js.git"},"keywords":["quadtree","qt","quadtree.js","quadtree javascript"],"author":{"name":"Corentin Th","email":"corentin.thomasset74+npm@gmail.com","url":"https://github.com/CorentinTh"},"license":"MIT","devDependencies":{"@rollup/plugin-typescript":"^4.1.2","@types/jest":"^25.2.3","@typescript-eslint/eslint-plugin":"^2.34.0","@typescript-eslint/parser":"^2.34.0","eslint":"^6.8.0","jest":"^25.5.4","rollup":"^2.21.0","rollup-plugin-terser":"^5.3.0","rollup-plugin-typescript2":"^0.26.0","ts-jest":"^25.5.1","typescript":"^3.9.6"},"dependencies":{},"gitHead":"0b2affe985e70f0f379e2300ebc4bc256468ecf4","bugs":{"url":"https://github.com/CorentinTh/quadtree-js/issues"},"homepage":"https://github.com/CorentinTh/quadtree-js#readme","_id":"js-quadtree@3.2.4","_nodeVersion":"14.3.0","_npmVersion":"6.14.5","dist":{"integrity":"sha512-7MAEjprVy8swHZYSkQUrJ4nIzMbwWOkMQFl2tpPRO4KR5laSdOva/P/iehohjeJ6DtOlTg3ipJS5V6D9Z6VAcw==","shasum":"527f2fc79226601b402de6ce8a91a65716ae2118","tarball":"https://registry.npmjs.org/js-quadtree/-/js-quadtree-3.2.4.tgz","fileCount":20,"unpackedSize":67415,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfCh5cCRA9TVsSAnZWagAAwlMP/jx4ORTFpGleTG5F2EG/\nHXCGZ1abX7JB++aZv1qB7F5dED6H7/TuNUYgQdTW0MMsopOc9YDxmTJcB9tf\nshkeQP4IV+8JMAhx+aOBHyiHQgJcCCJHXPKrGNaNiEFaPb20ignf+TGEzRxH\ncU+bXQtyVWoGcsxN3nSdqLYNY6K4jN12PsRcZaFFFFO2SqIhDPi6JIFNjYOk\npFUJmqRu9HuXW+MydUVca3hbo5QmY+lev6rX9clu9N/Li0Kw9t6/XWFvGSww\nLf6DeFtx+Hy5pulI5SGVK83u/Rb1XvvG7KUef3mBJ1f/ahn6WRTRlyy/jG2u\nBykSzD6bexVZS+Ssjmz54RtFzEzbZ4ToditL4BQ3HhntD3Y6AOf0u9DPsMUw\nIgnuPAy4655zTU5IN8l0gUbjiPnkJH+l0ATtQP7ObKg/7TwkfruPrdz96rO6\nHyj7+cDd9ZETP7SdkwMBUx4eHv4RswA1qVT+1qTy4N/STbxeTV3eAcSfN2p5\nb+8EifHo36RmttbezXlY3KagX6eSkF6BDBRiIaEMygFxClzy8UD7pTq5Tr8O\n8kI0SjJXtlOkD0MnmvsDUJETogBnI2dxd/4iWvooQvgx1zEPyjh1YACzpseq\nI8xiNXKMRZl8JlkKonsfGr3+V9kPAKiECuthxBhtyn1QWnsItIfCaRyvfnnP\nYwUC\r\n=kfki\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBXaV13OAojR+8Y9zrcgDKfCYzI+VvHHf3biQGgb4YNzAiBGJ48qxPPms21COQjbiEq8kay45GfPqPWL6/ysi30wrA=="}]},"maintainers":[{"name":"corentinth","email":"corentin.thomasset74+npm@gmail.com"}],"_npmUser":{"name":"corentinth","email":"corentin.thomasset74+npm@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/js-quadtree_3.2.4_1594498652103_0.47103278146441796"},"_hasShrinkwrap":false},"3.3.0":{"name":"js-quadtree","version":"3.3.0","description":"A simple quadtree implementation for javascript (nodejs or browser with module bundler).","main":"dist/index.js","module":"dist/index.es.js","browser":"dist/index.js","scripts":{"build":"rollup -c","lint":"eslint ./src/**","test":"jest","prepare":"npm run build"},"repository":{"type":"git","url":"git+https://github.com/CorentinTh/quadtree-js.git"},"keywords":["quadtree","qt","quadtree.js","quadtree javascript"],"author":{"name":"Corentin Th","email":"corentin.thomasset74+npm@gmail.com","url":"https://github.com/CorentinTh"},"license":"MIT","devDependencies":{"@rollup/plugin-typescript":"^4.1.2","@types/jest":"^25.2.3","@typescript-eslint/eslint-plugin":"^2.34.0","@typescript-eslint/parser":"^2.34.0","eslint":"^6.8.0","jest":"^25.5.4","rollup":"^2.21.0","rollup-plugin-terser":"^7.0.0","rollup-plugin-typescript2":"^0.26.0","ts-jest":"^25.5.1","typescript":"^3.9.6"},"dependencies":{},"gitHead":"31690e3bfa055bbe1d598cca0a0a248819a89a30","bugs":{"url":"https://github.com/CorentinTh/quadtree-js/issues"},"homepage":"https://github.com/CorentinTh/quadtree-js#readme","_id":"js-quadtree@3.3.0","_nodeVersion":"14.3.0","_npmVersion":"6.14.5","dist":{"integrity":"sha512-ku7z1mYrI38d3LXag8p+7oZVqtmvzg4t6AUxSFGFYJJvT66WGyx/vCSyRtCceNHrt2WXKk0CK8hLMHucfuIjvw==","shasum":"1cea94e9409927bb3bb06b4f0eddf1e0423945bc","tarball":"https://registry.npmjs.org/js-quadtree/-/js-quadtree-3.3.0.tgz","fileCount":20,"unpackedSize":68204,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfOYr8CRA9TVsSAnZWagAALXsQAKSUBwdujxAAYdOhHIhL\nYD1uFRqnda4f5wdFxHGNuxMwQvaOWx9RzmKEAx3jM7eQjmxcs+M4TVq0mWT0\ntMhJmHA26onXa5XACMwvWHnlFFYIOScufWKtjFa5QiqhNXmUzHivYYQxyHE9\nwOmiHSHuCFvznyIx/TV2QLJ18I92iJN8STJbdA2N0CIh9+oDODnONrrFFw+J\nntBVK+P3Gyo1MO2+GSJ7HL0e7OQhS9Q3r+z1lBXzb8JcwaWCh+g2TBNq5+Pk\n3Jasxj1B2MpmTGgcWHdw8q2kgORHJx3DcPgRwJlQpRDn9YCi5J2y0KwIjazc\ngzH+U9Re5pQWK66L3Q7jak2grUNO7AyP1OjYs1tk1Eamp8rbimMTdt88rhs2\nCGZnQkzPnJ7VPIYetK5ixC2orLgdh3sELs0bXBVUU2S9wwFt5f6+CpU6A1/J\nX6G0EZeQubLLnwJaoToOHGz00aM4Dy3lxNGI274eQXMhTQ0HdrIuYqdGFRIh\nIj2Edusz6Kp1zJCO4WOS7Dhh3qhOfRmOxoh9L/MWB9Kq7kRVblOtp8QpLfmG\nXqGwUj8dbnjmMYZc79/wFFMynWX6ZdA0eHmps1/Z9Q2qS/+sWZk5PGuNNtyK\ne7eJzjm+udN/3FrZvZ1+BqsJgEZbddYLQibsiRVlFMGS0V7zsktpbcubWxFq\nHwPq\r\n=3LO9\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCjYPYCbMKNAEFwLd2pKByl6bGICMUzlYDbv84BNkNwnwIhAO8JJBkSvtEpCo//L+Q/X4AP/9wtA+0f0Sb5/Z5HgkW7"}]},"maintainers":[{"name":"corentinth","email":"corentin.thomasset74+npm@gmail.com"}],"_npmUser":{"name":"corentinth","email":"corentin.thomasset74+npm@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/js-quadtree_3.3.0_1597606652213_0.8282611158500885"},"_hasShrinkwrap":false},"3.3.1":{"name":"js-quadtree","version":"3.3.1","description":"A simple quadtree implementation for javascript (nodejs or browser with module bundler).","main":"dist/index.js","module":"dist/index.es.js","browser":"dist/index.js","scripts":{"build":"rollup -c","lint":"eslint ./src/**","test":"jest","prepare":"npm run build"},"repository":{"type":"git","url":"git+https://github.com/CorentinTh/quadtree-js.git"},"keywords":["quadtree","qt","quadtree.js","quadtree javascript"],"author":{"name":"Corentin Th","email":"corentin.thomasset74+npm@gmail.com","url":"https://github.com/CorentinTh"},"license":"MIT","devDependencies":{"@rollup/plugin-typescript":"^4.1.2","@types/jest":"^25.2.3","@typescript-eslint/eslint-plugin":"^2.34.0","@typescript-eslint/parser":"^2.34.0","eslint":"^6.8.0","jest":"^25.5.4","rollup":"^2.21.0","rollup-plugin-terser":"^7.0.0","rollup-plugin-typescript2":"^0.26.0","ts-jest":"^25.5.1","typescript":"^3.9.6"},"dependencies":{},"gitHead":"041ece59e2eb6539a9136214fb9a49e3de7642bb","bugs":{"url":"https://github.com/CorentinTh/quadtree-js/issues"},"homepage":"https://github.com/CorentinTh/quadtree-js#readme","_id":"js-quadtree@3.3.1","_nodeVersion":"12.16.3","_npmVersion":"6.14.4","dist":{"integrity":"sha512-BwK0dD4YhipqlNXmUxrFSKIDnAaT0gxp/l/9tSSdR1cuuwMqYEC5fUS/cLr8ED9deUfB2Lsu7Pp6gY0c0Xf+xA==","shasum":"64493d0f9744cbfae27afc5d37e697a19d7dfe9a","tarball":"https://registry.npmjs.org/js-quadtree/-/js-quadtree-3.3.1.tgz","fileCount":20,"unpackedSize":68070,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfWd92CRA9TVsSAnZWagAAyaQP/iby/ImWk4BH9hxmTf6T\n8J1/fifyFNt4ig5eiKIeEmFEOgIfFCqROl7xvxJXJJW7Txt/EkBZ6tYc3ui/\n7shlBmiKfkBbn+Xt8Wv8MT+ftAyQs0KDTRkqu6pPa3NWGt6TPgw/mJEB4iC6\nJx4p0quHRqMkFu8zDczK4NN/S+pJsZiOpfquxPXHE9ugUFy4zfyrvNw5psHz\nN/wQK5gtvO7ZnCssuEP21XsiNylNXOo3E/g+rHB3XcxiqnjRLUEmztwg7ohY\nOFB8A5kCygvFSl9QFgweocMdn/iUjNdRW0QmJ5I/N00kjbrKA/adyaDAkWBa\n+N6aFSnM/k1YoxsaqCLHrag8/W00tezp0vUpE4Pp6SVOgX6yrmtUf3cr+Xrf\nbqfLGpWcRgnnzoB9NO4lPJ7z+LdpPtGfvTo23RMh9RTeVXBSculu+3LcxVIr\nHQWQi6kN9VXs3ivi5e55qZVfD1A9Le39Lzzs75fRRF94JehAXLxOJzZ08QN9\nqgcam0ryo6KWvrJ8BwsZdkJoiHeTIkL1lbEnTUAcGPynuY9jv9o+JgnP+pwE\nVch+5eBVTcK3JECRB6Uo8cFNCLxynrHAAoz37u2WGhGLZnam53dt2JlNT/4c\n9kCb3JjYlhm/anEljLDhEBBrTUPcDFV5DXBwXqXT6Ond6upZ+GHJDDXtQ2VP\nU8a0\r\n=L18r\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCID9oGjEvRKu2rJmiioRNsQZLGxKunuE5eI0fSZzlLvVZAiAiikmsQ+JK6MBjTOnNWSCNHeflzbWrwmsPwsdnvrp8dg=="}]},"maintainers":[{"name":"corentinth","email":"corentin.thomasset74+npm@gmail.com"}],"_npmUser":{"name":"corentinth","email":"corentin.thomasset74+npm@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/js-quadtree_3.3.1_1599725429846_0.0019110867599452241"},"_hasShrinkwrap":false},"3.3.2-alpha.1":{"name":"js-quadtree","version":"3.3.2-alpha.1","description":"A simple quadtree implementation for javascript (nodejs or browser with module bundler).","main":"dist/index.js","module":"dist/index.es.js","browser":"dist/index.js","scripts":{"build":"rollup -c","lint":"eslint ./src/**","test":"jest","prepare":"npm run build"},"repository":{"type":"git","url":"git+https://github.com/CorentinTh/quadtree-js.git"},"keywords":["quadtree","qt","quadtree.js","quadtree javascript"],"author":{"name":"Corentin Th","email":"corentin.thomasset74+npm@gmail.com","url":"https://github.com/CorentinTh"},"license":"MIT","devDependencies":{"@rollup/plugin-typescript":"^4.1.2","@types/jest":"^25.2.3","@typescript-eslint/eslint-plugin":"^2.34.0","@typescript-eslint/parser":"^2.34.0","eslint":"^6.8.0","jest":"^25.5.4","rollup":"^2.21.0","rollup-plugin-terser":"^7.0.0","rollup-plugin-typescript2":"^0.26.0","ts-jest":"^25.5.1","typescript":"^3.9.6"},"dependencies":{},"gitHead":"9977129ebcdb0f10e8eb4a31cefdaa92e99ff410","bugs":{"url":"https://github.com/CorentinTh/quadtree-js/issues"},"homepage":"https://github.com/CorentinTh/quadtree-js#readme","_id":"js-quadtree@3.3.2-alpha.1","_nodeVersion":"12.18.3","_npmVersion":"6.14.8","dist":{"integrity":"sha512-hr00bffx6Gp+u0XTakYTqSRl6utvogrWqcDdU47nm4H4lL9dUsyxlTBS1jlYLo/jYdOuA0NbDdc0RNVntUAv6Q==","shasum":"038a3ba32e9df4243b4549d7273c5b6a9e69c836","tarball":"https://registry.npmjs.org/js-quadtree/-/js-quadtree-3.3.2-alpha.1.tgz","fileCount":20,"unpackedSize":68155,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfWfauCRA9TVsSAnZWagAAoRUP/jZnWSOtIU3rwzw/G7J4\naoWm1WrkL7k4qHL5Cuhga0as6YrDpDMXFTwksC+1SqAxu+RAW6+x7JURaW82\nkZ5BzyJXI/IjkaF0atNzr2hAqUG1vuUPkYpBM1zAmkNSLe72hmXZIm7+ugt6\nBeawkuLTD22W311GSIgIFTIoUOFMJnt51UKlGc8ADVZU1rZAWf8UZXcbxhls\nXi8akfmSrAcNsM3RfmgE+XFAVvFfa6U0Mb9HG9Ji6cW+5DlJLfo/MjLvxMG0\nqvVsEu2uMJF16LRQ+hu09jrFniqXp5ouG6I7gEM7I6gO8rpXJeKwGSoyJDk7\nTnmNGAAMo/TQVGuUc3vELkkIN/jjJ+jqcSQqP4UXl4XnHpRK5iCFya9Nc407\nKdQfD5HDdgxa7vSzE2MscSWyzdY7Kqs4NYKIE6c7rs4RT5jPuvhVEOXTBGb/\n/zAVen28A0Tc/9n6FDWl5gv6fWzlgEMekYPGZFmvTruiBun+XKknZeNvA9jQ\n9/CsYjO+I3LOnxgvLSGqiiqZRo54rQHFIx4KVopa2BIxQU3Ljzj5YYsNZptV\nxXfPy5W3rHO0/C00DKUxobUFzF/zlWQbwNFty2/q3XD+GgdC4B95evoegEcW\nnMOB/r9B3UKGb1z8QMuW8SlWxiicVjZdEXDgTsjrH4GmcW9cYB4WBGdTBi8P\nsUQx\r\n=PPgi\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCeeruzwJ5FiRs+kdxtrlFndOk6LK5jXPLGoAY2G1XGUAIgZkEIBM+OGwlEYcdrVS/RtD2AvERxi1fNlox240QKBxA="}]},"maintainers":[{"name":"corentinth","email":"corentin.thomasset74+npm@gmail.com"}],"_npmUser":{"name":"corentinth","email":"corentin.thomasset74+npm@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/js-quadtree_3.3.2-alpha.1_1599731374093_0.06699073742216521"},"_hasShrinkwrap":false},"3.3.2-alpha.2":{"name":"js-quadtree","version":"3.3.2-alpha.2","description":"A simple quadtree implementation for javascript (nodejs or browser with module bundler).","main":"dist/index.js","module":"dist/index.es.js","browser":"dist/index.js","scripts":{"build":"rollup -c","lint":"eslint ./src/**","test":"jest","prepare":"npm run build"},"repository":{"type":"git","url":"git+https://github.com/CorentinTh/quadtree-js.git"},"keywords":["quadtree","qt","quadtree.js","quadtree javascript"],"author":{"name":"Corentin Th","email":"corentin.thomasset74+npm@gmail.com","url":"https://github.com/CorentinTh"},"license":"MIT","devDependencies":{"@rollup/plugin-typescript":"^4.1.2","@types/jest":"^25.2.3","@typescript-eslint/eslint-plugin":"^2.34.0","@typescript-eslint/parser":"^2.34.0","eslint":"^6.8.0","jest":"^25.5.4","rollup":"^2.21.0","rollup-plugin-terser":"^7.0.0","rollup-plugin-typescript2":"^0.26.0","ts-jest":"^25.5.1","typescript":"^3.9.6"},"dependencies":{},"gitHead":"a6f113793bd7790821d0f2cac0d732f229403555","bugs":{"url":"https://github.com/CorentinTh/quadtree-js/issues"},"homepage":"https://github.com/CorentinTh/quadtree-js#readme","_id":"js-quadtree@3.3.2-alpha.2","_nodeVersion":"12.18.3","_npmVersion":"6.14.8","dist":{"integrity":"sha512-gGTE8ijwYHPywnR+PriVs1mgsAwx+NUENd+5frB/x5Npxn4B5KHlZotBo8VLmseZcHZ52V0tVXR1QkbkmMG7fw==","shasum":"61c82d1571d52c51897cfd43807d331c4409c636","tarball":"https://registry.npmjs.org/js-quadtree/-/js-quadtree-3.3.2-alpha.2.tgz","fileCount":20,"unpackedSize":68155,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfWfj9CRA9TVsSAnZWagAAjiQQAJBkxgHzZWaZjzuZvxWg\nilYO3OVtwL7aDDD/SGozJd+DL/8YiMk6ImFeEMPhEdYUQHzuYTe72kdRIKgR\nGKy0B8UvNtfnzO7DAv/f4VrKPKaARNAQ4OphLKtPuHjuTjwWWbA96tTWqO5M\nPkqEhV/Wr7PrJpDtfYfMTqGaslHD9Tb0zP3jsp+IC89i/eaDZdDk1dMzApSL\nyyVbqSTUphcHRmvJ5wZVyPBMtIpGczYA317DyV1iw+0E2rhUrgIauQvQ6jJ9\np4Fdg7Zh8dCVzyAP18vjMifwE4Rii2PQkqFDAGusZMveJ9rq9T+9rPa8qY+x\nvpoNB4c7uXBmB8PqOC59uL3Kxy4191ML+gQ6Ow6UtmusvrfHic2OyDbDIQ6v\nXKHU2pbJrOyS43+9rrjiE+IauBMU/S5pxRhkmRSpC5VBV4iT1n/37FU/CrMe\n+OkMgThNnZdp7zgxU+LCewVlp48W9G23ZJ6qu2mj37kB7jaADo0KS0KgsJPz\nc9JJsEz2UfUVZsPgz3P62AkGotu21Qqdgztx3YU8EzmBd9AsXnWaPoQW+QG/\nM3VaIW3oMHY6eFurQuwsRBcLMLLbnQAWU/fQEeV0OkDBpYxY6dCc2i74lOpW\nwRVfM/Lr01GEnSXVlaK3/HMOk/7XXa012cgkVhkTKGOiqFpU8L69M/HLPPZB\n2Cqm\r\n=nRI8\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDUUPpBL+zUZUX4hBY29dd900xLcqU9fMfrU4KGk4H53AiBpn7iMl8SOMWe2fLUT/K2DLLtjIi7yWOIqn2HdbT6RFg=="}]},"maintainers":[{"name":"corentinth","email":"corentin.thomasset74+npm@gmail.com"}],"_npmUser":{"name":"corentinth","email":"corentin.thomasset74+npm@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/js-quadtree_3.3.2-alpha.2_1599731964947_0.36633733054264717"},"_hasShrinkwrap":false},"3.3.2-alpha.4":{"name":"js-quadtree","version":"3.3.2-alpha.4","description":"A simple quadtree implementation for javascript (nodejs or browser with module bundler).","main":"dist/index.js","module":"dist/index.es.js","browser":"dist/index.js","scripts":{"build":"rollup -c","lint":"eslint ./src/**","test":"jest","prepare":"npm run build"},"repository":{"type":"git","url":"git+https://github.com/CorentinTh/quadtree-js.git"},"keywords":["quadtree","qt","quadtree.js","quadtree javascript"],"author":{"name":"Corentin Th","email":"corentin.thomasset74+npm@gmail.com","url":"https://github.com/CorentinTh"},"license":"MIT","devDependencies":{"@rollup/plugin-typescript":"^4.1.2","@types/jest":"^25.2.3","@typescript-eslint/eslint-plugin":"^2.34.0","@typescript-eslint/parser":"^2.34.0","eslint":"^6.8.0","jest":"^25.5.4","rollup":"^2.21.0","rollup-plugin-terser":"^7.0.0","rollup-plugin-typescript2":"^0.26.0","ts-jest":"^25.5.1","typescript":"^3.9.6"},"dependencies":{},"gitHead":"61ebcfccbfb6aa995846272421ea5f6de01048e7","bugs":{"url":"https://github.com/CorentinTh/quadtree-js/issues"},"homepage":"https://github.com/CorentinTh/quadtree-js#readme","_id":"js-quadtree@3.3.2-alpha.4","_nodeVersion":"12.18.3","_npmVersion":"6.14.8","dist":{"integrity":"sha512-5U+iOzsstMKYepvwSsLULneJ25amNulbb+mbwuKLis82FprecIXbRaunTwRuwYBvsvYo+HkLtwCA/VteoZVw+w==","shasum":"cf85b0407c694f032fb7cdb4f85b87679f2a7499","tarball":"https://registry.npmjs.org/js-quadtree/-/js-quadtree-3.3.2-alpha.4.tgz","fileCount":20,"unpackedSize":68155,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfWfroCRA9TVsSAnZWagAAfQsP/0wWA+LVmYP+3iPXy6Q7\nMqEFS4hcUPIVFzVx1Ndp/GNk9xlNzBR2c/McMftBduw5QJg46QYVSkAuWOk1\nPX9h6OdfTXox6XOqgBuBCEO4LLDUDSkelWKY6ERgcS6yU9V+yOsm8ihvLABD\nHUEHS6T8oBBUGcoKkenKlscQymQz05GIanc66uhSCj1WoxfBRtpkHhzgL2l3\nqpRPlnAEe+mCvBEVGxAgKeAhYPFMus0EH3pha61zMntNOAklRJeEqqXpYr0i\nl6ApRG9Tyb0AJBnx5B5G/qBT4q/6ltXlNgwak3j+FKIAyCqvolQD2oXytvOq\nc6pmJ93kTzeZLNL/921yZPlLrd310auGMSj26U+gR3YgOcrdf0uYGOCwE3oR\nHXlbrilyV6TnChoQ8u+rJF/gOMeH7IcIjvGEDT5WRwWBPPvo7x15sq67KDuN\ntlyJrLuNlciTQZGtMJKC6ex7PoW01zLiZ8swBbcmniAlIjN14p5r/BZa25ux\n6ZZSxnIunQr63TKGHeExrdFzLOMDy/jzP7zVNhRaG97VYMdW0H2+U7mVCVQO\nl7YPRZhzfXgaNtz27gwd24O1yOvEoGjh9nE51y7Su8I3TC9q22w2HC1Tf1hj\n4zLU+IfAJE/ylmFJ/+94wxv1hE221NrWx50WcSA203HTf2Cmo8tB3APAgUq5\nWvAw\r\n=688T\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDAMWyvckLi15H0F1MFLsvfFu28El8nDuTt54REJHUryQIgeI0xyrc+X4TEEllDQOu//SUvZ8+FkJfBc/kJ8i4gWTA="}]},"maintainers":[{"name":"corentinth","email":"corentin.thomasset74+npm@gmail.com"}],"_npmUser":{"name":"corentinth","email":"corentin.thomasset74+npm@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/js-quadtree_3.3.2-alpha.4_1599732456211_0.6893939368317108"},"_hasShrinkwrap":false},"3.3.2-alpha.6":{"name":"js-quadtree","version":"3.3.2-alpha.6","description":"A simple quadtree implementation for javascript (nodejs or browser with module bundler).","main":"dist/index.js","module":"dist/index.es.js","browser":"dist/index.js","scripts":{"build":"rollup -c","lint":"eslint ./src/**","test":"jest","prepare":"npm run build"},"repository":{"type":"git","url":"git+https://github.com/CorentinTh/quadtree-js.git"},"keywords":["quadtree","qt","quadtree.js","quadtree javascript"],"author":{"name":"Corentin Th","email":"corentin.thomasset74+npm@gmail.com","url":"https://github.com/CorentinTh"},"license":"MIT","devDependencies":{"@rollup/plugin-typescript":"^4.1.2","@types/jest":"^25.2.3","@typescript-eslint/eslint-plugin":"^2.34.0","@typescript-eslint/parser":"^2.34.0","eslint":"^6.8.0","jest":"^25.5.4","rollup":"^2.21.0","rollup-plugin-terser":"^7.0.0","rollup-plugin-typescript2":"^0.26.0","ts-jest":"^25.5.1","typescript":"^3.9.6"},"dependencies":{},"gitHead":"a27c5c20dc7ace5c8ef377c429aef1a51ee18d40","bugs":{"url":"https://github.com/CorentinTh/quadtree-js/issues"},"homepage":"https://github.com/CorentinTh/quadtree-js#readme","_id":"js-quadtree@3.3.2-alpha.6","_nodeVersion":"12.18.3","_npmVersion":"6.14.8","dist":{"integrity":"sha512-Cnk8KcevtG1PSf46UDKVwpy9XTLGJHRWj9T1ss66YIg7lDaDWuuDqSKbv3Po757uGnq5uoYSDFQAOGImj9tEUQ==","shasum":"4ae6d86a1c036bb63b27bef3c06afab9886f7db2","tarball":"https://registry.npmjs.org/js-quadtree/-/js-quadtree-3.3.2-alpha.6.tgz","fileCount":20,"unpackedSize":68155,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfWhZ1CRA9TVsSAnZWagAA13UP/1Seh0y7vUjJIHHmkJFO\nFUVwCo4wr+P0TXlaukgZNOtUZivSzJHSdZCb5p1+qCz6FDJ53cMnv5WElTGR\nODMDlkM3hRkZD69VZxZD9iS5/SEFmcNVsEBLOix4MUOP9Js1qRfrJWZy0YxZ\nEvDgVHy27mQYU5CkO8nOzHtRu7XLBQy2GlDNn33ziJAUdsqobGNQu9BVZI7T\ndb59LfOURP4nQF423MpF/9jvF54QAtQ8GtkNC+ucc0jFztM7crYkcznPS5GB\nc5lwWsz4kyfjsUZfrYNYkLgh0zWxLYmNSi8ir7ZR78S9JCDYf2B7cn9pJlHn\n5xS6HJy4EhZBlI8bl+hhQvpycENuCHxpMd/IZIxJHxrwzKSfuQv1p/qc50yW\nMfix4/5pAK5XJLk1BM25bmsBnDAdmNTO7+TKuL2vVNJgo9PMnoYipUlb+5FZ\nKpKzj6Vu3+o7WO3hxXU7N2XZMdvwYdncn6NxNbkmesM3342kOZF1lz11ww88\nZieToeN7dtjmPrVfimKTBkcfOx+BY2iP+zVcA7VQDCZ381U/lsutwD+0+o5+\nqgv3C3E/ArUqb14QeZnxb906lqgcCThvAgd4AcYjNOu25g68dS7QS3MlwM6g\nlYhheEMB5vDVlhwPJjakWgTBKEbufB42dqZ7Up1KJ5D6P9/KXAlaveVqG5Xs\nvbgI\r\n=qk2Y\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCv2rbgOnSGuu6T6mr/b03Ne6fbkVJNTVdBCNjp/fWXsQIgBfhYmfAGn0IPcT+QDUJKHVdKl3bjrWP1PyWXDCm0ipo="}]},"maintainers":[{"name":"corentinth","email":"corentin.thomasset74+npm@gmail.com"}],"_npmUser":{"name":"corentinth","email":"corentin.thomasset74+npm@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/js-quadtree_3.3.2-alpha.6_1599739508596_0.1904527312408304"},"_hasShrinkwrap":false},"3.3.2-alpha.7":{"name":"js-quadtree","version":"3.3.2-alpha.7","description":"A simple quadtree implementation for javascript (nodejs or browser with module bundler).","main":"dist/index.js","module":"dist/index.es.js","browser":"dist/index.js","scripts":{"build":"rollup -c","lint":"eslint ./src/**","test":"jest","prepare":"npm run build"},"repository":{"type":"git","url":"git+https://github.com/CorentinTh/quadtree-js.git"},"keywords":["quadtree","qt","quadtree.js","quadtree javascript"],"author":{"name":"Corentin Th","email":"corentin.thomasset74+npm@gmail.com","url":"https://github.com/CorentinTh"},"license":"MIT","devDependencies":{"@rollup/plugin-typescript":"^4.1.2","@types/jest":"^25.2.3","@typescript-eslint/eslint-plugin":"^2.34.0","@typescript-eslint/parser":"^2.34.0","eslint":"^6.8.0","jest":"^25.5.4","rollup":"^2.21.0","rollup-plugin-terser":"^7.0.0","rollup-plugin-typescript2":"^0.26.0","ts-jest":"^25.5.1","typescript":"^3.9.6"},"dependencies":{},"gitHead":"67bb5f6b04394f65a863878d22eface080724d33","bugs":{"url":"https://github.com/CorentinTh/quadtree-js/issues"},"homepage":"https://github.com/CorentinTh/quadtree-js#readme","_id":"js-quadtree@3.3.2-alpha.7","_nodeVersion":"12.18.3","_npmVersion":"6.14.8","dist":{"integrity":"sha512-6HjfHE/dzXFhpZPjHNuDGT4eEx0o/EQDGGAeb081wnj9fzNzJBCgDqYiuDmLCYIfgPbuNwVm0sa8N/73ZKI+dw==","shasum":"53b47c3fabd020193276f889a7f582077acf7701","tarball":"https://registry.npmjs.org/js-quadtree/-/js-quadtree-3.3.2-alpha.7.tgz","fileCount":20,"unpackedSize":68155,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfWiKlCRA9TVsSAnZWagAA9yUP/j/1rLGY3oKeNJs3lpDv\nwtapqyFFmPmrAxb0+9ANBEi6Cmh2tuv3S+4txnYFnKvWboR26GtyS6aAwTTS\nGiG4owlBWWRaLscvA/64TKSqUK52OcvMwQG1Lp2MWssGYB2eh06ei+FCmNww\nNf2dSiWNsHCIerP/emotizytvtV6wrpg3CDCv7KcVkn0EXeZSvN6z8eNoLAE\n1G1i6ulthmOjxIstsQczjOp80UWD1TDtFY3BK9FZOOUkUNrQ5T/Rhhafwq4s\nlSrFXqO6+0UrfV50R4VggCvCYrbKFl/J1qVDLKPAfLDww5yXnLsgmJRYVtgV\npoC9N44x4AJ8T6xiAVa/uzUjwVyyJwwmnHNdOp+Mkl4uvpYL7jDCsQjKaP0X\n3fyoU0kNDINUK9SjAflzQI+RpNppBsrwIiS8q+EVOSVYz1O5TSzpXOk4jS/s\n/NcXhFzhI9P60qXUBBHhQ0FJqvF168rjyS+rK2L2pMSzRU4uGIdUxH/gcFbW\nAOjpfEtVyRGXEnu7GAwW6D/r8QGFIOPPSI2BpfG0JYiavhMiceCyvigNJn+g\nufVyNBN2bIzwP79k53rMGG9d2nQvguXc/ZcOetF0ppxnXsihHSMIyXBCI1vQ\nse5A0X8wuguZcJalhc/Qxg2JW6ZRoCBbH/GAtDnI5+MaTmowqZpHCSxLjDmx\nw98n\r\n=U93H\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFt3axiLNIa6Rst8VRNy6pziFR9PluDhJEvYZhGLBQ+mAiEAgWR7GmzZP7ODQFioiRP++gxKgnpIoP6mWo5bMibWCOk="}]},"maintainers":[{"name":"corentinth","email":"corentin.thomasset74+npm@gmail.com"}],"_npmUser":{"name":"corentinth","email":"corentin.thomasset74+npm@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/js-quadtree_3.3.2-alpha.7_1599742629365_0.2046319767514695"},"_hasShrinkwrap":false},"3.3.2":{"name":"js-quadtree","version":"3.3.2","description":"A simple quadtree implementation for javascript (nodejs or browser with module bundler).","main":"dist/index.js","module":"dist/index.es.js","browser":"dist/index.js","scripts":{"build":"rollup -c","lint":"eslint ./src/**","test":"jest","prepare":"npm run build"},"repository":{"type":"git","url":"git+https://github.com/CorentinTh/quadtree-js.git"},"keywords":["quadtree","qt","quadtree.js","quadtree javascript"],"author":{"name":"Corentin Th","email":"corentin.thomasset74+npm@gmail.com","url":"https://github.com/CorentinTh"},"license":"MIT","devDependencies":{"@rollup/plugin-typescript":"^4.1.2","@types/jest":"^25.2.3","@typescript-eslint/eslint-plugin":"^2.34.0","@typescript-eslint/parser":"^2.34.0","eslint":"^6.8.0","jest":"^25.5.4","rollup":"^2.21.0","rollup-plugin-terser":"^7.0.0","rollup-plugin-typescript2":"^0.26.0","ts-jest":"^25.5.1","typescript":"^3.9.6"},"dependencies":{},"gitHead":"b0237b00c9d718246b568b62f4ddd0c06de10248","bugs":{"url":"https://github.com/CorentinTh/quadtree-js/issues"},"homepage":"https://github.com/CorentinTh/quadtree-js#readme","_id":"js-quadtree@3.3.2","_nodeVersion":"12.18.3","_npmVersion":"6.14.8","dist":{"integrity":"sha512-LgfSmnXGrt6OMv8zsUKSCTWHj+74RRPhpjoa4G0Uv9Z0JmhAQ4t27QD2Ukdz6XkCbNtsJbGkd17s9BU9puA2cw==","shasum":"d1fff0c44e9623cd70c33bff8d307c8564c7da95","tarball":"https://registry.npmjs.org/js-quadtree/-/js-quadtree-3.3.2.tgz","fileCount":20,"unpackedSize":68147,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfWiKrCRA9TVsSAnZWagAA+DIP/jyQX4f/nll15D+n5B9V\nUDp3eX0CKf0Bg2dQylBjFWjeUdRLqiO+qA3IKqFz5GdNKFrXuWsLMPI+IsBg\notrwfdwBkiJcIdH/x2XYR8JAmF0tf6pWMd+Mac0IEdfHIo8OdT2mVZmT34m6\nkx1/F5+I28r4MLpgwcGO7bNzGT5Ao1iTanfqWIfZH+9bHEtsxURp150DeuDd\n9ICAigzLpgsP+lxZMPl6yM2FPs02G4HFkph9KYQzagmVhgVFWWYzwFB1jw+r\nfWRJxEdDgio6BsV67Sgo84+knDvL83xCcmO5SMU2hosh3OAMKnZYxTJFPM5T\n8SXbwEBre3Gm55dAF/kIzTeoVpx2nO2HbKC31MfVDHXWnmYvU0wFWFhXmOJG\n4BTBGtBD94wvZGecga9/NJo/DHbQ5F/k8rerN4ZUS+tLJNQVpCqD1ubXYMd1\nct2gwcuSszdN8K217xFDncg3l6kmi5ET2wUH7ZoUwOqf8APdKa/qwS7BpP6h\njkOcm5OXMr9VYgXGDTSmkXCU/43Q6faZsb3nqvfB6pFNu4r1u/Dpl5PoMBS2\ni9n4560UbBe0LCDGp1l4QujfxdGxeujwZT6bYxlpeDwW9f329KUgnY0CfeLZ\n1TUxuVC7BN+mw7GU98F8Yqdv29rz5LRL/3WEClPHITvTGVmux4LU2CUtyHaD\nvIb9\r\n=jY1C\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDBIDHkNp3MqyZludTxpMKzvtGynt2X65B9zyriQ5iKIwIgOs1OYfbLS2zgta+DNTHgkRihNANCAhyLwfg5VwD7P74="}]},"maintainers":[{"name":"corentinth","email":"corentin.thomasset74+npm@gmail.com"}],"_npmUser":{"name":"corentinth","email":"corentin.thomasset74+npm@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/js-quadtree_3.3.2_1599742634934_0.7893364920813009"},"_hasShrinkwrap":false},"3.3.2-alpha.8":{"name":"js-quadtree","version":"3.3.2-alpha.8","description":"A simple quadtree implementation for javascript (nodejs or browser with module bundler).","main":"dist/index.js","module":"dist/index.es.js","browser":"dist/index.js","scripts":{"build":"rollup -c","lint":"eslint ./src/**","test":"jest","prepare":"npm run build"},"repository":{"type":"git","url":"git+https://github.com/CorentinTh/quadtree-js.git"},"keywords":["quadtree","qt","quadtree.js","quadtree javascript"],"author":{"name":"Corentin Th","email":"corentin.thomasset74+npm@gmail.com","url":"https://github.com/CorentinTh"},"license":"MIT","devDependencies":{"@rollup/plugin-typescript":"^4.1.2","@types/jest":"^25.2.3","@typescript-eslint/eslint-plugin":"^2.34.0","@typescript-eslint/parser":"^2.34.0","eslint":"^6.8.0","jest":"^25.5.4","rollup":"^2.21.0","rollup-plugin-terser":"^7.0.0","rollup-plugin-typescript2":"^0.26.0","ts-jest":"^25.5.1","typescript":"^3.9.6"},"dependencies":{},"gitHead":"a5d50679dd22e765df7acb22e6fd7584d870ad50","bugs":{"url":"https://github.com/CorentinTh/quadtree-js/issues"},"homepage":"https://github.com/CorentinTh/quadtree-js#readme","_id":"js-quadtree@3.3.2-alpha.8","_nodeVersion":"12.18.3","_npmVersion":"6.14.8","dist":{"integrity":"sha512-4sGNo4NfjPxmEYCYmqZohjdq3i6YqdmqxalzsoLG3H0SDcjvL9P96DOIlCLEuHLJVm1p7OHw6z0UoUFBw52UEQ==","shasum":"e7098a022bd56f0193494459c9164f1e509746e1","tarball":"https://registry.npmjs.org/js-quadtree/-/js-quadtree-3.3.2-alpha.8.tgz","fileCount":20,"unpackedSize":68155,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfWiMNCRA9TVsSAnZWagAAsgUP/i+tkk5fXGBwvOBNKmeu\nl9soxrA6bfWKdpIkkbe0KP3vyuj8FBv2Cl26SOQOv8xftjd7VTeMutgZcqcu\nKiMReL0sKqXuti0yItH9GoR3Plm1QW0SmXfJURVJKICht6mmNZCiiuYpgUWt\nYCLkaxVoNdUgSRldLsrfnJh3eadiEGjEo4Qv1cI1zaR4BtLItzo3nYw69kxm\ndhI/BUJuDEts60q3BSElmaLBHDGDqBABrqlSJsN/AdX0p6rOgbLdpxgJvlJw\nREpXFw2E24HbqVDHuC0uXRDUoS5N1JH5sS9qcIybtFIIv8yrRneO+IiLYZF0\n/kvRB59mvckWKc3JOAolzV1V6pzt/MeVO+RWhTygYAt3fKtUbqpfGxsANpXB\n+pG62FmWqqnBfClXLf+Dvb5pCsSjEUdKAIwaq4U7yWi4dFu+22duTeaI6gmo\nG7AhNCw+nrBKPYgzgLjgBTCFENZ7KNBIj475fHhJnidW0BDCiNZJyGNWXJIi\n42u0iHB17xBvA5VLA85ptn6Ly4u+Zybrpz+P9ngo9B6h7He7ltIl0Vt2pp+W\nJQ6a2zT5MJ9pOC4NmIkjGi4OoEkOW58JmMHI1ReWc8tz4LpiWnAXj6RZXGUx\n+aOe0IbgryrOvQhsh0JV6TxuMub+vC8mKbCTom7ZxvZ+snzIGp4XYEh5cEwG\ndet/\r\n=k0Dw\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCsIUr1u82OL5CpumFRkllGi//X79RsT8Ci0XqFJiHY3AIhAIMtA4CUZ7sSihRYWB0dD7Ptest9waDem6Z5bBs1j7wX"}]},"maintainers":[{"name":"corentinth","email":"corentin.thomasset74+npm@gmail.com"}],"_npmUser":{"name":"corentinth","email":"corentin.thomasset74+npm@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/js-quadtree_3.3.2-alpha.8_1599742733178_0.09689862277181716"},"_hasShrinkwrap":false},"3.3.2-alpha.9":{"name":"js-quadtree","version":"3.3.2-alpha.9","description":"A simple quadtree implementation for javascript (nodejs or browser with module bundler).","main":"dist/index.js","module":"dist/index.es.js","browser":"dist/index.js","scripts":{"build":"rollup -c","lint":"eslint ./src/**","test":"jest","prepare":"npm run build"},"repository":{"type":"git","url":"git+https://github.com/CorentinTh/quadtree-js.git"},"keywords":["quadtree","qt","quadtree.js","quadtree javascript"],"author":{"name":"Corentin Th","email":"corentin.thomasset74+npm@gmail.com","url":"https://github.com/CorentinTh"},"license":"MIT","devDependencies":{"@rollup/plugin-typescript":"^4.1.2","@types/jest":"^25.2.3","@typescript-eslint/eslint-plugin":"^2.34.0","@typescript-eslint/parser":"^2.34.0","eslint":"^6.8.0","jest":"^25.5.4","rollup":"^2.21.0","rollup-plugin-terser":"^7.0.0","rollup-plugin-typescript2":"^0.26.0","ts-jest":"^25.5.1","typescript":"^3.9.6"},"dependencies":{},"gitHead":"0250531969d214dc8271768d0784b0ad4b6c2dc9","bugs":{"url":"https://github.com/CorentinTh/quadtree-js/issues"},"homepage":"https://github.com/CorentinTh/quadtree-js#readme","_id":"js-quadtree@3.3.2-alpha.9","_nodeVersion":"12.18.3","_npmVersion":"6.14.8","dist":{"integrity":"sha512-9x1tYXb43P3eOdq39Ia9jVKO1tNBMy69KmUxBrfOEAEQ9nN11PSXqUGnD4oePe4Xja6uo4ZrE79BNMGUE8VhHA==","shasum":"9f8860549d0e739bcac44b4d8a7cf48d03289b4a","tarball":"https://registry.npmjs.org/js-quadtree/-/js-quadtree-3.3.2-alpha.9.tgz","fileCount":20,"unpackedSize":68155,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfWiM+CRA9TVsSAnZWagAAw+4P/jp1oa9fhN9HjNO7gBN/\nnLh2gmSV9xOWz03lysirZpzAiaofonFYKrAxKnTqO0j7T5Q3Or/+BBkAoFJZ\nLWSy91Oy6AAWLV/PyHIymQS3AGhEpX3PLvf79K++ea5Qp1sA2vCDpqEu1/Z0\nsw5XHpwH0IpQfTb+WBUUOXpuTy3tYwYptDUK2XXvCX9vR22mV3+G5zAmeVDp\nDzKrFUnypJE/gG8QRCpB1/4h+pgcVVpN0FyuZ1Fi5gPC9gaI45AkjhyW+ww9\nvAU+uBbup5Fxu5+qYymR7vY+jA3hFuQb4NeBs0vZ4fjArpdWHJYo/XnwqB2+\npSsSMpT+n39zmeuAj5j88GFq+3PpWGOhY2PlAfq1CyGiyXSE1J1oGVWvEy2w\nvDLZ0PZGXE8xYRcxXcQ9EcRMopOgX26XoQ2YLnIoj46JB8MJZN6AaKS4asy1\nn/sa4cp6Pus2nuBPX7Iluk9uEbqskqq9JxVyoldxabMEWhfg/eA3nBuIBta2\nOYqQQxwvSIdWMBcbaG6EDd8dOb7h/zSBuNUk9mp7VZvoeqjojXqE8RTzk6bL\nL7lS1MovqULdc3BkVlrgfCBP//XZryXt3dSUR2CIwmvjZo7rzYCG5GFBZ4vM\nShHfCXgWAc7fGgz8J9ZTBisuidopTl0kcNr6UdzAIFG5/zNlwSQcSKr11+C7\nmM8h\r\n=wEt1\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDl0gS6cGqNzbz8taoZGaXKpTI9FCOXqDiyuQ/c+C+YmAiEA07gVWlckpR9KpjFdhDAmRo3wM3fxUoGwFmz5ZybEPYw="}]},"maintainers":[{"name":"corentinth","email":"corentin.thomasset74+npm@gmail.com"}],"_npmUser":{"name":"corentinth","email":"corentin.thomasset74+npm@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/js-quadtree_3.3.2-alpha.9_1599742781793_0.7458976171452332"},"_hasShrinkwrap":false},"3.3.3":{"name":"js-quadtree","version":"3.3.3","description":"A simple quadtree implementation for javascript (nodejs or browser with module bundler).","main":"dist/index.js","module":"dist/index.es.js","browser":"dist/index.js","scripts":{"build":"rollup -c","lint":"eslint ./src/**","test":"jest","prepare":"npm run build"},"repository":{"type":"git","url":"git+https://github.com/CorentinTh/quadtree-js.git"},"keywords":["quadtree","qt","quadtree.js","quadtree javascript"],"author":{"name":"Corentin Th","email":"corentin.thomasset74+npm@gmail.com","url":"https://github.com/CorentinTh"},"license":"MIT","devDependencies":{"@rollup/plugin-typescript":"^4.1.2","@types/jest":"^25.2.3","@typescript-eslint/eslint-plugin":"^2.34.0","@typescript-eslint/parser":"^2.34.0","eslint":"^6.8.0","jest":"^25.5.4","rollup":"^2.21.0","rollup-plugin-terser":"^7.0.0","rollup-plugin-typescript2":"^0.26.0","ts-jest":"^25.5.1","typescript":"^3.9.6"},"dependencies":{},"gitHead":"ef3fd561d372376c89d902280df6bfd30f1a9e31","bugs":{"url":"https://github.com/CorentinTh/quadtree-js/issues"},"homepage":"https://github.com/CorentinTh/quadtree-js#readme","_id":"js-quadtree@3.3.3","_nodeVersion":"12.18.3","_npmVersion":"6.14.8","dist":{"integrity":"sha512-U5P+21CgwQqhmWOZ+Xz3MITOpFi0k0SgrkOMHjSeeQJPyyPy63XeHDCUjX4GzqMd/A78xNGXnv51JMM/8fXaIQ==","shasum":"5de7eac067d7663c2953d5019f154791eb8cb05c","tarball":"https://registry.npmjs.org/js-quadtree/-/js-quadtree-3.3.3.tgz","fileCount":20,"unpackedSize":68234,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfWjaKCRA9TVsSAnZWagAAnhMQAJBfvoITvc6JVcJVOMcx\neBQjh233o99s3ofnqm0pIv0JemjZQ3div7fgWfLEDN7Y5rVYCYqtdMIxsoee\nKT07xEsgIyF7qMV1jN3yGCHw1fAg0LMGntA75wTSu5yRiTdfq/cCr9C/xbnh\nbuqYeRq++EhDmo9wKeaH37rGvyAoezQ7fFC2Wo/HxC4af7Oi0lFoMc5g1One\ndkcFio4l0A7/6hyVKQRmRGCeNPSwuy+L8K/Y3L0WhEwzcqZ4sL2bBLluSOmb\nDvi7AkQAViL7iHuyyFBLZ4cL+h5WVJnu0tz+7DBFEfcyOJALBDyjJPgt6WC7\ntWNdwOGMryevx3WPSP2MGsqX76yF59GRl2nGYlakhLF8ZXaaXQXHfw/mSQ62\n6PxWytNL4y0iHI2jG4IF8afnhKbUrn5WbyeZj9XxnoFqS0ECuli/yaO6yk1G\nIvcnxSabCFdd4Eu5ZYhbPTnSH6OPaoJEu/If3qJPz1ZMmyDPIC3C7cgIIHdD\nm61pCjmLRN4kIOUiwcg0Su5E5UavFkG8ZzPpFf/6+KP3+e3NE1IDGcwIJ3tu\nP058V2CWlu0TNO/zdZPyfWJ/lCNtltIt16cubdLTcYPful1BSlMMiCifSPHR\nbN9RJmHm7O17Kb8hO6z71FhqBe3hMo4aTAHbfU4Q0XXJa/i0c3iPrHE3lOWv\n75rh\r\n=jqcv\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFfuW4hb2fims1J3+zagu+FaGZ+MwNhFFvsGvkfZfUn3AiAWEyt4LTSUJv99XfU3k1/U6VzsYj2W02kuxpfYtdCvKg=="}]},"maintainers":[{"name":"corentinth","email":"corentin.thomasset74+npm@gmail.com"}],"_npmUser":{"name":"corentinth","email":"corentin.thomasset74+npm@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/js-quadtree_3.3.3_1599747721602_0.7174635428923948"},"_hasShrinkwrap":false},"3.3.4":{"name":"js-quadtree","version":"3.3.4","description":"A simple quadtree implementation for javascript (nodejs or browser with module bundler).","main":"dist/index.js","module":"dist/index.es.js","browser":"dist/index.js","scripts":{"build":"rollup -c","lint":"eslint ./src/**","test":"jest","prepare":"npm run build"},"repository":{"type":"git","url":"git+https://github.com/CorentinTh/quadtree-js.git"},"keywords":["quadtree","qt","quadtree.js","quadtree javascript"],"author":{"name":"Corentin Th","email":"corentin.thomasset74+npm@gmail.com","url":"https://github.com/CorentinTh"},"license":"MIT","devDependencies":{"@rollup/plugin-typescript":"^4.1.2","@types/jest":"^25.2.3","@typescript-eslint/eslint-plugin":"^2.34.0","@typescript-eslint/parser":"^2.34.0","eslint":"^6.8.0","jest":"^25.5.4","rollup":"^2.46.0","rollup-plugin-terser":"^7.0.2","rollup-plugin-typescript2":"^0.26.0","ts-jest":"^25.5.1","typescript":"^3.9.9"},"dependencies":{},"gitHead":"37ac10d54f13b85d16476f8f611ab752aad2ba37","bugs":{"url":"https://github.com/CorentinTh/quadtree-js/issues"},"homepage":"https://github.com/CorentinTh/quadtree-js#readme","_id":"js-quadtree@3.3.4","_nodeVersion":"14.16.1","_npmVersion":"6.14.12","dist":{"integrity":"sha512-Ye82yVbZ6JSwi1qzkICntogMhBPWYlC+WlLrE0ajcZVdO0snJhp2ragYCnc+0LuPCfS89gYj0b8uB4RrU1AJAQ==","shasum":"fd8f66da7407209d5c9884ee59d862271a297026","tarball":"https://registry.npmjs.org/js-quadtree/-/js-quadtree-3.3.4.tgz","fileCount":20,"unpackedSize":68313,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgirwKCRA9TVsSAnZWagAAs3QP/j1RZRcH13IfmlLOr+aV\n4pSYBK4O9xxzees1C2ipINRnlgOUPx3JmAYg6grbw/JMsfGVSOW71G7yuFgt\n5heWnAT+7/P5xFRAev1qEjUiebKpXPtRQUY8eCIUxyecXrtMtbB1/JccAl+c\nXw2CLAiccJ+gy4zQZah6HroyFW0TGWj79lvFTBXgxeQhorLC1l8mJ9USn17w\n3bNF3xApWOfc/3XqHnJbvu1C4SmzI20FMuHCTi92H+KHFgWZU7KLthkNkz8k\nwk0O7NmzBAbBKKu1SVKYCS3EhhFJ1VGMXGlU/SSoqn6Umff0l2R63JDh3NBo\nj8xBCSEU437KNJQhM8mY0c8g+h5ky8oQ+KMfQukyi3BMvOjpJS/4oCIVSIRm\nqjlCnrflMjW3fREg6P+YnwygktU/uG9e9zSPykym0SRIDlamCgz2XhHhQdc3\nDufFMrzGNPTayALkiaY+mNJkvnM6KuYBfHi+2WHUwz65gCFV6uD6j3RSf2X5\nJKqZP18fNyWR6rCVybuDP9tnzaaAfetB8/0XXUOlSQeK/eIFJS48Sa/K8T20\nSunmUaCT+pI8uKAFvJL9E/lAGBxFsS0ZWhMbSCMiQcBmvyGH5tYUGwCOzAF7\nBQ/SwtwHoqwxCenrSwEEiDefQqwY3J/6Z1bCjaVsX664sasbgvVgCNmqA1me\ngaSn\r\n=ORDn\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFS7+s0DgjqWcn9cexQaBAVf+0NXTt4UBmquCRMPqGTNAiEAgPHutUiPs5YwKOq3NKAq8Rle5GcQ9Ip4j/FMk6gh5HE="}]},"_npmUser":{"name":"corentinth","email":"corentin.thomasset74+npm@gmail.com"},"directories":{},"maintainers":[{"name":"corentinth","email":"corentin.thomasset74+npm@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/js-quadtree_3.3.4_1619704841601_0.5828273909198984"},"_hasShrinkwrap":false},"3.3.5-alpha.1":{"name":"js-quadtree","version":"3.3.5-alpha.1","description":"A simple quadtree implementation for javascript (nodejs or browser with module bundler).","main":"dist/index.js","module":"dist/index.es.js","browser":"dist/index.js","scripts":{"build":"rollup -c","lint":"eslint ./src/**","test":"jest","prepare":"npm run build"},"repository":{"type":"git","url":"git+https://github.com/CorentinTh/quadtree-js.git"},"keywords":["quadtree","qt","quadtree.js","quadtree javascript"],"author":{"name":"Corentin Th","email":"corentin.thomasset74+npm@gmail.com","url":"https://github.com/CorentinTh"},"license":"MIT","devDependencies":{"@rollup/plugin-typescript":"^4.1.2","@types/jest":"^25.2.3","@typescript-eslint/eslint-plugin":"^2.34.0","@typescript-eslint/parser":"^2.34.0","eslint":"^6.8.0","jest":"^25.5.4","rollup":"^2.47.0","rollup-plugin-terser":"^7.0.2","rollup-plugin-typescript2":"^0.26.0","ts-jest":"^25.5.1","typescript":"^3.9.9"},"dependencies":{},"gitHead":"90bb519baed4affc75aab5d85c9e58f3abeabc07","bugs":{"url":"https://github.com/CorentinTh/quadtree-js/issues"},"homepage":"https://github.com/CorentinTh/quadtree-js#readme","_id":"js-quadtree@3.3.5-alpha.1","_nodeVersion":"14.16.1","_npmVersion":"6.14.12","dist":{"integrity":"sha512-MP7XetXoMZ2BDwqjzwdiYb24T/fNKQ0SHAZCPLfJOuXejASFh40XN0mCE2VDeNzvp9v0g78g913ClRWF6KD9fg==","shasum":"98045c92eefe25980ff1d6d3cb64a80b51df14a8","tarball":"https://registry.npmjs.org/js-quadtree/-/js-quadtree-3.3.5-alpha.1.tgz","fileCount":20,"unpackedSize":68321,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgmPvNCRA9TVsSAnZWagAAMCkP/i3HAqOUPX596eV8eXG3\n1qfQs8Sz0W6xrQ8nSy/KB0bZJR/3p16bcxWvFzQsHalHCzIPMlGdtv2cE8tG\nxUirjBET/oT2uAMNX8NslwIrMYDG37OGTrWERZoFZ/E+CCz2P27DtCBozVti\nzZGwKFwqfxz6/Q/sKJY6jyM9QHUjOeWpFrBdRTwLLfAxuKiA+PwFHt7WWI0Q\nBS9pFK/ax/VDoPvzOmZ1PXRc/EYib3IiyyZDwsr8IGVCi8DZc/UudQRL7FX/\n6zeh2NE7WELCaeV9BkXaQ+1HiyaSKzfNz0bu3s+v1RDmoWpLIvxEJHqp9jBC\nVyDGNhCBkcv6PAri7zOmT75cdYHXPmzF3kntm8cAuufRC5IsXg/modjob9Nf\nQAiJTKfgCO3N4ZDPI2lzBxJSFzD/2V2AkVtYb9HePDdXw94HmtHhmZYDsMGz\nY7Y8GrArY9Kdn91kjDvQ7OAp+H9wuqw7oWunNrX5D04N5UgqbTiQOsSq1Kqs\n86qP/jck3TEPnJm+IQqpf/GLxRwAvFZCqog2JyrmvGGt31mxSHbnuw7yzjtZ\nYRNc7bapXIGJghqGb45fpD5fImWOoUziydq4gKskuMVBkjCo7vNGTX0giPaQ\no8vCg9Z1eNIXDStIlfwUJ1ETVE01Z/LMZnkAAcszrijWvOsUoOE8CWeLm14H\nt+ND\r\n=q7Yr\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCyAdLf9JVJ4w3ZNSGN3yk2k3/hW1zGi0MonTejyfug2gIgETCF3PSHLMReFn0tA+fDgpa47QanRTD2M5Mn8piZgQQ="}]},"_npmUser":{"name":"corentinth","email":"corentin.thomasset74+npm@gmail.com"},"directories":{},"maintainers":[{"name":"corentinth","email":"corentin.thomasset74+npm@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/js-quadtree_3.3.5-alpha.1_1620638668984_0.45409721190982744"},"_hasShrinkwrap":false},"3.3.5":{"name":"js-quadtree","version":"3.3.5","description":"A simple quadtree implementation for javascript (nodejs or browser with module bundler).","main":"dist/index.js","module":"dist/index.es.js","browser":"dist/index.js","scripts":{"build":"rollup -c","lint":"eslint ./src/**","test":"jest","prepare":"npm run build"},"repository":{"type":"git","url":"git+https://github.com/CorentinTh/quadtree-js.git"},"keywords":["quadtree","qt","quadtree.js","quadtree javascript"],"author":{"name":"Corentin Th","email":"corentin.thomasset74+npm@gmail.com","url":"https://github.com/CorentinTh"},"license":"MIT","devDependencies":{"@rollup/plugin-typescript":"^4.1.2","@types/jest":"^25.2.3","@typescript-eslint/eslint-plugin":"^2.34.0","@typescript-eslint/parser":"^2.34.0","eslint":"^6.8.0","jest":"^25.5.4","rollup":"^2.47.0","rollup-plugin-terser":"^7.0.2","rollup-plugin-typescript2":"^0.26.0","ts-jest":"^25.5.1","typescript":"^3.9.9"},"dependencies":{},"gitHead":"f7c7f1729580722743d22ea22c82659aca0d8db9","bugs":{"url":"https://github.com/CorentinTh/quadtree-js/issues"},"homepage":"https://github.com/CorentinTh/quadtree-js#readme","_id":"js-quadtree@3.3.5","_nodeVersion":"14.16.1","_npmVersion":"6.14.12","dist":{"integrity":"sha512-lVpcF/HgHVlxY/BkaVaZwgoPZKMW7qmcFEJeHNPR0QSXHJxIgXF1OJOExW+IJsoQcpAreJUr4A5DPcUrNjbv8A==","shasum":"bcf0a84b97e392e32336b8cf0dfb530e71c30b1a","tarball":"https://registry.npmjs.org/js-quadtree/-/js-quadtree-3.3.5.tgz","fileCount":20,"unpackedSize":68313,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgmP1BCRA9TVsSAnZWagAAYfgP/3ehYhAiZ2NC0gYQ/ezE\nQjqyoR0+hVBkdPPFOXNrHP0W8n/jdIaRP2oIaf6SH5OAf4kmnYCjUjRa7Tq/\nxlcPl4rRA9gkzF+D9b8r7V5u4v3gwlIKuv425+bo+KmfeQLqWEtYekXEkblG\neorWR3Ly7PfX6lkhmrro1blM7Kf/cB/g908drjG2R0BFR7rJ5cszRRV/EvtS\nybcoYzU6d3uT2EBOh0gCn7+HAeqllBycP28CahmvZmpUVZH9d/pTBk6P51ta\nn3gJwYVokZzoosEv61EAMegtocP/p5dCL+iYfekE9U2P1ZPfZQG5WjoDxH3w\nIBc2cPzarHYK3I/oksCAX+4DYRp/lOOr/tDxoPYawLCnwPmz6hyXnqh1s6aZ\nT4aC2PGK6mBCZPOglkIK05oKKKDlG11LxvjcNRkO8ZwfkgswmatgQURuBzGZ\nSidu9XsaYF8cijxHTO4A39sPd4pYVrEC1mX6ZvZJi/rUfoSPjyOHXavnUN8Q\nqj/Uu9ZZ/di/uK+uhHOseoL+4hQ9QVOL9Q1fAlXHKPOjC7yz9BkU6ICA8twP\nzHCzuXKgAZbKVXLVV2E5zHr5HSG9Tkhnb6XhdYEkzEI9TBnL34SzaGWKH28q\n/l5+fPiPeclmJ8vHVsSIl+fzYunCl+9LALLOHxlvPNK2KbZN3DwKcWCipKfF\n2/aY\r\n=Tu9a\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBR+8VU7b4HUROmEwLLTU9ztrf48SOHHLsZG1d7NhJH6AiEA3EUTdxlzpu1EqGhPwmsfEgnCV/EVm1drUJwyuAWrA7c="}]},"_npmUser":{"name":"corentinth","email":"corentin.thomasset74+npm@gmail.com"},"directories":{},"maintainers":[{"name":"corentinth","email":"corentin.thomasset74+npm@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/js-quadtree_3.3.5_1620639040878_0.3092366527597248"},"_hasShrinkwrap":false},"3.3.6":{"name":"js-quadtree","version":"3.3.6","description":"A simple quadtree implementation for javascript (nodejs or browser with module bundler).","main":"dist/index.js","module":"dist/index.es.js","browser":"dist/index.js","scripts":{"build":"rollup -c","lint":"eslint ./src/**","test":"jest","prepare":"npm run build"},"repository":{"type":"git","url":"git+https://github.com/CorentinTh/quadtree-js.git"},"keywords":["quadtree","qt","quadtree.js","quadtree javascript"],"author":{"name":"Corentin Th","email":"corentin.thomasset74+npm@gmail.com","url":"https://github.com/CorentinTh"},"license":"MIT","devDependencies":{"@rollup/plugin-typescript":"^4.1.2","@types/jest":"^25.2.3","@typescript-eslint/eslint-plugin":"^2.34.0","@typescript-eslint/parser":"^2.34.0","eslint":"^6.8.0","jest":"^25.5.4","rollup":"^2.47.0","rollup-plugin-terser":"^7.0.2","rollup-plugin-typescript2":"^0.26.0","ts-jest":"^25.5.1","typescript":"^3.9.9"},"dependencies":{},"gitHead":"d381eb36bbb46e7c431cf0635bafba07fd305f9c","bugs":{"url":"https://github.com/CorentinTh/quadtree-js/issues"},"homepage":"https://github.com/CorentinTh/quadtree-js#readme","_id":"js-quadtree@3.3.6","_nodeVersion":"14.17.0","_npmVersion":"6.14.13","dist":{"integrity":"sha512-cQUgpcbg7m9F/QdsEd6v0p9w8+QJKBn6RXtxNGbknTyHe3LPBCerwWrzW0lWld8Sst5GpW6/3G9KSeAA48yJVg==","shasum":"ce7f2b09e1d5b11333dbec5f8e18583299596893","tarball":"https://registry.npmjs.org/js-quadtree/-/js-quadtree-3.3.6.tgz","fileCount":20,"unpackedSize":68359,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgwxH5CRA9TVsSAnZWagAAAfIP/0lY7mXyTXzAoh8XuOBZ\nJ0+HKNJ6dGnuE5NdvGPKAYPbaFPWM4HeCsK+LIsK4OF29BaHBd8dwTLRKm56\nkMYVtlhhB+cjWLo6F0FMMISEZg3/UcWzY5cujo8uRUgbpXl4JMJDiRmv9a1H\npDgTs80mm2b1wlR3NDqpOS2zVrm8EmAaPkYxmMmROCJTprlIJCp7W1UL3ml3\nFeTsyATs2xo/05AWCruHaTBq3PyuGJLg4HIPXymXpX7moHDF4Q2rYfmZWOAj\n161TPzF4TQatA/HU7Jw3lqv112v/vgAkbZIZ6A6f8i40/RgCE40gANnNTW4A\nHkc6cZmAb6HUdcRw394ISpD5cOvnMWejj7P6fJ041ObCEkkDB97HxMlzD59z\nE30sPw9iEIQcoMlLOS8pCfBneDLMtQ4p5APmgtUKuPhyXySLIhf7+PuW+3kp\nO30XSF/s7qgWj4vrGjE6tnbmZEZSN1hzYFKXzG1YghIMSnDEkxhf9AmaJKZS\nlaZJcfn1RJ7KjW63D/NKji97vVu1qnL4L+fitMFy7Ai2HxwZcYrxrvfZS8ae\n3R1X4abwTHyoSfkGAxnnXzTmtABHGloEDZoF5xeV57Bd228RbwizfoUMf3CQ\nh3RDCJs3c7r1iEkIybOgGySbZYnUzqXatQpM0Lw7MPhCSW/omPqWjTDvGPGV\ne18A\r\n=krfP\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGSFwqQ5fc5KQ5KVL5WYiGzh6F9cnsQU3GcPquP/5Zw+AiBnlfcnNXSS0/Jazw11CRyFTHn++g5Cv0nThyyjdMmECg=="}]},"_npmUser":{"name":"corentinth","email":"corentin.thomasset74+npm@gmail.com"},"directories":{},"maintainers":[{"name":"corentinth","email":"corentin.thomasset74+npm@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/js-quadtree_3.3.6_1623396857181_0.3204811012254367"},"_hasShrinkwrap":false}},"time":{"created":"2018-06-27T22:19:12.040Z","1.0.0":"2018-06-27T22:19:12.119Z","modified":"2022-05-06T19:20:45.171Z","1.0.1":"2018-06-27T22:21:46.342Z","1.0.2":"2018-06-28T11:18:45.282Z","1.1.0":"2018-07-07T17:27:46.752Z","1.2.0":"2018-07-10T10:45:16.446Z","2.0.0":"2019-04-18T13:49:44.929Z","2.0.1":"2019-04-18T15:10:44.222Z","0.0.0-fd7b0f3":"2020-03-08T20:22:13.802Z","0.0.0-24a9882":"2020-03-08T20:43:32.970Z","0.0.0-4167bc8":"2020-03-08T20:45:44.443Z","0.0.0-c8604bf":"2020-03-08T21:29:02.515Z","0.0.0-7f89835":"2020-03-08T21:29:57.316Z","0.0.0-ba247ac":"2020-03-08T21:34:19.772Z","3.0.0":"2020-03-08T21:36:03.988Z","0.0.0-8fc07e1":"2020-03-14T11:56:11.937Z","0.0.0-88e4927":"2020-04-05T10:34:39.175Z","3.1.0":"2020-04-05T10:42:33.730Z","0.0.0-f9c5e53":"2020-04-08T16:53:16.577Z","0.0.0-d81730b":"2020-04-08T16:55:00.707Z","0.0.0-2b81fe8":"2020-04-08T16:57:52.090Z","3.1.1":"2020-04-08T17:00:11.228Z","0.0.0-30bec57":"2020-05-04T09:49:59.902Z","0.0.0-7c20355":"2020-05-04T10:02:18.438Z","0.0.0-fd8a676":"2020-05-04T10:05:04.119Z","3.2.0":"2020-05-04T10:13:00.141Z","3.2.3":"2020-05-26T16:26:50.540Z","3.2.4":"2020-07-11T20:17:32.283Z","3.3.0":"2020-08-16T19:37:32.339Z","3.3.1":"2020-09-10T08:10:29.973Z","3.3.2-alpha.1":"2020-09-10T09:49:34.250Z","3.3.2-alpha.2":"2020-09-10T09:59:25.035Z","3.3.2-alpha.4":"2020-09-10T10:07:36.396Z","3.3.2-alpha.6":"2020-09-10T12:05:08.747Z","3.3.2-alpha.7":"2020-09-10T12:57:09.489Z","3.3.2":"2020-09-10T12:57:15.091Z","3.3.2-alpha.8":"2020-09-10T12:58:53.303Z","3.3.2-alpha.9":"2020-09-10T12:59:41.952Z","3.3.3":"2020-09-10T14:22:01.740Z","3.3.4":"2021-04-29T14:00:41.763Z","3.3.5-alpha.1":"2021-05-10T09:24:29.161Z","3.3.5":"2021-05-10T09:30:41.037Z","3.3.6":"2021-06-11T07:34:17.291Z"},"maintainers":[{"name":"corentinth","email":"corentin.thomasset74+npm@gmail.com"}],"description":"A simple quadtree implementation for javascript (nodejs or browser with module bundler).","homepage":"https://github.com/CorentinTh/quadtree-js#readme","keywords":["quadtree","qt","quadtree.js","quadtree javascript"],"repository":{"type":"git","url":"git+https://github.com/CorentinTh/quadtree-js.git"},"author":{"name":"Corentin Th","email":"corentin.thomasset74+npm@gmail.com","url":"https://github.com/CorentinTh"},"bugs":{"url":"https://github.com/CorentinTh/quadtree-js/issues"},"license":"MIT","readme":"\n<div align=\"center\">\n\n  ![logo](.github/logo.png)\n  \n</div>\n\n\n<div align=\"center\">\n\n  [![Weekly Downloads](https://img.shields.io/npm/dw/js-quadtree.svg)](https://www.npmjs.com/package/js-quadtree) \n  [![GitHub Workflow Status](https://img.shields.io/github/workflow/status/CorentinTh/quadtree-js/Node%20CI)](https://github.com/CorentinTh/quadtree-js/actions?query=workflow%3A%22Node+CI%22) \n  [![Coverage Status](https://codecov.io/gh/CorentinTh/quadtree-js/branch/master/graph/badge.svg)](https://codecov.io/gh/CorentinTh/quadtree-js) \n  [![npm bundle size](https://img.shields.io/bundlephobia/minzip/js-quadtree.svg)](https://www.npmjs.com/package/js-quadtree) \n  [![GitHub package.json version](https://img.shields.io/github/package-json/v/CorentinTh/quadtree-js.svg)](https://github.com/CorentinTh/quadtree-js/blob/master/package.json) \n  [![Dependencies](https://img.shields.io/badge/dependencies-0-green)](https://www.npmjs.com/package/js-quadtree) \n  [![Licence Badge](https://img.shields.io/github/license/CorentinTh/quadtree-js.svg)](LICENCE)\n    \n</div>\n\nA powerful quadtree implementation in javascript. It can be used for nodejs or directly in the browser.\n\n## Installation\n### Node JS\n**Quadtree-js** can be installed using yarn or npm.\n\n```bash\nnpm install js-quadtree\n# or\nyarn add js-quadtree\n```\n\nAnd import :\n\n```javascript\n// EMAScript import\nimport {QuadTree, Box, Point, Circle} from 'js-quadtree';\n// Or Common JS:\nconst {QuadTree, Box, Point, Circle} = require('js-quadtree');\n\nconst quadtree = new QuadTree(new Box(0, 0, 1000, 1000));\n\nquadtree.insert(new Point(100, 200, {custom: 'data'}));\n\nconst results = quadtree.query(new Circle(150, 150, 100));\n```\n### Browser\n\nYou can use the CDN:\n```html\n<script src=\"https://unpkg.com/js-quadtree\"></script>\n```\nAnd everything is globally accessible and **prefixed with `QT`**:\n```javascript\nconst quadtree = new QT.QuadTree(new QT.Box(0, 0, 1000, 1000));\n\nquadtree.insert(new QT.Point(100, 200, {custom: 'data'}));\n\nconst results = quadtree.query(new QT.Circle(150, 150, 100));\n```\n \n## Usage\n### Creation\n```javascript\n// Create the bounding area of the quadtree (x, y, width, height)\nconst boundingArea = new Box(0, 0, 1000, 1000);\n\n// Instantiate  the new quadtree\nconst quadtree = new QuadTree(boundingArea);\n```\n\nYou can also specify the following optional parameters:\n```javascript\n// Create the bounding area of the quadtree (x, y, width, height)\nconst boundingArea = new Box(0, 0, 1000, 1000);\n\nconst config = {\n    capacity: 10,            // Specify the maximum amount of point per node (default: 4)\n    removeEmptyNodes: true,  // Specify if the quadtree has to remove subnodes if they are empty (default: false).\n    maximumDepth: 5,         // Specify the maximum depth of the quadtree. -1 for no limit (default: -1).\n    // Specify a custom method to compare point for removal (default: (point1, point2) => point1.x === point2.x && point1.y === point2.y).\n    arePointsEqual: (point1, point2) => point1.data.foo === point2.data.foo      \n};\n\n// An array of point to insert directly (same as quadtree.insert(points) )\nconst points = [new Point(10, 10), new Point(52, 64)];\n\nconst quadtree = new QuadTree(boundingArea, config, points);\n```\n\n### Insert\n\nYou can insert a **Point** element, an array of **Point** element, your **own element** as long as it has an **x** and a **y** property or an array of custom element.\n\n```javascript\nconst point = new Point(10, 25);\n\nconst pointArray = [\n    new Point(45, 22),\n    new Point(30, 60),\n    new Point(14, 12)\n];\n\nconst customPoint = {\n    x: 94,\n    y: 23,\n    customField:{}\n};\n\nquadtree.insert(point);\nquadtree.insert(pointArray);\nquadtree.insert(customPoint);\n```\n\nYou can add your data in a **Point** element:\n```javascript\nconst myData = {\n    foo: 'bar'\n};\n\nconst point = new Point(50, 50, myData);\n\nconsole.log(point.data.foo); // 'bar'\n```\n\n### Remove\n\nAs the **insert** method, you can remove a **Point** element, an array of **Point** element, your **own element** as long as it has an **x** and a **y** property or an array of custom element.\n\nBy default, points having the same **x** and **y** values will be removed. To override this behavior, add a method under `arePointsEqual` in the config of the quadtree that takes two points in parameters and return a boolean if the points are equal.\nExample: `const quadtree = new QuadTree(boundingArea, {arePointsEqual: (point1, point2) => point1.data.foo === point2.data.foo});` \n\n```javascript\nconst point = new Point(10, 25);\n\nconst pointArray = [\n    new Point(45, 22),\n    new Point(30, 60),\n    new Point(14, 12)\n];\n\nconst customPoint = {\n    x: 94,\n    y: 23\n};\n\nquadtree.remove(point);\nquadtree.remove(pointArray);\nquadtree.remove(customPoint);\n```\n\n**Note**: it doesn't have to be the same object, the test is done with the coordinates.\n\n### Query\n\nUse the **query** method to get all the point within a range.\n\n\n```javascript\n// This will return all the points in the given Box (x, y, width, height)\nconst points = quadtree.query(new Box(10, 10, 100, 100));\n```\n\n```javascript\n// This will return all the points in the given Circle (x, y, radius)\nconst points = quadtree.query(new Circle(10, 10, 100));\n```\n\nYou can use a **Box** or a **Circle** as a range or even your own range element as long as it has the following methods:\n* **contains**: return true if a point is within this range, false otherwise.\n* **intersects**: return true if a **Box** intersects with this range, false otherwise.\nSee [the Box definition](src/Box.js) for a good example.\n\n### Get all the point\n\nIf want to retrieve all the point, you can use this method:\n\n```javascript\nconst points = quadtree.getAllPoints();\n```\n\n**Note**: you may want to store your points in a side array since, it have to look trough all the child nodes.\n\n### Get Tree\n\nYou can get the amount of points by nodes with the `getTree()` method.\n\n```javascript\nconst qt = new QuadTree(new Box(0, 0, 10, 10));\n\nqt.insert(new Point(5, 5));\nqt.insert(new Point(6, 5));\nqt.insert(new Point(4, 5));\nqt.insert(new Point(3, 5));\nqt.insert(new Point(2, 5));\nqt.insert(new Point(1, 5));\n\nconsole.log(qt.getTree());\n\n// {\n//     ne: 2, \n//     nw: {\n//         ne: 0, \n//         nw: 0, \n//         se: 3, \n//         sw: 2\n//     }, \n//     se: 2,\n//     sw: 3\n// }\n```\n\n### Clear\n\nUse this method to clear the quadtree. It remove all the points and sub-nodes.\n\n```javascript\nquadtree.clear();\n```\n\n## Contribute\n**Pull requests are welcome !** Feel free to contribute.\n\n## Credits\nCoded with ❤️ by [Corentin Thomasset](//corentin-thomasset.fr).\n\n## License\n\nThis project is under the [MIT license](LICENSE).\n\n","readmeFilename":"README.md"}