diff options
author | Brecht Van Lommel <brechtvanlommel@pandora.be> | 2012-02-02 18:07:24 +0400 |
---|---|---|
committer | Brecht Van Lommel <brechtvanlommel@pandora.be> | 2012-02-02 18:07:24 +0400 |
commit | 4aaf59324e0ea5fecf28c1e9d54b1aed9b135dc5 (patch) | |
tree | a15460ae3188ccf5b31019ff472507af3f4dbc65 /source/blender/blenkernel/intern/texture.c | |
parent | 8f01ad9bf884f15c9cd6d19971f8ab3a1e1e176c (diff) |
Fix #27213: editing color ramp "Pos:" number value did not update the ramp
properly, when moving the current point before another.
Diffstat (limited to 'source/blender/blenkernel/intern/texture.c')
-rw-r--r-- | source/blender/blenkernel/intern/texture.c | 32 |
1 files changed, 21 insertions, 11 deletions
diff --git a/source/blender/blenkernel/intern/texture.c b/source/blender/blenkernel/intern/texture.c index 88858c9ff51..f854397ef05 100644 --- a/source/blender/blenkernel/intern/texture.c +++ b/source/blender/blenkernel/intern/texture.c @@ -478,6 +478,26 @@ int vergcband(const void *a1, const void *a2) return 0; } +void colorband_update_sort(ColorBand *coba) +{ + int a; + + if(coba->tot<2) + return; + + for(a=0; a<coba->tot; a++) + coba->data[a].cur= a; + + qsort(coba->data, coba->tot, sizeof(CBData), vergcband); + + for(a=0; a<coba->tot; a++) { + if(coba->data[a].cur==coba->cur) { + coba->cur= a; + break; + } + } +} + CBData *colorband_element_add(struct ColorBand *coba, float position) { int a; @@ -503,17 +523,7 @@ CBData *colorband_element_add(struct ColorBand *coba, float position) coba->tot++; coba->cur = coba->tot-1; - for(a = 0; a < coba->tot; a++) - coba->data[a].cur = a; - - qsort(coba->data, coba->tot, sizeof(CBData), vergcband); - - for(a = 0; a < coba->tot; a++) { - if(coba->data[a].cur == coba->cur) { - coba->cur = a; - break; - } - } + colorband_update_sort(coba); return coba->data + coba->cur; } |