{"_id":"@akb2/three-triangle-geometry","_rev":"5-a9f042c0edbe51b6de3877f0acdf4e5c","name":"@akb2/three-triangle-geometry","dist-tags":{"latest":"1.2.1"},"versions":{"1.0.0":{"name":"@akb2/three-triangle-geometry","version":"1.0.0","keywords":["three","three.js","geometry"],"author":{"name":"Андрей"},"license":"MIT","_id":"@akb2/three-triangle-geometry@1.0.0","maintainers":[{"name":"akb2","email":"akb2-online@ya.ru"}],"homepage":"https://github.com/akb2/three-triangle-geometry#readme","bugs":{"url":"https://github.com/akb2/three-triangle-geometry/issues"},"dist":{"shasum":"366ee2ef13e0380a18f1017c9ed70e3a864d6489","tarball":"https://registry.npmjs.org/@akb2/three-triangle-geometry/-/three-triangle-geometry-1.0.0.tgz","fileCount":6,"integrity":"sha512-2RLR7vE6CA2QfPLy6EvqSAy1kmUocat71li3t4pUa8Mfi8/fwN+ACmJl0rgxyp1JhG096UWtMyfePQKaAVoVwg==","signatures":[{"sig":"MEUCIBGxxyJz10kAz7d5VSAE0TDSiOOi65zhQqYYgo3pIJYjAiEAivCcLtwy/a8YGGc/l5l9sV02RrUokyiH6+p8OzETuYg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":12483},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"78fe25be10b6998e6af21a3487d755fb8e030b2d","scripts":{"build":"tsup src/index.ts --dts --format esm,cjs --clean --out-dir dist","prepublishOnly":"npm run build"},"_npmUser":{"name":"akb2","email":"akb2-online@ya.ru"},"repository":{"url":"git+https://github.com/akb2/three-triangle-geometry.git","type":"git"},"_npmVersion":"10.9.0","description":"Triangle geomentry for three.js","directories":{},"sideEffects":false,"_nodeVersion":"22.12.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","three":"^0.159.0","@akb2/math":"^1.0.0","typescript":"^5.4.0","@types/three":"^0.159.0"},"peerDependencies":{"three":">=0.159 <1","@akb2/math":">=1 <2","@types/three":">=0.159 <1"},"_npmOperationalInternal":{"tmp":"tmp/three-triangle-geometry_1.0.0_1759603879498_0.9422362447698418","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@akb2/three-triangle-geometry","version":"1.0.1","keywords":["three","three.js","geometry"],"author":{"name":"Андрей"},"license":"MIT","_id":"@akb2/three-triangle-geometry@1.0.1","maintainers":[{"name":"akb2","email":"akb2-online@ya.ru"}],"homepage":"https://github.com/akb2/three-triangle-geometry#readme","bugs":{"url":"https://github.com/akb2/three-triangle-geometry/issues"},"dist":{"shasum":"5d163c74ebf2c30b4d1c60f4a1b9ddd866aef798","tarball":"https://registry.npmjs.org/@akb2/three-triangle-geometry/-/three-triangle-geometry-1.0.1.tgz","fileCount":6,"integrity":"sha512-ladSn/jAbGQufJt0HxYYjqsloemW7Xuj9o0sW3xiur+fUN9yMwFu96pvoX3+jWD/OEPt0YIoCJ/9l+8+B4E3rg==","signatures":[{"sig":"MEQCIC0Nf5Z7weoA7TvSLasBCCG/E6NsefdWkiEZscrFkZ5uAiBPB9bAl3mwMV6N1lhkVcwHNtuuBog76s7D19C6xdBM4A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":12481},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"4c5cbaca353daf10998b492ae94bec1c14951ae1","scripts":{"build":"tsup src/index.ts --dts --format esm,cjs --clean --out-dir dist","prepublishOnly":"npm run build"},"_npmUser":{"name":"akb2","email":"akb2-online@ya.ru"},"repository":{"url":"git+https://github.com/akb2/three-triangle-geometry.git","type":"git"},"_npmVersion":"10.9.0","description":"Triangle geomentry for three.js","directories":{},"sideEffects":false,"_nodeVersion":"22.12.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","three":"^0.159.0","@akb2/math":"^1.0.0","typescript":"^5.4.0","@types/three":"^0.159.0"},"peerDependencies":{"three":">=0.159 <1","@akb2/math":">=1 <2","@types/three":">=0.159 <1"},"_npmOperationalInternal":{"tmp":"tmp/three-triangle-geometry_1.0.1_1760377150246_0.7272758999034281","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"@akb2/three-triangle-geometry","version":"1.0.2","keywords":["three","three.js","geometry"],"author":{"name":"Андрей"},"license":"MIT","_id":"@akb2/three-triangle-geometry@1.0.2","maintainers":[{"name":"akb2","email":"akb2-online@ya.ru"}],"homepage":"https://github.com/akb2/three-triangle-geometry#readme","bugs":{"url":"https://github.com/akb2/three-triangle-geometry/issues"},"dist":{"shasum":"40225b41273c6e7e2ce9a6632ae34fa04de61e29","tarball":"https://registry.npmjs.org/@akb2/three-triangle-geometry/-/three-triangle-geometry-1.0.2.tgz","fileCount":6,"integrity":"sha512-XFh5cX4unkRL4CEhcm/56u2jGUZL9KUN+j3nfDuH/Z1r95CK6typ3BBWjOGVYzUvFESvfolqPRkvortSOfIt/Q==","signatures":[{"sig":"MEQCIGBhSnk29GHNNAdmHMr/9NmuRnSOuC+na4cdbB1fU74QAiAEefeC3gMfUbXAToz5IrGA8RJFjqu7hcY+SbglgAovBw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":12895},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"0921f0cba9036fd8af004a002f2d7571556ca5f0","scripts":{"build":"tsup src/index.ts --dts --format esm,cjs --clean --out-dir dist","prepublishOnly":"npm run build"},"_npmUser":{"name":"akb2","email":"akb2-online@ya.ru"},"repository":{"url":"git+https://github.com/akb2/three-triangle-geometry.git","type":"git"},"_npmVersion":"10.9.0","description":"Triangle geomentry for three.js","directories":{},"sideEffects":false,"_nodeVersion":"22.12.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","three":"^0.159.0","@akb2/math":"^1.0","typescript":"^5.4.0","@types/three":"^0.159.0","@akb2/types-tools":"^1.0"},"peerDependencies":{"three":">=0.159 <1","@akb2/math":">=1 <2","@types/three":">=0.159 <1","@akb2/types-tools":">=1 <2"},"_npmOperationalInternal":{"tmp":"tmp/three-triangle-geometry_1.0.2_1760377719241_0.22087176715352563","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@akb2/three-triangle-geometry","version":"1.1.0","keywords":["three","three.js","geometry"],"author":{"name":"Андрей"},"license":"MIT","_id":"@akb2/three-triangle-geometry@1.1.0","maintainers":[{"name":"akb2","email":"akb2-online@ya.ru"}],"homepage":"https://github.com/akb2/three-triangle-geometry#readme","bugs":{"url":"https://github.com/akb2/three-triangle-geometry/issues"},"dist":{"shasum":"09a8f7abb41e319f7ca12975246fe9be2bed1171","tarball":"https://registry.npmjs.org/@akb2/three-triangle-geometry/-/three-triangle-geometry-1.1.0.tgz","fileCount":6,"integrity":"sha512-VaNlGBV3W/rtDBieL5HxC0/toKmWL/iFmJth6Y+lRAOHF29Z2/iN1nDxEweRm3TbwSCidmuaGnCP7SL+05cJkQ==","signatures":[{"sig":"MEUCIFF9NlhKDMOiF43wmrwfQ7J7A401xsjf5U18RyDNSiZyAiEAwt0jmKzVN30vvGM4fHFcZYW3pV+ptFhfuPdnAA3eTkQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":12787},"jest":{"preset":"ts-jest","transform":{"node_modules/variables/.+\\.(j|t)sx?$":"ts-jest"},"testEnvironment":"node","transformIgnorePatterns":["node_modules/(?!variables/.*)"]},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"68157a42a7964d3943b881b44850bdcf905a519d","scripts":{"test":"jest","build":"tsup src/index.ts --dts --format esm,cjs --clean --out-dir dist","prepublishOnly":"npm run build"},"_npmUser":{"name":"akb2","email":"akb2-online@ya.ru"},"repository":{"url":"git+https://github.com/akb2/three-triangle-geometry.git","type":"git"},"_npmVersion":"10.9.0","description":"Triangle geomentry for three.js","directories":{},"sideEffects":false,"_nodeVersion":"22.12.0","_hasShrinkwrap":false,"devDependencies":{"jest":"^30.2.0","tsup":"^8.0.0","three":"^0.159.0","ts-jest":"^29.4.5","@akb2/math":"^1.0","typescript":"^5.4.0","@types/jest":"^30.0.0","@types/three":"^0.159.0","@akb2/types-tools":"^1.0"},"peerDependencies":{"three":">=0.159 <1","@akb2/math":">=1 <2","@types/three":">=0.159 <1","@akb2/types-tools":">=1 <2"},"_npmOperationalInternal":{"tmp":"tmp/three-triangle-geometry_1.1.0_1760455894156_0.04678897519467262","host":"s3://npm-registry-packages-npm-production"}},"1.2.1":{"name":"@akb2/three-triangle-geometry","version":"1.2.1","description":"Triangle geometry for three.js","type":"module","main":"./dist/index.cjs","module":"./dist/index.js","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"sideEffects":false,"keywords":["three","three.js","geometry"],"author":{"name":"Андрей"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/akb2/three-triangle-geometry.git"},"bugs":{"url":"https://github.com/akb2/three-triangle-geometry/issues"},"peerDependencies":{"@akb2/math":">=1 <2","@akb2/types-tools":">=1 <2","@types/three":">=0.159 <1","three":">=0.159 <1"},"devDependencies":{"@akb2/math":"^1.0","@akb2/types-tools":"^1.0","@storybook/preact-vite":"^9.1.10","@types/jest":"^30.0.0","@types/three":"^0.159.0","jest":"^30.2.0","preact":"^10.27.2","storybook":"^9.1.10","three":"^0.159.0","ts-jest":"^29.4.5","tsup":"^8.0.0","typescript":"^5.9.3","vite":"^7.1.10"},"scripts":{"build":"tsup src/index.ts --dts --format esm,cjs --clean --out-dir dist --minify","prepublishOnly":"npm run build","test":"jest","storybook":"storybook dev -p 6006"},"jest":{"preset":"ts-jest","testEnvironment":"node","transform":{"node_modules/variables/.+\\.(j|t)sx?$":"ts-jest"},"transformIgnorePatterns":["node_modules/(?!variables/.*)"]},"_id":"@akb2/three-triangle-geometry@1.2.1","gitHead":"ed7f7b8f27458989190b4d2376b39eeeac442c71","homepage":"https://github.com/akb2/three-triangle-geometry#readme","_nodeVersion":"22.12.0","_npmVersion":"10.9.0","dist":{"integrity":"sha512-7+nv6/rRb0JOTgtJ/9/Kn81Jl3UVprA/4P0IlMvaAn9Uf03LR3wIJXSq9b32Q3DFD9bqPjiol5/o7YpQriohqw==","shasum":"b4293a0c9a879d1413c60cb1dd35800c92c8b708","tarball":"https://registry.npmjs.org/@akb2/three-triangle-geometry/-/three-triangle-geometry-1.2.1.tgz","fileCount":6,"unpackedSize":9654,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIBqxh95sWmKPs7vPzxDiKWHZamupo6nIMwiQgtnfaC8uAiEA1M/KpdvsJ3PzfFdDZA67UCQqNALRyY3MifgJa2g9AiY="}]},"_npmUser":{"name":"akb2","email":"akb2-online@ya.ru"},"directories":{},"maintainers":[{"name":"akb2","email":"akb2-online@ya.ru"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/three-triangle-geometry_1.2.1_1760482974085_0.008986506456708288"},"_hasShrinkwrap":false}},"time":{"created":"2025-10-04T18:51:19.362Z","modified":"2025-10-14T23:02:54.510Z","1.0.0":"2025-10-04T18:51:19.703Z","1.0.1":"2025-10-13T17:39:10.440Z","1.0.2":"2025-10-13T17:48:39.426Z","1.1.0":"2025-10-14T15:31:34.400Z","1.2.1":"2025-10-14T23:02:54.301Z"},"bugs":{"url":"https://github.com/akb2/three-triangle-geometry/issues"},"author":{"name":"Андрей"},"license":"MIT","homepage":"https://github.com/akb2/three-triangle-geometry#readme","keywords":["three","three.js","geometry"],"repository":{"type":"git","url":"git+https://github.com/akb2/three-triangle-geometry.git"},"description":"Triangle geometry for three.js","maintainers":[{"name":"akb2","email":"akb2-online@ya.ru"}],"readme":"# @akb2/three-triangle-geometry\r\n\r\nA simple **custom geometry** for [three.js](https://threejs.org) — generates a triangle based on the lengths of its sides. Supports one or two segments, and includes UV, normal, and position attributes.\r\n\r\n## Installation\r\n\r\n```bash\r\nnpm install @akb2/three-triangle-geometry\r\n```\r\n\r\n## Usage\r\n\r\n```ts\r\nimport { TriangleGeometry } from \"@akb2/three-triangle-geometry\";\r\nimport { Mesh, MeshStandardMaterial, Scene } from \"three\";\r\n\r\nconst scene = new Scene();\r\nconst geometry = new TriangleGeometry(5, 6, 4);\r\nconst material = new MeshStandardMaterial({ color: 0xffaa00, wireframe: true });\r\nconst mesh = new Mesh(geometry, material);\r\n\r\nscene.add(mesh);\r\n```\r\n\r\n## Constructor\r\n\r\n```ts\r\nnew TriangleGeometry(sideA: number, sideB: number, sideC?: number, segments?: number);\r\n```\r\n\r\n| Parameter   | Type                  | Description                                                                           |\r\n|-------------|-----------------------|---------------------------------------------------------------------------------------|\r\n| `sideA`     | `number`              | Left cathetus.                                                                        |\r\n| `sideB`     | `number`              | Base of the triangle.                                                                 |\r\n| `sideC`     | `number` (optional)   | Right cathetus. If not provided, it will be equal to sideA.                           |\r\n| `segments`  | `1` or `2` (optional) | Number of horizontal segments. Default is `1`.                                        |\r\n\r\n## Example\r\n\r\n```ts\r\n// One segment\r\nconst tri1 = new TriangleGeometry(5, 6);\r\n\r\n// Two segments\r\nconst tri2 = new TriangleGeometry(5, 6, undefined, 2);\r\n```\r\n\r\n## Static methods\r\n\r\n```ts\r\nTriangleGeometry.fromJSON(data: Record<string, number>): TriangleGeometry;\r\n```\r\n\r\n### Creates geometry from JSON data\r\n\r\n```ts\r\nconst data = { sideA: 5, sideB: 6, sideC: 4 };\r\nconst triangle = TriangleGeometry.fromJSON(data);\r\n```\r\n\r\n## Interface\r\n\r\n```ts\r\nexport interface TriangleGeometryParameters {\r\n  sideA: number;\r\n  sideB: number;\r\n  sideC: number;\r\n  segments: number;\r\n}\r\n```\r\n\r\n## Internal logic\r\n\r\n* Sets missing sideC if not provided as a sideA value:\r\n* Calculates vertex coordinates (a, b, c) using trigonometric formulas.\r\n* Automatically builds:\r\n  * positions\r\n  * normals\r\n  * UVs (uv and uv2)\r\n* Stores parameters in:\r\n\r\n  ```ts\r\n  geometry.parameters = { sideA, sideB, sideC, segments };\r\n  ```\r\n\r\n## Dependencies\r\n\r\n* [Three.js](https://www.npmjs.com/package/three)\r\n* [Three.js Types (@types/three)](https://www.npmjs.com/package/@types/three)\r\n* [AKB2 Math (@akb2/math)](https://www.npmjs.com/package/@akb2/math)\r\n* [AKB2 Types Tools (@akb2/types-tools)](https://www.npmjs.com/package/@akb2/types-tools)\r\n\r\n## License\r\n\r\nMIT © [Andrei Kobelev (@akb2)](https://github.com/akb2)\r\n\r\n[Github repository](https://github.com/akb2/three-triangle-geometry)\r\n","readmeFilename":"README.md"}