diff options
| author | Biliogadafr | 2015-05-26 22:17:54 +0300 |
|---|---|---|
| committer | Biliogadafr | 2015-05-26 22:17:54 +0300 |
| commit | 3f975965e98544e4c22eba2838ecaf00a24eb836 (patch) | |
| tree | 0f8ccfb6df6aada15a2da087982967e345d23897 /scene/2d/particles_2d.cpp | |
| parent | df9d48d9b552c30b9b42940a964ccc4271e6905b (diff) | |
| download | godot-3f975965e98544e4c22eba2838ecaf00a24eb836.tar.gz godot-3f975965e98544e4c22eba2838ecaf00a24eb836.tar.zst godot-3f975965e98544e4c22eba2838ecaf00a24eb836.zip | |
Add get_color_at_offset(). Ensure correct points order.
Diffstat (limited to 'scene/2d/particles_2d.cpp')
| -rw-r--r-- | scene/2d/particles_2d.cpp | 30 |
1 files changed, 1 insertions, 29 deletions
diff --git a/scene/2d/particles_2d.cpp b/scene/2d/particles_2d.cpp index 6effd4f31..f0b7c2be6 100644 --- a/scene/2d/particles_2d.cpp +++ b/scene/2d/particles_2d.cpp @@ -528,35 +528,7 @@ void Particles2D::_notification(int p_what) { if(color_ramp.is_valid()) { - Vector<ColorRamp::Point>& color_points = color_ramp->get_points(); - - int cpos=0; - - while(cpos<color_points.size()) { - - if (color_points[cpos].offset > ptime) - break; - cpos++; - } - - cpos--; - //could be faster.. - if (cpos==-1) - if(color_points.size()) - color=color_points[0].color;//Extend color to the beginning - else - color=Color(1,1,1,1);//If no points just use white. - else { - if (cpos==color_points.size()-1) - color=color_points[cpos].color; - else { - float diff = (color_points[cpos+1].offset-color_points[cpos].offset); - if (diff>0) - color=color_points[cpos].color.linear_interpolate(color_points[cpos+1].color, (ptime - color_points[cpos].offset) / diff ); - else - color=color_points[cpos+1].color; - } - } + color = color_ramp->get_color_at_offset(ptime); } else { color = default_color; |
