`](https://drei.docs.pmnd.rs/staging/bounds#bounds) would be welcome.\n\n### Alternative\n\n_No response_\n\n### Additional context\n\n_No response_\n\n### Validations\n\n- [X] I agree to follow this project's [Code of Conduct](https://github.com/Tresjs/cientos/blob/main/CODE_OF_CONDUCT.md)\n- [X] Read the [Contributing Guidelines](https://github.com/Tresjs/cientos/blob/main/CONTRIBUTING.md).\n- [X] Read the [docs](https://cientos.tresjs.org/guide).\n- [X] Check that there isn't [already an issue](https://github.com/tresjs/cientos/issues) that reports the same bug to avoid creating a duplicate.",[2904,2905],{"name":2868,"color":2869},{"name":2906,"color":2907},"p2-nice-to-have","D4C5F9",408,"\u003CBounds />","2024-12-17T18:07:35Z","https://github.com/Tresjs/cientos/issues/408",0.7188747,{"description":2914,"labels":2915,"number":2920,"owner":2874,"repository":2875,"state":2876,"title":2921,"updated_at":2922,"url":2923,"score":2924},"### Description\n\nAs a maintainer of TresJS, I would like to clean up the core logic by refactoring it to use VueUse `createInjectionState` https://vueuse.org/shared/createInjectionState/#createinjectionstate instead\n\n### Suggested solution\n\nReplace manual context provider with something like:\n\n```ts\nconst [useTresContextProvider, useTresContext] = createInjectionState((props, emit) => {\n // Create refs with initial null values\n const scene = shallowRef\u003CTresScene | null>(null)\n const renderer = shallowRef\u003CWebGLRenderer | null>(null)\n const camera = shallowRef\u003CPerspectiveCamera | null>(null)\n const loop = createRenderLoop()\n\n // Render mode logic etc\n})\n\nexport { useTresContext, useTresContextProvider }\n```\n\n### Alternative\n\n_No response_\n\n### Additional context\n\n_No response_\n\n### Validations\n\n- [x] I agree to follow this project's [Code of Conduct](https://github.com/Tresjs/tres/blob/main/CODE_OF_CONDUCT.md)\n- [x] Read the [Contributing Guidelines](https://github.com/Tresjs/tres/blob/main/CONTRIBUTING.md).\n- [x] Read the [docs](https://tresjs.org/guide).\n- [x] Check that there isn't [already an issue](https://github.com/tresjs/tres/issues) that reports the same bug to avoid creating a duplicate.",[2916,2917],{"name":2871,"color":2872},{"name":2918,"color":2919},"v5","EFC959",961,"Refactor `useTresContextProvider` into `createInjectionState`","2025-03-18T15:30:44Z","https://github.com/Tresjs/tres/issues/961",0.71915513,{"description":2926,"labels":2927,"number":2928,"owner":2874,"repository":2875,"state":2929,"title":2930,"updated_at":2931,"url":2932,"score":2933},"### Description\r\n\r\nBased on https://github.com/orgs/Tresjs/discussions/321\r\n\r\nAs a plugin author, I will like to have a reactive state with the following characteristics:\r\n\r\n- Performant, (use of `shallowRef` where needed)\r\n- read-only\r\n- Strictly Typed\r\n- Reduce side effects on watchers\r\n- Needs to work on cientos and the rest of ecosystem via `provide/inject` \r\n\r\n### Suggested solution\r\n\r\n| Name | Type | Requirement | Details |\r\n| ---------------------------------- | -------------------- | ----------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\r\n| scene | readonly, shallowRef | essential | |\r\n| cameras | readonly, shallowRef | essential | userData.TRES_IS_ACTIVE_CAMERA = true\u003Cbr>const cameras = shallowRef([]) return { cameras: readonly(cameras)} |\r\n| camera | computed, readonly | essential | |\r\n| pushCamera(newCamera: Camera, setActive: boolean) | function | essential | cameras should be watched and removed from the cameras array if they got removed from the scene |\r\n| removeCamera(camera: Camera) | function | essential ||\r\n| setCamera(cameraId string) | function | essential ||\r\n| renderer | readonly, shallowRef | essential | setRenderer(renderer: Renderer)\u003Cbr>maybe only callable once? |\r\n| setRenderer(renderer: Renderer) | function | essential ||\r\n| sizes (height, width, aspectRatio) | readonly | handy | sizes: {\u003Cbr> height: Ref\u003Cnumber>\u003Cbr> width: Ref\u003Cnumber>\u003Cbr> aspectRatio: Computed\u003Cnumber>\u003Cbr>} |\r\n\r\n### Alternative\r\n\r\n_No response_\r\n\r\n### Additional context\r\n\r\n_No response_\r\n\r\n### Validations\r\n\r\n- [X] I agree to follow this project's [Code of Conduct](https://github.com/Tresjs/tres/blob/main/CODE_OF_CONDUCT.md)\r\n- [X] Read the [Contributing Guidelines](https://github.com/Tresjs/tres/blob/main/CONTRIBUTING.md).\r\n- [X] Read the [docs](https://tresjs.org/guide).\r\n- [X] Check that there isn't [already an issue](https://github.com/tresjs/tres/issues) that reports the same bug to avoid creating a duplicate.",[],331,"closed","New and better state context provider","2023-07-29T08:58:56Z","https://github.com/Tresjs/tres/issues/331",0.6682233,{"description":2935,"labels":2936,"number":2937,"owner":2874,"repository":2875,"state":2929,"title":2938,"updated_at":2939,"url":2940,"score":2941},"### Description\r\n\r\nI'm using a v-for to instantiate some TresMeshes (as seen in some of the examples), but I need the v-for to dynamically update, and that doesn't seem to work. Any ideas on how to dynamically update a v-for with tres components?\r\n\r\n### Suggested solution\r\n\r\nNot sure if this is a module thing, but maybe add a v-for to the TresGroup component?\r\n\r\n### Alternative\r\n\r\n_No response_\r\n\r\n### Additional context\r\n\r\nTo clarify, the array being used by the v-for: when it changes, the meshes instantiated by the v-for do not update.\r\n\r\n### Validations\r\n\r\n- [X] I agree to follow this project's [Code of Conduct](https://github.com/Tresjs/tres/blob/main/CODE_OF_CONDUCT.md)\r\n- [X] Read the [Contributing Guidelines](https://github.com/Tresjs/tres/blob/main/CONTRIBUTING.md).\r\n- [X] Read the [docs](https://tresjs.org/guide).\r\n- [X] Check that there isn't [already an issue](https://github.com/tresjs/tres/issues) that reports the same bug to avoid creating a duplicate.",[],413,"v-for please","2023-10-06T22:05:25Z","https://github.com/Tresjs/tres/issues/413",0.69158316,{"description":2943,"labels":2944,"number":2951,"owner":2874,"repository":2885,"state":2929,"title":2952,"updated_at":2953,"url":2954,"score":2955},"\nCheck if we can avoid deep exposure `.value.value`",[2945,2948],{"name":2946,"color":2947},"bug","d73a4a",{"name":2949,"color":2950},"dx","1576ad",60,"Check defineExpose for refs","2023-05-31T09:01:21Z","https://github.com/Tresjs/cientos/issues/60",0.6948994,{"description":2957,"labels":2958,"number":2951,"owner":2874,"repository":2962,"state":2929,"title":2963,"updated_at":2964,"url":2965,"score":2955},"**Is your feature request related to a problem? Please describe.**\r\nThe bloom effect seems like it is not working when used with the default parameters.\r\n\r\n**Describe the solution you'd like**\r\nThe docs should convey how to use the bloom effect so it is visible in the scene.\r\n\r\n",[2959],{"name":2960,"color":2961},"enhancement","a2eeef","post-processing","Improve bloom docs","2024-10-12T11:30:19Z","https://github.com/Tresjs/post-processing/issues/60",{"description":2967,"labels":2968,"number":2969,"owner":2874,"repository":2875,"state":2929,"title":2970,"updated_at":2971,"url":2972,"score":2973},"### Describe the bug\n\nAs shown in the StackBlitz URL example, `onPointerLeave` was activating in version 3.9 and earlier. However, in version 4.0 and later, it is difficult to activate. How can I use `onPointerLeave`?\r\n\r\n```html\r\n \u003CTresMesh\r\n @pointer-enter=\"onPointerEnter\"\r\n @pointer-leave=\"onPointerLeave\"\r\n name=\"box\"\r\n >\r\n \u003CTresBoxGeometry />\r\n \u003CTresMeshBasicMaterial color=\"#006060\" />\r\n \u003C/TresMesh>\r\n```\r\nThis way of using it is not a good practice.\n\n### Reproduction\n\nhttps://stackblitz.com/edit/tresjs-minimal-reproduction-kentgx?file=src%2Fcomponents%2FTheExperience.vue,src%2FApp.vue\n\n### Steps to reproduce\n\n_No response_\n\n### System Info\n\n_No response_\n\n### Used Package Manager\n\nyarn\n\n### Code of Conduct\n\n- [X] I agree to follow this project's [Code of Conduct](https://github.com/Tresjs/tres/blob/main/CODE_OF_CONDUCT.md)\n- [X] Read the [Contributing Guidelines](https://github.com/Tresjs/tres/blob/main/CONTRIBUTING.md).\n- [X] Read the [docs](https://tresjs.org/guide).\n- [X] Check that there isn't [already an issue](https://github.com/tresjs/tres/issues) that reports the same bug to avoid creating a duplicate.\n- [X] The provided reproduction is a [minimal reproducible example](https://stackoverflow.com/help/minimal-reproducible-example) of the bug.",[],713,"v4.0.1 The `onPointerLeave` function is not activating.","2024-06-06T14:33:34Z","https://github.com/Tresjs/tres/issues/713",0.699573,["Reactive",2975],{},["Set"],["ShallowReactive",2978],{"$fTRc1wZytZ_XrK4EfJfei_Sz-An4H4Yy6syhVxH_PVJc":-1,"$fJ4OX1OpIBqdF_MWi_uTBDBTHnksY3qmVKDgoxXVC420":-1},"/Tresjs/cientos/216"]