diff options
author | Thomas Dinges <blender@dingto.org> | 2013-04-05 21:03:59 +0400 |
---|---|---|
committer | Thomas Dinges <blender@dingto.org> | 2013-04-05 21:03:59 +0400 |
commit | 5e0cdd647300d6cd2ff0f3582330f12653c5d166 (patch) | |
tree | 2d0d4e2612a060ff48cc4791ad49dcaa1b2d3d72 /intern | |
parent | 394a45a64524f417bba0168c236f6f5eccc3a70d (diff) |
Code cleanup / Cycles / Object Attributes:
* Change some long "else if" conditions into switch case.
Diffstat (limited to 'intern')
-rw-r--r-- | intern/cycles/render/attribute.cpp | 133 |
1 files changed, 84 insertions, 49 deletions
diff --git a/intern/cycles/render/attribute.cpp b/intern/cycles/render/attribute.cpp index b6f6ba47fe8..3137ea5327b 100644 --- a/intern/cycles/render/attribute.cpp +++ b/intern/cycles/render/attribute.cpp @@ -72,20 +72,33 @@ size_t Attribute::data_sizeof() const size_t Attribute::element_size(int numverts, int numtris, int numcurves, int numkeys) const { - if(element == ATTR_ELEMENT_VALUE) - return 1; - if(element == ATTR_ELEMENT_VERTEX) - return numverts; - else if(element == ATTR_ELEMENT_FACE) - return numtris; - else if(element == ATTR_ELEMENT_CORNER) - return numtris*3; - else if(element == ATTR_ELEMENT_CURVE) - return numcurves; - else if(element == ATTR_ELEMENT_CURVE_KEY) - return numkeys; + size_t size; - return 0; + switch(element) { + case ATTR_ELEMENT_VALUE: + size = 1; + break; + case ATTR_ELEMENT_VERTEX: + size = numverts; + break; + case ATTR_ELEMENT_FACE: + size = numtris; + break; + case ATTR_ELEMENT_CORNER: + size = numtris*3; + break; + case ATTR_ELEMENT_CURVE: + size = numcurves; + break; + case ATTR_ELEMENT_CURVE_KEY: + size = numkeys; + break; + default: + size = 0; + break; + } + + return size; } size_t Attribute::buffer_size(int numverts, int numtris, int numcurves, int numkeys) const @@ -214,44 +227,66 @@ Attribute *AttributeSet::add(AttributeStandard std, ustring name) name = Attribute::standard_name(std); if(triangle_mesh) { - if(std == ATTR_STD_VERTEX_NORMAL) - attr = add(name, TypeDesc::TypeNormal, ATTR_ELEMENT_VERTEX); - else if(std == ATTR_STD_FACE_NORMAL) - attr = add(name, TypeDesc::TypeNormal, ATTR_ELEMENT_FACE); - else if(std == ATTR_STD_UV) - attr = add(name, TypeDesc::TypePoint, ATTR_ELEMENT_CORNER); - else if(std == ATTR_STD_UV_TANGENT) - attr = add(name, TypeDesc::TypeVector, ATTR_ELEMENT_CORNER); - else if(std == ATTR_STD_UV_TANGENT_SIGN) - attr = add(name, TypeDesc::TypeFloat, ATTR_ELEMENT_CORNER); - else if(std == ATTR_STD_GENERATED) - attr = add(name, TypeDesc::TypePoint, ATTR_ELEMENT_VERTEX); - else if(std == ATTR_STD_POSITION_UNDEFORMED) - attr = add(name, TypeDesc::TypePoint, ATTR_ELEMENT_VERTEX); - else if(std == ATTR_STD_POSITION_UNDISPLACED) - attr = add(name, TypeDesc::TypePoint, ATTR_ELEMENT_VERTEX); - else if(std == ATTR_STD_MOTION_PRE) - attr = add(name, TypeDesc::TypePoint, ATTR_ELEMENT_VERTEX); - else if(std == ATTR_STD_MOTION_POST) - attr = add(name, TypeDesc::TypePoint, ATTR_ELEMENT_VERTEX); - else - assert(0); + switch(std) { + case ATTR_STD_VERTEX_NORMAL: + attr = add(name, TypeDesc::TypeNormal, ATTR_ELEMENT_VERTEX); + break; + case ATTR_STD_FACE_NORMAL: + attr = add(name, TypeDesc::TypeNormal, ATTR_ELEMENT_FACE); + break; + case ATTR_STD_UV: + attr = add(name, TypeDesc::TypePoint, ATTR_ELEMENT_CORNER); + break; + case ATTR_STD_UV_TANGENT: + attr = add(name, TypeDesc::TypeVector, ATTR_ELEMENT_CORNER); + break; + case ATTR_STD_UV_TANGENT_SIGN: + attr = add(name, TypeDesc::TypeFloat, ATTR_ELEMENT_CORNER); + break; + case ATTR_STD_GENERATED: + attr = add(name, TypeDesc::TypePoint, ATTR_ELEMENT_VERTEX); + break; + case ATTR_STD_POSITION_UNDEFORMED: + attr = add(name, TypeDesc::TypePoint, ATTR_ELEMENT_VERTEX); + break; + case ATTR_STD_POSITION_UNDISPLACED: + attr = add(name, TypeDesc::TypePoint, ATTR_ELEMENT_VERTEX); + break; + case ATTR_STD_MOTION_PRE: + attr = add(name, TypeDesc::TypePoint, ATTR_ELEMENT_VERTEX); + break; + case ATTR_STD_MOTION_POST: + attr = add(name, TypeDesc::TypePoint, ATTR_ELEMENT_VERTEX); + break; + default: + assert(0); + break; + } } else if(curve_mesh) { - if(std == ATTR_STD_UV) - attr = add(name, TypeDesc::TypePoint, ATTR_ELEMENT_CURVE); - else if(std == ATTR_STD_GENERATED) - attr = add(name, TypeDesc::TypePoint, ATTR_ELEMENT_CURVE); - else if(std == ATTR_STD_MOTION_PRE) - attr = add(name, TypeDesc::TypePoint, ATTR_ELEMENT_CURVE_KEY); - else if(std == ATTR_STD_MOTION_POST) - attr = add(name, TypeDesc::TypePoint, ATTR_ELEMENT_CURVE_KEY); - else if(std == ATTR_STD_CURVE_TANGENT) - attr = add(name, TypeDesc::TypeVector, ATTR_ELEMENT_CURVE_KEY); - else if(std == ATTR_STD_CURVE_INTERCEPT) - attr = add(name, TypeDesc::TypeFloat, ATTR_ELEMENT_CURVE_KEY); - else - assert(0); + switch(std) { + case ATTR_STD_UV: + attr = add(name, TypeDesc::TypePoint, ATTR_ELEMENT_CURVE); + break; + case ATTR_STD_GENERATED: + attr = add(name, TypeDesc::TypePoint, ATTR_ELEMENT_CURVE); + break; + case ATTR_STD_MOTION_PRE: + attr = add(name, TypeDesc::TypePoint, ATTR_ELEMENT_CURVE_KEY); + break; + case ATTR_STD_MOTION_POST: + attr = add(name, TypeDesc::TypePoint, ATTR_ELEMENT_CURVE_KEY); + break; + case ATTR_STD_CURVE_TANGENT: + attr = add(name, TypeDesc::TypeVector, ATTR_ELEMENT_CURVE_KEY); + break; + case ATTR_STD_CURVE_INTERCEPT: + attr = add(name, TypeDesc::TypeFloat, ATTR_ELEMENT_CURVE_KEY); + break; + default: + assert(0); + break; + } } attr->std = std; |