├── .claude └── fragments │ ├── README.md │ └── documentation │ ├── jsdoc-guidelines.md │ ├── pull-request-guidelines.md │ └── text-styling-guidelines.md ├── .github ├── dependabot.yml ├── release.yml └── workflows │ ├── ci.yml │ ├── coverage-report.yml │ ├── gh-pages.yml │ └── npm_publish.yml ├── .gitignore ├── .husky ├── .gitignore ├── pre-commit └── pre-push ├── CLAUDE.md ├── LICENSE ├── README.md ├── __test__ ├── ButtonInteractionHandler.eventObject.spec.ts ├── ButtonInteractionHandler.spec.ts ├── CheckBoxInteractionHandler.spec.ts ├── CheckBoxMesh.spec.ts ├── CheckBoxSprite.spec.ts ├── ClickableGroup.spec.ts ├── ClickableMesh.spec.ts ├── ClickableSprite.spec.ts ├── Materials.ts ├── MouseControl.ts ├── MouseEventManager.constructor.spec.ts ├── MouseEventManager.dispose.spec.ts ├── MouseEventManager.edge-cases.spec.ts ├── MouseEventManager.multi-touch.spec.ts ├── MouseEventManager.overlapping.spec.ts ├── MouseEventManager.raycasting.spec.ts ├── MouseEventManager.spec.ts ├── MouseEventManager.throttling.spec.ts ├── MouseEventManager.warnModel.spec.ts ├── MouseEventManagerButton.ts ├── MouseEventManagerScene.ts ├── PointerEventTestUtil.ts ├── RadioButtonInteractionHandler.spec.ts ├── RadioButtonManager.spec.ts ├── RadioMesh.spec.ts ├── RadioObject.ts ├── RadioSprite.spec.ts ├── StateMaterialSet.spec.ts ├── ThreeMouseEvent.spec.ts ├── ViewPortUtil.spec.ts ├── convertToInteractiveView.spec.ts └── resizeCanvasStyle.spec.ts ├── biome.json ├── demoSrc ├── btn045_01.png ├── btn045_02.png ├── btn045_03.png ├── demo_simple.js ├── demo_simple_resize.js └── demo_viewport.js ├── package.json ├── src ├── MouseEventManager.ts ├── RadioButtonManager.ts ├── StateMaterial.ts ├── ThreeMouseEvent.ts ├── ThreeMouseEventUtil.ts ├── ViewPortUtil.ts ├── convertToInteractiveView.ts ├── index.ts ├── interactionHandler │ ├── ButtonInteractionHandler.ts │ ├── CheckBoxInteractionHandler.ts │ ├── RadioButtonInteractionHandler.ts │ └── index.ts ├── resizeCanvasStyle.ts └── view │ ├── ClickableGroup.ts │ ├── InteractionHandlerConstructor.ts │ ├── InteractiveMesh.ts │ ├── InteractiveSprite.ts │ └── index.ts ├── tsconfig.json └── vitest.config.ts /.claude/fragments/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MasatoMakino/threejs-interactive-object/HEAD/.claude/fragments/README.md -------------------------------------------------------------------------------- /.claude/fragments/documentation/jsdoc-guidelines.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MasatoMakino/threejs-interactive-object/HEAD/.claude/fragments/documentation/jsdoc-guidelines.md -------------------------------------------------------------------------------- /.claude/fragments/documentation/pull-request-guidelines.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MasatoMakino/threejs-interactive-object/HEAD/.claude/fragments/documentation/pull-request-guidelines.md -------------------------------------------------------------------------------- /.claude/fragments/documentation/text-styling-guidelines.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MasatoMakino/threejs-interactive-object/HEAD/.claude/fragments/documentation/text-styling-guidelines.md -------------------------------------------------------------------------------- /.github/dependabot.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MasatoMakino/threejs-interactive-object/HEAD/.github/dependabot.yml -------------------------------------------------------------------------------- /.github/release.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MasatoMakino/threejs-interactive-object/HEAD/.github/release.yml -------------------------------------------------------------------------------- /.github/workflows/ci.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MasatoMakino/threejs-interactive-object/HEAD/.github/workflows/ci.yml -------------------------------------------------------------------------------- /.github/workflows/coverage-report.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MasatoMakino/threejs-interactive-object/HEAD/.github/workflows/coverage-report.yml -------------------------------------------------------------------------------- /.github/workflows/gh-pages.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MasatoMakino/threejs-interactive-object/HEAD/.github/workflows/gh-pages.yml -------------------------------------------------------------------------------- /.github/workflows/npm_publish.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MasatoMakino/threejs-interactive-object/HEAD/.github/workflows/npm_publish.yml -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MasatoMakino/threejs-interactive-object/HEAD/.gitignore -------------------------------------------------------------------------------- /.husky/.gitignore: -------------------------------------------------------------------------------- 1 | _ 2 | -------------------------------------------------------------------------------- /.husky/pre-commit: -------------------------------------------------------------------------------- 1 | npx lint-staged 2 | -------------------------------------------------------------------------------- /.husky/pre-push: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env sh 2 | set -e 3 | 4 | npx biome ci . 5 | npm test -------------------------------------------------------------------------------- /CLAUDE.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MasatoMakino/threejs-interactive-object/HEAD/CLAUDE.md -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MasatoMakino/threejs-interactive-object/HEAD/LICENSE -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MasatoMakino/threejs-interactive-object/HEAD/README.md -------------------------------------------------------------------------------- /__test__/ButtonInteractionHandler.eventObject.spec.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MasatoMakino/threejs-interactive-object/HEAD/__test__/ButtonInteractionHandler.eventObject.spec.ts -------------------------------------------------------------------------------- /__test__/ButtonInteractionHandler.spec.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MasatoMakino/threejs-interactive-object/HEAD/__test__/ButtonInteractionHandler.spec.ts -------------------------------------------------------------------------------- /__test__/CheckBoxInteractionHandler.spec.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MasatoMakino/threejs-interactive-object/HEAD/__test__/CheckBoxInteractionHandler.spec.ts -------------------------------------------------------------------------------- /__test__/CheckBoxMesh.spec.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MasatoMakino/threejs-interactive-object/HEAD/__test__/CheckBoxMesh.spec.ts -------------------------------------------------------------------------------- /__test__/CheckBoxSprite.spec.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MasatoMakino/threejs-interactive-object/HEAD/__test__/CheckBoxSprite.spec.ts -------------------------------------------------------------------------------- /__test__/ClickableGroup.spec.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MasatoMakino/threejs-interactive-object/HEAD/__test__/ClickableGroup.spec.ts -------------------------------------------------------------------------------- /__test__/ClickableMesh.spec.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MasatoMakino/threejs-interactive-object/HEAD/__test__/ClickableMesh.spec.ts -------------------------------------------------------------------------------- /__test__/ClickableSprite.spec.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MasatoMakino/threejs-interactive-object/HEAD/__test__/ClickableSprite.spec.ts -------------------------------------------------------------------------------- /__test__/Materials.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MasatoMakino/threejs-interactive-object/HEAD/__test__/Materials.ts -------------------------------------------------------------------------------- /__test__/MouseControl.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MasatoMakino/threejs-interactive-object/HEAD/__test__/MouseControl.ts -------------------------------------------------------------------------------- /__test__/MouseEventManager.constructor.spec.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MasatoMakino/threejs-interactive-object/HEAD/__test__/MouseEventManager.constructor.spec.ts -------------------------------------------------------------------------------- /__test__/MouseEventManager.dispose.spec.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MasatoMakino/threejs-interactive-object/HEAD/__test__/MouseEventManager.dispose.spec.ts -------------------------------------------------------------------------------- /__test__/MouseEventManager.edge-cases.spec.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MasatoMakino/threejs-interactive-object/HEAD/__test__/MouseEventManager.edge-cases.spec.ts -------------------------------------------------------------------------------- /__test__/MouseEventManager.multi-touch.spec.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MasatoMakino/threejs-interactive-object/HEAD/__test__/MouseEventManager.multi-touch.spec.ts -------------------------------------------------------------------------------- /__test__/MouseEventManager.overlapping.spec.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MasatoMakino/threejs-interactive-object/HEAD/__test__/MouseEventManager.overlapping.spec.ts -------------------------------------------------------------------------------- /__test__/MouseEventManager.raycasting.spec.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MasatoMakino/threejs-interactive-object/HEAD/__test__/MouseEventManager.raycasting.spec.ts -------------------------------------------------------------------------------- /__test__/MouseEventManager.spec.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MasatoMakino/threejs-interactive-object/HEAD/__test__/MouseEventManager.spec.ts -------------------------------------------------------------------------------- /__test__/MouseEventManager.throttling.spec.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MasatoMakino/threejs-interactive-object/HEAD/__test__/MouseEventManager.throttling.spec.ts -------------------------------------------------------------------------------- /__test__/MouseEventManager.warnModel.spec.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MasatoMakino/threejs-interactive-object/HEAD/__test__/MouseEventManager.warnModel.spec.ts -------------------------------------------------------------------------------- /__test__/MouseEventManagerButton.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MasatoMakino/threejs-interactive-object/HEAD/__test__/MouseEventManagerButton.ts -------------------------------------------------------------------------------- /__test__/MouseEventManagerScene.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MasatoMakino/threejs-interactive-object/HEAD/__test__/MouseEventManagerScene.ts -------------------------------------------------------------------------------- /__test__/PointerEventTestUtil.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MasatoMakino/threejs-interactive-object/HEAD/__test__/PointerEventTestUtil.ts -------------------------------------------------------------------------------- /__test__/RadioButtonInteractionHandler.spec.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MasatoMakino/threejs-interactive-object/HEAD/__test__/RadioButtonInteractionHandler.spec.ts -------------------------------------------------------------------------------- /__test__/RadioButtonManager.spec.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MasatoMakino/threejs-interactive-object/HEAD/__test__/RadioButtonManager.spec.ts -------------------------------------------------------------------------------- /__test__/RadioMesh.spec.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MasatoMakino/threejs-interactive-object/HEAD/__test__/RadioMesh.spec.ts -------------------------------------------------------------------------------- /__test__/RadioObject.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MasatoMakino/threejs-interactive-object/HEAD/__test__/RadioObject.ts -------------------------------------------------------------------------------- /__test__/RadioSprite.spec.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MasatoMakino/threejs-interactive-object/HEAD/__test__/RadioSprite.spec.ts -------------------------------------------------------------------------------- /__test__/StateMaterialSet.spec.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MasatoMakino/threejs-interactive-object/HEAD/__test__/StateMaterialSet.spec.ts -------------------------------------------------------------------------------- /__test__/ThreeMouseEvent.spec.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MasatoMakino/threejs-interactive-object/HEAD/__test__/ThreeMouseEvent.spec.ts -------------------------------------------------------------------------------- /__test__/ViewPortUtil.spec.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MasatoMakino/threejs-interactive-object/HEAD/__test__/ViewPortUtil.spec.ts -------------------------------------------------------------------------------- /__test__/convertToInteractiveView.spec.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MasatoMakino/threejs-interactive-object/HEAD/__test__/convertToInteractiveView.spec.ts -------------------------------------------------------------------------------- /__test__/resizeCanvasStyle.spec.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MasatoMakino/threejs-interactive-object/HEAD/__test__/resizeCanvasStyle.spec.ts -------------------------------------------------------------------------------- /biome.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MasatoMakino/threejs-interactive-object/HEAD/biome.json -------------------------------------------------------------------------------- /demoSrc/btn045_01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MasatoMakino/threejs-interactive-object/HEAD/demoSrc/btn045_01.png -------------------------------------------------------------------------------- /demoSrc/btn045_02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MasatoMakino/threejs-interactive-object/HEAD/demoSrc/btn045_02.png -------------------------------------------------------------------------------- /demoSrc/btn045_03.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MasatoMakino/threejs-interactive-object/HEAD/demoSrc/btn045_03.png -------------------------------------------------------------------------------- /demoSrc/demo_simple.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MasatoMakino/threejs-interactive-object/HEAD/demoSrc/demo_simple.js -------------------------------------------------------------------------------- /demoSrc/demo_simple_resize.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MasatoMakino/threejs-interactive-object/HEAD/demoSrc/demo_simple_resize.js -------------------------------------------------------------------------------- /demoSrc/demo_viewport.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MasatoMakino/threejs-interactive-object/HEAD/demoSrc/demo_viewport.js -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MasatoMakino/threejs-interactive-object/HEAD/package.json -------------------------------------------------------------------------------- /src/MouseEventManager.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MasatoMakino/threejs-interactive-object/HEAD/src/MouseEventManager.ts -------------------------------------------------------------------------------- /src/RadioButtonManager.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MasatoMakino/threejs-interactive-object/HEAD/src/RadioButtonManager.ts -------------------------------------------------------------------------------- /src/StateMaterial.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MasatoMakino/threejs-interactive-object/HEAD/src/StateMaterial.ts -------------------------------------------------------------------------------- /src/ThreeMouseEvent.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MasatoMakino/threejs-interactive-object/HEAD/src/ThreeMouseEvent.ts -------------------------------------------------------------------------------- /src/ThreeMouseEventUtil.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MasatoMakino/threejs-interactive-object/HEAD/src/ThreeMouseEventUtil.ts -------------------------------------------------------------------------------- /src/ViewPortUtil.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MasatoMakino/threejs-interactive-object/HEAD/src/ViewPortUtil.ts -------------------------------------------------------------------------------- /src/convertToInteractiveView.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MasatoMakino/threejs-interactive-object/HEAD/src/convertToInteractiveView.ts -------------------------------------------------------------------------------- /src/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MasatoMakino/threejs-interactive-object/HEAD/src/index.ts -------------------------------------------------------------------------------- /src/interactionHandler/ButtonInteractionHandler.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MasatoMakino/threejs-interactive-object/HEAD/src/interactionHandler/ButtonInteractionHandler.ts -------------------------------------------------------------------------------- /src/interactionHandler/CheckBoxInteractionHandler.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MasatoMakino/threejs-interactive-object/HEAD/src/interactionHandler/CheckBoxInteractionHandler.ts -------------------------------------------------------------------------------- /src/interactionHandler/RadioButtonInteractionHandler.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MasatoMakino/threejs-interactive-object/HEAD/src/interactionHandler/RadioButtonInteractionHandler.ts -------------------------------------------------------------------------------- /src/interactionHandler/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MasatoMakino/threejs-interactive-object/HEAD/src/interactionHandler/index.ts -------------------------------------------------------------------------------- /src/resizeCanvasStyle.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MasatoMakino/threejs-interactive-object/HEAD/src/resizeCanvasStyle.ts -------------------------------------------------------------------------------- /src/view/ClickableGroup.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MasatoMakino/threejs-interactive-object/HEAD/src/view/ClickableGroup.ts -------------------------------------------------------------------------------- /src/view/InteractionHandlerConstructor.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MasatoMakino/threejs-interactive-object/HEAD/src/view/InteractionHandlerConstructor.ts -------------------------------------------------------------------------------- /src/view/InteractiveMesh.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MasatoMakino/threejs-interactive-object/HEAD/src/view/InteractiveMesh.ts -------------------------------------------------------------------------------- /src/view/InteractiveSprite.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MasatoMakino/threejs-interactive-object/HEAD/src/view/InteractiveSprite.ts -------------------------------------------------------------------------------- /src/view/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MasatoMakino/threejs-interactive-object/HEAD/src/view/index.ts -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MasatoMakino/threejs-interactive-object/HEAD/tsconfig.json -------------------------------------------------------------------------------- /vitest.config.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MasatoMakino/threejs-interactive-object/HEAD/vitest.config.ts --------------------------------------------------------------------------------