[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [26281] trunk/blender/source/blender: modifier.c has all its vergex group index lookups inline, use get_named_vertexgroup_num() instead.
Campbell Barton
ideasman42 at gmail.com
Tue Jan 26 10:36:33 CET 2010
Revision: 26281
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=26281
Author: campbellbarton
Date: 2010-01-26 10:36:33 +0100 (Tue, 26 Jan 2010)
Log Message:
-----------
modifier.c has all its vergex group index lookups inline, use get_named_vertexgroup_num() instead.
no functional changes.
Modified Paths:
--------------
trunk/blender/source/blender/blenkernel/intern/deform.c
trunk/blender/source/blender/blenkernel/intern/modifier.c
trunk/blender/source/blender/makesdna/DNA_modifier_types.h
trunk/blender/source/blender/makesrna/intern/rna_modifier.c
Modified: trunk/blender/source/blender/blenkernel/intern/deform.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/deform.c 2010-01-26 09:25:32 UTC (rev 26280)
+++ trunk/blender/source/blender/blenkernel/intern/deform.c 2010-01-26 09:36:33 UTC (rev 26281)
@@ -173,11 +173,13 @@
bDeformGroup *curdef;
int def_nr;
- for (curdef=ob->defbase.first, def_nr=0; curdef; curdef=curdef->next, def_nr++) {
- if (!strcmp(curdef->name, name))
- return def_nr;
+ if(name[0] != '\0') {
+ for (curdef=ob->defbase.first, def_nr=0; curdef; curdef=curdef->next, def_nr++) {
+ if (!strcmp(curdef->name, name))
+ return def_nr;
+ }
}
-
+
return -1;
}
Modified: trunk/blender/source/blender/blenkernel/intern/modifier.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/modifier.c 2010-01-26 09:25:32 UTC (rev 26280)
+++ trunk/blender/source/blender/blenkernel/intern/modifier.c 2010-01-26 09:36:33 UTC (rev 26281)
@@ -867,24 +867,8 @@
}
else /* --- Using Nominated VertexGroup only --- */
{
- int defgrp_index = -1;
+ int defgrp_index = get_named_vertexgroup_num(ob, mmd->vgroup);
- /* get index of vertex group */
- if (mmd->vgroup[0])
- {
- bDeformGroup *def;
-
- /* find index by comparing names - SLOW... */
- for (i = 0, def = ob->defbase.first; def; def = def->next, i++)
- {
- if (!strcmp(def->name, mmd->vgroup))
- {
- defgrp_index = i;
- break;
- }
- }
- }
-
/* get dverts */
if (defgrp_index >= 0)
dvert = dm->getVertDataArray(dm, CD_MDEFORMVERT);
@@ -3313,17 +3297,12 @@
options = bmd->flags|bmd->val_flags|bmd->lim_flags|bmd->e_flags;
- //~ if ((options & BME_BEVEL_VWEIGHT) && bmd->defgrp_name[0]) {
- //~ for (i = 0, def = ob->defbase.first; def; def = def->next, i++) {
- //~ if (!strcmp(def->name, bmd->defgrp_name)) {
- //~ defgrp_index = i;
- //~ break;
- //~ }
- //~ }
- //~ if (defgrp_index < 0) {
- //~ options &= ~BME_BEVEL_VWEIGHT;
- //~ }
- //~ }
+ /*if ((options & BME_BEVEL_VWEIGHT) && bmd->defgrp_name[0]) {
+ defgrp_index = get_named_vertexgroup_num(ob, bmd->defgrp_name);
+ if (defgrp_index < 0) {
+ options &= ~BME_BEVEL_VWEIGHT;
+ }
+ }*/
bm = BME_derivedmesh_to_bmesh(derivedData);
BME_bevel(bm,bmd->value,bmd->res,options,defgrp_index,bmd->bevel_angle,NULL);
@@ -3574,18 +3553,8 @@
if(!dmd->texture) return;
- defgrp_index = -1;
+ defgrp_index = get_named_vertexgroup_num(ob, dmd->defgrp_name);
- if(dmd->defgrp_name[0]) {
- bDeformGroup *def;
- for(i = 0, def = ob->defbase.first; def; def = def->next, i++) {
- if(!strcmp(def->name, dmd->defgrp_name)) {
- defgrp_index = i;
- break;
- }
- }
- }
-
mvert = CDDM_get_verts(dm);
if(defgrp_index >= 0)
dvert = dm->getVertDataArray(dm, CD_MDEFORMVERT);
@@ -4200,19 +4169,8 @@
medges = dm->getEdgeArray(dm);
numDMEdges = dm->getNumEdges(dm);
- defgrp_index = -1;
+ defgrp_index = get_named_vertexgroup_num(ob, smd->defgrp_name);
- if (smd->defgrp_name[0]) {
- bDeformGroup *def;
-
- for (i = 0, def = ob->defbase.first; def; def = def->next, i++) {
- if (!strcmp(def->name, smd->defgrp_name)) {
- defgrp_index = i;
- break;
- }
- }
- }
-
if (defgrp_index >= 0)
dvert = dm->getVertDataArray(dm, CD_MDEFORMVERT);
@@ -4424,7 +4382,7 @@
Object *ctrl_ob = NULL;
- int i, defgrp_index = -1;
+ int i, defgrp_index;
int has_radius = 0;
short flag, type;
float fac, facm, len = 0.0f;
@@ -4466,17 +4424,8 @@
/* 3) if we were given a vertex group name,
* only those vertices should be affected */
- if (cmd->defgrp_name[0]) {
- bDeformGroup *def;
+ defgrp_index = get_named_vertexgroup_num(ob, cmd->defgrp_name);
- for (i = 0, def = ob->defbase.first; def; def = def->next, i++) {
- if (!strcmp(def->name, cmd->defgrp_name)) {
- defgrp_index = i;
- break;
- }
- }
- }
-
if ((ob->type == OB_MESH) && dm && defgrp_index >= 0)
dvert = dm->getVertDataArray(dm, CD_MDEFORMVERT);
@@ -4609,7 +4558,7 @@
MDeformVert *dvert = NULL;
Object *ctrl_ob = NULL;
- int i, defgrp_index = -1;
+ int i, defgrp_index;
int has_radius = 0;
short flag;
float fac, facm;
@@ -4633,17 +4582,8 @@
/* 3) if we were given a vertex group name,
* only those vertices should be affected */
- if (cmd->defgrp_name[0]) {
- bDeformGroup *def;
+ defgrp_index = get_named_vertexgroup_num(ob, cmd->defgrp_name);
- for (i = 0, def = ob->defbase.first; def; def = def->next, i++) {
- if (!strcmp(def->name, cmd->defgrp_name)) {
- defgrp_index = i;
- break;
- }
- }
- }
-
if ((ob->type == OB_MESH) && dm && defgrp_index >= 0)
dvert = dm->getVertDataArray(dm, CD_MDEFORMVERT);
@@ -5140,19 +5080,8 @@
}
/* get the index of the deform group */
- defgrp_index = -1;
+ defgrp_index = get_named_vertexgroup_num(ob, wmd->defgrp_name);
- if(wmd->defgrp_name[0]) {
- int i;
- bDeformGroup *def;
- for(i = 0, def = ob->defbase.first; def; def = def->next, i++) {
- if(!strcmp(def->name, wmd->defgrp_name)) {
- defgrp_index = i;
- break;
- }
- }
- }
-
if(defgrp_index >= 0){
dvert = dm->getVertDataArray(dm, CD_MDEFORMVERT);
}
@@ -5579,50 +5508,46 @@
}
}
else if(hmd->name[0]) { /* vertex group hook */
- bDeformGroup *curdef;
Mesh *me = ob->data;
- int index = 0;
- int use_dverts;
+ int use_dverts = 0;
int maxVerts = 0;
-
- /* find the group (weak loop-in-loop) */
- for(curdef = ob->defbase.first; curdef; curdef = curdef->next, index++)
- if(!strcmp(curdef->name, hmd->name)) break;
+ int defgrp_index = get_named_vertexgroup_num(ob, hmd->name);
- if(dm)
+ if(dm) {
if(dm->getVertData(dm, 0, CD_MDEFORMVERT)) {
- use_dverts = 1;
- maxVerts = dm->getNumVerts(dm);
- } else use_dverts = 0;
- else if(me->dvert) {
+ maxVerts = dm->getNumVerts(dm);
use_dverts = 1;
- maxVerts = me->totvert;
- } else use_dverts = 0;
-
- if(curdef && use_dverts) {
- MDeformVert *dvert = me->dvert;
- int i, j;
-
- for(i = 0; i < maxVerts; i++, dvert++) {
- if(dm) dvert = dm->getVertData(dm, i, CD_MDEFORMVERT);
- for(j = 0; j < dvert->totweight; j++) {
- if(dvert->dw[j].def_nr == index) {
- float fac = hmd->force*dvert->dw[j].weight;
- float *co = vertexCos[i];
-
- if(hmd->falloff != 0.0) {
- float len = len_v3v3(co, hmd->cent);
- if(len > hmd->falloff) fac = 0.0;
- else if(len > 0.0)
- fac *= sqrt(1.0 - len / hmd->falloff);
- }
-
- mul_v3_m4v3(vec, mat, co);
- interp_v3_v3v3(co, co, vec, fac);
+ }
+ }
+ else if(me->dvert) {
+ maxVerts = me->totvert;
+ use_dverts = 1;
+ }
+
+ if(defgrp_index >= 0 && use_dverts) {
+ MDeformVert *dvert = me->dvert;
+ int i, j;
+
+ for(i = 0; i < maxVerts; i++, dvert++) {
+ if(dm) dvert = dm->getVertData(dm, i, CD_MDEFORMVERT);
+ for(j = 0; j < dvert->totweight; j++) {
+ if(dvert->dw[j].def_nr == defgrp_index) {
+ float fac = hmd->force*dvert->dw[j].weight;
+ float *co = vertexCos[i];
+
+ if(hmd->falloff != 0.0) {
+ float len = len_v3v3(co, hmd->cent);
+ if(len > hmd->falloff) fac = 0.0;
+ else if(len > 0.0)
+ fac *= sqrt(1.0 - len / hmd->falloff);
}
+
+ mul_v3_m4v3(vec, mat, co);
+ interp_v3_v3v3(co, co, vec, fac);
}
}
}
+ }
}
}
@@ -5785,7 +5710,7 @@
tsmd->crease_inner = smd->crease_inner;
tsmd->crease_outer = smd->crease_outer;
tsmd->crease_rim = smd->crease_rim;
- strcpy(tsmd->vgroup, smd->vgroup);
+ strcpy(tsmd->defgrp_name, smd->defgrp_name);
}
static DerivedMesh *solidifyModifier_applyModifier(ModifierData *md,
@@ -8239,22 +8164,11 @@
VECCOPY(dco[a], co)
}
- defgrp_index = -1;
+ defgrp_index = get_named_vertexgroup_num(ob, mmd->defgrp_name);
- if(mmd->defgrp_name[0]) {
- bDeformGroup *def;
+ if (defgrp_index >= 0)
+ dvert= dm->getVertDataArray(dm, CD_MDEFORMVERT);
- for(a=0, def=ob->defbase.first; def; def=def->next, a++) {
- if(!strcmp(def->name, mmd->defgrp_name)) {
- defgrp_index= a;
- break;
- }
- }
-
- if (defgrp_index >= 0)
- dvert= dm->getVertDataArray(dm, CD_MDEFORMVERT);
- }
-
/* do deformation */
fac= 1.0f;
Modified: trunk/blender/source/blender/makesdna/DNA_modifier_types.h
===================================================================
--- trunk/blender/source/blender/makesdna/DNA_modifier_types.h 2010-01-26 09:25:32 UTC (rev 26280)
+++ trunk/blender/source/blender/makesdna/DNA_modifier_types.h 2010-01-26 09:36:33 UTC (rev 26281)
@@ -679,7 +679,7 @@
typedef struct SolidifyModifierData {
ModifierData modifier;
- char vgroup[32]; /* name of vertex group to use */
+ char defgrp_name[32]; /* name of vertex group to use */
float offset; /* new surface offset level*/
float crease_inner;
float crease_outer;
Modified: trunk/blender/source/blender/makesrna/intern/rna_modifier.c
===================================================================
--- trunk/blender/source/blender/makesrna/intern/rna_modifier.c 2010-01-26 09:25:32 UTC (rev 26280)
+++ trunk/blender/source/blender/makesrna/intern/rna_modifier.c 2010-01-26 09:36:33 UTC (rev 26281)
@@ -328,7 +328,7 @@
static void rna_SolidifyModifier_vgroup_set(PointerRNA *ptr, const char *value)
{
SolidifyModifierData *smd= (SolidifyModifierData*)ptr->data;
- rna_object_vgroup_name_set(ptr, value, smd->vgroup, sizeof(smd->vgroup));
+ rna_object_vgroup_name_set(ptr, value, smd->defgrp_name, sizeof(smd->defgrp_name));
}
static void rna_DisplaceModifier_uvlayer_set(PointerRNA *ptr, const char *value)
@@ -2050,7 +2050,7 @@
RNA_def_property_update(prop, 0, "rna_Modifier_update");
prop= RNA_def_property(srna, "vertex_group", PROP_STRING, PROP_NONE);
- RNA_def_property_string_sdna(prop, NULL, "vgroup");
+ RNA_def_property_string_sdna(prop, NULL, "defgrp_name");
RNA_def_property_ui_text(prop, "Vertex Group", "Vertex group name.");
RNA_def_property_string_funcs(prop, NULL, NULL, "rna_SolidifyModifier_vgroup_set");
RNA_def_property_update(prop, 0, "rna_Modifier_update");
More information about the Bf-blender-cvs
mailing list