[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [60061] trunk/blender/source/blender/bmesh /operators/bmo_wireframe.c: bmesh wireframe operator now adds crease customdata when the crease option is enabled .

Campbell Barton ideasman42 at gmail.com
Thu Sep 12 06:02:34 CEST 2013


Revision: 60061
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=60061
Author:   campbellbarton
Date:     2013-09-12 04:02:31 +0000 (Thu, 12 Sep 2013)
Log Message:
-----------
bmesh wireframe operator now adds crease customdata when the crease option is enabled.

Modified Paths:
--------------
    trunk/blender/source/blender/bmesh/operators/bmo_wireframe.c

Modified: trunk/blender/source/blender/bmesh/operators/bmo_wireframe.c
===================================================================
--- trunk/blender/source/blender/bmesh/operators/bmo_wireframe.c	2013-09-12 03:38:25 UTC (rev 60060)
+++ trunk/blender/source/blender/bmesh/operators/bmo_wireframe.c	2013-09-12 04:02:31 UTC (rev 60061)
@@ -159,11 +159,14 @@
 	const bool use_boundary        = BMO_slot_bool_get(op->slots_in,  "use_boundary");
 	const bool use_even_offset     = BMO_slot_bool_get(op->slots_in,  "use_even_offset");
 	const bool use_relative_offset = BMO_slot_bool_get(op->slots_in,  "use_relative_offset");
-	const bool use_crease          = (BMO_slot_bool_get(op->slots_in,  "use_crease") &&
-	                                  CustomData_has_layer(&bm->edata, CD_CREASE));
+	const bool use_crease          = BMO_slot_bool_get(op->slots_in,  "use_crease");
 	const float depth              = BMO_slot_float_get(op->slots_in, "thickness");
 	const float inset              = depth;
+	int cd_edge_crease_offset      = use_crease ? CustomData_get_offset(&bm->edata, CD_CREASE) : -1;
+	const float crease_weight      = 1.0f;
 
+	//CustomData_has_layer(&bm->edata, CD_CREASE);
+
 	const int totvert_orig = bm->totvert;
 
 	BMOIter oiter;
@@ -196,6 +199,11 @@
 
 	int i;
 
+	if (use_crease && cd_edge_crease_offset == -1) {
+		BM_data_layer_add(bm, &bm->edata, CD_CREASE);
+		cd_edge_crease_offset = CustomData_get_offset(&bm->edata, CD_CREASE);
+	}
+
 	BM_mesh_elem_index_ensure(bm, BM_VERT);
 
 	BM_ITER_MESH_INDEX (v_src, &iter, bm, BM_VERTS_OF_MESH, i) {
@@ -380,16 +388,16 @@
 					if (use_crease) {
 						BMEdge *e_new;
 						e_new = BM_edge_exists(v_pos1, v_b1);
-						BM_elem_float_data_set(&bm->edata, e_new, CD_CREASE, 1.0f);
+						BM_ELEM_CD_SET_FLOAT(e_new, cd_edge_crease_offset, crease_weight);
 
 						e_new = BM_edge_exists(v_pos2, v_b2);
-						BM_elem_float_data_set(&bm->edata, e_new, CD_CREASE, 1.0f);
+						BM_ELEM_CD_SET_FLOAT(e_new, cd_edge_crease_offset, crease_weight);
 
 						e_new = BM_edge_exists(v_neg1, v_b1);
-						BM_elem_float_data_set(&bm->edata, e_new, CD_CREASE, 1.0f);
+						BM_ELEM_CD_SET_FLOAT(e_new, cd_edge_crease_offset, crease_weight);
 
 						e_new = BM_edge_exists(v_neg2, v_b2);
-						BM_elem_float_data_set(&bm->edata, e_new, CD_CREASE, 1.0f);
+						BM_ELEM_CD_SET_FLOAT(e_new, cd_edge_crease_offset, crease_weight);
 					}
 				}
 			}
@@ -397,16 +405,16 @@
 			if (use_crease) {
 				BMEdge *e_new;
 				e_new = BM_edge_exists(v_pos1, v_l1);
-				BM_elem_float_data_set(&bm->edata, e_new, CD_CREASE, 1.0f);
+				BM_ELEM_CD_SET_FLOAT(e_new, cd_edge_crease_offset, crease_weight);
 
 				e_new = BM_edge_exists(v_pos2, v_l2);
-				BM_elem_float_data_set(&bm->edata, e_new, CD_CREASE, 1.0f);
+				BM_ELEM_CD_SET_FLOAT(e_new, cd_edge_crease_offset, crease_weight);
 
 				e_new = BM_edge_exists(v_neg1, v_l1);
-				BM_elem_float_data_set(&bm->edata, e_new, CD_CREASE, 1.0f);
+				BM_ELEM_CD_SET_FLOAT(e_new, cd_edge_crease_offset, crease_weight);
 
 				e_new = BM_edge_exists(v_neg2, v_l2);
-				BM_elem_float_data_set(&bm->edata, e_new, CD_CREASE, 1.0f);
+				BM_ELEM_CD_SET_FLOAT(e_new, cd_edge_crease_offset, crease_weight);
 			}
 
 		}




More information about the Bf-blender-cvs mailing list