diff options
Diffstat (limited to 'src/curveeditor/animationcurve.cpp')
-rw-r--r-- | src/curveeditor/animationcurve.cpp | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/src/curveeditor/animationcurve.cpp b/src/curveeditor/animationcurve.cpp index acb64ce..8e2d522 100644 --- a/src/curveeditor/animationcurve.cpp +++ b/src/curveeditor/animationcurve.cpp @@ -39,7 +39,8 @@ AnimationCurve::AnimationCurve(const std::vector<Keyframe> &frames) , m_minY(std::numeric_limits<double>::max()) , m_maxY(std::numeric_limits<double>::lowest()) { - if (m_frames.size() >= 2) { + if (isValid()) { + for (auto e : extrema()) { if (m_minY > e.y()) @@ -48,12 +49,20 @@ AnimationCurve::AnimationCurve(const std::vector<Keyframe> &frames) if (m_maxY < e.y()) m_maxY = e.y(); } + + for (auto &frame : qAsConst(m_frames)) { + if (frame.position().y() < m_minY) + m_minY = frame.position().y(); + + if (frame.position().y() > m_maxY) + m_maxY = frame.position().y(); + } } } bool AnimationCurve::isValid() const { - return !m_frames.empty(); + return m_frames.size() >= 2; } double AnimationCurve::minimumTime() const |