diff --git a/src/components/load3d/Load3D.vue b/src/components/load3d/Load3D.vue index 00d5f8c5c..f269108fe 100644 --- a/src/components/load3d/Load3D.vue +++ b/src/components/load3d/Load3D.vue @@ -28,6 +28,7 @@ @background-image-change="listenBackgroundImageChange" @up-direction-change="listenUpDirectionChange" @edge-threshold-change="listenEdgeThresholdChange" + @recording-status-change="listenRecordingStatusChange" /> { edgeThreshold.value = value } +const listenRecordingStatusChange = (value: boolean) => { + isRecording.value = value + + if (!value && load3DSceneRef.value?.load3d) { + hasRecording.value = true + recordingDuration.value = load3DSceneRef.value.load3d.getRecordingDuration() + } +} + const listenBackgroundColorChange = (value: string) => { backgroundColor.value = value } diff --git a/src/components/load3d/Load3DScene.vue b/src/components/load3d/Load3DScene.vue index 556451c0d..47a729786 100644 --- a/src/components/load3d/Load3DScene.vue +++ b/src/components/load3d/Load3DScene.vue @@ -68,7 +68,9 @@ const eventConfig = { }, textureLoadingStart: () => loadingOverlayRef.value?.startLoading(t('load3d.applyingTexture')), - textureLoadingEnd: () => loadingOverlayRef.value?.endLoading() + textureLoadingEnd: () => loadingOverlayRef.value?.endLoading(), + recordingStatusChange: (value: boolean) => + emit('recordingStatusChange', value) } as const watchEffect(async () => { @@ -120,6 +122,7 @@ const emit = defineEmits<{ (e: 'backgroundImageChange', backgroundImage: string): void (e: 'upDirectionChange', upDirection: string): void (e: 'edgeThresholdChange', threshold: number): void + (e: 'recordingStatusChange', status: boolean): void }>() const handleEvents = (action: 'add' | 'remove') => { diff --git a/src/components/load3d/controls/RecordingControls.vue b/src/components/load3d/controls/RecordingControls.vue index a0b4501f3..3e044e413 100644 --- a/src/components/load3d/controls/RecordingControls.vue +++ b/src/components/load3d/controls/RecordingControls.vue @@ -15,7 +15,10 @@