|
@@ -34,48 +34,3 @@ extend({ OrbitControls })
|
|
|
:enabling-dampling="enableDamping"
|
|
|
/>
|
|
|
</template>
|
|
|
-
|
|
|
-<!-- <script setup lang="ts">
|
|
|
-import { useRenderLoop } from '@tresjs/core'
|
|
|
-import { Camera, Vector3, WebGLRenderer } from 'three'
|
|
|
-import { OrbitControls as OrbitControlsImp } from 'three-stdlib'
|
|
|
-import { inject, type Ref, unref, watch } from 'vue'
|
|
|
-
|
|
|
-const props = withDefaults(
|
|
|
- defineProps<{
|
|
|
- makeDefault?: boolean
|
|
|
- camera?: Camera
|
|
|
- domElement?: HTMLElement
|
|
|
- target?: Ref<Vector3>
|
|
|
- }>(),
|
|
|
- {
|
|
|
- makeDefault: false,
|
|
|
- },
|
|
|
-)
|
|
|
-let controls: OrbitControlsImp
|
|
|
-
|
|
|
-const camera = inject<Ref<Camera>>('camera')
|
|
|
-const renderer = inject<Ref<WebGLRenderer>>('renderer')
|
|
|
-watch(
|
|
|
- [camera, renderer],
|
|
|
- () => {
|
|
|
- if (camera?.value && renderer?.value) {
|
|
|
- if (controls) controls.reset()
|
|
|
- controls = new OrbitControlsImp(camera.value, unref(renderer).domElement)
|
|
|
- controls.enableDamping = true
|
|
|
-
|
|
|
- const { onLoop } = useRenderLoop()
|
|
|
-
|
|
|
- onLoop(() => {
|
|
|
- if (controls.enabled) {
|
|
|
- controls.update()
|
|
|
- }
|
|
|
- })
|
|
|
- }
|
|
|
- },
|
|
|
- {
|
|
|
- deep: true,
|
|
|
- },
|
|
|
-)
|
|
|
-</script>
|
|
|
- -->
|