From 221ea3624bbebe32c3b0debd40282ca774623dc9 Mon Sep 17 00:00:00 2001 From: shueja-personal Date: Sat, 21 Dec 2024 21:47:48 -0800 Subject: [PATCH 1/2] Simplify logic when receiving a successful generation in UI --- src/document/DocumentModel.tsx | 25 +------------------------ src/document/path/HolonomicPathStore.ts | 13 +++++++++++++ 2 files changed, 14 insertions(+), 24 deletions(-) diff --git a/src/document/DocumentModel.tsx b/src/document/DocumentModel.tsx index ebf11892f7..36dd5189b0 100644 --- a/src/document/DocumentModel.tsx +++ b/src/document/DocumentModel.tsx @@ -254,30 +254,7 @@ export const DocumentStore = types const result: Trajectory = rust_trajectory as Trajectory; console.log(result); if (result.trajectory.samples.length == 0) throw "No trajectory"; - self.history.startGroup(() => { - const newTrajectory = result.trajectory.samples; - if (inputDriveType === "Differential") { - pathStore.trajectory.setDifferentialSamples( - newTrajectory as DifferentialSample[] - ); - } else { - pathStore.trajectory.setSwerveSamples( - newTrajectory as SwerveSample[] - ); - } - pathStore.trajectory.setSplits(result.trajectory.splits); - pathStore.trajectory.setWaypoints(result.trajectory.waypoints); - pathStore.markers.forEach((m) => { - const index = m.from.trajectoryTargetIndex; - if (index === undefined) { - m.from.setTargetTimestamp(undefined); - } else { - m.from.setTargetTimestamp(result.trajectory.waypoints[index]); - } - }); - pathStore.setSnapshot(result.snapshot); - self.history.stopGroup(); - }); + pathStore.processGenerationResult(result); }, (e) => { tracing.error("generatePathPost:", e); diff --git a/src/document/path/HolonomicPathStore.ts b/src/document/path/HolonomicPathStore.ts index 2126ca3417..82317093b9 100644 --- a/src/document/path/HolonomicPathStore.ts +++ b/src/document/path/HolonomicPathStore.ts @@ -151,11 +151,24 @@ export const HolonomicPathStore = types }) .actions((self) => { return { + processGenerationResult(ser: Trajectory) { + self.trajectory.deserialize(ser.trajectory); + self.markers.forEach((m) => { + const index = m.from.trajectoryTargetIndex; + if (index === undefined) { + m.from.setTargetTimestamp(undefined); + } else { + m.from.setTargetTimestamp(ser.trajectory.waypoints[index]); + } + }); + self.setSnapshot(ser.snapshot); + }, deserialize(ser: Trajectory) { self.name = ser.name; self.snapshot = ser.snapshot; self.params.deserialize(ser.params); self.trajectory.deserialize(ser.trajectory); + self.markers.clear(); ser.events.forEach((m) => { self.addEventMarker(m); }); From dfa8562253655374d3620508b834fcaa34f6d908 Mon Sep 17 00:00:00 2001 From: shueja-personal Date: Sat, 21 Dec 2024 22:01:23 -0800 Subject: [PATCH 2/2] Fix lint --- src/document/DocumentModel.tsx | 1 - 1 file changed, 1 deletion(-) diff --git a/src/document/DocumentModel.tsx b/src/document/DocumentModel.tsx index 36dd5189b0..a3ad0e0aef 100644 --- a/src/document/DocumentModel.tsx +++ b/src/document/DocumentModel.tsx @@ -176,7 +176,6 @@ export const DocumentStore = types console.log(pathStore.serialize); const config = self.robotConfig.serialize; - const inputDriveType = self.type; pathStore.params.constraints .filter((constraint) => constraint.enabled) .forEach((constraint) => {