瀏覽代碼

Merge remote-tracking branch 'origin' into chore/playground-auto-install

alvarosabu 2 年之前
父節點
當前提交
5b140c4fb4
共有 5 個文件被更改,包括 25 次插入3 次删除
  1. 9 0
      CHANGELOG.md
  2. 1 1
      package.json
  3. 1 0
      playground/src/components/TheExperience.vue
  4. 8 0
      src/composables/useCamera/index.ts
  5. 6 2
      src/core/nodeOps.ts

+ 9 - 0
CHANGELOG.md

@@ -1,5 +1,14 @@
 
 
+## [2.0.0-rc.3](https://github.com/Tresjs/tres/compare/2.0.0-rc.2...2.0.0-rc.3) (2023-05-09)
+
+
+### Bug Fixes
+
+* akwardly added fog and fixed also typing ([e256768](https://github.com/Tresjs/tres/commit/e2567681c678089463437723d6a505ac630f2849))
+* colorspace types ([27e10e9](https://github.com/Tresjs/tres/commit/27e10e9c15658f4c1f338562b5ad078f4107e5dd))
+* disabling pushing more than one camera on nodeOpts ([57a07bf](https://github.com/Tresjs/tres/commit/57a07bf75a1df54fe5cb2f06cad8159234c384aa))
+
 ## [2.0.0-rc.2](https://github.com/Tresjs/tres/compare/2.0.0-rc.1...2.0.0-rc.2) (2023-05-03)
 
 

+ 1 - 1
package.json

@@ -1,7 +1,7 @@
 {
   "name": "@tresjs/core",
   "description": "Declarative ThreeJS using Vue Components",
-  "version": "2.0.0-rc.2",
+  "version": "2.0.0-rc.3",
   "type": "module",
   "packageManager": "pnpm@8.3.1",
   "author": "Alvaro Saburido <hola@alvarosaburido.dev> (https://github.com/alvarosabu/)",

+ 1 - 0
playground/src/components/TheExperience.vue

@@ -47,5 +47,6 @@ watchEffect(() => {
     <TheSphere />
     <TresAxesHelper :args="[1]" />
     <TresDirectionalLight :position="[0, 2, 4]" :intensity="2" cast-shadow />
+    <TresOrthographicCamera />
   </TresCanvas>
 </template>

+ 8 - 0
src/composables/useCamera/index.ts

@@ -85,6 +85,7 @@ interface UseCameraReturn {
   updateCamera: () => void
   pushCamera: (camera: Camera) => void
   clearCameras: () => void
+  setFirstCamera: (camera: Camera) => void
 }
 
 const VERTICAL_FIELD_OF_VIEW = 45
@@ -175,6 +176,12 @@ export function useCamera(): UseCameraReturn {
     setState('camera', camera)
   }
 
+  function setFirstCamera(camera: Camera): void {
+    if (state.cameras?.length === 0) {
+      pushCamera(camera)
+    }
+  }
+
   /**
    * Clear cameras array
    *
@@ -195,5 +202,6 @@ export function useCamera(): UseCameraReturn {
     updateCamera,
     pushCamera,
     clearCameras,
+    setFirstCamera,
   }
 }

+ 6 - 2
src/core/nodeOps.ts

@@ -22,6 +22,7 @@ const OBJECT_3D_USER_DATA_KEYS = {
 
 const { logError } = useLogger()
 
+let firstCamera = true
 export const nodeOps: RendererOptions<TresObject, TresObject> = {
   createElement(tag, _isSVG, _anchor, props) {
     if (!props) props = {}
@@ -54,8 +55,11 @@ export const nodeOps: RendererOptions<TresObject, TresObject> = {
       if (!props?.lookAt) {
         instance.lookAt(0, 0, 0)
       }
-      const { pushCamera } = useCamera()
-      pushCamera(instance)
+      if (firstCamera) {
+        const { setFirstCamera } = useCamera()
+        setFirstCamera(instance)
+        firstCamera = false
+      }
     }
 
     if (props?.attach === undefined) {