Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Dinges <blender@dingto.org>2013-04-05 21:03:59 +0400
committerThomas Dinges <blender@dingto.org>2013-04-05 21:03:59 +0400
commit5e0cdd647300d6cd2ff0f3582330f12653c5d166 (patch)
tree2d0d4e2612a060ff48cc4791ad49dcaa1b2d3d72
parent394a45a64524f417bba0168c236f6f5eccc3a70d (diff)
Code cleanup / Cycles / Object Attributes:
* Change some long "else if" conditions into switch case.
-rw-r--r--intern/cycles/render/attribute.cpp133
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;