From 7cd9a573c2a4dc2a0ccf4b725d17616564eea55c Mon Sep 17 00:00:00 2001 From: Miles Ryan <75916236+Quicksticks-oss@users.noreply.github.com> Date: Wed, 1 May 2024 18:10:54 -0400 Subject: [PATCH] Fixed deletion of objects still having transform engine point artifacts. (#293) ![image](https://github.com/storytold/GottaGoFast/assets/75916236/629abdf6-bae8-439a-8ac8-3657fb9f6fec) --- app/pages/PageEnigma/js/editor.ts | 3 ++- app/pages/PageEnigma/js/scene.ts | 4 ++-- app/pages/PageEnigma/js/timeline.ts | 6 ++++++ 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/app/pages/PageEnigma/js/editor.ts b/app/pages/PageEnigma/js/editor.ts index bf724f1bbe..6362606790 100644 --- a/app/pages/PageEnigma/js/editor.ts +++ b/app/pages/PageEnigma/js/editor.ts @@ -740,13 +740,14 @@ class Editor { deleteObject(uuid: string) { const obj = this.activeScene.get_object_by_uuid(uuid); + this.removeTransformControls(); if (obj?.name === this.camera_name) { return; } if (obj) { this.activeScene.scene.remove(obj); } - this.removeTransformControls(); + this.timeline.deleteObject(uuid); Queue.publish({ queueName: QueueNames.FROM_ENGINE, action: fromEngineActions.DELETE_OBJECT, diff --git a/app/pages/PageEnigma/js/scene.ts b/app/pages/PageEnigma/js/scene.ts index a1332d3151..2f02618090 100644 --- a/app/pages/PageEnigma/js/scene.ts +++ b/app/pages/PageEnigma/js/scene.ts @@ -127,14 +127,14 @@ class Scene { } deletePoint(keyframe_uuid: string) { - this.scene.traverse((object) => { + this.scene.children.forEach(object => { if (object.userData.media_id) { const obj_keyframe_uuid = object.userData.media_id.replace( "Point::", "", ); - console.log(obj_keyframe_uuid); if (obj_keyframe_uuid === keyframe_uuid) { + console.log("FOUNDDDD", obj_keyframe_uuid); console.log("Found!", object); this.scene.remove(object); return; diff --git a/app/pages/PageEnigma/js/timeline.ts b/app/pages/PageEnigma/js/timeline.ts index c3f7779a17..5b059e0211 100644 --- a/app/pages/PageEnigma/js/timeline.ts +++ b/app/pages/PageEnigma/js/timeline.ts @@ -370,6 +370,12 @@ export class TimeLine { if (object?.name === this.camera_name) { return; } + this.timeline_items.forEach(element => { + if(element.type == ClipType.TRANSFORM && element.object_uuid == object_uuid){ + console.log(element) + this.scene.deletePoint(element.clip_uuid); + } + }); this.timeline_items = this.timeline_items.filter( (element) => element.object_uuid !== object_uuid, );