[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