From af31c2df198260e437cf8778901e54121f788dc4 Mon Sep 17 00:00:00 2001 From: "joogab.yun" Date: Thu, 31 Oct 2024 09:49:19 +0900 Subject: [PATCH] Update trim end to match frameNumber. Change-Id: I91d40790a2e3b54d8fe51ce78a4fb9358b505235 --- src/lottie/lottiefiltermodel.h | 2 +- src/lottie/lottiemodel.h | 9 ++++++--- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/src/lottie/lottiefiltermodel.h b/src/lottie/lottiefiltermodel.h index 015e9cb..21f5e48 100644 --- a/src/lottie/lottiefiltermodel.h +++ b/src/lottie/lottiefiltermodel.h @@ -437,7 +437,7 @@ public: this->model_->updateTrimStartValue(this->filter()->value(rlottie::Property::TrimStart, frameNo)); } if (this->hasFilter(rlottie::Property::TrimEnd)) { - this->model_->updateTrimEndValue(this->filter()->point(rlottie::Property::TrimEnd, frameNo)); + this->model_->updateTrimEndValue(this->filter()->point(rlottie::Property::TrimEnd, frameNo), frameNo); } model::Trim::Segment segment = this->model()->segment(frameNo); return segment; diff --git a/src/lottie/lottiemodel.h b/src/lottie/lottiemodel.h index b8ca1ba..c492b72 100644 --- a/src/lottie/lottiemodel.h +++ b/src/lottie/lottiemodel.h @@ -1015,11 +1015,14 @@ public: mStart.value() = start; } - void updateTrimEndValue(VPointF pos) + void updateTrimEndValue(VPointF pos, int frameNo) { for (auto &keyFrame : mEnd.animation().frames_) { - keyFrame.value_.start_ = pos.x(); - keyFrame.value_.end_ = pos.y(); + if (frameNo >= keyFrame.start_ && frameNo < keyFrame.end_ && pos.x() >=0 && pos.y() >= 0) + { + keyFrame.value_.start_ = pos.x(); + keyFrame.value_.end_ = pos.y(); + } } } -- 2.34.1