diff options
author | Campbell Barton <ideasman42@gmail.com> | 2012-10-20 21:39:56 +0400 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2012-10-20 21:39:56 +0400 |
commit | eee64aeccf64f95f6657571a53ca5226b52ebbc8 (patch) | |
tree | e0ff6b7be7802770697cdf9907795c152fb2f824 /source/blender/blenkernel/intern/customdata.c | |
parent | 8944dab58a4f9efed28bc40ea45f3555026d0f0b (diff) |
bmesh-decimate now only does CustomData_has_math for loop layers, add CustomData_has_interp() for vert & edges.
Diffstat (limited to 'source/blender/blenkernel/intern/customdata.c')
-rw-r--r-- | source/blender/blenkernel/intern/customdata.c | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/source/blender/blenkernel/intern/customdata.c b/source/blender/blenkernel/intern/customdata.c index 6c9cf510405..2c9ad38c305 100644 --- a/source/blender/blenkernel/intern/customdata.c +++ b/source/blender/blenkernel/intern/customdata.c @@ -2483,6 +2483,17 @@ int CustomData_layer_has_math(struct CustomData *data, int layer_n) return FALSE; } +int CustomData_layer_has_interp(struct CustomData *data, int layer_n) +{ + const LayerTypeInfo *typeInfo = layerType_getInfo(data->layers[layer_n].type); + + if (typeInfo->interp) { + return TRUE; + } + + return FALSE; +} + int CustomData_has_math(struct CustomData *data) { int i; @@ -2497,6 +2508,20 @@ int CustomData_has_math(struct CustomData *data) return FALSE; } +int CustomData_has_interp(struct CustomData *data) +{ + int i; + + /* interpolates a layer at a time */ + for (i = 0; i < data->totlayer; ++i) { + if (CustomData_layer_has_interp(data, i)) { + return TRUE; + } + } + + return FALSE; +} + /* copies the "value" (e.g. mloopuv uv or mloopcol colors) from one block to * another, while not overwriting anything else (e.g. flags)*/ void CustomData_data_copy_value(int type, void *source, void *dest) |