{"_id":"@ridp/threejs","_rev":"47-cb05823ba991be997e7cc478586511a4","name":"@ridp/threejs","dist-tags":{"latest":"2.0.1"},"versions":{"0.0.1":{"name":"@ridp/threejs","version":"0.0.1","_id":"@ridp/threejs@0.0.1","maintainers":[{"name":"muxihuakai","email":"874518796@qq.com"}],"dist":{"shasum":"a55678b5087591d5917739aa75b091fa43b215e2","tarball":"https://registry.npmjs.org/@ridp/threejs/-/threejs-0.0.1.tgz","fileCount":46,"integrity":"sha512-OsrVWlupOS5i+yYWqgfxhrXGf6ltPjOMqE3wkE1rFUM7yBq73LqRQvG/1IaMycRYfx1LmNuMhIcWUcliJHzGRQ==","signatures":[{"sig":"MEYCIQCjlZxW51V6AFZ3Iz2TBweoXG9+tEpY51GvFFDA0DUlNQIhALDpko1C7Hd7kT8S3ql5z3nkdIR2AoRnk5qrhv09ErNy","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":10044595},"main":"dist/threejs.js","type":"module","_from":"file:ridp-threejs-0.0.1.tgz","exports":{".":{"import":"./dist/threejs.js","require":"./dist/threejs.cjs"},"./hooks":{"import":"./dist/hooks.js","require":"./dist/hooks.cjs"},"./utils":{"import":"./dist/utils.js","require":"./dist/utils.cjs"}},"scripts":{"build":"vite build"},"_npmUser":{"name":"muxihuakai","email":"874518796@qq.com"},"_resolved":"C:\\Users\\240701~1\\AppData\\Local\\Temp\\1e44240205b4cc28443eefe6b4893107\\ridp-threejs-0.0.1.tgz","_integrity":"sha512-OsrVWlupOS5i+yYWqgfxhrXGf6ltPjOMqE3wkE1rFUM7yBq73LqRQvG/1IaMycRYfx1LmNuMhIcWUcliJHzGRQ==","_npmVersion":"10.7.0","directories":{},"_nodeVersion":"18.20.4","dependencies":{"three":"^0.175.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/threejs_0.0.1_1744879845919_0.9302772770029075","host":"s3://npm-registry-packages-npm-production"}},"0.0.2":{"name":"@ridp/threejs","version":"0.0.2","_id":"@ridp/threejs@0.0.2","maintainers":[{"name":"muxihuakai","email":"874518796@qq.com"}],"dist":{"shasum":"a3f95fde23abcfffceb90a25e71ad95bc10ed20d","tarball":"https://registry.npmjs.org/@ridp/threejs/-/threejs-0.0.2.tgz","fileCount":23,"integrity":"sha512-6xCUsak/hoNY58IcC2UCYes6oJbHkoVlFkM5GahjUd1YDKQNY9ckf2YEOiIorg5eR/xT57BnI+5JU3H2HzxW3g==","signatures":[{"sig":"MEUCIDSeUlL2QgMEk/7E6TmViGk4WBpH/4FW/qNFcz9alGcBAiEAxWvJpkCZr9JdvBwoU70kX2iZvyYKBy2EiRtYRcVTlHY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5130104},"main":"dist/threejs.js","type":"module","_from":"file:ridp-threejs-0.0.2.tgz","exports":{".":{"import":"./dist/threejs.js","require":"./dist/threejs.cjs"},"./hooks":{"import":"./dist/hooks.js","require":"./dist/hooks.cjs"},"./utils":{"import":"./dist/utils.js","require":"./dist/utils.cjs"}},"scripts":{"build":"vite build"},"_npmUser":{"name":"muxihuakai","email":"874518796@qq.com"},"_resolved":"C:\\Users\\240701~1\\AppData\\Local\\Temp\\bcddc3ecd7c17cf14e53ed7f82980c42\\ridp-threejs-0.0.2.tgz","_integrity":"sha512-6xCUsak/hoNY58IcC2UCYes6oJbHkoVlFkM5GahjUd1YDKQNY9ckf2YEOiIorg5eR/xT57BnI+5JU3H2HzxW3g==","_npmVersion":"10.7.0","directories":{},"_nodeVersion":"18.20.4","dependencies":{"three":"^0.175.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/threejs_0.0.2_1744881118639_0.94342824808137","host":"s3://npm-registry-packages-npm-production"}},"0.1.0":{"name":"@ridp/threejs","version":"0.1.0","_id":"@ridp/threejs@0.1.0","maintainers":[{"name":"muxihuakai","email":"874518796@qq.com"}],"dist":{"shasum":"0601d088aa27c174c81be09a52065a926787e8df","tarball":"https://registry.npmjs.org/@ridp/threejs/-/threejs-0.1.0.tgz","fileCount":13,"integrity":"sha512-0pkRyFlilel+FOYLkqEie8LLwNoKtIUlCe7l738LxFXO4X0arQlswk6Y30XTe1TtO/MUHOgiOdJ+EjPYCF5cWQ==","signatures":[{"sig":"MEUCIQCV2LRN4hZkSSo2GuGexgJPX4Ejz3eU9nGiu9ixMGGjRQIgE2fnZXhcT3heUu6yYXT8zq4PZbtsY3pliDx0wVRqshY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":234695},"main":"dist/threejs.js","type":"module","_from":"file:ridp-threejs-0.1.0.tgz","exports":{".":{"import":"./dist/threejs.js","require":"./dist/threejs.cjs"},"./hooks":{"import":"./dist/hooks.js","require":"./dist/hooks.cjs"},"./utils":{"import":"./dist/utils.js","require":"./dist/utils.cjs"}},"private":false,"scripts":{"build":"vite build"},"_npmUser":{"name":"muxihuakai","email":"874518796@qq.com"},"_resolved":"C:\\Users\\240701~1\\AppData\\Local\\Temp\\64ac834ceb036832b1c066ea8c2fd29b\\ridp-threejs-0.1.0.tgz","_integrity":"sha512-0pkRyFlilel+FOYLkqEie8LLwNoKtIUlCe7l738LxFXO4X0arQlswk6Y30XTe1TtO/MUHOgiOdJ+EjPYCF5cWQ==","_npmVersion":"10.7.0","directories":{},"_nodeVersion":"18.20.4","dependencies":{"vue":"^3.5.13","vite":"^6.3.1","three":"^0.175.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/threejs_0.1.0_1744947803922_0.45419779325871223","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@ridp/threejs","version":"0.2.0","_id":"@ridp/threejs@0.2.0","maintainers":[{"name":"muxihuakai","email":"874518796@qq.com"}],"dist":{"shasum":"bc811c36025d6532d0f949b6bd5b0fd4ce383992","tarball":"https://registry.npmjs.org/@ridp/threejs/-/threejs-0.2.0.tgz","fileCount":13,"integrity":"sha512-IjfAaqtfirK+q/xlZUrX3xQqrZcnhOKoHT7sxuImcHnQ0M9/H3SOYBlPjIC8MwPm4pU3MVo7h3R1HXVaHIO3HQ==","signatures":[{"sig":"MEUCIBKm9H4uWnypKUx5q0K01GI9HbetgTlgvv2K827HlpIpAiEAtSkBGgWPmnyzVSRBMKoWLwVqj7siSFh8U+UEvBbubOc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":234751},"main":"dist/threejs.js","type":"module","_from":"file:ridp-threejs-0.2.0.tgz","exports":{".":{"import":"./dist/threejs.js","require":"./dist/threejs.cjs"},"./hooks":{"import":"./dist/hooks.js","require":"./dist/hooks.cjs"},"./utils":{"import":"./dist/utils.js","require":"./dist/utils.cjs"}},"private":false,"scripts":{"build":"vite build"},"_npmUser":{"name":"muxihuakai","email":"874518796@qq.com"},"_resolved":"C:\\Users\\240701~1\\AppData\\Local\\Temp\\72e5773058243736767adccf3fdde8f1\\ridp-threejs-0.2.0.tgz","_integrity":"sha512-IjfAaqtfirK+q/xlZUrX3xQqrZcnhOKoHT7sxuImcHnQ0M9/H3SOYBlPjIC8MwPm4pU3MVo7h3R1HXVaHIO3HQ==","_npmVersion":"10.7.0","directories":{},"_nodeVersion":"18.20.4","dependencies":{"vue":"^3.5.13","vite":"^6.3.1","three":"^0.175.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/threejs_0.2.0_1745289952233_0.43839246175970037","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@ridp/threejs","version":"1.0.1","_id":"@ridp/threejs@1.0.1","maintainers":[{"name":"muxihuakai","email":"874518796@qq.com"}],"dist":{"shasum":"ad9a128d6f1bc1ec655ca71b4c1082a1d258a69e","tarball":"https://registry.npmjs.org/@ridp/threejs/-/threejs-1.0.1.tgz","fileCount":77,"integrity":"sha512-HWrD+2adUJdtHO4z1FpQjTjUE2tASpIA+kshiAPMz1tRJO33O/5LxggLSYRH63tUIvYATe1vF0lKRa+qxAhLsQ==","signatures":[{"sig":"MEYCIQDfEnXwEiewydhPLKhRwpx0PzgnY6H/XowxMIDWrgiAtQIhALVj1eApyqzFXB2OZ2Ja9t6fbBQz8e3+hVAOK4cVYUaD","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5767822},"main":"dist/threejs.js","type":"module","_from":"file:ridp-threejs-1.0.1.tgz","exports":{".":{"import":"./dist/threejs.js","require":"./dist/threejs.cjs"},"./hooks":{"import":"./dist/hooks.js","require":"./dist/hooks.cjs"},"./utils":{"import":"./dist/utils.js","require":"./dist/utils.cjs"}},"private":false,"scripts":{"build":"vite build","build:doc":"npx esdoc"},"_npmUser":{"name":"muxihuakai","email":"874518796@qq.com"},"_resolved":"C:\\Users\\240701~1\\AppData\\Local\\Temp\\6975c2dd1732139772f77a94e3bc9cd5\\ridp-threejs-1.0.1.tgz","_integrity":"sha512-HWrD+2adUJdtHO4z1FpQjTjUE2tASpIA+kshiAPMz1tRJO33O/5LxggLSYRH63tUIvYATe1vF0lKRa+qxAhLsQ==","_npmVersion":"10.7.0","description":"- useThreeJs\r     声明:","directories":{},"_nodeVersion":"18.20.4","dependencies":{"vue":"^3.5.13","vite":"^6.3.1","dexie":"^4.0.11","esdoc":"^1.1.0","three":"^0.175.0","esdoc-jsx-plugin":"^1.0.0","esdoc-standard-plugin":"^1.0.0","esdoc-importpath-plugin":"^1.0.2","esdoc-inject-style-plugin":"^1.0.0","esdoc-ecmascript-proposal-plugin":"^1.0.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/threejs_1.0.1_1745717085276_0.001970239978728694","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@ridp/threejs","version":"1.1.0","_id":"@ridp/threejs@1.1.0","maintainers":[{"name":"muxihuakai","email":"874518796@qq.com"}],"dist":{"shasum":"9d424a8eea3c4bc86282ff33fc772007d7d3eb21","tarball":"https://registry.npmjs.org/@ridp/threejs/-/threejs-1.1.0.tgz","fileCount":77,"integrity":"sha512-CxrUsaWHA/90NsGUPn/TEPUz5V92+0taR1AQmClAoNepbLYdUU9KIwl5cTUBmsVvHkxD2UYCOqxjspuCqyh7nw==","signatures":[{"sig":"MEUCIQCd1KKTEjd0K971FWcRk50AU1xuTIKXxAv2U5sMu9ib6QIgXU0iq9iEmkp/w7e0nE6po8MlkPPXMC8mfVTQ6C1+iz4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5767917},"main":"dist/threejs.js","type":"module","_from":"file:ridp-threejs-1.1.0.tgz","exports":{".":{"import":"./dist/threejs.js","require":"./dist/threejs.cjs"},"./hooks":{"import":"./dist/hooks.js","require":"./dist/hooks.cjs"},"./utils":{"import":"./dist/utils.js","require":"./dist/utils.cjs"}},"private":false,"scripts":{"build":"vite build","build:doc":"npx esdoc"},"_npmUser":{"name":"muxihuakai","email":"874518796@qq.com"},"_resolved":"C:\\Users\\240701~1\\AppData\\Local\\Temp\\e100dd28890cb8a5ad8358a0ad5cbdbc\\ridp-threejs-1.1.0.tgz","_integrity":"sha512-CxrUsaWHA/90NsGUPn/TEPUz5V92+0taR1AQmClAoNepbLYdUU9KIwl5cTUBmsVvHkxD2UYCOqxjspuCqyh7nw==","_npmVersion":"10.7.0","description":"- useThreeJs\r     声明:","directories":{},"_nodeVersion":"18.20.4","dependencies":{"vue":"^3.5.13","vite":"^6.3.1","dexie":"^4.0.11","esdoc":"^1.1.0","three":"^0.175.0","esdoc-jsx-plugin":"^1.0.0","esdoc-standard-plugin":"^1.0.0","esdoc-importpath-plugin":"^1.0.2","esdoc-inject-style-plugin":"^1.0.0","esdoc-ecmascript-proposal-plugin":"^1.0.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/threejs_1.1.0_1745718463023_0.24733393743529453","host":"s3://npm-registry-packages-npm-production"}},"1.1.2":{"name":"@ridp/threejs","version":"1.1.2","_id":"@ridp/threejs@1.1.2","maintainers":[{"name":"muxihuakai","email":"874518796@qq.com"}],"dist":{"shasum":"bc43f4eb6c3b6f055ce3b342fd0aef2d77a79435","tarball":"https://registry.npmjs.org/@ridp/threejs/-/threejs-1.1.2.tgz","fileCount":77,"integrity":"sha512-s7P42bftsObrr2Wt0Foqdgl2WQDvSB+gQ7GsCcYW24BG+IIhcpHXqzvKA5PhFAtlQEaGpjUsxxwvap5PF4JKOg==","signatures":[{"sig":"MEQCIHOKISkSZH/ZgXAALdprSl8Vlp6wOkQrQDcoa53aXejFAiAO3L3lTh3Ut1u+fHz9aC6E06bTPmLc7yRX/16n69mWEw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5767929},"main":"dist/threejs.js","type":"module","_from":"file:ridp-threejs-1.1.2.tgz","exports":{".":{"import":"./dist/threejs.js","require":"./dist/threejs.cjs"},"./hooks":{"import":"./dist/hooks.js","require":"./dist/hooks.cjs"},"./utils":{"import":"./dist/utils.js","require":"./dist/utils.cjs"}},"private":false,"scripts":{"build":"vite build","build:doc":"npx esdoc"},"_npmUser":{"name":"muxihuakai","email":"874518796@qq.com"},"_resolved":"C:\\Users\\240701~1\\AppData\\Local\\Temp\\14b9ffaa2308750e5500bdc71b9b3f4d\\ridp-threejs-1.1.2.tgz","_integrity":"sha512-s7P42bftsObrr2Wt0Foqdgl2WQDvSB+gQ7GsCcYW24BG+IIhcpHXqzvKA5PhFAtlQEaGpjUsxxwvap5PF4JKOg==","_npmVersion":"10.7.0","description":"- useThreeJs\r     声明:","directories":{},"_nodeVersion":"18.20.4","dependencies":{"vue":"^3.5.13","vite":"^6.3.1","dexie":"^4.0.11","esdoc":"^1.1.0","three":"^0.175.0","esdoc-jsx-plugin":"^1.0.0","esdoc-standard-plugin":"^1.0.0","esdoc-importpath-plugin":"^1.0.2","esdoc-inject-style-plugin":"^1.0.0","esdoc-ecmascript-proposal-plugin":"^1.0.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/threejs_1.1.2_1745719109274_0.25839275776245674","host":"s3://npm-registry-packages-npm-production"}},"1.1.3":{"name":"@ridp/threejs","version":"1.1.3","_id":"@ridp/threejs@1.1.3","maintainers":[{"name":"muxihuakai","email":"874518796@qq.com"}],"dist":{"shasum":"18eaabe1297f626c2d98a14ad97fe5347dc0afe6","tarball":"https://registry.npmjs.org/@ridp/threejs/-/threejs-1.1.3.tgz","fileCount":77,"integrity":"sha512-vVkrBPbByWJu59A55nLOS5e2AqsZnuEmSaF/ieaaRE1MElVCHwFdWJoViuyiJuGb8i6nMdQ5g+pT9RqwJsPlhQ==","signatures":[{"sig":"MEYCIQDUoA3vi/D3OvPstfFUgnxRBT1bmn0/fARrkkA3LZYluwIhAKnQRwa12yHv1SSFXLI19GBtJA0pQ9da0c2Do4dWisls","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5768821},"main":"dist/threejs.js","type":"module","_from":"file:ridp-threejs-1.1.3.tgz","exports":{".":{"import":"./dist/threejs.js","require":"./dist/threejs.cjs"},"./hooks":{"import":"./dist/hooks.js","require":"./dist/hooks.cjs"},"./utils":{"import":"./dist/utils.js","require":"./dist/utils.cjs"}},"private":false,"scripts":{"build":"vite build","build:doc":"npx esdoc"},"_npmUser":{"name":"muxihuakai","email":"874518796@qq.com"},"_resolved":"C:\\Users\\240701~1\\AppData\\Local\\Temp\\52d49dd3427c62a5934d1a7ca966b70d\\ridp-threejs-1.1.3.tgz","_integrity":"sha512-vVkrBPbByWJu59A55nLOS5e2AqsZnuEmSaF/ieaaRE1MElVCHwFdWJoViuyiJuGb8i6nMdQ5g+pT9RqwJsPlhQ==","_npmVersion":"10.7.0","description":"- useThreeJs\r     声明:","directories":{},"_nodeVersion":"18.20.4","dependencies":{"vue":"^3.5.13","vite":"^6.3.1","dexie":"^4.0.11","esdoc":"^1.1.0","three":"^0.175.0","esdoc-jsx-plugin":"^1.0.0","esdoc-standard-plugin":"^1.0.0","esdoc-importpath-plugin":"^1.0.2","esdoc-inject-style-plugin":"^1.0.0","esdoc-ecmascript-proposal-plugin":"^1.0.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/threejs_1.1.3_1745800689846_0.9482604671799524","host":"s3://npm-registry-packages-npm-production"}},"1.1.4":{"name":"@ridp/threejs","version":"1.1.4","_id":"@ridp/threejs@1.1.4","maintainers":[{"name":"muxihuakai","email":"874518796@qq.com"}],"dist":{"shasum":"711a9da5899b86ee4bd25c62cd8f8d50a799af8d","tarball":"https://registry.npmjs.org/@ridp/threejs/-/threejs-1.1.4.tgz","fileCount":77,"integrity":"sha512-0PmPWe87tl80OlLo6tUqfUo8qo4rjHQNz/BBkBccmfim+DYg502X+S4s+5lADT8meeuyCx0VZqmdQEHEMUldHA==","signatures":[{"sig":"MEUCIBmdiXAPSU1N3//GU/LdZwWbk8xLwD98DgK2x7cjpf9HAiEA7/sWLSp+Nu83ZDQhbUU/wn89x2tXEiMsqdr2btVJl38=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5769354},"main":"dist/threejs.js","type":"module","_from":"file:ridp-threejs-1.1.4.tgz","exports":{".":{"import":"./dist/threejs.js","require":"./dist/threejs.cjs"},"./hooks":{"import":"./dist/hooks.js","require":"./dist/hooks.cjs"},"./utils":{"import":"./dist/utils.js","require":"./dist/utils.cjs"}},"private":false,"scripts":{"build":"vite build","build:doc":"npx esdoc"},"_npmUser":{"name":"muxihuakai","email":"874518796@qq.com"},"_resolved":"C:\\Users\\240701~1\\AppData\\Local\\Temp\\68c2ea34a85d36e0ff8d913712d27f62\\ridp-threejs-1.1.4.tgz","_integrity":"sha512-0PmPWe87tl80OlLo6tUqfUo8qo4rjHQNz/BBkBccmfim+DYg502X+S4s+5lADT8meeuyCx0VZqmdQEHEMUldHA==","_npmVersion":"10.7.0","description":"- useThreeJs\r     声明:","directories":{},"_nodeVersion":"18.20.4","dependencies":{"vue":"^3.5.13","vite":"^6.3.1","dexie":"^4.0.11","esdoc":"^1.1.0","three":"^0.175.0","esdoc-jsx-plugin":"^1.0.0","esdoc-standard-plugin":"^1.0.0","esdoc-importpath-plugin":"^1.0.2","esdoc-inject-style-plugin":"^1.0.0","esdoc-ecmascript-proposal-plugin":"^1.0.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/threejs_1.1.4_1745805158637_0.8355021645074099","host":"s3://npm-registry-packages-npm-production"}},"1.1.5":{"name":"@ridp/threejs","version":"1.1.5","_id":"@ridp/threejs@1.1.5","maintainers":[{"name":"muxihuakai","email":"874518796@qq.com"}],"dist":{"shasum":"be3a5c25f41ba5fffb49047ac7b0b4b3912ee68f","tarball":"https://registry.npmjs.org/@ridp/threejs/-/threejs-1.1.5.tgz","fileCount":77,"integrity":"sha512-C1uBKSK3RBMTDHhuCCbGO8ELu+q/XlgyXrMrCFaJTHCVuklo/xwMHVWS39BmMy/tklFMB7c2zhARQR83o6bH5g==","signatures":[{"sig":"MEYCIQDMDiOwbf59H9sCU57EPxTVcCMpqCko8dhCoZHFpivL6wIhAPsIboZAn1zmsFKBbVcXWoqL2N84XDC29Ue8SjyX7B7e","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5769691},"main":"dist/threejs.js","type":"module","_from":"file:ridp-threejs-1.1.5.tgz","exports":{".":{"import":"./dist/threejs.js","require":"./dist/threejs.cjs"},"./hooks":{"import":"./dist/hooks.js","require":"./dist/hooks.cjs"},"./utils":{"import":"./dist/utils.js","require":"./dist/utils.cjs"}},"private":false,"scripts":{"build":"vite build","build:doc":"npx esdoc"},"_npmUser":{"name":"muxihuakai","email":"874518796@qq.com"},"_resolved":"C:\\Users\\240701~1\\AppData\\Local\\Temp\\039df1447bc90f380a31924eb0db817b\\ridp-threejs-1.1.5.tgz","_integrity":"sha512-C1uBKSK3RBMTDHhuCCbGO8ELu+q/XlgyXrMrCFaJTHCVuklo/xwMHVWS39BmMy/tklFMB7c2zhARQR83o6bH5g==","_npmVersion":"10.7.0","description":"- useThreeJs\r     声明:","directories":{},"_nodeVersion":"18.20.4","dependencies":{"vue":"^3.5.13","vite":"^6.3.1","dexie":"^4.0.11","esdoc":"^1.1.0","three":"^0.175.0","esdoc-jsx-plugin":"^1.0.0","esdoc-standard-plugin":"^1.0.0","esdoc-importpath-plugin":"^1.0.2","esdoc-inject-style-plugin":"^1.0.0","esdoc-ecmascript-proposal-plugin":"^1.0.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/threejs_1.1.5_1745813282688_0.05401825826966067","host":"s3://npm-registry-packages-npm-production"}},"1.1.6":{"name":"@ridp/threejs","version":"1.1.6","_id":"@ridp/threejs@1.1.6","maintainers":[{"name":"muxihuakai","email":"874518796@qq.com"}],"dist":{"shasum":"2482f8b73f9267740ee77c40bd2c5d77ce97c813","tarball":"https://registry.npmjs.org/@ridp/threejs/-/threejs-1.1.6.tgz","fileCount":77,"integrity":"sha512-SNOlx7uLtULpXoKu7vIairYYgjJfA+mpjgxkH77s3x01KvP/GWKIGCueZLEPEucykIF621sGl1xrYoft2YMTbQ==","signatures":[{"sig":"MEUCIGXNizScfzjM70ED9uQpXrv06ZlvFhWSIzGRtQpoM3gNAiEAiahArasgH9MEMldIEAZIfMlWBIAypIAv1+TMZV6Uing=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5769728},"main":"dist/threejs.js","type":"module","_from":"file:ridp-threejs-1.1.6.tgz","exports":{".":{"import":"./dist/threejs.js","require":"./dist/threejs.cjs"},"./hooks":{"import":"./dist/hooks.js","require":"./dist/hooks.cjs"},"./utils":{"import":"./dist/utils.js","require":"./dist/utils.cjs"}},"private":false,"scripts":{"build":"vite build","build:doc":"npx esdoc"},"_npmUser":{"name":"muxihuakai","email":"874518796@qq.com"},"_resolved":"C:\\Users\\240701~1\\AppData\\Local\\Temp\\b63dbf9d9e393d084c13febfdaa0ba2c\\ridp-threejs-1.1.6.tgz","_integrity":"sha512-SNOlx7uLtULpXoKu7vIairYYgjJfA+mpjgxkH77s3x01KvP/GWKIGCueZLEPEucykIF621sGl1xrYoft2YMTbQ==","_npmVersion":"10.7.0","description":"- useThreeJs\r     声明:","directories":{},"_nodeVersion":"18.20.4","dependencies":{"vue":"^3.5.13","vite":"^6.3.1","dexie":"^4.0.11","esdoc":"^1.1.0","three":"^0.175.0","esdoc-jsx-plugin":"^1.0.0","esdoc-standard-plugin":"^1.0.0","esdoc-importpath-plugin":"^1.0.2","esdoc-inject-style-plugin":"^1.0.0","esdoc-ecmascript-proposal-plugin":"^1.0.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/threejs_1.1.6_1745813752855_0.015104642545162195","host":"s3://npm-registry-packages-npm-production"}},"1.1.7":{"name":"@ridp/threejs","version":"1.1.7","_id":"@ridp/threejs@1.1.7","maintainers":[{"name":"muxihuakai","email":"874518796@qq.com"}],"dist":{"shasum":"d21738595dedf3856922c1e49115bfdd70de4596","tarball":"https://registry.npmjs.org/@ridp/threejs/-/threejs-1.1.7.tgz","fileCount":77,"integrity":"sha512-IwtpZLT+4e9P7ixf0rMZUk+DSEsDtVShNbuOOytmnhUu0KhNtcDBm1yYTECxy2f5vyZCPIPwXN4dpfzlngakHA==","signatures":[{"sig":"MEQCIBg4M+08N0JGPFCSIZpPydvnjfw2nB3Rtv2lWskwdUD/AiAvOvXZHDDW0T8beG5hveEDGkv+/E6mSkaIOrXqywErjQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5834926},"main":"dist/threejs.js","type":"module","_from":"file:ridp-threejs-1.1.7.tgz","exports":{".":{"import":"./dist/threejs.js","require":"./dist/threejs.cjs"},"./hooks":{"import":"./dist/hooks.js","require":"./dist/hooks.cjs"},"./utils":{"import":"./dist/utils.js","require":"./dist/utils.cjs"}},"private":false,"scripts":{"build":"vite build","build:doc":"npx esdoc"},"_npmUser":{"name":"muxihuakai","email":"874518796@qq.com"},"_resolved":"C:\\Users\\240701~1\\AppData\\Local\\Temp\\944d53b979621d066902b1c8a6d8af31\\ridp-threejs-1.1.7.tgz","_integrity":"sha512-IwtpZLT+4e9P7ixf0rMZUk+DSEsDtVShNbuOOytmnhUu0KhNtcDBm1yYTECxy2f5vyZCPIPwXN4dpfzlngakHA==","_npmVersion":"10.7.0","description":"- useThreeJs\r     声明:","directories":{},"_nodeVersion":"18.20.4","dependencies":{"vue":"^3.5.13","vite":"^6.3.1","dexie":"^4.0.11","esdoc":"^1.1.0","three":"^0.175.0","esdoc-jsx-plugin":"^1.0.0","esdoc-standard-plugin":"^1.0.0","esdoc-importpath-plugin":"^1.0.2","esdoc-inject-style-plugin":"^1.0.0","esdoc-ecmascript-proposal-plugin":"^1.0.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"terser":"^5.39.0"},"_npmOperationalInternal":{"tmp":"tmp/threejs_1.1.7_1745817967922_0.368053112784418","host":"s3://npm-registry-packages-npm-production"}},"1.0.8":{"name":"@ridp/threejs","version":"1.0.8","_id":"@ridp/threejs@1.0.8","maintainers":[{"name":"muxihuakai","email":"874518796@qq.com"}],"dist":{"shasum":"1fc22c56714fd5a53fc42d90b733e31f8fa8932d","tarball":"https://registry.npmjs.org/@ridp/threejs/-/threejs-1.0.8.tgz","fileCount":65,"integrity":"sha512-jOcFS3eAbLQn4AbUARY1RUSumzAFswS1ttrep/1gYq/eL3cKPQPvK+xjpXvYqu8qMT2oYFf8nIE1LZcMWpo33A==","signatures":[{"sig":"MEYCIQCss4GyWTUhuTfcU730KWwwQMm0Fhcm76mU1r3VY3i1gQIhAPlXEpWfTEm/A1boqgx64yylVDi8hGkxUfMGO7EGhb04","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5474320},"main":"dist/threejs.js","type":"module","_from":"file:ridp-threejs-1.0.8.tgz","exports":{".":{"import":"./dist/threejs.js","require":"./dist/threejs.cjs"},"./hooks":{"import":"./dist/hooks.js","require":"./dist/hooks.cjs"},"./utils":{"import":"./dist/utils.js","require":"./dist/utils.cjs"}},"private":false,"scripts":{"build":"vite build","build:doc":"npx esdoc"},"_npmUser":{"name":"muxihuakai","email":"874518796@qq.com"},"_resolved":"C:\\Users\\240701~1\\AppData\\Local\\Temp\\1f355dd6d724a75aa3dfd7fa4a22f261\\ridp-threejs-1.0.8.tgz","_integrity":"sha512-jOcFS3eAbLQn4AbUARY1RUSumzAFswS1ttrep/1gYq/eL3cKPQPvK+xjpXvYqu8qMT2oYFf8nIE1LZcMWpo33A==","_npmVersion":"10.7.0","description":"- useThreeJs\r     声明:","directories":{},"_nodeVersion":"18.20.4","dependencies":{"vue":"^3.5.13","vite":"^6.3.1","dexie":"^4.0.11","esdoc":"^1.1.0","three":"^0.175.0","esdoc-jsx-plugin":"^1.0.0","esdoc-standard-plugin":"^1.0.0","esdoc-importpath-plugin":"^1.0.2","esdoc-inject-style-plugin":"^1.0.0","esdoc-ecmascript-proposal-plugin":"^1.0.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/threejs_1.0.8_1747632564111_0.41606061730949495","host":"s3://npm-registry-packages-npm-production"}},"1.0.9":{"name":"@ridp/threejs","version":"1.0.9","_id":"@ridp/threejs@1.0.9","maintainers":[{"name":"muxihuakai","email":"874518796@qq.com"}],"dist":{"shasum":"f17387f69aa6a00bf1309650d72e3fbeba038f07","tarball":"https://registry.npmjs.org/@ridp/threejs/-/threejs-1.0.9.tgz","fileCount":65,"integrity":"sha512-z55/0TJScVMwJ8qIXGIYn7mXCvzR/NCbnycwMOcyGtybP7a+CWe9v3lHQikRTxSJUa9KnmtonXXJrc6FhRo//Q==","signatures":[{"sig":"MEYCIQDYHrWTyN6fGjfMSjHX2L3yIe0Mwy3zEI/cSVj/knz7KwIhAOqSsPLQcCvXeIPuj22Xw8HXDfx6ovekjmt7aq6dTz/m","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5474320},"main":"dist/threejs.js","type":"module","_from":"file:ridp-threejs-1.0.9.tgz","exports":{".":{"import":"./dist/threejs.js","require":"./dist/threejs.cjs"},"./hooks":{"import":"./dist/hooks.js","require":"./dist/hooks.cjs"},"./utils":{"import":"./dist/utils.js","require":"./dist/utils.cjs"}},"private":false,"scripts":{"build":"vite build","build:doc":"npx esdoc"},"_npmUser":{"name":"muxihuakai","email":"874518796@qq.com"},"_resolved":"C:\\Users\\240701~1\\AppData\\Local\\Temp\\74e57f45811af2181e5e39dce2992ba1\\ridp-threejs-1.0.9.tgz","_integrity":"sha512-z55/0TJScVMwJ8qIXGIYn7mXCvzR/NCbnycwMOcyGtybP7a+CWe9v3lHQikRTxSJUa9KnmtonXXJrc6FhRo//Q==","_npmVersion":"10.7.0","description":"- useThreeJs\r     声明:","directories":{},"_nodeVersion":"18.20.4","dependencies":{"vue":"^3.5.13","vite":"^6.3.1","dexie":"^4.0.11","esdoc":"^1.1.0","three":"^0.175.0","esdoc-jsx-plugin":"^1.0.0","esdoc-standard-plugin":"^1.0.0","esdoc-importpath-plugin":"^1.0.2","esdoc-inject-style-plugin":"^1.0.0","esdoc-ecmascript-proposal-plugin":"^1.0.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/threejs_1.0.9_1747701706705_0.9093554882482453","host":"s3://npm-registry-packages-npm-production"}},"1.0.10":{"name":"@ridp/threejs","version":"1.0.10","_id":"@ridp/threejs@1.0.10","maintainers":[{"name":"muxihuakai","email":"874518796@qq.com"}],"dist":{"shasum":"58ffa008d88baae30a4f5c17d82a555de24653d4","tarball":"https://registry.npmjs.org/@ridp/threejs/-/threejs-1.0.10.tgz","fileCount":77,"integrity":"sha512-a4P0h8gZ+YN1iHclAZaIHs9L6C0gjIIGSH7Hqy4+LQK04waYuP/io8lQFQKxylCqH46+hEoiHmM0SZ0PzIo24w==","signatures":[{"sig":"MEQCIG7602wPb9sxvBIyrZmE/dlxyf2y6K57V9rrmSYRAe23AiBGdVbCluH8C3c3iR5iAdP3GvA3/vb6edixQVM86dvd0Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5969842},"main":"dist/threejs.js","type":"module","_from":"file:ridp-threejs-1.0.10.tgz","exports":{".":{"import":"./dist/threejs.js","require":"./dist/threejs.cjs"},"./hooks":{"import":"./dist/hooks.js","require":"./dist/hooks.cjs"},"./utils":{"import":"./dist/utils.js","require":"./dist/utils.cjs"}},"private":false,"scripts":{"build":"vite build","build:doc":"npx esdoc"},"_npmUser":{"name":"muxihuakai","email":"874518796@qq.com"},"_resolved":"C:\\Users\\240701~1\\AppData\\Local\\Temp\\9c071cf5292e1af68a1dbe8919c3c0e9\\ridp-threejs-1.0.10.tgz","_integrity":"sha512-a4P0h8gZ+YN1iHclAZaIHs9L6C0gjIIGSH7Hqy4+LQK04waYuP/io8lQFQKxylCqH46+hEoiHmM0SZ0PzIo24w==","_npmVersion":"10.7.0","description":"- useThreeJs\r     声明:","directories":{},"_nodeVersion":"18.20.4","dependencies":{"vue":"^3.5.13","vite":"^6.3.1","dexie":"^4.0.11","esdoc":"^1.1.0","three":"^0.175.0","@vueuse/core":"^13.0.0","esdoc-jsx-plugin":"^1.0.0","esdoc-standard-plugin":"^1.0.0","esdoc-importpath-plugin":"^1.0.2","esdoc-inject-style-plugin":"^1.0.0","esdoc-ecmascript-proposal-plugin":"^1.0.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/threejs_1.0.10_1747710571277_0.13244604681737004","host":"s3://npm-registry-packages-npm-production"}},"1.0.11":{"name":"@ridp/threejs","version":"1.0.11","_id":"@ridp/threejs@1.0.11","maintainers":[{"name":"muxihuakai","email":"874518796@qq.com"}],"dist":{"shasum":"1f62c33a9cc2eeb7bb265977b887bc2063a13739","tarball":"https://registry.npmjs.org/@ridp/threejs/-/threejs-1.0.11.tgz","fileCount":77,"integrity":"sha512-jd+/BcqtjPzdUHHRC4PlWZfQXl4Hzmi8d3uu3tGluDEvRA3m+jcwSxHvFS/V0ZSOTlxZnOzXJVpzpkLmPBlHnQ==","signatures":[{"sig":"MEUCIGC69VeV4zxAjnGSQdeGdrcFoppwqfduCyOT1VQww8tLAiEAnG3T3UmTIrLOMgEM+IxHgXZqOc6ZXfYVhA7fjWiQ5wk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5969974},"main":"dist/threejs.js","type":"module","_from":"file:ridp-threejs-1.0.11.tgz","exports":{".":{"import":"./dist/threejs.js","require":"./dist/threejs.cjs"},"./hooks":{"import":"./dist/hooks.js","require":"./dist/hooks.cjs"},"./utils":{"import":"./dist/utils.js","require":"./dist/utils.cjs"}},"private":false,"scripts":{"build":"vite build","build:doc":"npx esdoc"},"_npmUser":{"name":"muxihuakai","email":"874518796@qq.com"},"_resolved":"C:\\Users\\240701~1\\AppData\\Local\\Temp\\01bcbcffc8b3565f72625157b6f9485f\\ridp-threejs-1.0.11.tgz","_integrity":"sha512-jd+/BcqtjPzdUHHRC4PlWZfQXl4Hzmi8d3uu3tGluDEvRA3m+jcwSxHvFS/V0ZSOTlxZnOzXJVpzpkLmPBlHnQ==","_npmVersion":"10.7.0","description":"- useThreeJs\r     声明:","directories":{},"_nodeVersion":"18.20.4","dependencies":{"vue":"^3.5.13","vite":"^6.3.1","dexie":"^4.0.11","esdoc":"^1.1.0","three":"^0.175.0","@vueuse/core":"^13.0.0","esdoc-jsx-plugin":"^1.0.0","esdoc-standard-plugin":"^1.0.0","esdoc-importpath-plugin":"^1.0.2","esdoc-inject-style-plugin":"^1.0.0","esdoc-ecmascript-proposal-plugin":"^1.0.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/threejs_1.0.11_1747721413460_0.8520990706304454","host":"s3://npm-registry-packages-npm-production"}},"1.0.12":{"name":"@ridp/threejs","version":"1.0.12","_id":"@ridp/threejs@1.0.12","maintainers":[{"name":"muxihuakai","email":"874518796@qq.com"}],"dist":{"shasum":"88cd34cab6728b6eceff2026bddaad9a8eaf8acb","tarball":"https://registry.npmjs.org/@ridp/threejs/-/threejs-1.0.12.tgz","fileCount":77,"integrity":"sha512-FYAKiUoaMGSkYEkO0LWyBOrYSVlIt87KtdDOkM8QwlUIPumBAZtvo1mIAC0og7v91B1nlRhcHqbZiCxpMr46RA==","signatures":[{"sig":"MEUCIQDjERpwA2f2tu69McWFOluW8ZVHYSrZAxfmAwc0o3PYGAIgRtxP77MoB+9PyWFcgSFtjvrSJY9AK1iYEXjc331alxw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5970017},"main":"dist/threejs.js","type":"module","_from":"file:ridp-threejs-1.0.12.tgz","exports":{".":{"import":"./dist/threejs.js","require":"./dist/threejs.cjs"},"./hooks":{"import":"./dist/hooks.js","require":"./dist/hooks.cjs"},"./utils":{"import":"./dist/utils.js","require":"./dist/utils.cjs"}},"private":false,"scripts":{"build":"vite build","build:doc":"npx esdoc"},"_npmUser":{"name":"muxihuakai","email":"874518796@qq.com"},"_resolved":"C:\\Users\\240701~1\\AppData\\Local\\Temp\\70906627a20184521bb7d19b4e3213cd\\ridp-threejs-1.0.12.tgz","_integrity":"sha512-FYAKiUoaMGSkYEkO0LWyBOrYSVlIt87KtdDOkM8QwlUIPumBAZtvo1mIAC0og7v91B1nlRhcHqbZiCxpMr46RA==","_npmVersion":"10.7.0","description":"- useThreeJs\r     声明:","directories":{},"_nodeVersion":"18.20.4","dependencies":{"vue":"^3.5.13","vite":"^6.3.1","dexie":"^4.0.11","esdoc":"^1.1.0","three":"^0.175.0","@vueuse/core":"^13.0.0","esdoc-jsx-plugin":"^1.0.0","esdoc-standard-plugin":"^1.0.0","esdoc-importpath-plugin":"^1.0.2","esdoc-inject-style-plugin":"^1.0.0","esdoc-ecmascript-proposal-plugin":"^1.0.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/threejs_1.0.12_1749001688270_0.7704851318195645","host":"s3://npm-registry-packages-npm-production"}},"1.0.13":{"name":"@ridp/threejs","version":"1.0.13","_id":"@ridp/threejs@1.0.13","maintainers":[{"name":"muxihuakai","email":"874518796@qq.com"}],"dist":{"shasum":"6ac32fc08c5bf767516cfb927ef56fb8de191f46","tarball":"https://registry.npmjs.org/@ridp/threejs/-/threejs-1.0.13.tgz","fileCount":77,"integrity":"sha512-MmrR54ofTV+eSn3PJPuPD2zrG/Q+Fmnt4z/Cy+OR4nxoKvLL/s0grFF9B6jnxjdTikTwji5sT9ocGNKCznpFoA==","signatures":[{"sig":"MEQCIC3Scb/4WWeSjWhwZc6clnx0v5ThWddwVEdATrk8qFlxAiBwyIwAE6Mu+TY0U+ZwSH8lJt9JEAHH6Y5EW3ZkEZpErg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5970017},"main":"dist/threejs.js","type":"module","_from":"file:ridp-threejs-1.0.13.tgz","exports":{".":{"import":"./dist/threejs.js","require":"./dist/threejs.cjs"},"./hooks":{"import":"./dist/hooks.js","require":"./dist/hooks.cjs"},"./utils":{"import":"./dist/utils.js","require":"./dist/utils.cjs"}},"private":false,"scripts":{"build":"vite build","build:doc":"npx esdoc"},"_npmUser":{"name":"muxihuakai","email":"874518796@qq.com"},"_resolved":"C:\\Users\\240701~1\\AppData\\Local\\Temp\\2bba141f7a434e11a2c7b3b9f09fece5\\ridp-threejs-1.0.13.tgz","_integrity":"sha512-MmrR54ofTV+eSn3PJPuPD2zrG/Q+Fmnt4z/Cy+OR4nxoKvLL/s0grFF9B6jnxjdTikTwji5sT9ocGNKCznpFoA==","_npmVersion":"10.7.0","description":"- useThreeJs\r     声明:","directories":{},"_nodeVersion":"18.20.4","dependencies":{"vue":"^3.5.13","vite":"^6.3.1","dexie":"^4.0.11","esdoc":"^1.1.0","three":"^0.175.0","@vueuse/core":"^13.0.0","esdoc-jsx-plugin":"^1.0.0","esdoc-standard-plugin":"^1.0.0","esdoc-importpath-plugin":"^1.0.2","esdoc-inject-style-plugin":"^1.0.0","esdoc-ecmascript-proposal-plugin":"^1.0.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/threejs_1.0.13_1749005077936_0.9841082997275972","host":"s3://npm-registry-packages-npm-production"}},"1.0.14":{"name":"@ridp/threejs","version":"1.0.14","_id":"@ridp/threejs@1.0.14","maintainers":[{"name":"muxihuakai","email":"874518796@qq.com"}],"dist":{"shasum":"3c65f53c9461d1841d35083dd18e6589d39bc400","tarball":"https://registry.npmjs.org/@ridp/threejs/-/threejs-1.0.14.tgz","fileCount":77,"integrity":"sha512-X0nL7hMNjXusQQfDJSzi2IVrvOIxk/pACKdDV3YwOsFJWIldYKKaPwhKvL5JoN4z4KSkDsokuEaSZ0rFWwXtVw==","signatures":[{"sig":"MEQCIHLBIb+uwEpj0KknPU8CFD53Uv+elJ1xac6v5ulqzsLuAiBsA3gc9iJhPBlKgBTbGPuN2uvBj3ZFD4GprsPmtPrbQg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5971090},"main":"dist/threejs.js","type":"module","_from":"file:ridp-threejs-1.0.14.tgz","exports":{".":{"import":"./dist/threejs.js","require":"./dist/threejs.cjs"},"./hooks":{"import":"./dist/hooks.js","require":"./dist/hooks.cjs"},"./utils":{"import":"./dist/utils.js","require":"./dist/utils.cjs"}},"private":false,"scripts":{"build":"vite build","build:doc":"npx esdoc"},"_npmUser":{"name":"muxihuakai","email":"874518796@qq.com"},"_resolved":"C:\\Users\\240701~1\\AppData\\Local\\Temp\\e46c8351d5e241a3cb269fb31bb71ae5\\ridp-threejs-1.0.14.tgz","_integrity":"sha512-X0nL7hMNjXusQQfDJSzi2IVrvOIxk/pACKdDV3YwOsFJWIldYKKaPwhKvL5JoN4z4KSkDsokuEaSZ0rFWwXtVw==","_npmVersion":"10.7.0","description":"- useThreeJs\r     声明:","directories":{},"_nodeVersion":"18.20.4","dependencies":{"vue":"^3.5.13","vite":"^6.3.1","dexie":"^4.0.11","esdoc":"^1.1.0","three":"^0.175.0","@vueuse/core":"^13.0.0","esdoc-jsx-plugin":"^1.0.0","esdoc-standard-plugin":"^1.0.0","esdoc-importpath-plugin":"^1.0.2","esdoc-inject-style-plugin":"^1.0.0","esdoc-ecmascript-proposal-plugin":"^1.0.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/threejs_1.0.14_1749006762373_0.6467668686335284","host":"s3://npm-registry-packages-npm-production"}},"1.0.15":{"name":"@ridp/threejs","version":"1.0.15","_id":"@ridp/threejs@1.0.15","maintainers":[{"name":"muxihuakai","email":"874518796@qq.com"}],"dist":{"shasum":"616d2923a8ff2a41019306986f3239cd0f25d137","tarball":"https://registry.npmjs.org/@ridp/threejs/-/threejs-1.0.15.tgz","fileCount":77,"integrity":"sha512-maxwaK8RrRF152XdbleRyKdhbOcTNNx9K3RDqD4YaHIOEKqfuO9cb/Ppb8IFEvbohM4tLyW2NoEpVG+T7I8bew==","signatures":[{"sig":"MEYCIQDGjSPQMGsDz/pHB2mVqaZXGMqvtSfjOvzOAiW9Z/8BlgIhALQkg+5hX8aebxIVEJFuIgALnUEEAtkigmUuxftxeOzj","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5970305},"main":"dist/threejs.js","type":"module","_from":"file:ridp-threejs-1.0.15.tgz","exports":{".":{"import":"./dist/threejs.js","require":"./dist/threejs.cjs"},"./hooks":{"import":"./dist/hooks.js","require":"./dist/hooks.cjs"},"./utils":{"import":"./dist/utils.js","require":"./dist/utils.cjs"}},"private":false,"scripts":{"build":"vite build","build:doc":"npx esdoc"},"_npmUser":{"name":"muxihuakai","actor":{"name":"muxihuakai","type":"user","email":"874518796@qq.com"},"email":"874518796@qq.com"},"_resolved":"C:\\Users\\240701~1\\AppData\\Local\\Temp\\27b80b92fae0ddbaf16a33ec86cb4c90\\ridp-threejs-1.0.15.tgz","_integrity":"sha512-maxwaK8RrRF152XdbleRyKdhbOcTNNx9K3RDqD4YaHIOEKqfuO9cb/Ppb8IFEvbohM4tLyW2NoEpVG+T7I8bew==","_npmVersion":"10.7.0","description":"- useThreeJs\r     声明:","directories":{},"_nodeVersion":"18.20.4","dependencies":{"vue":"^3.5.13","vite":"^6.3.1","dexie":"^4.0.11","esdoc":"^1.1.0","three":"^0.175.0","@vueuse/core":"^13.0.0","esdoc-jsx-plugin":"^1.0.0","esdoc-standard-plugin":"^1.0.0","esdoc-importpath-plugin":"^1.0.2","esdoc-inject-style-plugin":"^1.0.0","esdoc-ecmascript-proposal-plugin":"^1.0.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/threejs_1.0.15_1750314746214_0.7223519914375176","host":"s3://npm-registry-packages-npm-production"}},"1.0.16":{"name":"@ridp/threejs","version":"1.0.16","_id":"@ridp/threejs@1.0.16","maintainers":[{"name":"muxihuakai","email":"874518796@qq.com"}],"dist":{"shasum":"16c3309a89e3bf6ca74879a1e9d2845dc45ae899","tarball":"https://registry.npmjs.org/@ridp/threejs/-/threejs-1.0.16.tgz","fileCount":77,"integrity":"sha512-RhJTQIUqUnKsNpiL5bWRuHL3Ouq1yRFf+zBAfVfxfvIIXuKQQyzasg30kgc4nRHRgQOtd9rkattvKQZL+dKeFw==","signatures":[{"sig":"MEUCIQCxamUgWspDs9s/DeZm5WaWwfTnKfsb9jevZow9XZM3aQIgVDWRr7M0YuC0UreSRZNGNMNtuDYUrn8zGvUMOYk5ZuI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5967914},"main":"dist/threejs.js","type":"module","_from":"file:ridp-threejs-1.0.16.tgz","exports":{".":{"import":"./dist/threejs.js","require":"./dist/threejs.cjs"},"./hooks":{"import":"./dist/hooks.js","require":"./dist/hooks.cjs"},"./utils":{"import":"./dist/utils.js","require":"./dist/utils.cjs"}},"private":false,"scripts":{"build":"vite build","build:doc":"npx esdoc"},"_npmUser":{"name":"muxihuakai","actor":{"name":"muxihuakai","type":"user","email":"874518796@qq.com"},"email":"874518796@qq.com"},"_resolved":"C:\\Users\\240701~1\\AppData\\Local\\Temp\\f261b2f100d721ecd74e466cb8dbc6d9\\ridp-threejs-1.0.16.tgz","_integrity":"sha512-RhJTQIUqUnKsNpiL5bWRuHL3Ouq1yRFf+zBAfVfxfvIIXuKQQyzasg30kgc4nRHRgQOtd9rkattvKQZL+dKeFw==","_npmVersion":"10.7.0","description":"- useThreeJs\r     声明:","directories":{},"_nodeVersion":"18.20.4","dependencies":{"vue":"^3.5.13","vite":"^6.3.1","dexie":"^4.0.11","esdoc":"^1.1.0","three":"^0.178.0","@vueuse/core":"^13.0.0","esdoc-jsx-plugin":"^1.0.0","esdoc-standard-plugin":"^1.0.0","esdoc-importpath-plugin":"^1.0.2","esdoc-inject-style-plugin":"^1.0.0","esdoc-ecmascript-proposal-plugin":"^1.0.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/threejs_1.0.16_1751428356441_0.162223534906214","host":"s3://npm-registry-packages-npm-production"}},"1.0.17":{"name":"@ridp/threejs","version":"1.0.17","_id":"@ridp/threejs@1.0.17","maintainers":[{"name":"muxihuakai","email":"874518796@qq.com"}],"dist":{"shasum":"7872e73efdc5b641860f425eebd10803c023f691","tarball":"https://registry.npmjs.org/@ridp/threejs/-/threejs-1.0.17.tgz","fileCount":77,"integrity":"sha512-AYLENsAlwbo7fzpv29XGxN+6nufnrgV5cE0+9Je8/cbdiEX6lAZKHbAeeIBwncC+vR5/DY8UQGnZBDSOg8VT6w==","signatures":[{"sig":"MEUCIQC0IVhNa8N6wwX97fITzQta7IdsufPWno/9PRTQqGtt2QIgYhF5GkoWvlGLOadADtI4XTYM+zmAGw+5yczIjZb8V5Q=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5967689},"main":"dist/threejs.js","type":"module","_from":"file:ridp-threejs-1.0.17.tgz","exports":{".":{"import":"./dist/threejs.js","require":"./dist/threejs.cjs"},"./hooks":{"import":"./dist/hooks.js","require":"./dist/hooks.cjs"},"./utils":{"import":"./dist/utils.js","require":"./dist/utils.cjs"}},"private":false,"scripts":{"build":"vite build","build:doc":"npx esdoc"},"_npmUser":{"name":"muxihuakai","email":"874518796@qq.com"},"_resolved":"C:\\Users\\240701~1\\AppData\\Local\\Temp\\54d665f7acbfaab9d69a5516566bdf48\\ridp-threejs-1.0.17.tgz","_integrity":"sha512-AYLENsAlwbo7fzpv29XGxN+6nufnrgV5cE0+9Je8/cbdiEX6lAZKHbAeeIBwncC+vR5/DY8UQGnZBDSOg8VT6w==","_npmVersion":"10.7.0","description":"- useThreeJs\r     声明:","directories":{},"_nodeVersion":"18.20.4","dependencies":{"vue":"^3.5.13","vite":"^6.3.1","dexie":"^4.0.11","esdoc":"^1.1.0","three":"^0.178.0","@vueuse/core":"^13.0.0","esdoc-jsx-plugin":"^1.0.0","esdoc-standard-plugin":"^1.0.0","esdoc-importpath-plugin":"^1.0.2","esdoc-inject-style-plugin":"^1.0.0","esdoc-ecmascript-proposal-plugin":"^1.0.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/threejs_1.0.17_1752226610188_0.08247997693378051","host":"s3://npm-registry-packages-npm-production"}},"1.0.18":{"name":"@ridp/threejs","version":"1.0.18","_id":"@ridp/threejs@1.0.18","maintainers":[{"name":"muxihuakai","email":"874518796@qq.com"}],"dist":{"shasum":"d0662ac59631672d8a0b7757bcea389ef4eebdb3","tarball":"https://registry.npmjs.org/@ridp/threejs/-/threejs-1.0.18.tgz","fileCount":77,"integrity":"sha512-Y1jyfhuyYGr/3QX8zUrTWMZyhATRZJgg505PH4u41x4ovzpoz3OzdiPE7k9IHZebhsr1f8/4s0O8uuHWM68PRQ==","signatures":[{"sig":"MEUCIQCymdH8aRtGK3yHcUCHS0O7Xzh8dftQoB2HyovrWxX2SwIgJ64xoIlFThSabOEsJJWx2gpkMXzR/ZFXr3AOuz57lNk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5967689},"main":"dist/threejs.js","type":"module","_from":"file:ridp-threejs-1.0.18.tgz","exports":{".":{"import":"./dist/threejs.js","require":"./dist/threejs.cjs"},"./hooks":{"import":"./dist/hooks.js","require":"./dist/hooks.cjs"},"./utils":{"import":"./dist/utils.js","require":"./dist/utils.cjs"}},"private":false,"scripts":{"build":"vite build","build:doc":"npx esdoc"},"_npmUser":{"name":"muxihuakai","email":"874518796@qq.com"},"_resolved":"C:\\Users\\240701~1\\AppData\\Local\\Temp\\93392dc64a6cbdbe69b2739339269973\\ridp-threejs-1.0.18.tgz","_integrity":"sha512-Y1jyfhuyYGr/3QX8zUrTWMZyhATRZJgg505PH4u41x4ovzpoz3OzdiPE7k9IHZebhsr1f8/4s0O8uuHWM68PRQ==","_npmVersion":"10.7.0","description":"- useThreeJs\r     声明:","directories":{},"_nodeVersion":"18.20.4","dependencies":{"vue":"^3.5.13","vite":"^6.3.1","dexie":"^4.0.11","esdoc":"^1.1.0","three":"^0.178.0","@vueuse/core":"^13.0.0","esdoc-jsx-plugin":"^1.0.0","esdoc-standard-plugin":"^1.0.0","esdoc-importpath-plugin":"^1.0.2","esdoc-inject-style-plugin":"^1.0.0","esdoc-ecmascript-proposal-plugin":"^1.0.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/threejs_1.0.18_1752459072398_0.6813792727104448","host":"s3://npm-registry-packages-npm-production"}},"1.0.19":{"name":"@ridp/threejs","version":"1.0.19","_id":"@ridp/threejs@1.0.19","maintainers":[{"name":"muxihuakai","email":"874518796@qq.com"}],"dist":{"shasum":"f75a084fddb160223373e2ee7034af092408689d","tarball":"https://registry.npmjs.org/@ridp/threejs/-/threejs-1.0.19.tgz","fileCount":77,"integrity":"sha512-2cICwyMng2XAqqHZV+NFk0yZx+rOOqY4rt6LI2kg42zJE2l4+N/JThnxnD/6nO3I7mbAG/Apv48hAaGEeVRlug==","signatures":[{"sig":"MEQCICYxGtHZ2IIRQKg5ezYLffu5Tr30GttrnmU3IY850CkhAiBqaV044ubhyTeXckS/eCI2SjosWTcSSsYu9x31Ts9i9w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5967926},"main":"dist/threejs.js","type":"module","_from":"file:ridp-threejs-1.0.19.tgz","exports":{".":{"import":"./dist/threejs.js","require":"./dist/threejs.cjs"},"./hooks":{"import":"./dist/hooks.js","require":"./dist/hooks.cjs"},"./utils":{"import":"./dist/utils.js","require":"./dist/utils.cjs"}},"private":false,"scripts":{"build":"vite build","build:doc":"npx esdoc"},"_npmUser":{"name":"muxihuakai","email":"874518796@qq.com"},"_resolved":"C:\\Users\\240701~1\\AppData\\Local\\Temp\\06449b3732e752953305b051fb877a90\\ridp-threejs-1.0.19.tgz","_integrity":"sha512-2cICwyMng2XAqqHZV+NFk0yZx+rOOqY4rt6LI2kg42zJE2l4+N/JThnxnD/6nO3I7mbAG/Apv48hAaGEeVRlug==","_npmVersion":"10.7.0","description":"- useThreeJs\r     声明:","directories":{},"_nodeVersion":"18.20.4","dependencies":{"vue":"^3.5.13","vite":"^6.3.1","dexie":"^4.0.11","esdoc":"^1.1.0","three":"^0.178.0","@vueuse/core":"^13.0.0","esdoc-jsx-plugin":"^1.0.0","esdoc-standard-plugin":"^1.0.0","esdoc-importpath-plugin":"^1.0.2","esdoc-inject-style-plugin":"^1.0.0","esdoc-ecmascript-proposal-plugin":"^1.0.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/threejs_1.0.19_1752459643542_0.3593742259513302","host":"s3://npm-registry-packages-npm-production"}},"1.2.0":{"name":"@ridp/threejs","version":"1.2.0","_id":"@ridp/threejs@1.2.0","maintainers":[{"name":"muxihuakai","email":"874518796@qq.com"}],"dist":{"shasum":"173f35ae16111768b183f4330a999720348fe1a6","tarball":"https://registry.npmjs.org/@ridp/threejs/-/threejs-1.2.0.tgz","fileCount":77,"integrity":"sha512-YvqcOMrSanNxnK6Uj811EAuz9rBprl8T0OnVQYXeo9G+hNS/bN3n7vBXzkCYPENcfrBZww4AYNrFSEwr1lsUMA==","signatures":[{"sig":"MEQCIAtuuB99tAoNQD/PQYd0UDnhVXoowC7gm2cRR8+YKWfWAiBtqT+aXo3k3JV+d+tHnaFBI6GE120QU06i0rIeTHQn0w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5966745},"main":"dist/threejs.js","type":"module","_from":"file:ridp-threejs-1.2.0.tgz","exports":{".":{"import":"./dist/threejs.js","require":"./dist/threejs.cjs"},"./hooks":{"import":"./dist/hooks.js","require":"./dist/hooks.cjs"},"./utils":{"import":"./dist/utils.js","require":"./dist/utils.cjs"}},"private":false,"scripts":{"build":"vite build","build:doc":"npx esdoc"},"_npmUser":{"name":"muxihuakai","email":"874518796@qq.com"},"_resolved":"C:\\Users\\240701~1\\AppData\\Local\\Temp\\9b2880ecc2c1ff92c1529978df6b44da\\ridp-threejs-1.2.0.tgz","_integrity":"sha512-YvqcOMrSanNxnK6Uj811EAuz9rBprl8T0OnVQYXeo9G+hNS/bN3n7vBXzkCYPENcfrBZww4AYNrFSEwr1lsUMA==","_npmVersion":"10.7.0","description":"- useThreeJs\r     声明:","directories":{},"_nodeVersion":"18.20.4","dependencies":{"vue":"^3.5.13","vite":"^6.3.1","dexie":"^4.0.11","esdoc":"^1.1.0","three":"^0.178.0","@vueuse/core":"^13.0.0","esdoc-jsx-plugin":"^1.0.0","esdoc-standard-plugin":"^1.0.0","esdoc-importpath-plugin":"^1.0.2","esdoc-inject-style-plugin":"^1.0.0","esdoc-ecmascript-proposal-plugin":"^1.0.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/threejs_1.2.0_1752561957550_0.8541330425792564","host":"s3://npm-registry-packages-npm-production"}},"1.2.1":{"name":"@ridp/threejs","version":"1.2.1","_id":"@ridp/threejs@1.2.1","maintainers":[{"name":"muxihuakai","email":"874518796@qq.com"}],"dist":{"shasum":"76b8fc28901dca52ef71db52f60832b5f3276909","tarball":"https://registry.npmjs.org/@ridp/threejs/-/threejs-1.2.1.tgz","fileCount":77,"integrity":"sha512-GSduIi4LUmK21ElSoNtV1pIJLvfUK7ZXLe+MJPC7E+DrMpDRKRhRjRuBXW4UgTF57ssbpyy+n5KDksqzHUY1dw==","signatures":[{"sig":"MEYCIQD1D5rFeuiHO0+14NjrBzeJ2ovmKVGhdH2nohlks4nCNwIhAJRYLitL1tK5kZcyXqT5/K63FAGW4Dk5Rrin1YmhtWAv","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5966755},"main":"dist/threejs.js","type":"module","_from":"file:ridp-threejs-1.2.1.tgz","exports":{".":{"import":"./dist/threejs.js","require":"./dist/threejs.cjs"},"./hooks":{"import":"./dist/hooks.js","require":"./dist/hooks.cjs"},"./utils":{"import":"./dist/utils.js","require":"./dist/utils.cjs"}},"private":false,"scripts":{"build":"vite build","build:doc":"npx esdoc"},"_npmUser":{"name":"muxihuakai","email":"874518796@qq.com"},"_resolved":"C:\\Users\\240701~1\\AppData\\Local\\Temp\\516e36f1246788b92eff59ec8440c99d\\ridp-threejs-1.2.1.tgz","_integrity":"sha512-GSduIi4LUmK21ElSoNtV1pIJLvfUK7ZXLe+MJPC7E+DrMpDRKRhRjRuBXW4UgTF57ssbpyy+n5KDksqzHUY1dw==","_npmVersion":"10.7.0","description":"- useThreeJs\r     声明:","directories":{},"_nodeVersion":"18.20.4","dependencies":{"vue":"^3.5.13","vite":"^6.3.1","dexie":"^4.0.11","esdoc":"^1.1.0","three":"^0.178.0","@vueuse/core":"^13.0.0","esdoc-jsx-plugin":"^1.0.0","esdoc-standard-plugin":"^1.0.0","esdoc-importpath-plugin":"^1.0.2","esdoc-inject-style-plugin":"^1.0.0","esdoc-ecmascript-proposal-plugin":"^1.0.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/threejs_1.2.1_1752563299793_0.4005223382001972","host":"s3://npm-registry-packages-npm-production"}},"1.2.2":{"name":"@ridp/threejs","version":"1.2.2","_id":"@ridp/threejs@1.2.2","maintainers":[{"name":"muxihuakai","email":"874518796@qq.com"}],"dist":{"shasum":"fc3c4f3be3e3816850f37b268c0ceca188b75421","tarball":"https://registry.npmjs.org/@ridp/threejs/-/threejs-1.2.2.tgz","fileCount":77,"integrity":"sha512-gL4vIiJ5tRpueh9vJs0UKIvnWjkMhrC+1oU2lHDKns7oUdMP4dCV+Jb60UDUy1F15/3G+C9ZH8P+tY8U0R+S5A==","signatures":[{"sig":"MEUCIC/8BdsaiH2FMVPNNHwK5v2N7Qo2U69GH+lgIsKQmHB3AiEA/VkVI05kMgAVthQO7ZW1fkmaq7AkCIqQacmuk1DO4sg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5966743},"main":"dist/threejs.js","type":"module","_from":"file:ridp-threejs-1.2.2.tgz","exports":{".":{"import":"./dist/threejs.js","require":"./dist/threejs.cjs"},"./hooks":{"import":"./dist/hooks.js","require":"./dist/hooks.cjs"},"./utils":{"import":"./dist/utils.js","require":"./dist/utils.cjs"}},"private":false,"scripts":{"build":"vite build","build:doc":"npx esdoc"},"_npmUser":{"name":"muxihuakai","email":"874518796@qq.com"},"_resolved":"C:\\Users\\240701~1\\AppData\\Local\\Temp\\7f097346eec97728ea39142cabbe677b\\ridp-threejs-1.2.2.tgz","_integrity":"sha512-gL4vIiJ5tRpueh9vJs0UKIvnWjkMhrC+1oU2lHDKns7oUdMP4dCV+Jb60UDUy1F15/3G+C9ZH8P+tY8U0R+S5A==","_npmVersion":"10.7.0","description":"- useThreeJs\r     声明:","directories":{},"_nodeVersion":"18.20.4","dependencies":{"vue":"^3.5.13","vite":"^6.3.1","dexie":"^4.0.11","esdoc":"^1.1.0","three":"^0.178.0","@vueuse/core":"^13.0.0","esdoc-jsx-plugin":"^1.0.0","esdoc-standard-plugin":"^1.0.0","esdoc-importpath-plugin":"^1.0.2","esdoc-inject-style-plugin":"^1.0.0","esdoc-ecmascript-proposal-plugin":"^1.0.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/threejs_1.2.2_1752563767062_0.500209702743325","host":"s3://npm-registry-packages-npm-production"}},"1.3.0":{"name":"@ridp/threejs","version":"1.3.0","_id":"@ridp/threejs@1.3.0","maintainers":[{"name":"muxihuakai","email":"874518796@qq.com"}],"dist":{"shasum":"3acfffd77cdd03c7c483c2440108a026cf432733","tarball":"https://registry.npmjs.org/@ridp/threejs/-/threejs-1.3.0.tgz","fileCount":77,"integrity":"sha512-iNdsJ/coJYGUwyNgxLIPZEsWMeDi9ZnP32+xVsmWPYXu+CFCKEV7KuUiMBNAD+lTSBrcSEnbZoKa2Z45LAugVA==","signatures":[{"sig":"MEYCIQCVnhudDapsqwkziXcqCxsjngoQTqjXp6lWaTJNXeeDqQIhAJi+l6A0v70UXolWX4dO6owdb8DwoEz9rFdxP2IRAz0X","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5966755},"main":"dist/threejs.js","type":"module","_from":"file:ridp-threejs-1.3.0.tgz","exports":{".":{"import":"./dist/threejs.js","require":"./dist/threejs.cjs"},"./hooks":{"import":"./dist/hooks.js","require":"./dist/hooks.cjs"},"./utils":{"import":"./dist/utils.js","require":"./dist/utils.cjs"}},"private":false,"scripts":{"build":"vite build","build:doc":"npx esdoc"},"_npmUser":{"name":"muxihuakai","email":"874518796@qq.com"},"_resolved":"C:\\Users\\240701~1\\AppData\\Local\\Temp\\805af9ee89cd8deff26e56fafb9c278e\\ridp-threejs-1.3.0.tgz","_integrity":"sha512-iNdsJ/coJYGUwyNgxLIPZEsWMeDi9ZnP32+xVsmWPYXu+CFCKEV7KuUiMBNAD+lTSBrcSEnbZoKa2Z45LAugVA==","_npmVersion":"10.9.4","description":"- useThreeJs\r     声明:","directories":{},"_nodeVersion":"22.21.1","dependencies":{},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^6.3.1","esdoc":"^1.1.0","esdoc-jsx-plugin":"^1.0.0","esdoc-standard-plugin":"^1.0.0","esdoc-importpath-plugin":"^1.0.2","esdoc-inject-style-plugin":"^1.0.0","esdoc-ecmascript-proposal-plugin":"^1.0.0"},"peerDependencies":{"vue":">=3.0.0 <4.0.0","dexie":">=4.0.0 <5.0.0","three":">=0.178.0 <1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/threejs_1.3.0_1765177373165_0.5110884926100687","host":"s3://npm-registry-packages-npm-production"}},"1.3.1":{"name":"@ridp/threejs","version":"1.3.1","_id":"@ridp/threejs@1.3.1","maintainers":[{"name":"muxihuakai","email":"874518796@qq.com"}],"dist":{"shasum":"964f1653deb2019cd6f479046745dc8d772aa133","tarball":"https://registry.npmjs.org/@ridp/threejs/-/threejs-1.3.1.tgz","fileCount":77,"integrity":"sha512-x/rrOP/tWIp8joxyWe0hM1FafdPHFylowHTylxH0uDSSmPg2DkR13FljvV7SScdiQLD692m0Pj1JSRp4UWnucA==","signatures":[{"sig":"MEYCIQCedfWU8S02KVYxFOzDj9ScpVMUOl2UTrtfCYcvmvnN/QIhAPCOTyWBpjV2diTyTOTioIt4+Zh/uqCIzlYrd9ZKYs44","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5728614},"main":"dist/threejs.js","type":"module","_from":"file:ridp-threejs-1.3.1.tgz","exports":{".":{"import":"./dist/threejs.js","require":"./dist/threejs.cjs"},"./hooks":{"import":"./dist/hooks.js","require":"./dist/hooks.cjs"},"./utils":{"import":"./dist/utils.js","require":"./dist/utils.cjs"}},"private":false,"scripts":{"build":"vite build","build:doc":"npx esdoc"},"_npmUser":{"name":"muxihuakai","email":"874518796@qq.com"},"_resolved":"C:\\Users\\240701~1\\AppData\\Local\\Temp\\c9a834912693306b84960faf103a3e63\\ridp-threejs-1.3.1.tgz","_integrity":"sha512-x/rrOP/tWIp8joxyWe0hM1FafdPHFylowHTylxH0uDSSmPg2DkR13FljvV7SScdiQLD692m0Pj1JSRp4UWnucA==","_npmVersion":"10.9.4","description":"本库依赖以下 peer dependencies:","directories":{},"_nodeVersion":"22.21.1","dependencies":{},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^6.3.1","esdoc":"^1.1.0","esdoc-jsx-plugin":"^1.0.0","esdoc-standard-plugin":"^1.0.0","esdoc-importpath-plugin":"^1.0.2","esdoc-inject-style-plugin":"^1.0.0","esdoc-ecmascript-proposal-plugin":"^1.0.0"},"peerDependencies":{"vue":">=3.0.0 <4.0.0","dexie":">=4.0.0 <5.0.0","three":">=0.178.0 <1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/threejs_1.3.1_1765773196179_0.6926858071311561","host":"s3://npm-registry-packages-npm-production"}},"1.3.2":{"name":"@ridp/threejs","version":"1.3.2","_id":"@ridp/threejs@1.3.2","maintainers":[{"name":"muxihuakai","email":"874518796@qq.com"}],"dist":{"shasum":"d140a47077657417b6b0df4ae48860b57ff01ca3","tarball":"https://registry.npmjs.org/@ridp/threejs/-/threejs-1.3.2.tgz","fileCount":77,"integrity":"sha512-iOf7pX+fZX3LQE2bXREcY59KpFEgdqJ+6IVW5uq9HZGxCDyo18kN7U3mt9kawf93nkCnSwjqrDzBfRkPW+N0Wg==","signatures":[{"sig":"MEQCIChkeZjdAQIHH3WNzeuKWma4O41hALSqJvwYQPqYMJfGAiA+9Of5/YN3j1Trl9N/uB6HV+537HY+mf7o2T1rfT0cWg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5735698},"main":"dist/threejs.js","type":"module","_from":"file:ridp-threejs-1.3.2.tgz","exports":{".":{"import":"./dist/threejs.js","require":"./dist/threejs.cjs"},"./hooks":{"import":"./dist/hooks.js","require":"./dist/hooks.cjs"},"./utils":{"import":"./dist/utils.js","require":"./dist/utils.cjs"}},"private":false,"scripts":{"build":"vite build","build:doc":"npx esdoc"},"_npmUser":{"name":"muxihuakai","email":"874518796@qq.com"},"_resolved":"C:\\Users\\240701~1\\AppData\\Local\\Temp\\0313ca64f9f84e440b1ecb3282b2efb5\\ridp-threejs-1.3.2.tgz","_integrity":"sha512-iOf7pX+fZX3LQE2bXREcY59KpFEgdqJ+6IVW5uq9HZGxCDyo18kN7U3mt9kawf93nkCnSwjqrDzBfRkPW+N0Wg==","_npmVersion":"10.9.4","description":"本库依赖以下 peer dependencies:","directories":{},"_nodeVersion":"22.21.1","dependencies":{},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^6.3.1","esdoc":"^1.1.0","esdoc-jsx-plugin":"^1.0.0","esdoc-standard-plugin":"^1.0.0","esdoc-importpath-plugin":"^1.0.2","esdoc-inject-style-plugin":"^1.0.0","esdoc-ecmascript-proposal-plugin":"^1.0.0"},"peerDependencies":{"vue":">=3.0.0 <4.0.0","dexie":">=4.0.0 <5.0.0","three":">=0.178.0 <1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/threejs_1.3.2_1765864017336_0.7087952739091967","host":"s3://npm-registry-packages-npm-production"}},"1.3.3":{"name":"@ridp/threejs","version":"1.3.3","_id":"@ridp/threejs@1.3.3","maintainers":[{"name":"muxihuakai","email":"874518796@qq.com"}],"dist":{"shasum":"5b472c761bc40dbe882c9f7d406985fa57369622","tarball":"https://registry.npmjs.org/@ridp/threejs/-/threejs-1.3.3.tgz","fileCount":77,"integrity":"sha512-bs1mIrm2QEnWikEeNwDQ7i8TL1ipEV7zDgzf/bj/J2ub0xUcD5sU+CbLVdm95rpoojDH8HJRqjusEt3/f6b5qw==","signatures":[{"sig":"MEQCICawXakJH8N0AS3S0A4u7t99ZEYEyDliBNfV2ZX1VuDDAiA1kA+04BOtXVrQmmHla6yc6c+5Fkh2f/+HPDE2qlXDYg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5738391},"main":"dist/threejs.js","type":"module","_from":"file:ridp-threejs-1.3.3.tgz","exports":{".":{"import":"./dist/threejs.js","require":"./dist/threejs.cjs"},"./hooks":{"import":"./dist/hooks.js","require":"./dist/hooks.cjs"},"./utils":{"import":"./dist/utils.js","require":"./dist/utils.cjs"}},"private":false,"scripts":{"build":"vite build","build:doc":"npx esdoc"},"_npmUser":{"name":"muxihuakai","email":"874518796@qq.com"},"_resolved":"C:\\Users\\240701~1\\AppData\\Local\\Temp\\4f0b842034dca863bd515529327c8504\\ridp-threejs-1.3.3.tgz","_integrity":"sha512-bs1mIrm2QEnWikEeNwDQ7i8TL1ipEV7zDgzf/bj/J2ub0xUcD5sU+CbLVdm95rpoojDH8HJRqjusEt3/f6b5qw==","_npmVersion":"10.9.4","description":"本库依赖以下 peer dependencies:","directories":{},"_nodeVersion":"22.21.1","dependencies":{},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^6.3.1","esdoc":"^1.1.0","esdoc-jsx-plugin":"^1.0.0","esdoc-standard-plugin":"^1.0.0","esdoc-importpath-plugin":"^1.0.2","esdoc-inject-style-plugin":"^1.0.0","esdoc-ecmascript-proposal-plugin":"^1.0.0"},"peerDependencies":{"vue":">=3.0.0 <4.0.0","dexie":">=4.0.0 <5.0.0","three":">=0.178.0 <1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/threejs_1.3.3_1765940711380_0.6362943707431661","host":"s3://npm-registry-packages-npm-production"}},"1.4.0":{"name":"@ridp/threejs","version":"1.4.0","_id":"@ridp/threejs@1.4.0","maintainers":[{"name":"muxihuakai","email":"874518796@qq.com"}],"dist":{"shasum":"a648f62d6e91696e5bea29e50d231192568b11da","tarball":"https://registry.npmjs.org/@ridp/threejs/-/threejs-1.4.0.tgz","fileCount":81,"integrity":"sha512-PdI2J0keg3pJTPXmaB8c8wcjcG1xUnAg75jjUt67vUWQ3BehdjzceQwwsOzoaWecwTYkgukGdTfIlSR74r7MtA==","signatures":[{"sig":"MEYCIQD4oXDBRyJsOQtKlByQdqO5NTFwPPosZHknT6EOtfl5RQIhANWZZ6Y46nWga1ZXhyruH26y9xMMKVB9HrCfNy7QWffo","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":6372086},"main":"dist/threejs.js","type":"module","_from":"file:ridp-threejs-1.4.0.tgz","exports":{".":{"import":"./dist/threejs.js","require":"./dist/threejs.cjs"},"./hooks":{"import":"./dist/hooks.js","require":"./dist/hooks.cjs"},"./utils":{"import":"./dist/utils.js","require":"./dist/utils.cjs"}},"private":false,"scripts":{"build":"vite build","build:doc":"npx esdoc"},"_npmUser":{"name":"muxihuakai","email":"874518796@qq.com"},"_resolved":"C:\\Users\\240701~1\\AppData\\Local\\Temp\\9d5c084a1f303c1f95b79dfea226991b\\ridp-threejs-1.4.0.tgz","_integrity":"sha512-PdI2J0keg3pJTPXmaB8c8wcjcG1xUnAg75jjUt67vUWQ3BehdjzceQwwsOzoaWecwTYkgukGdTfIlSR74r7MtA==","_npmVersion":"10.9.4","description":"基于 Three.js 的 3D 可视化工具库,提供场景管理、模型加载、性能优化等开箱即用的功能。","directories":{},"_nodeVersion":"22.21.1","dependencies":{},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^6.3.1","esdoc":"^1.1.0","esdoc-jsx-plugin":"^1.0.0","esdoc-standard-plugin":"^1.0.0","esdoc-importpath-plugin":"^1.0.2","esdoc-inject-style-plugin":"^1.0.0","esdoc-ecmascript-proposal-plugin":"^1.0.0"},"peerDependencies":{"vue":">=3.0.0 <4.0.0","dexie":">=4.0.0 <5.0.0","three":">=0.178.0 <1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/threejs_1.4.0_1767689590939_0.6139041852874325","host":"s3://npm-registry-packages-npm-production"}},"1.4.1":{"name":"@ridp/threejs","version":"1.4.1","_id":"@ridp/threejs@1.4.1","maintainers":[{"name":"muxihuakai","email":"874518796@qq.com"}],"dist":{"shasum":"d273f1a052867c70ab253523f7b2b164d802c332","tarball":"https://registry.npmjs.org/@ridp/threejs/-/threejs-1.4.1.tgz","fileCount":81,"integrity":"sha512-lGd6uwb67hD6G70o0OrMRV5T9MxaXQOGT6vSrWFuIgnQP55oBfrEjtipWnewNoQWDTvDfLVJhMR8pvBmjcPN7Q==","signatures":[{"sig":"MEUCIQClDedGMVJOViJnzM7N1fmHYDW4szHyBe9N5WheCkU0iwIgT9arbIFuk9DM31zVKccHccKs5iYtdIKwnTGBPY7h7qY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":6371555},"main":"dist/threejs.js","type":"module","_from":"file:ridp-threejs-1.4.1.tgz","exports":{".":{"import":"./dist/threejs.js","require":"./dist/threejs.cjs"},"./hooks":{"import":"./dist/hooks.js","require":"./dist/hooks.cjs"},"./utils":{"import":"./dist/utils.js","require":"./dist/utils.cjs"}},"private":false,"scripts":{"build":"vite build","build:doc":"npx esdoc"},"_npmUser":{"name":"muxihuakai","email":"874518796@qq.com"},"_resolved":"C:\\Users\\240701~1\\AppData\\Local\\Temp\\efeef8af8afd77d69391002a26a18ee6\\ridp-threejs-1.4.1.tgz","_integrity":"sha512-lGd6uwb67hD6G70o0OrMRV5T9MxaXQOGT6vSrWFuIgnQP55oBfrEjtipWnewNoQWDTvDfLVJhMR8pvBmjcPN7Q==","_npmVersion":"10.9.4","description":"基于 Three.js 的 3D 可视化工具库,提供场景管理、模型加载、性能优化等开箱即用的功能。","directories":{},"_nodeVersion":"22.21.1","dependencies":{},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^6.3.1","esdoc":"^1.1.0","esdoc-jsx-plugin":"^1.0.0","esdoc-standard-plugin":"^1.0.0","esdoc-importpath-plugin":"^1.0.2","esdoc-inject-style-plugin":"^1.0.0","esdoc-ecmascript-proposal-plugin":"^1.0.0"},"peerDependencies":{"vue":">=3.0.0 <4.0.0","dexie":">=4.0.0 <5.0.0","three":">=0.178.0 <1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/threejs_1.4.1_1767747637718_0.6399699654264797","host":"s3://npm-registry-packages-npm-production"}},"1.4.2":{"name":"@ridp/threejs","version":"1.4.2","_id":"@ridp/threejs@1.4.2","maintainers":[{"name":"muxihuakai","email":"874518796@qq.com"}],"dist":{"shasum":"66987d5aeb4ea220a4f963a87e40566753dd6cc9","tarball":"https://registry.npmjs.org/@ridp/threejs/-/threejs-1.4.2.tgz","fileCount":115,"integrity":"sha512-mWuAkXxE1KyyiyBPxofIFl4eNH1tgUo3CrCNPOJ9DySOaDETQ7hxI01WDEwc34CUNqFBD4AC5Nr331VkmXxYdQ==","signatures":[{"sig":"MEUCIQDxly7KPviiSExexk7oDyrzTIw0uoe/CHguuRrKUHUUfwIgBdEGHeHDqobt4rJdVpPE16c9Pg7jvw3aZRqWsJusyEc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":6110376},"main":"dist/threejs.js","type":"module","_from":"file:ridp-threejs-1.4.2.tgz","exports":{".":{"import":"./dist/threejs.js","require":"./dist/threejs.cjs"},"./hooks":{"import":"./dist/hooks.js","require":"./dist/hooks.cjs"},"./utils":{"import":"./dist/utils.js","require":"./dist/utils.cjs"}},"private":false,"scripts":{"build":"vite build","build:doc":"npx esdoc"},"_npmUser":{"name":"muxihuakai","email":"874518796@qq.com"},"_resolved":"C:\\Users\\240701~1\\AppData\\Local\\Temp\\ecd2e1df06a1df37dab3a6c8580708d8\\ridp-threejs-1.4.2.tgz","_integrity":"sha512-mWuAkXxE1KyyiyBPxofIFl4eNH1tgUo3CrCNPOJ9DySOaDETQ7hxI01WDEwc34CUNqFBD4AC5Nr331VkmXxYdQ==","_npmVersion":"10.9.4","description":"基于 Three.js 的 3D 可视化工具库,提供场景管理、模型加载、性能优化等开箱即用的功能。","directories":{},"_nodeVersion":"22.21.1","dependencies":{},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^6.3.1","esdoc":"^1.1.0","esdoc-jsx-plugin":"^1.0.0","esdoc-standard-plugin":"^1.0.0","esdoc-importpath-plugin":"^1.0.2","esdoc-inject-style-plugin":"^1.0.0","esdoc-ecmascript-proposal-plugin":"^1.0.0"},"peerDependencies":{"vue":">=3.0.0 <4.0.0","dexie":">=4.0.0 <5.0.0","three":">=0.178.0 <1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/threejs_1.4.2_1767754066953_0.8912406571002762","host":"s3://npm-registry-packages-npm-production"}},"1.4.3":{"name":"@ridp/threejs","version":"1.4.3","_id":"@ridp/threejs@1.4.3","maintainers":[{"name":"muxihuakai","email":"874518796@qq.com"}],"dist":{"shasum":"c7cca05ac5306d26d188cd8ec5e0068ff92d457b","tarball":"https://registry.npmjs.org/@ridp/threejs/-/threejs-1.4.3.tgz","fileCount":115,"integrity":"sha512-dK5UIjvWtvsrKavMhYwh+B6VVv6bqBjhAyFBCn5KgdZOcGKpSlUUNoc/pJLQYzq5MY4qwjXjNC6yES47q+guCw==","signatures":[{"sig":"MEUCICAh42WzPlOZweSJVT6YGVuFioWqdeQ+shsmWX3nLaYtAiEAxtoUFv7NRJ4IuJJhhZwnFF3W2gME4ELXWHMxkUukwnA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":6118095},"main":"dist/threejs.js","type":"module","_from":"file:ridp-threejs-1.4.3.tgz","exports":{".":{"import":"./dist/threejs.js","require":"./dist/threejs.cjs"},"./hooks":{"import":"./dist/hooks.js","require":"./dist/hooks.cjs"},"./utils":{"import":"./dist/utils.js","require":"./dist/utils.cjs"}},"private":false,"scripts":{"build":"vite build","build:doc":"npx esdoc"},"_npmUser":{"name":"muxihuakai","email":"874518796@qq.com"},"_resolved":"C:\\Users\\240701~1\\AppData\\Local\\Temp\\6e06b43c9eab4114ac34064a53221052\\ridp-threejs-1.4.3.tgz","_integrity":"sha512-dK5UIjvWtvsrKavMhYwh+B6VVv6bqBjhAyFBCn5KgdZOcGKpSlUUNoc/pJLQYzq5MY4qwjXjNC6yES47q+guCw==","_npmVersion":"10.9.4","description":"基于 Three.js 的 3D 可视化工具库,提供场景管理、模型加载、性能优化等开箱即用的功能。","directories":{},"_nodeVersion":"22.21.1","dependencies":{},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^6.3.1","esdoc":"^1.1.0","esdoc-jsx-plugin":"^1.0.0","esdoc-standard-plugin":"^1.0.0","esdoc-importpath-plugin":"^1.0.2","esdoc-inject-style-plugin":"^1.0.0","esdoc-ecmascript-proposal-plugin":"^1.0.0"},"peerDependencies":{"vue":">=3.0.0 <4.0.0","dexie":">=4.0.0 <5.0.0","three":">=0.178.0 <1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/threejs_1.4.3_1767767861531_0.7632904864838204","host":"s3://npm-registry-packages-npm-production"}},"1.4.4":{"name":"@ridp/threejs","version":"1.4.4","_id":"@ridp/threejs@1.4.4","maintainers":[{"name":"muxihuakai","email":"874518796@qq.com"}],"dist":{"shasum":"e2a466ef4ce48ac84b6f99a2123f2b1b8d59439e","tarball":"https://registry.npmjs.org/@ridp/threejs/-/threejs-1.4.4.tgz","fileCount":81,"integrity":"sha512-ML0P1PDnXblf1OpwFhj8xc/268Lbl9pibcPqGoMD2+k68Ro1UKyuAgB43oViaNJIwy82qFGZ1YKZXpPd5Z3RKw==","signatures":[{"sig":"MEUCICjjOEh3ro+6xeCcO5GAJO2n4g9foS61gTT+i3KE6zZfAiEAprbQRpSOyuAbG2RxzbPnjlkE6QJitI7kJGGSfPsdWvA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":6384756},"main":"dist/threejs.js","type":"module","_from":"file:ridp-threejs-1.4.4.tgz","exports":{".":{"import":"./dist/threejs.js","require":"./dist/threejs.cjs"},"./hooks":{"import":"./dist/hooks.js","require":"./dist/hooks.cjs"},"./utils":{"import":"./dist/utils.js","require":"./dist/utils.cjs"}},"private":false,"scripts":{"build":"vite build","build:doc":"npx esdoc"},"_npmUser":{"name":"muxihuakai","email":"874518796@qq.com"},"_resolved":"C:\\Users\\240701~1\\AppData\\Local\\Temp\\f3ac48d0b3c43c8e99c60362ab120fc3\\ridp-threejs-1.4.4.tgz","_integrity":"sha512-ML0P1PDnXblf1OpwFhj8xc/268Lbl9pibcPqGoMD2+k68Ro1UKyuAgB43oViaNJIwy82qFGZ1YKZXpPd5Z3RKw==","_npmVersion":"10.9.4","description":"基于 Three.js 的 3D 可视化工具库,提供场景管理、模型加载、性能优化等开箱即用的功能。","directories":{},"_nodeVersion":"22.21.1","dependencies":{},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^6.3.1","esdoc":"^1.1.0","esdoc-jsx-plugin":"^1.0.0","esdoc-standard-plugin":"^1.0.0","esdoc-importpath-plugin":"^1.0.2","esdoc-inject-style-plugin":"^1.0.0","esdoc-ecmascript-proposal-plugin":"^1.0.0"},"peerDependencies":{"vue":">=3.0.0 <4.0.0","dexie":">=4.0.0 <5.0.0","three":">=0.178.0 <1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/threejs_1.4.4_1767773922278_0.20822602013071378","host":"s3://npm-registry-packages-npm-production"}},"1.4.5":{"name":"@ridp/threejs","version":"1.4.5","_id":"@ridp/threejs@1.4.5","maintainers":[{"name":"muxihuakai","email":"874518796@qq.com"}],"dist":{"shasum":"0c3a77938cbb39d7653b486526d6bb842693a953","tarball":"https://registry.npmjs.org/@ridp/threejs/-/threejs-1.4.5.tgz","fileCount":81,"integrity":"sha512-ZErGhedmGObZVfkajgJVA1FJJ2o4o/gdJB+yu1Z/W4XqU98c/xZmNzKMUQp8VoxzvCxGBwEJTyeS2QTw1Z9GBQ==","signatures":[{"sig":"MEYCIQD/QALctu3Ff8o79UTQwLd+Qb/QSlyMBvxHaXGjw2bx7wIhAPMxb+EuYLtpouMceCCITfUslisiFXkwHhnJlKuBKHwm","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":6385281},"main":"dist/threejs.js","type":"module","_from":"file:ridp-threejs-1.4.5.tgz","exports":{".":{"import":"./dist/threejs.js","require":"./dist/threejs.cjs"},"./hooks":{"import":"./dist/hooks.js","require":"./dist/hooks.cjs"},"./utils":{"import":"./dist/utils.js","require":"./dist/utils.cjs"}},"private":false,"scripts":{"build":"vite build","build:doc":"npx esdoc"},"_npmUser":{"name":"muxihuakai","email":"874518796@qq.com"},"_resolved":"C:\\Users\\240701~1\\AppData\\Local\\Temp\\2efeb9a2f4a79641882a52b99b2974c3\\ridp-threejs-1.4.5.tgz","_integrity":"sha512-ZErGhedmGObZVfkajgJVA1FJJ2o4o/gdJB+yu1Z/W4XqU98c/xZmNzKMUQp8VoxzvCxGBwEJTyeS2QTw1Z9GBQ==","_npmVersion":"10.9.4","description":"基于 Three.js 的 3D 可视化工具库,提供场景管理、模型加载、性能优化等开箱即用的功能。","directories":{},"_nodeVersion":"22.21.1","dependencies":{},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^6.3.1","esdoc":"^1.1.0","esdoc-jsx-plugin":"^1.0.0","esdoc-standard-plugin":"^1.0.0","esdoc-importpath-plugin":"^1.0.2","esdoc-inject-style-plugin":"^1.0.0","esdoc-ecmascript-proposal-plugin":"^1.0.0"},"peerDependencies":{"vue":">=3.0.0 <4.0.0","dexie":">=4.0.0 <5.0.0","three":">=0.178.0 <1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/threejs_1.4.5_1767777534490_0.939435662382015","host":"s3://npm-registry-packages-npm-production"}},"1.4.6":{"name":"@ridp/threejs","version":"1.4.6","_id":"@ridp/threejs@1.4.6","maintainers":[{"name":"muxihuakai","email":"874518796@qq.com"}],"dist":{"shasum":"44f6d60a438d55e088082239524ed3340e6920d6","tarball":"https://registry.npmjs.org/@ridp/threejs/-/threejs-1.4.6.tgz","fileCount":81,"integrity":"sha512-JIVOoFgxsWLvmShunhIWftG88Lj7U4wrKBJsW/208QU/xBhs4MlBWvb84xPRa9VSRRk9BK083+anz0GJ8Ns9Rg==","signatures":[{"sig":"MEUCIQD76M3b28/ieRp5wz23Z4isD4aVPuE5ar4nOAzlbusTBgIgG0zY3M8TDoKuBZMroZrr7KOj+ihk916HjVPpMMjFkV8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":6385311},"main":"dist/threejs.js","type":"module","_from":"file:ridp-threejs-1.4.6.tgz","exports":{".":{"import":"./dist/threejs.js","require":"./dist/threejs.cjs"},"./hooks":{"import":"./dist/hooks.js","require":"./dist/hooks.cjs"},"./utils":{"import":"./dist/utils.js","require":"./dist/utils.cjs"}},"private":false,"scripts":{"build":"vite build","build:doc":"npx esdoc"},"_npmUser":{"name":"muxihuakai","email":"874518796@qq.com"},"_resolved":"C:\\Users\\240701~1\\AppData\\Local\\Temp\\3d5a08c6434b55bda7a991e72d5b012c\\ridp-threejs-1.4.6.tgz","_integrity":"sha512-JIVOoFgxsWLvmShunhIWftG88Lj7U4wrKBJsW/208QU/xBhs4MlBWvb84xPRa9VSRRk9BK083+anz0GJ8Ns9Rg==","_npmVersion":"10.9.4","description":"基于 Three.js 的 3D 可视化工具库,提供场景管理、模型加载、性能优化等开箱即用的功能。","directories":{},"_nodeVersion":"22.21.1","dependencies":{},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^6.3.1","esdoc":"^1.1.0","esdoc-jsx-plugin":"^1.0.0","esdoc-standard-plugin":"^1.0.0","esdoc-importpath-plugin":"^1.0.2","esdoc-inject-style-plugin":"^1.0.0","esdoc-ecmascript-proposal-plugin":"^1.0.0"},"peerDependencies":{"vue":">=3.0.0 <4.0.0","dexie":">=4.0.0 <5.0.0","three":">=0.178.0 <1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/threejs_1.4.6_1767778306148_0.9430949497837455","host":"s3://npm-registry-packages-npm-production"}},"1.4.7":{"name":"@ridp/threejs","version":"1.4.7","_id":"@ridp/threejs@1.4.7","maintainers":[{"name":"muxihuakai","email":"874518796@qq.com"}],"dist":{"shasum":"ceb133982b24d1816979fc7486cd7ae6ace56303","tarball":"https://registry.npmjs.org/@ridp/threejs/-/threejs-1.4.7.tgz","fileCount":81,"integrity":"sha512-/DP/q2gjG/3p2p5n5HvKXcaZddRblgJIgv8D1eLHJDyUqDg5Ror6kKJ1T3a1tnrqepBJU2NqQtKQJqAP86SsJA==","signatures":[{"sig":"MEQCIHL9Jl/zTa1sBHpMArV8s3GxM47/ix9QlqxOjaiVv6GMAiAeP+HrJ7uoYLSdQgKbffMN14xlp5ae40zUR19s/5VqTQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":6390361},"main":"dist/threejs.js","type":"module","_from":"file:ridp-threejs-1.4.7.tgz","exports":{".":{"import":"./dist/threejs.js","require":"./dist/threejs.cjs"},"./hooks":{"import":"./dist/hooks.js","require":"./dist/hooks.cjs"},"./utils":{"import":"./dist/utils.js","require":"./dist/utils.cjs"}},"private":false,"scripts":{"build":"vite build","build:doc":"npx esdoc"},"_npmUser":{"name":"muxihuakai","email":"874518796@qq.com"},"_resolved":"C:\\Users\\240701~1\\AppData\\Local\\Temp\\39c377a8077221a05516025b15594805\\ridp-threejs-1.4.7.tgz","_integrity":"sha512-/DP/q2gjG/3p2p5n5HvKXcaZddRblgJIgv8D1eLHJDyUqDg5Ror6kKJ1T3a1tnrqepBJU2NqQtKQJqAP86SsJA==","_npmVersion":"10.9.4","description":"基于 Three.js 的 3D 可视化工具库,提供场景管理、模型加载、性能优化等开箱即用的功能。","directories":{},"_nodeVersion":"22.21.1","dependencies":{},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^6.3.1","esdoc":"^1.1.0","esdoc-jsx-plugin":"^1.0.0","esdoc-standard-plugin":"^1.0.0","esdoc-importpath-plugin":"^1.0.2","esdoc-inject-style-plugin":"^1.0.0","esdoc-ecmascript-proposal-plugin":"^1.0.0"},"peerDependencies":{"vue":">=3.0.0 <4.0.0","dexie":">=4.0.0 <5.0.0","three":">=0.178.0 <1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/threejs_1.4.7_1767840616986_0.8380701843604075","host":"s3://npm-registry-packages-npm-production"}},"1.5.0":{"name":"@ridp/threejs","version":"1.5.0","_id":"@ridp/threejs@1.5.0","maintainers":[{"name":"muxihuakai","email":"874518796@qq.com"}],"dist":{"shasum":"9085de67f873673556e3103bfc3651d9f52fb19d","tarball":"https://registry.npmjs.org/@ridp/threejs/-/threejs-1.5.0.tgz","fileCount":81,"integrity":"sha512-K+W/nk2sULPGTZbKUuTiGpMdcxIMafA4LLfTutLK4YRY2YX/ZnE/jEkYcPaajqjIT4as2+DQrcV+o9rOx7Rlvg==","signatures":[{"sig":"MEUCIFlZnKUHjDU0jTk+m6XeEW/HcdDbPV05TRRW7mm69yQXAiEAnDhJMKenCgqci3VLuKIHdqHfH5M8q6xY06CXR/mPjIk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":6406236},"main":"dist/threejs.js","type":"module","_from":"file:ridp-threejs-1.5.0.tgz","exports":{".":{"import":"./dist/threejs.js","require":"./dist/threejs.cjs"},"./hooks":{"import":"./dist/hooks.js","require":"./dist/hooks.cjs"},"./utils":{"import":"./dist/utils.js","require":"./dist/utils.cjs"}},"private":false,"scripts":{"build":"vite build","build:doc":"npx esdoc"},"_npmUser":{"name":"muxihuakai","email":"874518796@qq.com"},"_resolved":"C:\\Users\\240701~1\\AppData\\Local\\Temp\\caf4829219d56d2c64bdbe6127b31abd\\ridp-threejs-1.5.0.tgz","_integrity":"sha512-K+W/nk2sULPGTZbKUuTiGpMdcxIMafA4LLfTutLK4YRY2YX/ZnE/jEkYcPaajqjIT4as2+DQrcV+o9rOx7Rlvg==","_npmVersion":"10.9.4","description":"基于 Three.js 的 3D 可视化工具库,提供场景管理、模型加载、性能优化等开箱即用的功能。","directories":{},"_nodeVersion":"22.21.1","dependencies":{},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^6.3.1","esdoc":"^1.1.0","esdoc-jsx-plugin":"^1.0.0","esdoc-standard-plugin":"^1.0.0","esdoc-importpath-plugin":"^1.0.2","esdoc-inject-style-plugin":"^1.0.0","esdoc-ecmascript-proposal-plugin":"^1.0.0"},"peerDependencies":{"vue":">=3.0.0 <4.0.0","dexie":">=4.0.0 <5.0.0","three":">=0.178.0 <1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/threejs_1.5.0_1768190070383_0.7968725662877512","host":"s3://npm-registry-packages-npm-production"}},"1.5.1":{"name":"@ridp/threejs","version":"1.5.1","_id":"@ridp/threejs@1.5.1","maintainers":[{"name":"muxihuakai","email":"874518796@qq.com"}],"dist":{"shasum":"a936ef493105667c9a3efdcba03137fbc7fd8900","tarball":"https://registry.npmjs.org/@ridp/threejs/-/threejs-1.5.1.tgz","fileCount":81,"integrity":"sha512-2P8JIOqOJOrOl0G958Gzs5VkK2mAMaB0aHpLG2feHrLTlXV8CjWDrn45RK3tMu70jqnt26RWn7my4ofR8h4aKQ==","signatures":[{"sig":"MEUCIQDHinaOy+mSecWawqWb6+9QJ3QBKJfBFkDMbQWKL1EEDwIgfNqcN2H5JTiowI6x5hlVJ8CVp5W9mEV/HIKuxIqIWKk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":6413752},"main":"dist/threejs.js","type":"module","_from":"file:ridp-threejs-1.5.1.tgz","exports":{".":{"import":"./dist/threejs.js","require":"./dist/threejs.cjs"},"./hooks":{"import":"./dist/hooks.js","require":"./dist/hooks.cjs"},"./utils":{"import":"./dist/utils.js","require":"./dist/utils.cjs"}},"private":false,"scripts":{"build":"vite build","build:doc":"npx esdoc"},"_npmUser":{"name":"muxihuakai","email":"874518796@qq.com"},"_resolved":"C:\\Users\\240701~1\\AppData\\Local\\Temp\\f2d30b055f462c9df99698c8901ce49d\\ridp-threejs-1.5.1.tgz","_integrity":"sha512-2P8JIOqOJOrOl0G958Gzs5VkK2mAMaB0aHpLG2feHrLTlXV8CjWDrn45RK3tMu70jqnt26RWn7my4ofR8h4aKQ==","_npmVersion":"10.9.4","description":"基于 Three.js 的 3D 可视化工具库,提供场景管理、模型加载、性能优化等开箱即用的功能。","directories":{},"_nodeVersion":"22.21.1","dependencies":{},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^6.3.1","esdoc":"^1.1.0","esdoc-jsx-plugin":"^1.0.0","esdoc-standard-plugin":"^1.0.0","esdoc-importpath-plugin":"^1.0.2","esdoc-inject-style-plugin":"^1.0.0","esdoc-ecmascript-proposal-plugin":"^1.0.0"},"peerDependencies":{"vue":">=3.0.0 <4.0.0","dexie":">=4.0.0 <5.0.0","three":">=0.178.0 <1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/threejs_1.5.1_1768197622694_0.326460247282099","host":"s3://npm-registry-packages-npm-production"}},"1.5.2":{"name":"@ridp/threejs","version":"1.5.2","_id":"@ridp/threejs@1.5.2","maintainers":[{"name":"muxihuakai","email":"874518796@qq.com"}],"dist":{"shasum":"3be0ea135dbb5b6e0020b7c022fd8467b8b47b8a","tarball":"https://registry.npmjs.org/@ridp/threejs/-/threejs-1.5.2.tgz","fileCount":81,"integrity":"sha512-LHc9ORU9941HzvFGjC7OUQl1sW6qvYfg7uF+7EI8Mn5CwDBURUcPU3Cz1lcnX0x7AYFfEjc2PLfkRPfwBXCWpg==","signatures":[{"sig":"MEQCIHNbXBX7TABBPfmq5tn+l6dALxvLIbiJIt/Aghnwgs8pAiBCKchsMv+3uzFb7ktWJcLZbYZcKqYJfatNp2yWDhMfuA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":6405046},"main":"dist/threejs.js","type":"module","_from":"file:ridp-threejs-1.5.2.tgz","exports":{".":{"import":"./dist/threejs.js","require":"./dist/threejs.cjs"},"./hooks":{"import":"./dist/hooks.js","require":"./dist/hooks.cjs"},"./utils":{"import":"./dist/utils.js","require":"./dist/utils.cjs"}},"private":false,"scripts":{"build":"vite build","build:doc":"npx esdoc"},"_npmUser":{"name":"muxihuakai","email":"874518796@qq.com"},"_resolved":"C:\\Users\\240701~1\\AppData\\Local\\Temp\\be5991307ec8401a28208424868fdee5\\ridp-threejs-1.5.2.tgz","_integrity":"sha512-LHc9ORU9941HzvFGjC7OUQl1sW6qvYfg7uF+7EI8Mn5CwDBURUcPU3Cz1lcnX0x7AYFfEjc2PLfkRPfwBXCWpg==","_npmVersion":"10.9.3","description":"基于 Three.js 的 3D 可视化工具库,提供场景管理、模型加载、性能优化等开箱即用的功能。","directories":{},"_nodeVersion":"22.18.0","dependencies":{},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^6.3.1","esdoc":"^1.1.0","esdoc-jsx-plugin":"^1.0.0","esdoc-standard-plugin":"^1.0.0","esdoc-importpath-plugin":"^1.0.2","esdoc-inject-style-plugin":"^1.0.0","esdoc-ecmascript-proposal-plugin":"^1.0.0"},"peerDependencies":{"vue":">=3.0.0 <4.0.0","dexie":">=4.0.0 <5.0.0","three":">=0.178.0 <1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/threejs_1.5.2_1772701537811_0.5366314789500646","host":"s3://npm-registry-packages-npm-production"}},"1.5.3":{"name":"@ridp/threejs","version":"1.5.3","_id":"@ridp/threejs@1.5.3","maintainers":[{"name":"muxihuakai","email":"874518796@qq.com"}],"dist":{"shasum":"684888d35153593e3264ef583ac651feaa00311a","tarball":"https://registry.npmjs.org/@ridp/threejs/-/threejs-1.5.3.tgz","fileCount":81,"integrity":"sha512-oWb+EOmdEfNZo29cJu9epfI3w3rDzcS4kaJRuI7Nisg0ZXzTmSwZ2bPUUDqAz+4HGqUNVsMOIuAegc5/eEkx/A==","signatures":[{"sig":"MEYCIQC8UB+9O6N1T0AGHhJ5e3vHTYWdIt8qLM+ng1z9txvosQIhAOLuQP+a/D4LejOQBy5nAEimDHXoMrjkzv4s+pyLDFdd","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":6404901},"main":"dist/threejs.js","type":"module","_from":"file:ridp-threejs-1.5.3.tgz","exports":{".":{"import":"./dist/threejs.js","require":"./dist/threejs.cjs"},"./hooks":{"import":"./dist/hooks.js","require":"./dist/hooks.cjs"},"./utils":{"import":"./dist/utils.js","require":"./dist/utils.cjs"}},"private":false,"scripts":{"build":"vite build","build:doc":"npx esdoc"},"_npmUser":{"name":"muxihuakai","email":"874518796@qq.com"},"_resolved":"C:\\Users\\240701~1\\AppData\\Local\\Temp\\44010f553463126e07e4bce94732bb70\\ridp-threejs-1.5.3.tgz","_integrity":"sha512-oWb+EOmdEfNZo29cJu9epfI3w3rDzcS4kaJRuI7Nisg0ZXzTmSwZ2bPUUDqAz+4HGqUNVsMOIuAegc5/eEkx/A==","_npmVersion":"10.9.3","description":"基于 Three.js 的 3D 可视化工具库,提供场景管理、模型加载、性能优化等开箱即用的功能。","directories":{},"_nodeVersion":"22.18.0","dependencies":{},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^6.3.1","esdoc":"^1.1.0","esdoc-jsx-plugin":"^1.0.0","esdoc-standard-plugin":"^1.0.0","esdoc-importpath-plugin":"^1.0.2","esdoc-inject-style-plugin":"^1.0.0","esdoc-ecmascript-proposal-plugin":"^1.0.0"},"peerDependencies":{"vue":">=3.0.0 <4.0.0","dexie":">=4.0.0 <5.0.0","three":">=0.178.0 <1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/threejs_1.5.3_1776733160556_0.3804368329847436","host":"s3://npm-registry-packages-npm-production"}},"1.5.4":{"name":"@ridp/threejs","version":"1.5.4","_id":"@ridp/threejs@1.5.4","maintainers":[{"name":"muxihuakai","email":"874518796@qq.com"}],"dist":{"shasum":"ae77080bf8598adcc17acfc955f911c8be915d38","tarball":"https://registry.npmjs.org/@ridp/threejs/-/threejs-1.5.4.tgz","fileCount":81,"integrity":"sha512-EkEtIWW1OpAHyb4INtdAK0wfXx1FRscnqcPSitL7aRax1rIW6rKqN2UMkIM31QhYGZ+JQ1TMtR32mvhxPOYGAQ==","signatures":[{"sig":"MEQCIDyv2yLMEgAoXRDgFx2ptmgrrYPnyElaVLf5k1AvnOBOAiA7KFjhzTKWU8vCTF86jQI3VIt4EojPTVZz4yJXsSfaFQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":6408655},"main":"dist/threejs.js","type":"module","_from":"file:ridp-threejs-1.5.4.tgz","exports":{".":{"import":"./dist/threejs.js","require":"./dist/threejs.cjs"},"./hooks":{"import":"./dist/hooks.js","require":"./dist/hooks.cjs"},"./utils":{"import":"./dist/utils.js","require":"./dist/utils.cjs"}},"private":false,"scripts":{"build":"vite build","build:doc":"npx esdoc"},"_npmUser":{"name":"muxihuakai","email":"874518796@qq.com"},"_resolved":"C:\\Users\\240701~1\\AppData\\Local\\Temp\\cdbd5e6836dbc346cbad4153a1c57c62\\ridp-threejs-1.5.4.tgz","_integrity":"sha512-EkEtIWW1OpAHyb4INtdAK0wfXx1FRscnqcPSitL7aRax1rIW6rKqN2UMkIM31QhYGZ+JQ1TMtR32mvhxPOYGAQ==","_npmVersion":"10.9.3","description":"基于 Three.js 的 3D 可视化工具库,提供场景管理、模型加载、性能优化等开箱即用的功能。","directories":{},"_nodeVersion":"22.18.0","dependencies":{},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^6.3.1","esdoc":"^1.1.0","esdoc-jsx-plugin":"^1.0.0","esdoc-standard-plugin":"^1.0.0","esdoc-importpath-plugin":"^1.0.2","esdoc-inject-style-plugin":"^1.0.0","esdoc-ecmascript-proposal-plugin":"^1.0.0"},"peerDependencies":{"vue":">=3.0.0 <4.0.0","dexie":">=4.0.0 <5.0.0","three":">=0.178.0 <1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/threejs_1.5.4_1776736804225_0.47104898817437335","host":"s3://npm-registry-packages-npm-production"}},"1.5.5":{"name":"@ridp/threejs","version":"1.5.5","_id":"@ridp/threejs@1.5.5","maintainers":[{"name":"muxihuakai","email":"874518796@qq.com"}],"dist":{"shasum":"6762986c75a7aa2bbf4b80138203db8dc54da63b","tarball":"https://registry.npmjs.org/@ridp/threejs/-/threejs-1.5.5.tgz","fileCount":81,"integrity":"sha512-YfQzz0kE9AUynWbQ4NEXJc5++dAjyicS/1mZWEWH00FzZLo3QArHtsT8NeGUAp0BvOYyDx55QiZ4yMMzM3k0cg==","signatures":[{"sig":"MEUCICZq4tiy+xjERX+F3WSnd4IyYrityLuNNN+VzaL5CJ2oAiEAh6pM419Lm1fRZcoMWVkImyP6ZCKzL0rxiPiEuAOagO4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":6408655},"main":"dist/threejs.js","type":"module","_from":"file:ridp-threejs-1.5.5.tgz","exports":{".":{"import":"./dist/threejs.js","require":"./dist/threejs.cjs"},"./hooks":{"import":"./dist/hooks.js","require":"./dist/hooks.cjs"},"./utils":{"import":"./dist/utils.js","require":"./dist/utils.cjs"}},"private":false,"scripts":{"build":"vite build","build:doc":"npx esdoc"},"_npmUser":{"name":"muxihuakai","email":"874518796@qq.com"},"_resolved":"C:\\Users\\240701~1\\AppData\\Local\\Temp\\1a7aeb666ab94e638883e766a8571919\\ridp-threejs-1.5.5.tgz","_integrity":"sha512-YfQzz0kE9AUynWbQ4NEXJc5++dAjyicS/1mZWEWH00FzZLo3QArHtsT8NeGUAp0BvOYyDx55QiZ4yMMzM3k0cg==","_npmVersion":"10.9.3","description":"基于 Three.js 的 3D 可视化工具库,提供场景管理、模型加载、性能优化等开箱即用的功能。","directories":{},"_nodeVersion":"22.18.0","dependencies":{},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^6.3.1","esdoc":"^1.1.0","esdoc-jsx-plugin":"^1.0.0","esdoc-standard-plugin":"^1.0.0","esdoc-importpath-plugin":"^1.0.2","esdoc-inject-style-plugin":"^1.0.0","esdoc-ecmascript-proposal-plugin":"^1.0.0"},"peerDependencies":{"vue":">=3.0.0 <4.0.0","dexie":">=4.0.0 <5.0.0","three":">=0.178.0 <1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/threejs_1.5.5_1776741626170_0.13029863889286641","host":"s3://npm-registry-packages-npm-production"}},"2.0.0":{"name":"@ridp/threejs","version":"2.0.0","_id":"@ridp/threejs@2.0.0","maintainers":[{"name":"muxihuakai","email":"874518796@qq.com"}],"dist":{"shasum":"22192c03e2b86d9721b6828355683fd37210f00f","tarball":"https://registry.npmjs.org/@ridp/threejs/-/threejs-2.0.0.tgz","fileCount":81,"integrity":"sha512-6KHo1+Nm8FGHe302CBiJJ+nSeBYJo1huvirbmyLUQaZC9jWGMF2PaLVJ91olSTQln1DjvxP85oGF0f+ZIJQtbQ==","signatures":[{"sig":"MEYCIQCW83mI1/LZY0HvKAPwcNHeqcHwftwOYM8nGzGh4VPE3QIhANNpBpcP+6ODxsmCormzjhan8wIqmog2t1yM49TfU9MA","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":6408655},"main":"dist/threejs.js","type":"module","_from":"file:ridp-threejs-2.0.0.tgz","exports":{".":{"import":"./dist/threejs.js","require":"./dist/threejs.cjs"},"./hooks":{"import":"./dist/hooks.js","require":"./dist/hooks.cjs"},"./utils":{"import":"./dist/utils.js","require":"./dist/utils.cjs"}},"private":false,"scripts":{"build":"vite build","build:doc":"npx esdoc"},"_npmUser":{"name":"muxihuakai","email":"874518796@qq.com"},"_resolved":"C:\\Users\\240701~1\\AppData\\Local\\Temp\\9fc36f57fbc68663a105faa8cd00de25\\ridp-threejs-2.0.0.tgz","_integrity":"sha512-6KHo1+Nm8FGHe302CBiJJ+nSeBYJo1huvirbmyLUQaZC9jWGMF2PaLVJ91olSTQln1DjvxP85oGF0f+ZIJQtbQ==","_npmVersion":"10.9.3","description":"基于 Three.js 的 3D 可视化工具库,提供场景管理、模型加载、性能优化等开箱即用的功能。","directories":{},"_nodeVersion":"22.18.0","dependencies":{},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^6.3.1","esdoc":"^1.1.0","esdoc-jsx-plugin":"^1.0.0","esdoc-standard-plugin":"^1.0.0","esdoc-importpath-plugin":"^1.0.2","esdoc-inject-style-plugin":"^1.0.0","esdoc-ecmascript-proposal-plugin":"^1.0.0"},"peerDependencies":{"vue":">=3.0.0 <4.0.0","dexie":">=4.0.0 <5.0.0","three":">=0.178.0 <1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/threejs_2.0.0_1778050935808_0.03314267844244134","host":"s3://npm-registry-packages-npm-production"}},"2.0.1":{"name":"@ridp/threejs","private":false,"version":"2.0.1","type":"module","main":"dist/threejs.js","exports":{".":{"import":"./dist/threejs.js","require":"./dist/threejs.cjs"},"./hooks":{"import":"./dist/hooks.js","require":"./dist/hooks.cjs"},"./utils":{"import":"./dist/utils.js","require":"./dist/utils.cjs"}},"dependencies":{},"devDependencies":{"esdoc":"^1.1.0","esdoc-ecmascript-proposal-plugin":"^1.0.0","esdoc-importpath-plugin":"^1.0.2","esdoc-inject-style-plugin":"^1.0.0","esdoc-jsx-plugin":"^1.0.0","esdoc-standard-plugin":"^1.0.0","vite":"^6.3.1"},"peerDependencies":{"dexie":">=4.0.0 <5.0.0","vue":">=3.0.0 <4.0.0","three":">=0.178.0 <1.0.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"scripts":{"build":"vite build","build:doc":"npx esdoc"},"_id":"@ridp/threejs@2.0.1","description":"基于 Three.js 的 3D 可视化工具库,提供场景管理、模型加载、性能优化等开箱即用的功能。","_integrity":"sha512-gq4KLL3L5T0k4aCUmmmGaAzeGGAhDZ+xw+qDayts9JZvZoWh+tDh6n9rqB/Rx6h5NSBa2rhutQjz0WyXVn0dCQ==","_resolved":"C:\\Users\\240701~1\\AppData\\Local\\Temp\\7ddcc84df3d33577c7466caca9e7fac3\\ridp-threejs-2.0.1.tgz","_from":"file:ridp-threejs-2.0.1.tgz","_nodeVersion":"22.18.0","_npmVersion":"10.9.3","dist":{"integrity":"sha512-gq4KLL3L5T0k4aCUmmmGaAzeGGAhDZ+xw+qDayts9JZvZoWh+tDh6n9rqB/Rx6h5NSBa2rhutQjz0WyXVn0dCQ==","shasum":"1a6e010b7e476038abb61c891f9cbc9e3bd46977","tarball":"https://registry.npmjs.org/@ridp/threejs/-/threejs-2.0.1.tgz","fileCount":81,"unpackedSize":6409648,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDbmxxJ0mn0qtCGO7OW1Iu/pExD/o2zrCr4AZrIPDD3hAIgGmZnZAWg6JGgYva+4h559ppDw8WXPiOz/Zte3c6piNg="}]},"_npmUser":{"name":"muxihuakai","email":"874518796@qq.com"},"directories":{},"maintainers":[{"name":"muxihuakai","email":"874518796@qq.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/threejs_2.0.1_1778056294546_0.7259621709363573"},"_hasShrinkwrap":false}},"time":{"created":"2025-04-17T08:50:45.861Z","modified":"2026-05-06T08:31:34.930Z","0.0.1":"2025-04-17T08:50:46.257Z","0.0.2":"2025-04-17T09:11:59.026Z","0.1.0":"2025-04-18T03:43:24.168Z","0.2.0":"2025-04-22T02:45:52.471Z","1.0.1":"2025-04-27T01:24:45.464Z","1.1.0":"2025-04-27T01:47:43.322Z","1.1.2":"2025-04-27T01:58:29.517Z","1.1.3":"2025-04-28T00:38:10.107Z","1.1.4":"2025-04-28T01:52:38.873Z","1.1.5":"2025-04-28T04:08:02.971Z","1.1.6":"2025-04-28T04:15:53.063Z","1.1.7":"2025-04-28T05:26:08.162Z","1.0.8":"2025-05-19T05:29:24.334Z","1.0.9":"2025-05-20T00:41:47.003Z","1.0.10":"2025-05-20T03:09:31.550Z","1.0.11":"2025-05-20T06:10:13.677Z","1.0.12":"2025-06-04T01:48:08.502Z","1.0.13":"2025-06-04T02:44:38.155Z","1.0.14":"2025-06-04T03:12:42.564Z","1.0.15":"2025-06-19T06:32:26.419Z","1.0.16":"2025-07-02T03:52:36.620Z","1.0.17":"2025-07-11T09:36:50.443Z","1.0.18":"2025-07-14T02:11:12.598Z","1.0.19":"2025-07-14T02:20:43.785Z","1.2.0":"2025-07-15T06:45:57.798Z","1.2.1":"2025-07-15T07:08:20.101Z","1.2.2":"2025-07-15T07:16:07.281Z","1.3.0":"2025-12-08T07:02:53.343Z","1.3.1":"2025-12-15T04:33:16.338Z","1.3.2":"2025-12-16T05:46:57.545Z","1.3.3":"2025-12-17T03:05:11.609Z","1.4.0":"2026-01-06T08:53:11.162Z","1.4.1":"2026-01-07T01:00:37.951Z","1.4.2":"2026-01-07T02:47:47.133Z","1.4.3":"2026-01-07T06:37:41.740Z","1.4.4":"2026-01-07T08:18:42.517Z","1.4.5":"2026-01-07T09:18:54.678Z","1.4.6":"2026-01-07T09:31:46.364Z","1.4.7":"2026-01-08T02:50:17.173Z","1.5.0":"2026-01-12T03:54:30.732Z","1.5.1":"2026-01-12T06:00:22.933Z","1.5.2":"2026-03-05T09:05:38.036Z","1.5.3":"2026-04-21T00:59:20.747Z","1.5.4":"2026-04-21T02:00:04.472Z","1.5.5":"2026-04-21T03:20:26.330Z","2.0.0":"2026-05-06T07:02:16.045Z","2.0.1":"2026-05-06T08:31:34.786Z"},"description":"基于 Three.js 的 3D 可视化工具库,提供场景管理、模型加载、性能优化等开箱即用的功能。","maintainers":[{"name":"muxihuakai","email":"874518796@qq.com"}],"readme":"# @ridp/threejs\r\n\r\n基于 Three.js 的 3D 可视化工具库,提供场景管理、模型加载、性能优化等开箱即用的功能。\r\n\r\n> **📢 重要提示**:\r\n> - ⚠️ `useThreeJs()` Hook 已弃用,请使用 **ThreeIns 类** (功能更强大,不限框架)\r\n> - ⚠️ `frameArea()` 方法已弃用,请使用 **setView() 方法** (支持多视角切换)\r\n>\r\n> **快速迁移**:\r\n> ```javascript\r\n> // ❌ 旧用法 (已弃用)\r\n> const { scene, camera } = useThreeJs('#container', opts);\r\n> threeIns.frameArea(model, 1.0);\r\n>\r\n> // ✅ 新用法 (推荐)\r\n> const threeIns = new ThreeIns('#container', opts);\r\n> threeIns.setView(model, ViewType.ISO, { scale: 1.0 });\r\n> ```\r\n\r\n## 特性\r\n\r\n- 🚀 **开箱即用**: 零配置快速搭建 Three.js 场景\r\n- 📦 **智能缓存**: 基于 IndexedDB 的模型缓存机制,大幅提升二次加载速度\r\n- 🎯 **视角控制**: 内置 10 种视角(俯视、侧视、等轴测、正面、背面、左前/右前侧等)和平滑过渡动画\r\n- 🔧 **性能优化**: 模型优化、批量加载、渐进式渲染等性能优化工具\r\n- 🎨 **辅助工具**: 包围盒检测、射线拾取、碰撞检测等实用工具\r\n- 💡 **TypeScript 支持**: 完整的类型定义和 JSDoc 文档\r\n- 🌐 **框架无关**: 可在任何 JavaScript/TypeScript 项目中使用(Vue/React/Angular/原生JS)\r\n\r\n## 安装\r\n\r\n### 依赖要求\r\n\r\n本库依赖以下 peer dependencies:\r\n\r\n```json\r\n{\r\n  \"peerDependencies\": {\r\n    \"dexie\": \">=4.0.0 <5.0.0\",\r\n    \"vue\": \">=3.0.0 <4.0.0\",\r\n    \"three\": \">=0.178.0 <1.0.0\"\r\n  }\r\n}\r\n```\r\n\r\n### NPM 安装\r\n\r\n```bash\r\nnpm install @ridp/threejs dexie@^4 vue@^3 three@^0.178\r\n```\r\n\r\n### Yarn 安装\r\n\r\n```bash\r\nyarn add @ridp/threejs dexie@^4 vue@^3 three@^0.178\r\n```\r\n\r\n### PNPM 安装\r\n\r\n```bash\r\npnpm add @ridp/threejs dexie@^4 vue@^3 three@^0.178\r\n```\r\n\r\n### vite.config.js 配置\r\n因为涉及 worker，需要添加以下配置项：\r\n```javascript\r\nimport { defineConfig } from 'vite';\r\n\r\nexport default defineConfig(() => {\r\n  return {\r\n    // plugins,\r\n    // build: { ... }\r\n    optimizeDeps: {\r\n      // ...\r\n      exclude: ['@ridp/threejs']\r\n    },\r\n  }\r\n})\r\n\r\n```\r\n\r\n## 快速开始\r\n\r\n### 基础场景初始化\r\n\r\n```javascript\r\nimport { ThreeIns } from '@ridp/threejs';\r\n\r\n// 创建 3D 场景实例\r\nconst threeJsIns = new ThreeIns('#container', {\r\n  css3d: true,           // 启用 CSS3D 渲染器\r\n  renderType: 'loop',     // 渲染循环类型\r\n  initListener: true,     // 初始化事件监听\r\n  initialFov: 75,         // 初始 FOV\r\n  control: {              // OrbitControls 配置\r\n    init: true,\r\n    options: {\r\n      maxDistance: Infinity,\r\n      minDistance: 0,\r\n      enablePan: true,\r\n      enableDamping: true,\r\n      dampingFactor: 0.25,\r\n    },\r\n  },\r\n});\r\n\r\n// 访问核心对象\r\nconsole.log(threeJsIns.scene);    // THREE.Scene\r\nconsole.log(threeJsIns.camera);   // THREE.PerspectiveCamera\r\nconsole.log(threeJsIns.renderer); // THREE.WebGLRenderer\r\nconsole.log(threeJsIns.control);  // THREE.OrbitControls\r\n```\r\n\r\n### 加载 GLTF 模型\r\n\r\n```javascript\r\nimport { useGLTFLoader, initEnvImage } from '@ridp/threejs';\r\n\r\nconst { asyncFetch, logCacheReport } = useGLTFLoader();\r\n\r\n// 加载模型(带缓存)\r\nasync function loadModel() {\r\n  const modelUrl = '/models/car.glb';\r\n  const version = '1.0.0';\r\n\r\n  const [err, model] = await asyncFetch(modelUrl, version);\r\n\r\n  if (model) {\r\n    threeJsIns.scene.add(model);\r\n    threeJsIns.setView(model, ViewType.ISO, {\r\n      scale: 1.0,\r\n      showBox: true,\r\n      animate: true,\r\n      duration: 1000\r\n    });\r\n  }\r\n\r\n  // 查看缓存性能报告\r\n  logCacheReport();\r\n}\r\n\r\n// 加载环境贴图\r\nawait initEnvImage(threeJsIns.scene, '/hdr/studio.exr');\r\nloadModel();\r\n```\r\n\r\n## 核心 API\r\n\r\n### ThreeIns 类\r\n\r\n主要的 3D 场景管理类。\r\n\r\n#### 构造函数\r\n\r\n```javascript\r\nnew ThreeIns(selector: string, options: ThreeInsOptions)\r\n```\r\n\r\n**参数:**\r\n- `selector`: DOM 元素选择器(如 `#canvas-container`)\r\n- `options`: 配置对象\r\n  - `css3d`: 是否启用 CSS3D 渲染器(默认: `false`)\r\n  - `renderType`: 渲染循环类型,`'loop'` 或 `'ondemand'`(默认: `'loop'`)\r\n  - `initListener`: 是否自动监听窗口大小变化(默认: `true`)\r\n  - `initialFov`: 初始垂直 FOV(默认: `50`)\r\n  - `control`: OrbitControls 配置\r\n    - `init`: 是否初始化控制器(默认: `true`)\r\n    - `options`: OrbitControls 配置对象\r\n\r\n#### 实例属性\r\n\r\n- `scene: THREE.Scene` - 场景对象\r\n- `camera: THREE.PerspectiveCamera` - 相机对象\r\n- `renderer: THREE.WebGLRenderer` - WebGL 渲染器\r\n- `css3DRenderer: THREE.CSS3DRenderer` - CSS3D 渲染器(如果启用)\r\n- `control: THREE.OrbitControls` - 轨道控制器\r\n- `domElement: HTMLElement` - 容器 DOM 元素\r\n\r\n#### 主要方法\r\n\r\n##### setView()\r\n\r\n设置模型视角。\r\n\r\n```javascript\r\nthreeJsIns.setView(\r\n  model: Object3D,\r\n  viewType: ViewType,\r\n  options?: {\r\n    scale?: number,        // 缩放比例,1=占满画布,0.5=50%,2=0%(默认: 1)\r\n    showBox?: boolean,     // 是否显示包围盒(默认: false)\r\n    animate?: boolean,     // 是否启用动画(默认: false)\r\n    duration?: number,     // 动画时长(毫秒,默认: 1000)\r\n    offset?: Vector3       // 中心点偏移\r\n  }\r\n): void\r\n```\r\n\r\n**视角类型 (ViewType):**\r\n- `ViewType.TOP` - 俯视(从上往下)\r\n- `ViewType.RIGHT` - 右视图(从右往左)\r\n- `ViewType.LEFT` - 左侧视(从左往右)\r\n- `ViewType.ISO` - 等轴测视角(对角线上方俯视)\r\n- `ViewType.BACK` - 背面(沿 -Z 轴方向)\r\n- `ViewType.FRONT` - 正面(沿 +Z 轴方向)\r\n- `ViewType.FRONT_RIGHT` - 右前侧视(沿 +X 轴方向)\r\n- `ViewType.FRONT_LEFT` - 左前侧视(沿 -X 轴方向)\r\n- `ViewType.FRONT_RIGHT_45` - 正面+右侧45°(X+Z 对角线方向)\r\n- `ViewType.FRONT_LEFT_45` - 正面+左侧45°(-X+Z 对角线方向)\r\n\r\n**示例:**\r\n```javascript\r\n// 设置等轴测视角,模型占满画布\r\nthreeJsIns.setView(model, ViewType.ISO, {\r\n  scale: 1.0,\r\n  showBox: true,\r\n  animate: true,\r\n  duration: 800\r\n});\r\n\r\n// 设置俯视,模型缩小到 50%\r\nthreeJsIns.setView(model, ViewType.TOP, {\r\n  scale: 0.5,\r\n  animate: true\r\n});\r\n\r\n// 设置正面视角\r\nthreeJsIns.setView(model, ViewType.FRONT, {\r\n  scale: 0.8,\r\n  animate: true\r\n});\r\n\r\n// 设置正面+右侧45°视角\r\nthreeJsIns.setView(model, ViewType.FRONT_RIGHT_45, {\r\n  scale: 1.0,\r\n  showBox: true,\r\n  animate: true,\r\n  duration: 1000\r\n});\r\n\r\n// 设置背面视角\r\nthreeJsIns.setView(model, ViewType.BACK, { scale: 0.8 });\r\n\r\n// 设置左前侧视\r\nthreeJsIns.setView(model, ViewType.FRONT_LEFT, { scale: 0.8 });\r\n```\r\n\r\n##### frameArea()\r\n\r\n> **⚠️ 已弃用** - 此方法仅为兼容旧版本保留，请使用 `setView()` 方法代替。\r\n\r\n自动调整相机位置使模型完整显示在视口中（默认使用等轴测视角）。\r\n\r\n```javascript\r\nthreeJsIns.frameArea(\r\n  model: Object3D,\r\n  scale: number = 1,\r\n  options?: {\r\n    showBox?: boolean,    // 是否显示包围盒\r\n    offset?: Vector3      // 中心点偏移\r\n  }\r\n): void\r\n```\r\n\r\n**参数说明:**\r\n- `scale`: 显示比例\r\n  - `1.0` - 模型占满画布\r\n  - `0.5` - 模型占画布 50%\r\n  - `2.0` - 模型放大到 200%\r\n\r\n**示例:**\r\n```javascript\r\n// ❌ 旧用法（已弃用）\r\nthreeJsIns.frameArea(model, 1.0);\r\n\r\n// ✅ 推荐用法 - 使用 setView\r\nthreeJsIns.setView(model, ViewType.ISO, { scale: 1.0 });\r\n\r\n// ❌ 旧用法（已弃用）\r\nthreeJsIns.frameArea(model, 0.5, { showBox: true });\r\n\r\n// ✅ 推荐用法 - 使用 setView\r\nthreeJsIns.setView(model, ViewType.ISO, {\r\n  scale: 0.5,\r\n  showBox: true,\r\n  animate: true\r\n});\r\n```\r\n\r\n**迁移指南:**\r\n| 旧用法 (frameArea)      | 新用法 (setView)                               |\r\n| ----------------------- | ---------------------------------------------- |\r\n| `frameArea(model, 1.0)` | `setView(model, ViewType.ISO, { scale: 1.0 })` |\r\n| `frameArea(model, 0.5)` | `setView(model, ViewType.ISO, { scale: 0.5 })` |\r\n| `frameArea(model, 2.0)` | `setView(model, ViewType.ISO, { scale: 2.0 })` |\r\n\r\n##### updateCameraFOV()\r\n\r\n根据画布宽高比动态调整相机 FOV。\r\n\r\n```javascript\r\nthreeJsIns.updateCameraFOV(): void\r\n```\r\n\r\n当窗口大小变化时自动调用,确保模型在不同宽高比下正确显示。\r\n\r\n##### addAnimate()\r\n\r\n添加自定义动画函数到渲染循环。\r\n\r\n```javascript\r\nthreeJsIns.addAnimate(fn: Function): void\r\n```\r\n\r\n**示例:**\r\n```javascript\r\nlet time = 0;\r\nthreeJsIns.addAnimate(() => {\r\n  time += 0.01;\r\n  model.rotation.y = time;\r\n});\r\n```\r\n\r\n##### dispose()\r\n\r\n销毁场景,释放所有资源。\r\n\r\n```javascript\r\nthreeJsIns.dispose(): void\r\n```\r\n\r\n**清理内容:**\r\n- 停止渲染循环\r\n- 移除事件监听器\r\n- 释放几何体、材质、纹理\r\n- 清理 Stats 性能监控\r\n- 销毁 OrbitControls\r\n\r\n---\r\n\r\n## Hooks\r\n\r\n### useThreeJs()\r\n\r\n> **⚠️ 已弃用** - 此 Hook 仅为兼容旧版本保留，请使用 **ThreeIns 类** 代替。\r\n\r\nVue 3 组合式 API 风格的 Three.js 场景初始化 Hook。\r\n\r\n**为什么要弃用?**\r\n- ❌ 功能被 ThreeIns 类完全覆盖\r\n- ❌ 缺少视角切换功能 (setView)\r\n- ❌ 性能优化不如 ThreeIns 类\r\n- ❌ 仅限 Vue 项目使用\r\n- ❌ 资源清理不够完善\r\n\r\n**推荐迁移到 ThreeIns 类:**\r\n\r\n```javascript\r\n// ❌ 旧用法 (useThreeJs Hook - 已弃用)\r\nimport { useThreeJs } from '@ridp/threejs';\r\nconst { scene, camera, renderer, control } = useThreeJs('#container', { ... });\r\n\r\n// ✅ 推荐用法 (ThreeIns 类)\r\nimport { ThreeIns, ViewType } from '@ridp/threejs';\r\nconst threeJsIns = new ThreeIns('#container', {\r\n  css3d: true,\r\n  renderType: 'loop',\r\n  initListener: true,\r\n  initialFov: 75,\r\n  control: { init: true, options: { ... } }\r\n});\r\n\r\n// 访问核心对象\r\nconsole.log(threeJsIns.scene);    // THREE.Scene\r\nconsole.log(threeJsIns.camera);   // THREE.PerspectiveCamera\r\nconsole.log(threeJsIns.renderer); // THREE.WebGLRenderer\r\nconsole.log(threeJsIns.control);  // THREE.OrbitControls\r\n\r\n// 使用强大的 setView 方法\r\nthreeJsIns.setView(model, ViewType.ISO, { scale: 1.0, animate: true });\r\n```\r\n\r\n**迁移对照表:**\r\n\r\n| 功能        | useThreeJs (已弃用)                  | ThreeIns 类 (推荐)               |\r\n| ----------- | ------------------------------------ | -------------------------------- |\r\n| 初始化场景  | `useThreeJs('#el', opts)`            | `new ThreeIns('#el', opts)`      |\r\n| 访问 scene  | `const { scene } = useThreeJs(...)`  | `threeJsIns.scene`               |\r\n| 访问 camera | `const { camera } = useThreeJs(...)` | `threeJsIns.camera`              |\r\n| 添加动画    | `addAnimate(fn)`                     | `threeJsIns.addAnimate(fn)`      |\r\n| 视角切换    | ❌ 不支持                             | ✅ `setView(model, ViewType.ISO)` |\r\n| 资源清理    | `dispose()`                          | ✅ `threeJsIns.dispose()`         |\r\n| 适用范围    | 仅 Vue 3                             | 所有 JS/TS 项目                  |\r\n\r\n---\r\n\r\n### useGLTFLoader()\r\n\r\nGLTF 模型加载器,支持 IndexedDB 缓存、内存缓存、重试机制和调试模式。\r\n\r\n```javascript\r\nconst loader = useGLTFLoader({\r\n  debug: false  // 是否开启调试日志(默认: false)\r\n});\r\n\r\nconst {\r\n  // 核心加载方法\r\n  load,              // 基础加载方法\r\n  asyncLoad,         // Promise 异步加载\r\n  asyncFetch,        // 带缓存和重试的异步加载(推荐)\r\n  asyncCacheLoad,    // [已弃用] 旧版缓存加载\r\n\r\n  // 批量加载\r\n  loadBatch,         // 批量加载模型\r\n  loadBatchSequential, // 顺序批量加载\r\n\r\n  // IndexedDB 缓存管理\r\n  clearCache,        // 清空 IndexedDB 缓存\r\n  invalidateCache,   // 使缓存失效\r\n  getCacheStats,     // 获取缓存统计\r\n  logCacheReport,    // 输出缓存性能报告\r\n  getCache,          // 获取 IDBCache 实例\r\n  resetCacheStats,   // 重置缓存统计\r\n\r\n  // 内存缓存管理 (v1.4.2+)\r\n  clearMemoryCache,      // 清空内存缓存\r\n  getMemoryCacheInfo,    // 获取内存缓存统计\r\n  deleteMemoryCache,     // 删除指定模型的内存缓存\r\n\r\n  // 性能监控\r\n  cacheMonitor       // 缓存监控器实例\r\n} = loader;\r\n```\r\n\r\n**新增功能 (v1.4.2):**\r\n\r\n1. **内存缓存机制**: 自动缓存已解析的 3D 模型对象，避免重复解析\r\n2. **调试模式控制**: 通过初始化参数统一控制所有日志输出\r\n\r\n#### 初始化配置\r\n\r\n```javascript\r\n// 生产环境 - 默认静默\r\nconst loader = useGLTFLoader();\r\n\r\n// 开发环境 - 开启调试日志\r\nconst loader = useGLTFLoader({\r\n  debug: true\r\n});\r\n\r\n// 所有操作都会输出详细日志\r\nconst model = await loader.asyncFetch('/models/car.glb', '1.0.0');\r\n// 输出: [ asyncFetch ] ====> 缓存未命中\r\n//       [ fetchArrayBuffer ] 加载模型耗时: 150ms\r\n//       [ 解析模型耗时 ]: 80ms\r\n//       [ 内存缓存 ] 存储模型 /models/car.glb (version: 1.0.0)\r\n```\r\n\r\n**常用方法:**\r\n\r\n##### asyncFetch()\r\n\r\n推荐的模型加载方法,集成 IndexedDB 缓存、内存缓存、重试机制、性能监控和模型优化。\r\n\r\n```javascript\r\nconst model = await asyncFetch(\r\n  url: string,        // 模型 URL\r\n  version?: string,   // 模型版本(用于缓存失效)\r\n  onProgress?: (percent: number) => void,  // 进度回调\r\n  options?: {\r\n    // 重试配置\r\n    maxRetries?: number,      // 最大重试次数(默认: 3)\r\n\r\n    // 模型优化选项\r\n    optimizeMaterials?: boolean,  // 是否自动优化材质,合并相同材质(默认: false)\r\n    simplifyGeometry?: boolean,   // 是否简化模型几何体(默认: false)\r\n    simplifyRatio?: number,       // 简化比例 0-1, 0.5=保留50%面(默认: 0.5)\r\n    simplifyOptions?: {\r\n      minFaceCount?: number,      // 最小面数阈值,低于此值不简化(默认: 100)\r\n      preserveUVs?: boolean      // 是否保留UV坐标(默认: true)\r\n    },\r\n\r\n    // 缓存控制\r\n    useMemoryCache?: boolean  // 是否使用内存缓存(默认: true, v1.4.2+)\r\n  }\r\n): Promise<THREE.Object3D | null>\r\n```\r\n\r\n**缓存层级 (v1.4.2+):**\r\n\r\n1. **内存缓存** (最快) - 已解析的 3D 对象，仅需克隆（~2ms）\r\n2. **IndexedDB 缓存** (快) - ArrayBuffer 数据，需要解析（~200ms）\r\n3. **网络加载** (慢) - 完整下载 + 解析（~2s）\r\n\r\n**示例:**\r\n```javascript\r\n// 基础用法\r\nconst model = await asyncFetch('/models/car.glb', '1.0.0');\r\nif (model) {\r\n  scene.add(model);\r\n}\r\n\r\n// 带进度回调\r\nconst model = await asyncFetch('/models/car.glb', '1.0.0', (percent) => {\r\n  console.log(`加载进度: ${percent}%`);\r\n});\r\n\r\n// 启用材质优化\r\nconst model = await asyncFetch('/models/car.glb', '1.0.0', null, {\r\n  optimizeMaterials: true  // 自动合并相同材质\r\n});\r\n\r\n// 启用几何体简化(适合大型模型)\r\nconst model = await asyncFetch('/models/large-scene.glb', '1.0.0', null, {\r\n  simplifyGeometry: true,      // 启用简化\r\n  simplifyRatio: 0.5,          // 保留 50% 的面\r\n  simplifyOptions: {\r\n    minFaceCount: 500,         // 面数少于 500 的网格不简化\r\n    preserveUVs: true          // 保留 UV 坐标\r\n  }\r\n});\r\n\r\n// 禁用内存缓存\r\nconst model = await asyncFetch('/models/car.glb', '1.0.0', null, {\r\n  useMemoryCache: false  // 跳过内存缓存\r\n});\r\n\r\n// 综合优化\r\nconst model = await asyncFetch('/models/complex.glb', '1.0.0', (p) => {\r\n  console.log(`加载: ${p.toFixed(1)}%`);\r\n}, {\r\n  maxRetries: 5,             // 增加重试次数\r\n  optimizeMaterials: true,   // 优化材质\r\n  simplifyGeometry: true,    // 简化几何体\r\n  simplifyRatio: 0.7,        // 保留 70% 的面\r\n  useMemoryCache: true       // 使用内存缓存(默认)\r\n});\r\n```\r\n\r\n**性能对比:**\r\n\r\n```javascript\r\n// 首次加载\r\nawait asyncFetch('/models/car.glb', '1.0.0');\r\n// 耗时: ~2s (网络 + 解析 + 优化)\r\n\r\n// 二次加载 (内存缓存命中)\r\nawait asyncFetch('/models/car.glb', '1.0.0');\r\n// 耗时: ~2ms (仅克隆对象)\r\n\r\n// 二次加载 (仅 IndexedDB 命中,内存缓存被清空)\r\nloader.clearMemoryCache();\r\nawait asyncFetch('/models/car.glb', '1.0.0');\r\n// 耗时: ~200ms (从 IndexedDB 读取 + 解析)\r\n```\r\n\r\n##### logCacheReport()\r\n\r\n输出 IndexedDB 缓存性能报告到控制台。\r\n\r\n```javascript\r\nlogCacheReport(): void\r\n```\r\n\r\n**输出示例:**\r\n```\r\n💾 [ 缓存性能报告 ] ====\r\n  - 总加载次数: 5\r\n  - 缓存命中次数: 3\r\n  - 缓存未命中次数: 2\r\n  - 缓存命中率: 60.00%\r\n  - 总耗时: 2.5s\r\n  - 平均耗时: 500ms\r\n  - 缓存节省时间: ~1.5s\r\n```\r\n\r\n##### 内存缓存管理 API (v1.4.2+)\r\n\r\n**getMemoryCacheInfo()**\r\n\r\n获取内存缓存统计信息。\r\n\r\n```javascript\r\nconst info = loader.getMemoryCacheInfo();\r\n\r\n// 返回值:\r\n{\r\n  totalPaths: 2,      // 缓存的不同模型路径数量\r\n  totalModels: 3,     // 缓存的总模型数量\r\n  details: [\r\n    {\r\n      path: '/models/car.glb',\r\n      versions: ['1.0.0', '1.1.0'],\r\n      count: 2\r\n    },\r\n    {\r\n      path: '/models/truck.glb',\r\n      versions: ['1.0.0'],\r\n      count: 1\r\n    }\r\n  ]\r\n}\r\n```\r\n\r\n**clearMemoryCache()**\r\n\r\n清空所有内存缓存，释放已缓存的 3D 模型对象内存。\r\n\r\n```javascript\r\nconst count = loader.clearMemoryCache();\r\nconsole.log(`释放了 ${count} 个模型`);\r\n\r\n// 使用场景: 内存不足时主动释放\r\nif (info.totalModels > 100) {\r\n  loader.clearMemoryCache();\r\n}\r\n```\r\n\r\n**deleteMemoryCache(path, version?)**\r\n\r\n删除指定模型的内存缓存。\r\n\r\n```javascript\r\n// 删除特定版本\r\nloader.deleteMemoryCache('/models/car.glb', '1.0.0');\r\n\r\n// 删除所有版本\r\nloader.deleteMemoryCache('/models/car.glb');\r\n```\r\n\r\n**使用示例:**\r\n\r\n```javascript\r\nimport { useGLTFLoader } from '@ridp/threejs/hooks';\r\n\r\nconst loader = useGLTFLoader({ debug: true });\r\n\r\n// 首次加载 - 从网络加载并缓存\r\nconst model1 = await loader.asyncFetch('/models/car.glb', '1.0.0');\r\n// [ asyncFetch ] ====> 缓存未命中\r\n// [ 内存缓存 ] 存储模型 /models/car.glb (version: 1.0.0)\r\n\r\n// 二次加载 - 从内存缓存获取（极快）\r\nconst model2 = await loader.asyncFetch('/models/car.glb', '1.0.0');\r\n// [ 内存缓存命中 ] /models/car.glb (version: 1.0.0)\r\n// [ 内存缓存克隆耗时 ]: 2ms\r\n\r\n// 查看内存缓存信息\r\nconst info = loader.getMemoryCacheInfo();\r\nconsole.log(`缓存了 ${info.totalModels} 个模型`);\r\n\r\n// 清空内存缓存\r\nloader.clearMemoryCache();\r\n\r\n// 再次加载 - 从 IndexedDB 缓存获取\r\nconst model3 = await loader.asyncFetch('/models/car.glb', '1.0.0');\r\n// [ asyncFetch ] ====> IndexedDB 缓存命中\r\n```\r\n\r\n### useRaycaster()\r\n\r\n射线拾取工具,用于鼠标交互和物体选择。\r\n\r\n```javascript\r\nconst { getIntersects, getPointer } = useRaycaster('app-id');\r\n\r\n// 获取鼠标拾取的对象\r\nconst { intersects, pointer, x, y } = getIntersects(\r\n  event,          // 鼠标事件\r\n  renderer.domElement,  // 渲染器 DOM\r\n  camera,         // 相机\r\n  objects         // 可拾取对象数组\r\n);\r\n\r\n// intersects[0].object - 拾取到的 3D 对象\r\n// pointer - 标准化设备坐标(-1 到 1)\r\n// x, y - 鼠标在容器中的相对坐标\r\n```\r\n\r\n**示例:**\r\n```javascript\r\nconst canvas = document.getElementById('canvas');\r\ncanvas.addEventListener('click', (event) => {\r\n  const { intersects } = getIntersects(event, canvas, camera, scene.children);\r\n\r\n  if (intersects.length > 0) {\r\n    const clickedObject = intersects[0].object;\r\n    console.log('点击了:', clickedObject.name);\r\n\r\n    // 高亮显示\r\n    clickedObject.material.color.set(0xff0000);\r\n  }\r\n});\r\n```\r\n\r\n### useObb()\r\n\r\n有向包围盒(OBB)碰撞检测工具。\r\n\r\n```javascript\r\nimport { useObb, obbObjects, intersectColor } from '@ridp/threejs';\r\n\r\nconst {\r\n  resetObbs,              // 重置所有 OBB\r\n  initObb,                // 初始化模型的 OBB\r\n  initSingleObbItem,      // 初始化单个对象的 OBB\r\n  addObbFromArray,        // 批量添加 OBB\r\n  getObbObjectByParentUid, // 根据 parentUid 获取 OBB 对象\r\n  checkObbIntersection     // 检测碰撞\r\n} = useObb();\r\n```\r\n\r\n**使用示例:**\r\n```javascript\r\n// 1. 标记需要碰撞检测的模型\r\nmodel.userData.needCheck = true;\r\n\r\n// 2. 初始化 OBB\r\ninitObb('model-uid', model);\r\n\r\n// 3. 碰撞检测\r\nconst hasCollision = checkObbIntersection(otherObject, obbObjects);\r\n\r\n// 4. 高亮碰撞对象\r\nif (hasCollision) {\r\n  object.material.color.set(intersectColor);\r\n}\r\n```\r\n\r\n### useBatchGLTFLoader()\r\n\r\n批量模型加载器,支持并发控制和进度追踪。\r\n\r\n```javascript\r\nconst { loadBatch, loadBatchSequential } = useBatchGLTFLoader();\r\n\r\n// 并发加载(推荐)\r\nconst results = await loadBatch([\r\n  { url: '/models/part1.glb', version: '1.0.0' },\r\n  { url: '/models/part2.glb', version: '1.0.0' },\r\n  { url: '/models/part3.glb', version: '1.0.0' }\r\n], {\r\n  concurrency: 3,        // 最大并发数\r\n  onProgress: (progress) => {\r\n    console.log(`进度: ${progress.percent.toFixed(2)}%`);\r\n  }\r\n});\r\n\r\n// 顺序加载\r\nconst results = await loadBatchSequential([\r\n  { url: '/models/part1.glb', version: '1.0.0' },\r\n  { url: '/models/part2.glb', version: '1.0.0' }\r\n]);\r\n```\r\n\r\n---\r\n\r\n## 工具函数\r\n\r\n### 场景辅助工具\r\n\r\n```javascript\r\nimport {\r\n  createCameraHelper,    // 创建相机辅助器\r\n  createGridHelper,      // 创建网格辅助器\r\n  createBox3Helper,      // 创建包围盒辅助器\r\n  createOrbitControl,    // 创建轨道控制器\r\n  createMapControls,     // 创建地图控制器\r\n  createRaycaster,       // 创建射线投射器\r\n  createAxesHelper,      // 创建坐标轴辅助器\r\n  createArrowHelper,     // 创建箭头辅助器\r\n  createStats            // 创建性能监控器\r\n} from '@ridp/threejs';\r\n\r\n// 示例\r\nconst gridHelper = createGridHelper(100, 10, 0x888888, 0xcccccc);\r\nscene.add(gridHelper);\r\n\r\nconst stats = createStats();\r\ndocument.body.appendChild(stats.dom);\r\n```\r\n\r\n**功能说明:**\r\n- `createCameraHelper(camera)` - 创建相机辅助线,显示相机视锥体\r\n- `createGridHelper(size, divisions, color1, color2)` - 创建网格辅助线\r\n  - `size`: 网格大小,默认 150\r\n  - `divisions`: 分段数\r\n  - `color1/color2`: 中心线和其他线的颜色\r\n- `createBox3Helper(model)` - 创建包围盒辅助线\r\n- `createOrbitControl(camera, dom)` - 创建轨道控制器\r\n- `createMapControls(camera, dom)` - 创建地图控制器\r\n- `createRaycaster()` - 创建射线投射器,用于鼠标拾取\r\n- `createAxesHelper(size)` - 创建坐标轴辅助线,默认大小 10\r\n- `createArrowHelper(dir, origin, length, color)` - 创建箭头辅助线\r\n- `createStats()` - 创建性能监控器(基于 stats.js)\r\n\r\n### initEnvImage()\r\n\r\n初始化场景环境贴图。\r\n\r\n```javascript\r\nimport { initEnvImage } from '@ridp/threejs';\r\n\r\n// EXR 格式\r\nawait initEnvImage(scene, '/hdr/studio.exr');\r\n\r\n// HDR 格式\r\nawait initEnvImage(scene, '/hdr/outdoor.hdr');\r\n\r\n// PNG/JPG 格式(作为 CubeTexture)\r\nawait initEnvImage(scene, '/textures/env.jpg');\r\n```\r\n\r\n### getCommonParent()\r\n\r\n查找多个网格对象的公共父节点。\r\n\r\n```javascript\r\nimport { getCommonParent } from '@ridp/threejs';\r\n\r\n// 查找多个选中对象的公共父节点\r\nconst meshes = [mesh1, mesh2, mesh3];\r\nconst commonParent = getCommonParent(meshes, scene);\r\n\r\nconsole.log('公共父节点:', commonParent);\r\n```\r\n\r\n**功能说明:**\r\n- 遍历每个网格的所有父节点,统计出现频率最高的父节点\r\n- 返回的公共父节点可作为分组、操作的目标对象\r\n- 常用于批量操作、场景组织等场景\r\n\r\n**使用场景:**\r\n- 批量选择对象时查找共同的容器\r\n- 场景层级分析\r\n- 分组操作前的父节点确定\r\n\r\n### modelOptimizer\r\n\r\n模型优化工具,用于减少多边形数量和优化材质。\r\n\r\n```javascript\r\nimport { modelOptimizer } from '@ridp/threejs';\r\n\r\n// 获取模型统计信息\r\nconst stats = modelOptimizer.getModelStats(model);\r\nconsole.log('网格数量:', stats.meshCount);\r\nconsole.log('三角形数:', stats.triangleCount);\r\nconsole.log('顶点数:', stats.vertexCount);\r\nconsole.log('材质数:', stats.materialCount);\r\n\r\n// 简化模型几何体\r\nconst optimized = modelOptimizer.simplifyModel(model, {\r\n  ratio: 0.5,        // 保留 50% 的面\r\n  mergeMaterials: true,  // 合并相同材质\r\n  removeUnused: true     // 移除未使用的顶点\r\n});\r\n\r\n// 优化材质\r\nmodelOptimizer.optimizeMaterials(model);\r\n```\r\n\r\n### disposeThreeObject()\r\n\r\n深度释放 3D 对象及其子对象的资源。\r\n\r\n```javascript\r\nimport { disposeThreeObject } from '@ridp/threejs';\r\n\r\n// 释放模型资源\r\ndisposeThreeObject(model);\r\n\r\n// 释放整个场景\r\ndisposeThreeObject(scene);\r\n```\r\n\r\n**清理内容:**\r\n- 几何体 (geometry.dispose())\r\n- 材质 (material.dispose())\r\n- 材质中的所有纹理 (texture.dispose())\r\n- 子对象递归清理\r\n\r\n**注意:** 此函数会递归遍历对象的所有子对象,确保所有资源都被正确释放,避免内存泄漏。\r\n\r\n### sceneRebuilder\r\n\r\n渐进式场景重建工具,用于大型模型的分批渲染。\r\n\r\n```javascript\r\nimport { ProgressiveSceneBuilder } from '@ridp/threejs';\r\n\r\nconst builder = new ProgressiveSceneBuilder(scene, camera, {\r\n  batchSize: 1000,        // 每批添加的网格数\r\n  delay: 16,              // 批次间延迟(毫秒)\r\n  onProgress: (progress) => {\r\n    console.log(`构建进度: ${progress.percent}%`);\r\n  }\r\n});\r\n\r\nawait builder.build(model);\r\n```\r\n\r\n### 模型序列化工具\r\n\r\n用于 Three.js 对象的序列化和反序列化,支持将 3D 对象转换为可存储的数据格式。\r\n\r\n```javascript\r\nimport {\r\n  object3DToData,\r\n  object3DToDataSync,\r\n  dataToObject3D,\r\n  dataToObject3DSync\r\n} from '@ridp/threejs';\r\n\r\n// 异步序列化(推荐,避免阻塞主线程)\r\nconst data = await object3DToData(model, 50);\r\n\r\n// 同步序列化\r\nconst data = object3DToDataSync(model);\r\n\r\n// 异步反序列化(推荐,避免阻塞主线程)\r\nconst restoredModel = await dataToObject3D(data, 50);\r\n\r\n// 同步反序列化\r\nconst restoredModel = dataToObject3DSync(data);\r\n```\r\n\r\n**功能说明:**\r\n- `object3DToData(object, chunkSize)` - 异步序列化对象,使用分块处理避免阻塞\r\n  - `chunkSize`: 每帧处理的对象数量,默认 50\r\n- `object3DToDataSync(object)` - 同步序列化对象\r\n- `dataToObject3D(data, chunkSize)` - 异步反序列化数据为 3D 对象\r\n- `dataToObject3DSync(data)` - 同步反序列化数据为 3D 对象\r\n\r\n**序列化内容:**\r\n- 对象类型、名称、位置、旋转、缩放\r\n- 几何体数据(顶点、索引、UV 等)\r\n- 材质数据(颜色、纹理、属性等)\r\n- userData 自定义数据\r\n- 子对象层级关系\r\n\r\n**使用场景:**\r\n- 场景状态保存和恢复\r\n- 模型数据的本地存储\r\n- 跨页面/跨会话的模型传输\r\n\r\n### 对象查询工具\r\n\r\n基于 userData 的对象查找工具。\r\n\r\n```javascript\r\nimport { getObjectByUserData, getRootObj } from '@ridp/threejs';\r\n\r\n// 向下遍历查找首个匹配 userData 的对象\r\nconst target = getObjectByUserData(mesh, 'type', 'wheel');\r\n\r\n// 向上查找根节点（根据 userData 判定）\r\nconst root = getRootObj(mesh, 'isRoot', true);\r\n```\r\n\r\n**功能说明:**\r\n- `getObjectByUserData(obj, key, value)` - 从指定对象开始向下遍历,查找首个 userData[key]=value 的对象(包括自身)\r\n- `getRootObj(obj, rootKey, value)` - 从指定对象开始向上查找父级,直到找到 userData[rootKey]=value 的根对象\r\n\r\n### CSS3D 辅助工具\r\n\r\n```javascript\r\nimport { createInfoPlane, createTagPlane } from '@ridp/threejs';\r\n\r\n// 从 DOM ID 创建 CSS3D 信息面板\r\nconst infoPlane = createInfoPlane('my-info-panel', [0.3, 0.3, 0.3]);\r\ninfoPlane.position.set(0, 10, 0);\r\nscene.add(infoPlane);\r\n\r\n// 创建 CSS3D 标签面板\r\nconst tagPlane = createTagPlane('设备名称', 0.01);\r\ntagPlane.position.set(5, 5, 5);\r\nscene.add(tagPlane);\r\n```\r\n\r\n**功能说明:**\r\n- `createInfoPlane(id, scale)` - 从页面中已存在的 DOM 元素创建 CSS3D 精灵\r\n  - `id`: DOM 元素的 ID\r\n  - `scale`: 缩放比例数组 `[x, y, z]`,默认 `[0.3, 0.3, 0.3]`\r\n  - ⚠️ 注意: HTML 元素不能设置为绝对定位\r\n- `createTagPlane(text, scale)` - 创建带文本的 CSS3D 标签\r\n  - `text`: 标签文本内容\r\n  - `scale`: 统一缩放比例(三个维度相同)\r\n\r\n### CacheMonitor\r\n\r\n缓存性能监控工具。\r\n\r\n```javascript\r\nimport { cacheMonitor } from '@ridp/threejs';\r\n\r\n// 获取缓存统计\r\nconst stats = cacheMonitor.getStats();\r\nconsole.log('命中率:', stats.hitRate);\r\nconsole.log('平均耗时:', stats.avgLoadTime);\r\n\r\n// 监听缓存事件\r\ncacheMonitor.on('hit', (key) => {\r\n  console.log('缓存命中:', key);\r\n});\r\n\r\ncacheMonitor.on('miss', (key) => {\r\n  console.log('缓存未命中:', key);\r\n});\r\n```\r\n\r\n### RetryHelper\r\n\r\n重试机制工具,用于处理不稳定的网络请求。\r\n\r\n```javascript\r\nimport { RetryHelper, ModelLoadError } from '@ridp/threejs';\r\n\r\nconst retryHelper = new RetryHelper({\r\n  maxRetries: 3,        // 最大重试次数\r\n  baseDelay: 1000,      // 基础延迟(毫秒)\r\n  maxDelay: 10000,      // 最大延迟(毫秒)\r\n  backoffMultiplier: 2  // 退避乘数\r\n});\r\n\r\ntry {\r\n  const result = await retryHelper.execute(async () => {\r\n    const response = await fetch('/models/car.glb');\r\n    if (!response.ok) {\r\n      throw new ModelLoadError('加载失败', response.status);\r\n    }\r\n    return response.json();\r\n  });\r\n} catch (error) {\r\n  console.error('重试失败:', error);\r\n}\r\n```\r\n\r\n### PredictiveLoader\r\n\r\n预测性加载工具,根据用户行为预加载可能需要的资源。\r\n\r\n```javascript\r\nimport { PredictiveLoader } from '@ridp/threejs';\r\n\r\nconst loader = new PredictiveLoader({\r\n  maxPrefetch: 3,       // 最大预加载数\r\n  priority: 'recent'    // 优先级策略\r\n});\r\n\r\n// 预加载模型\r\nloader.prefetch('/models/next-part.glb', '1.0.0');\r\n\r\n// 根据用户行为预测\r\nloader.predict(userBehavior, availableModels);\r\n```\r\n\r\n---\r\n\r\n## 实例类\r\n\r\n### IDBCache\r\n\r\nIndexedDB 缓存管理类。\r\n\r\n```javascript\r\nimport { IDBCache } from '@ridp/threejs';\r\n\r\nconst cache = new IDBCache('my-cache-db', 1);\r\n\r\n// 保存模型到缓存\r\nawait cache.saveModel('model-key', modelData, {\r\n  version: '1.0.0',\r\n  timestamp: Date.now()\r\n});\r\n\r\n// 从缓存加载模型\r\nconst data = await cache.loadCachedModel('model-key', '1.0.0');\r\n\r\n// 清除特定模型缓存\r\nawait cache.deleteModel('model-key');\r\n\r\n// 清空所有缓存\r\nawait cache.clear();\r\n\r\n// 获取缓存统计\r\nconst stats = await cache.getStats();\r\n```\r\n\r\n---\r\n\r\n## 完整示例\r\n\r\n### Vue 3 组件示例\r\n\r\n```vue\r\n<template>\r\n  <div class=\"canvas-container\" ref=\"containerRef\"></div>\r\n</template>\r\n\r\n<script setup>\r\nimport { ref, onMounted, onUnmounted } from 'vue';\r\nimport { ThreeIns, useGLTFLoader, initEnvImage, ViewType } from '@ridp/threejs';\r\nimport * as THREE from 'three';\r\n\r\nconst containerRef = ref(null);\r\nlet threeJsIns = null;\r\nconst { asyncFetch, logCacheReport } = useGLTFLoader();\r\n\r\nonMounted(async () => {\r\n  // 1. 初始化场景\r\n  threeJsIns = new ThreeIns(containerRef.value, {\r\n    css3d: false,\r\n    renderType: 'loop',\r\n    initListener: true,\r\n    initialFov: 75,\r\n    control: {\r\n      init: true,\r\n      options: {\r\n        maxDistance: Infinity,\r\n        minDistance: 0,\r\n        enablePan: true,\r\n        enableDamping: true,\r\n        dampingFactor: 0.25,\r\n      },\r\n    },\r\n  });\r\n\r\n  // 2. 加载环境贴图\r\n  await initEnvImage(threeJsIns.scene, '/hdr/studio.exr');\r\n\r\n  // 3. 加载模型\r\n  const [err, model] = await asyncFetch('/models/car.glb', '1.0.0', {\r\n    onProgress: (progress) => {\r\n      const percent = (progress.loaded / progress.total * 100).toFixed(2);\r\n      console.log(`加载进度: ${percent}%`);\r\n    }\r\n  });\r\n\r\n  if (model) {\r\n    threeJsIns.scene.add(model);\r\n\r\n    // 4. 设置视角\r\n    threeJsIns.setView(model, ViewType.ISO, {\r\n      scale: 1.0,\r\n      showBox: false,\r\n      animate: true,\r\n      duration: 1000\r\n    });\r\n  }\r\n\r\n  // 5. 查看缓存性能\r\n  logCacheReport();\r\n});\r\n\r\nonUnmounted(() => {\r\n  // 清理资源\r\n  if (threeJsIns) {\r\n    threeJsIns.dispose();\r\n  }\r\n});\r\n</script>\r\n\r\n<style scoped>\r\n.canvas-container {\r\n  width: 100%;\r\n  height: 100vh;\r\n}\r\n</style>\r\n```\r\n\r\n### 多模型加载示例\r\n\r\n```javascript\r\nimport { ThreeIns, useBatchGLTFLoader, ViewType } from '@ridp/threejs';\r\n\r\nconst threeJsIns = new ThreeIns('#container', { /* ... */ });\r\nconst { loadBatch } = useBatchGLTFLoader();\r\n\r\n// 批量加载多个模型\r\nconst models = [\r\n  { url: '/models/floor.glb', version: '1.0.0' },\r\n  { url: '/models/wall.glb', version: '1.0.0' },\r\n  { url: '/models/roof.glb', version: '1.0.0' },\r\n  { url: '/models/furniture.glb', version: '1.0.0' }\r\n];\r\n\r\nconst results = await loadBatch(models, {\r\n  concurrency: 2,\r\n  onProgress: (progress) => {\r\n    console.log(`加载进度: ${progress.percent}%`);\r\n    console.log(`已完成: ${progress.loaded}/${progress.total}`);\r\n  }\r\n});\r\n\r\n// 添加所有模型到场景\r\nresults.forEach(result => {\r\n  if (result.model) {\r\n    threeJsIns.scene.add(result.model);\r\n  }\r\n});\r\n\r\n// 自动适配视角\r\nconst group = new THREE.Group();\r\nresults.forEach(r => r.model && group.add(r.model));\r\nthreeJsIns.setView(group, ViewType.TOP, { scale: 0.8 });\r\n```\r\n\r\n### 交互式场景示例\r\n\r\n```javascript\r\nimport { ThreeIns, useRaycaster, useObb } from '@ridp/threejs';\r\n\r\nconst threeJsIns = new ThreeIns('#container', { /* ... */ });\r\nconst { getIntersects } = useRaycaster('app');\r\nconst { initObb, checkObbIntersection } = useObb();\r\n\r\n// 加载模型后初始化碰撞检测\r\nmodel.userData.needCheck = true;\r\ninitObb('model-1', model);\r\n\r\n// 点击事件\r\nthreeJsIns.renderer.domElement.addEventListener('click', (event) => {\r\n  const { intersects } = getIntersects(\r\n    event,\r\n    threeJsIns.renderer.domElement,\r\n    threeJsIns.camera,\r\n    [model]\r\n  );\r\n\r\n  if (intersects.length > 0) {\r\n    const object = intersects[0].object;\r\n    console.log('点击了:', object.name);\r\n\r\n    // 检测碰撞\r\n    const hasCollision = checkObbIntersection(object, obbObjects);\r\n    if (hasCollision) {\r\n      object.material.color.set(0xff0000);\r\n    }\r\n  }\r\n});\r\n```\r\n\r\n---\r\n\r\n## 性能优化建议\r\n\r\n### 1. 使用模型缓存和自动优化\r\n\r\n对于重复访问的模型,启用 IndexedDB 缓存可以显著提升加载速度。同时可以启用材质优化和几何体简化来提升渲染性能:\r\n\r\n```javascript\r\n// 首次加载: ~2s (含优化)\r\nawait asyncFetch('/models/large-scene.glb', '1.0.0', {\r\n  optimizeMaterials: true,   // 合并相同材质,减少 draw calls\r\n  simplifyGeometry: true,    // 简化几何体,减少三角形数\r\n  simplifyRatio: 0.5         // 保留 50% 的面\r\n});\r\n\r\n// 二次加载: ~200ms (从缓存读取,仍需优化)\r\nawait asyncFetch('/models/large-scene.glb', '1.0.0', {\r\n  optimizeMaterials: true,\r\n  simplifyGeometry: true,\r\n  simplifyRatio: 0.5\r\n});\r\n```\r\n\r\n**优化选项说明:**\r\n\r\n- **`optimizeMaterials`** (材质优化)\r\n  - 自动合并相同属性的材质\r\n  - 减少材质切换次数\r\n  - 降低 GPU draw calls\r\n  - 适用场景: 模型中有很多相似材质的对象\r\n\r\n- **`simplifyGeometry`** (几何体简化)\r\n  - 减少模型的三角形数量\r\n  - 显著提升渲染性能\r\n  - 适合大型场景或低性能设备\r\n  - 可配置简化比例和最小面数阈值\r\n\r\n- **`simplifyRatio`** (简化比例)\r\n  - `0.8` - 保留 80% 的面(轻度简化)\r\n  - `0.5` - 保留 50% 的面(中度简化,推荐)\r\n  - `0.3` - 保留 30% 的面(重度简化,适合远景模型)\r\n\r\n**性能对比:**\r\n```\r\n未优化模型: 50万三角形, 120个材质\r\n优化后:    25万三角形 (50%减少), 45个材质 (62%减少)\r\nFPS提升:   30 FPS -> 55 FPS (83%提升)\r\n```\r\n\r\n### 2. 批量加载优化\r\n\r\n使用批量加载时,合理控制并发数:\r\n\r\n```javascript\r\n// 推荐: 根据设备性能动态调整\r\nconst concurrency = navigator.hardwareConcurrency || 4;\r\nawait loadBatch(models, { concurrency });\r\n```\r\n\r\n### 3. 手动模型优化\r\n\r\n如果需要在加载后手动优化模型:\r\n\r\n```javascript\r\nimport { modelOptimizer } from '@ridp/threejs';\r\n\r\n// 材质优化\r\nmodelOptimizer.optimizeMaterials(model);\r\n\r\n// 几何体简化\r\nmodelOptimizer.simplifyModel(model, 0.5, {\r\n  minFaceCount: 500,\r\n  preserveUVs: true\r\n});\r\n\r\n// 查看优化效果\r\nconst stats = modelOptimizer.getModelStats(model);\r\nconsole.log('优化后统计:', stats);\r\n```\r\n\r\n### 4. 渐进式渲染\r\n\r\n对于超大场景,使用渐进式渲染避免长时间卡顿:\r\n\r\n```javascript\r\nimport { ProgressiveSceneBuilder } from '@ridp/threejs';\r\n\r\nconst builder = new ProgressiveSceneBuilder(scene, camera, {\r\n  batchSize: 1000,\r\n  delay: 16\r\n});\r\nawait builder.build(model);\r\n```\r\n\r\n### 5. 合理使用阴影\r\n\r\n阴影是性能杀手,仅在必要时启用:\r\n\r\n```javascript\r\nrenderer.shadowMap.enabled = true;  // 启用阴影\r\nrenderer.shadowMap.type = THREE.PCFSoftShadowMap;  // 软阴影\r\n\r\n// 仅重要对象投射阴影\r\nimportantObject.castShadow = true;\r\notherObjects.castShadow = false;\r\n```\r\n\r\n---\r\n\r\n## 常见问题\r\n\r\n### Q: 如何处理模型加载失败?\r\n\r\nA: 使用 `asyncFetch` 的重试机制:\r\n\r\n```javascript\r\nconst [err, model] = await asyncFetch(url, version, {\r\n  retryCount: 5,\r\n  timeout: 60000\r\n});\r\n\r\nif (err || !model) {\r\n  console.error('模型加载失败:', err);\r\n  // 显示错误提示或加载备用模型\r\n}\r\n```\r\n\r\n### Q: 如何清理模型缓存?\r\n\r\nA: 使用 `clearCache` 方法:\r\n\r\n```javascript\r\nconst { clearCache } = useGLTFLoader();\r\nawait clearCache();  // 清空所有缓存\r\n\r\n// 或使用 IDBCache 实例\r\nimport { IDBCache } from '@ridp/threejs';\r\nconst cache = new IDBCache();\r\nawait cache.clear();\r\n```\r\n\r\n### Q: 模型显示太小或太大?\r\n\r\nA: 使用 `setView` 的 `scale` 参数:\r\n\r\n```javascript\r\n// 模型太小 - 放大\r\nthreeJsIns.setView(model, ViewType.ISO, { scale: 2.0 });\r\n\r\n// 模型太大 - 缩小\r\nthreeJsIns.setView(model, ViewType.ISO, { scale: 0.5 });\r\n```\r\n\r\n> **注意**: 旧方法 `frameArea()` 已弃用，请使用 `setView()` 代替。\r\n\r\n### Q: 如何监听窗口大小变化?\r\n\r\nA: 如果 `initListener: true`,会自动监听。否则手动监听:\r\n\r\n```javascript\r\nwindow.addEventListener('resize', () => {\r\n  threeJsIns.updateCameraFOV();\r\n  threeJsIns.camera.updateProjectionMatrix();\r\n  threeJsIns.renderer.setSize(\r\n    threeJsIns.domElement.clientWidth,\r\n    threeJsIns.domElement.clientHeight\r\n  );\r\n});\r\n```\r\n\r\n### Q: 如何导出场景截图?\r\n\r\nA: 使用 `renderer.domElement.toDataURL()`:\r\n\r\n```javascript\r\nfunction captureScreenshot() {\r\n  threeJsIns.render();  // 确保最新帧已渲染\r\n  const dataURL = threeJsIns.renderer.domElement.toDataURL('image/png');\r\n  const link = document.createElement('a');\r\n  link.download = 'screenshot.png';\r\n  link.href = dataURL;\r\n  link.click();\r\n}\r\n```\r\n\r\n---\r\n\r\n## 更新日志\r\n\r\n### v1.4.2 (2026-01-07)\r\n\r\n**🎉 重大更新:**\r\n\r\n- ✨ **新增内存缓存机制**: 自动缓存已解析的 3D 模型对象，避免重复解析\r\n  - 首次加载后，二次加载仅需 ~2ms（对象克隆）\r\n  - 相比完整加载流程，速度提升可达 **100倍以上**\r\n  - 新增 `clearMemoryCache()` - 清空内存缓存\r\n  - 新增 `getMemoryCacheInfo()` - 获取内存缓存统计\r\n  - 新增 `deleteMemoryCache(path, version?)` - 删除指定缓存\r\n  - 支持 `useMemoryCache` 选项控制是否使用内存缓存\r\n\r\n- ✨ **新增调试模式控制**:\r\n  - `useGLTFLoader` 现在支持初始化配置 `{ debug: boolean }`\r\n  - 统一控制所有内部函数的日志输出\r\n  - 生产环境默认静默，开发环境可开启详细日志\r\n  - 错误日志始终输出，不受 debug 配置影响\r\n\r\n- 🐛 **修复 Web Worker 在 npm 包中无法加载的问题**:\r\n  - 使用 `?worker` 语法正确导入 Worker\r\n  - 配置 `base: './'` 使用相对路径解析\r\n  - Worker 文件正确打包到 `dist/assets/` 目录\r\n  - 修复了之前 404 错误和 MIME 类型错误的问题\r\n\r\n**API 变更:**\r\n\r\n```javascript\r\n// 旧 API (v1.4.1 及之前)\r\nconst loader = useGLTFLoader();\r\nconst model = await loader.asyncFetch(url, version, null, { debug: true });\r\n\r\n// 新 API (v1.4.2+)\r\nconst loader = useGLTFLoader({ debug: true });\r\nconst model = await loader.asyncFetch(url, version);\r\n\r\n// 新增内存缓存管理\r\nconst info = loader.getMemoryCacheInfo();\r\nloader.clearMemoryCache();\r\nloader.deleteMemoryCache(url, version);\r\n```\r\n\r\n**性能提升:**\r\n\r\n```\r\n加载场景 (v1.4.1):\r\n- 首次: ~2s (网络 + 解析)\r\n- 二次: ~200ms (IndexedDB 读取 + 解析)\r\n\r\n加载场景 (v1.4.2+):\r\n- 首次: ~2s (网络 + 解析)\r\n- 二次: ~2ms (内存缓存克隆)\r\n- 提升: 100倍\r\n```\r\n\r\n### v1.4.1 (2025-XX-XX)\r\n\r\n- 🎯 优化 `setView` 方法的 scale 参数计算逻辑\r\n- 🔧 修复水平 FOV 超过 180° 导致的负数距离问题\r\n- ✨ 扩展 ViewType 视角类型,新增 BACK/FRONT/FRONT_RIGHT/FRONT_LEFT/FRONT_RIGHT_45/FRONT_LEFT_45\r\n- ⚡ 优化 OrbitControls 距离限制的自动处理\r\n- 🐛 修复相机 near/far 平面裁剪问题\r\n- ⚠️ **弃用**: `useThreeJs()` Hook - 推荐使用 **ThreeIns 类** (功能更完整,不限框架)\r\n- ⚠️ **弃用**: `frameArea()` 方法 - 推荐使用 **setView() 方法** (支持多视角)\r\n- ✨ **新增**: `asyncFetch` 支持自动材质优化 (`optimizeMaterials`)\r\n- ✨ **新增**: `asyncFetch` 支持几何体简化 (`simplifyGeometry`)\r\n- ✨ **新增**: `modelOptimizer.simplifyModel()` 方法 - 整体模型简化\r\n- 📦 **增强**: 完整的模型优化工作流,支持加载时自动优化\r\n\r\n### v1.3.2 (2025-01-05)\r\n\r\n- ✨ 新增 Web Worker 支持,优化 GLTF 解析性能\r\n- 📦 增强模型缓存机制\r\n- 🎨 新增 `modelOptimizer` 工具\r\n- ⚡ 性能优化:减少重复计算\r\n\r\n### v1.3.0 (2024-12-XX)\r\n\r\n- ✨ 新增 `useBatchGLTFLoader` 批量加载 Hook\r\n- 🎯 新增 `setView` 方法,支持多视角切换\r\n- 📊 新增 `CacheMonitor` 缓存监控工具\r\n- 🔧 新增 `RetryHelper` 重试机制\r\n\r\n完整更新日志请查看 [CHANGELOG.md](./CHANGELOG.md)\r\n\r\n---\r\n\r\n## 许可证\r\n\r\nMIT License\r\n\r\n---\r\n\r\n## 支持\r\n\r\n- 📧 Email: support@example.com\r\n- 🐛 Issues: [GitHub Issues](https://github.com/example/threejs/issues)\r\n- 📖 文档: [在线文档](https://example.com/docs)\r\n\r\n---\r\n\r\n## 相关资源\r\n\r\n- [Three.js 官方文档](https://threejs.org/docs/)\r\n- [Three.js 示例](https://threejs.org/examples/)\r\n- [GLTF 文件格式规范](https://github.com/KhronosGroup/glTF)\r\n","readmeFilename":"readme.md"}