]> git.tdb.fi Git - libs/gl.git/commitdiff
Fix creation of animation curves
authorMikko Rasa <tdb@tdb.fi>
Tue, 27 Feb 2024 18:53:56 +0000 (20:53 +0200)
committerMikko Rasa <tdb@tdb.fi>
Tue, 27 Feb 2024 19:05:34 +0000 (21:05 +0200)
source/animation/animation.cpp

index a4b801c8161754752dfa5ba6765c9e78c7578568..d6c1ba774253c6dccfe50914853ab4dadfbf605e 100644 (file)
@@ -237,13 +237,13 @@ void Animation::create_curve(CurveTarget target, int component, const T &extract
                                {
                                        typename Knot::Value cv = knots.back().y;
                                        knots.back().y = (knots[knots.size()-2].y+cv*2.0)/3.0;
-                                       knots.emplace_back(x, (dvalue+cv*2.0/3.0));
+                                       knots.emplace_back(x, (dvalue+cv*2.0)/3.0);
                                }
                                else if(n_control==0 && !knots.empty())
                                {
                                        typename Knot::Value prev = knots.back().y;
                                        knots.emplace_back(knots.back().x, (prev*2.0+dvalue)/3.0);
-                                       knots.emplace_back(x, (prev+dvalue*2.0/3.0));
+                                       knots.emplace_back(x, (prev+dvalue*2.0)/3.0);
                                }
                                n_control = 0;
                        }
@@ -256,6 +256,7 @@ void Animation::create_curve(CurveTarget target, int component, const T &extract
 
        if(knots.size()==1)
        {
+               knots.reserve(knots.size()+3);
                knots.push_back(knots.back());
                knots.push_back(knots.back());
                knots.back().x += 1;