diff options
author | Campbell Barton <ideasman42@gmail.com> | 2013-08-14 15:29:58 +0400 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2013-08-14 15:29:58 +0400 |
commit | 503b7d5b9a385fdcd220df3142857300d912d80c (patch) | |
tree | d25f1c3c59edd0e8c30faf984cc681af9ada9fc8 /source/blender/blenkernel/intern/curve.c | |
parent | 1979720d0324b84e4993557d30ff833f71e688fd (diff) |
add materials.clear() method, matching other python list method.
Diffstat (limited to 'source/blender/blenkernel/intern/curve.c')
-rw-r--r-- | source/blender/blenkernel/intern/curve.c | 28 |
1 files changed, 26 insertions, 2 deletions
diff --git a/source/blender/blenkernel/intern/curve.c b/source/blender/blenkernel/intern/curve.c index b02d587940a..2285d7d8dc0 100644 --- a/source/blender/blenkernel/intern/curve.c +++ b/source/blender/blenkernel/intern/curve.c @@ -3819,7 +3819,7 @@ void BKE_curve_translate(Curve *cu, float offset[3], int do_keys) } } -void BKE_curve_delete_material_index(Curve *cu, int index) +void BKE_curve_material_index_remove(Curve *cu, int index) { const int curvetype = BKE_curve_type_get(cu); @@ -3838,8 +3838,32 @@ void BKE_curve_delete_material_index(Curve *cu, int index) for (nu = cu->nurb.first; nu; nu = nu->next) { if (nu->mat_nr && nu->mat_nr >= index) { nu->mat_nr--; - if (curvetype == OB_CURVE) + if (curvetype == OB_CURVE) { nu->charidx--; + } + } + } + } +} + +void BKE_curve_material_index_clear(Curve *cu) +{ + const int curvetype = BKE_curve_type_get(cu); + + if (curvetype == OB_FONT) { + struct CharInfo *info = cu->strinfo; + int i; + for (i = cu->len - 1; i >= 0; i--, info++) { + info->mat_nr = 0; + } + } + else { + Nurb *nu; + + for (nu = cu->nurb.first; nu; nu = nu->next) { + nu->mat_nr = 0; + if (curvetype == OB_CURVE) { + nu->charidx = 0; } } } |