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:
authorGeoffrey Bantle <hairbat@yahoo.com>2008-02-24 01:11:16 +0300
committerGeoffrey Bantle <hairbat@yahoo.com>2008-02-24 01:11:16 +0300
commite03ab146ae673ec296e97f3c146c048417833521 (patch)
tree24e5d7445c6ce151fb95f4252f23319165dacd23 /source/blender/src/editmesh.c
parent40934ef6df34a70f2275f1208d9433830e9ccf8f (diff)
-> Bevel tools and Bmesh kernel
The following is a commit of Levi Schooley's bevel code and the bmesh library it depends on. The current editmode bevel has been replaced with a new per edge bevel function. Vertex beveling is also availible. To set weights for the modifier to use, use the ctrl-shift-e shortcut on either edges or vertices. Recursive beveling is turned of for the time being.
Diffstat (limited to 'source/blender/src/editmesh.c')
-rw-r--r--source/blender/src/editmesh.c26
1 files changed, 20 insertions, 6 deletions
diff --git a/source/blender/src/editmesh.c b/source/blender/src/editmesh.c
index de4bcda157f..acb4134a040 100644
--- a/source/blender/src/editmesh.c
+++ b/source/blender/src/editmesh.c
@@ -163,10 +163,13 @@ EditVert *addvertlist(float *vec, EditVert *example)
createVerseVert(eve);
#endif
- if(example)
+ if(example) {
CustomData_em_copy_data(&em->vdata, &em->vdata, example->data, &eve->data);
- else
+ eve->bweight = example->bweight;
+ }
+ else {
CustomData_em_set_default(&em->vdata, &eve->data);
+ }
return eve;
}
@@ -299,6 +302,7 @@ EditEdge *addedgelist(EditVert *v1, EditVert *v2, EditEdge *example)
rule is to do this with addedgelist call, before addfacelist */
if(example) {
eed->crease= example->crease;
+ eed->bweight= example->bweight;
eed->sharp = example->sharp;
eed->seam = example->seam;
eed->h |= (example->h & EM_FGON);
@@ -896,6 +900,8 @@ void make_editMesh()
eve->no[1]= mvert->no[1]/32767.0;
eve->no[2]= mvert->no[2]/32767.0;
+ eve->bweight= ((float)mvert->bweight)/255.0f;
+
/* lets overwrite the keyindex of the editvert
* with the order it used to be in before
* editmode
@@ -915,7 +921,8 @@ void make_editMesh()
eed= addedgelist(evlist[medge->v1], evlist[medge->v2], NULL);
/* eed can be zero when v1 and v2 are identical, dxf import does this... */
if(eed) {
- eed->crease= ((float)medge->crease)/255.0;
+ eed->crease= ((float)medge->crease)/255.0f;
+ eed->bweight= ((float)medge->bweight)/255.0f;
if(medge->flag & ME_SEAM) eed->seam= 1;
if(medge->flag & ME_SHARP) eed->sharp = 1;
@@ -1153,7 +1160,8 @@ void load_editMesh(void)
mvert->flag= 0;
if(eve->f1==1) mvert->flag |= ME_SPHERETEST;
mvert->flag |= (eve->f & SELECT);
- if (eve->h) mvert->flag |= ME_HIDE;
+ if (eve->h) mvert->flag |= ME_HIDE;
+ mvert->bweight= (char)(255.0*eve->bweight);
#ifdef WITH_VERSE
if(eve->vvert) {
@@ -1205,6 +1213,7 @@ void load_editMesh(void)
if(eed->h & 1) medge->flag |= ME_HIDE;
medge->crease= (char)(255.0*eed->crease);
+ medge->bweight= (char)(255.0*eed->bweight);
CustomData_from_em_block(&em->edata, &me->edata, eed->data, a);
eed->tmp.l = a++;
@@ -1926,6 +1935,7 @@ typedef struct EditVertC
float no[3];
float co[3];
unsigned char f, h;
+ short bweight;
int keyindex;
} EditVertC;
@@ -1933,7 +1943,7 @@ typedef struct EditEdgeC
{
int v1, v2;
unsigned char f, h, seam, sharp, pad;
- short crease, fgoni;
+ short crease, bweight, fgoni;
} EditEdgeC;
typedef struct EditFaceC
@@ -2034,6 +2044,7 @@ static void *editMesh_to_undoMesh(void)
evec->h= eve->h;
evec->keyindex= eve->keyindex;
eve->tmp.l = a; /*store index*/
+ evec->bweight= (short)(eve->bweight*255.0);
CustomData_from_em_block(&em->vdata, &um->vdata, eve->data, a);
}
@@ -2048,6 +2059,7 @@ static void *editMesh_to_undoMesh(void)
eedc->seam= eed->seam;
eedc->sharp= eed->sharp;
eedc->crease= (short)(eed->crease*255.0);
+ eedc->bweight= (short)(eed->bweight*255.0);
eedc->fgoni= eed->fgoni;
eed->tmp.l = a; /*store index*/
CustomData_from_em_block(&em->edata, &um->edata, eed->data, a);
@@ -2161,6 +2173,7 @@ static void undoMesh_to_editMesh(void *umv)
eve->f= evec->f;
eve->h= evec->h;
eve->keyindex= evec->keyindex;
+ eve->bweight= ((float)evec->bweight)/255.0f;
CustomData_to_em_block(&um->vdata, &em->vdata, a, &eve->data);
}
@@ -2174,7 +2187,8 @@ static void undoMesh_to_editMesh(void *umv)
eed->seam= eedc->seam;
eed->sharp= eedc->sharp;
eed->fgoni= eedc->fgoni;
- eed->crease= ((float)eedc->crease)/255.0;
+ eed->crease= ((float)eedc->crease)/255.0f;
+ eed->bweight= ((float)eedc->bweight)/255.0f;
CustomData_to_em_block(&um->edata, &em->edata, a, &eed->data);
}