diff options
author | Samuel Freilich <sfreilich@google.com> | 2023-03-31 16:28:44 -0700 |
---|---|---|
committer | Copybara-Service <copybara-worker@google.com> | 2023-03-31 16:29:19 -0700 |
commit | c3c144536340980ad0f2f2deff40ee86629fc92f (patch) | |
tree | 4bd5c74b314c058684d504320d9fd653233bfdff | |
parent | d00e811abe8a3b942ccc69a2e227849b3d260967 (diff) | |
download | ink-stroke-modeler-c3c144536340980ad0f2f2deff40ee86629fc92f.tar.gz |
Make Save/Restore void
Currently, these return an error absl::Status if called before the model is initialized. But they don't really do anything in that case anyways, and it's redundant with the validation done elsewhere, in places where StrokeModelParams is actually used (e.g. in Update). It doesn't really make sense to use Save/Restore without Update, so just do validation there.
PiperOrigin-RevId: 521038524
-rw-r--r-- | ink_stroke_modeler/stroke_modeler.cc | 18 | ||||
-rw-r--r-- | ink_stroke_modeler/stroke_modeler.h | 4 | ||||
-rw-r--r-- | ink_stroke_modeler/stroke_modeler_test.cc | 21 |
3 files changed, 10 insertions, 33 deletions
diff --git a/ink_stroke_modeler/stroke_modeler.cc b/ink_stroke_modeler/stroke_modeler.cc index 0138482..741ced6 100644 --- a/ink_stroke_modeler/stroke_modeler.cc +++ b/ink_stroke_modeler/stroke_modeler.cc @@ -288,12 +288,7 @@ absl::Status StrokeModeler::ProcessMoveEvent(const Input &input, return absl::OkStatus(); } -absl::Status StrokeModeler::Save() { - if (!stroke_model_params_.has_value()) { - return absl::FailedPreconditionError( - "Stroke model has not yet been initialized"); - } - +void StrokeModeler::Save() { wobble_smoother_.Save(); position_modeler_.Save(); stylus_state_modeler_.Save(); @@ -302,16 +297,10 @@ absl::Status StrokeModeler::Save() { saved_predictor_ = predictor_->MakeCopy(); } save_active_ = true; - return absl::OkStatus(); } -absl::Status StrokeModeler::Restore() { - if (!stroke_model_params_.has_value()) { - return absl::FailedPreconditionError( - "Stroke model has not yet been initialized"); - } - - if (!save_active_) return absl::OkStatus(); +void StrokeModeler::Restore() { + if (!save_active_) return; wobble_smoother_.Restore(); position_modeler_.Restore(); @@ -320,7 +309,6 @@ absl::Status StrokeModeler::Restore() { if (saved_predictor_ != nullptr) { predictor_ = saved_predictor_->MakeCopy(); } - return absl::OkStatus(); } } // namespace stroke_model diff --git a/ink_stroke_modeler/stroke_modeler.h b/ink_stroke_modeler/stroke_modeler.h index 8fa67df..be5584d 100644 --- a/ink_stroke_modeler/stroke_modeler.h +++ b/ink_stroke_modeler/stroke_modeler.h @@ -94,14 +94,14 @@ class StrokeModeler { // // Subsequent updates can be undone by calling Restore(), until a call to // Reset() clears the stroke or a call to Save() sets a new saved state. - absl::Status Save(); + void Save(); // Restores the saved state of the modeler. // // Discards the portion of input after the last call to Save(). This does not // clear or modify the saved state. Does nothing if Save() has not been called // for this stroke. - absl::Status Restore(); + void Restore(); private: void ResetInternal(); diff --git a/ink_stroke_modeler/stroke_modeler_test.cc b/ink_stroke_modeler/stroke_modeler_test.cc index 88eb288..10ac752 100644 --- a/ink_stroke_modeler/stroke_modeler_test.cc +++ b/ink_stroke_modeler/stroke_modeler_test.cc @@ -1626,17 +1626,6 @@ TEST(StrokeModelerTest, ResetKeepsParamsAndResetsStroke) { ASSERT_TRUE(modeler.Update(pointer_down, results).ok()); } -TEST(StrokeModelerTest, SaveAndRestoreWithoutInit) { - { - StrokeModeler modeler; - EXPECT_EQ(modeler.Save().code(), absl::StatusCode::kFailedPrecondition); - } - { - StrokeModeler modeler; - EXPECT_EQ(modeler.Restore().code(), absl::StatusCode::kFailedPrecondition); - } -} - TEST(StrokeModelerTest, SaveAndRestore) { StrokeModeler modeler; ASSERT_TRUE(modeler.Reset(kDefaultParams).ok()); @@ -1644,7 +1633,7 @@ TEST(StrokeModelerTest, SaveAndRestore) { std::vector<Result> results; // Create a save that will be overwritten. - EXPECT_TRUE(modeler.Save().ok()); + modeler.Save(); EXPECT_TRUE(modeler .Update({.event_type = Input::EventType::kDown, @@ -1658,7 +1647,7 @@ TEST(StrokeModelerTest, SaveAndRestore) { {.position = {-6, -2}, .velocity = {0, 0}, .time = Time(4)}, kTol))); // Save a second time and then finish the stroke. - EXPECT_TRUE(modeler.Save().ok()); + modeler.Save(); results.clear(); EXPECT_TRUE(modeler @@ -1713,7 +1702,7 @@ TEST(StrokeModelerTest, SaveAndRestore) { kTol))); // Restore and finish the stroke again. - EXPECT_TRUE(modeler.Restore().ok()); + modeler.Restore(); results.clear(); EXPECT_TRUE(modeler .Update({.event_type = Input::EventType::kUp, @@ -1767,7 +1756,7 @@ TEST(StrokeModelerTest, SaveAndRestore) { kTol))); // Restoring should not have cleared the save, so repeat one more time. - EXPECT_TRUE(modeler.Restore().ok()); + modeler.Restore(); results.clear(); EXPECT_TRUE(modeler .Update({.event_type = Input::EventType::kUp, @@ -1842,7 +1831,7 @@ TEST(StrokeModelerTest, SaveAndRestore) { results) .ok()); - EXPECT_TRUE(modeler.Restore().ok()); + modeler.Restore(); // Restore should have no effect so we cannot finish the line again. results.clear(); |