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
path: root/source
diff options
context:
space:
mode:
authorGeoffrey Bantle <hairbat@yahoo.com>2008-03-01 19:32:23 +0300
committerGeoffrey Bantle <hairbat@yahoo.com>2008-03-01 19:32:23 +0300
commit5aed02aafec8eb4628c723ad1fd9bb55dae09bb0 (patch)
tree681cd55a9d521b946b35fdb46d219f9a5c38889e /source
parentea05fef650f46ce5dd8305b76f0a652fe22c3d09 (diff)
-> Bevel modifier cleanup
Bevel modifier had several problems. These should be fixed now. The bevel modifier in editmode cannot have 'apply to cage' checked as the modifier cannot possibly support mapping. Further, custom data preservation has been turned off temporarily, but will be added back in soon.
Diffstat (limited to 'source')
-rw-r--r--source/blender/blenkernel/intern/BME_conversions.c40
-rw-r--r--source/blender/blenkernel/intern/BME_mesh.c8
-rw-r--r--source/blender/blenkernel/intern/BME_structure.c34
-rw-r--r--source/blender/blenkernel/intern/modifier.c3
4 files changed, 23 insertions, 62 deletions
diff --git a/source/blender/blenkernel/intern/BME_conversions.c b/source/blender/blenkernel/intern/BME_conversions.c
index db4e39794d6..e34aba2d5d7 100644
--- a/source/blender/blenkernel/intern/BME_conversions.c
+++ b/source/blender/blenkernel/intern/BME_conversions.c
@@ -69,10 +69,8 @@ BME_Mesh *BME_editmesh_to_bmesh(EditMesh *em, BME_Mesh *bm) {
int len;
BME_model_begin(bm);
- /*custom data*/
/*add verts*/
- CustomData_copy(&em->vdata, &bm->vdata, CD_MASK_EDITMESH, CD_CALLOC, 0);
eve= em->verts.first;
while(eve) {
v1 = BME_MV(bm,eve->co);
@@ -84,14 +82,10 @@ BME_Mesh *BME_editmesh_to_bmesh(EditMesh *em, BME_Mesh *bm) {
/* link the verts for edge and face construction;
* kind of a dangerous thing - remember to cast back to BME_Vert before using! */
eve->tmp.v = (EditVert*)v1;
-
- CustomData_em_copy_data(&em->vdata, &bm->vdata, eve->data, &v1->data);
-
eve = eve->next;
}
/*add edges*/
- CustomData_copy(&em->edata, &bm->edata, CD_MASK_EDITMESH, CD_CALLOC, 0);
eed= em->edges.first;
while(eed) {
v1 = (BME_Vert*)eed->v1->tmp.v;
@@ -104,7 +98,6 @@ BME_Mesh *BME_editmesh_to_bmesh(EditMesh *em, BME_Mesh *bm) {
if(eed->seam) e->flag |= ME_SEAM;
if(eed->h & EM_FGON) e->flag |= ME_FGON;
if(eed->h & 1) e->flag |= ME_HIDE;
- CustomData_em_copy_data(&em->edata, &bm->edata, eed->data, &e->data);
/* link the edges for face construction;
* kind of a dangerous thing - remember to cast back to BME_Edge before using! */
@@ -113,7 +106,6 @@ BME_Mesh *BME_editmesh_to_bmesh(EditMesh *em, BME_Mesh *bm) {
}
/*add faces.*/
- CustomData_copy(&em->fdata, &bm->pdata, CD_MASK_EDITMESH, CD_CALLOC, 0);
efa= em->faces.first;
while(efa) {
if(efa->v4) len = 4;
@@ -141,8 +133,6 @@ BME_Mesh *BME_editmesh_to_bmesh(EditMesh *em, BME_Mesh *bm) {
if(efa->f & 1) f->flag |= ME_FACE_SEL;
else f->flag &= ~ME_FACE_SEL;
}
- CustomData_em_copy_data(&em->fdata, &bm->pdata, efa->data, &f->data);
-
efa = efa->next;
}
BME_model_end(bm);
@@ -171,7 +161,6 @@ EditMesh *BME_bmesh_to_editmesh(BME_Mesh *bm, BME_TransData_Head *td) {
/* convert to EditMesh */
/* make editverts */
- CustomData_copy(&bm->vdata, &em->vdata, CD_MASK_EDITMESH, CD_CALLOC, 0);
totvert = BLI_countlist(&(bm->verts));
evlist= (EditVert **)MEM_mallocN(totvert*sizeof(void *),"evlist");
for (i=0,v1=bm->verts.first;v1;v1=v1->next,i++) {
@@ -185,11 +174,9 @@ EditMesh *BME_bmesh_to_editmesh(BME_Mesh *bm, BME_TransData_Head *td) {
eve1->f = (unsigned char)v1->flag;
eve1->h = (unsigned char)v1->h;
eve1->bweight = v1->bweight;
- CustomData_em_copy_data(&bm->vdata, &em->vdata, v1->data, &eve1->data);
}
/* make edges */
- CustomData_copy(&bm->edata, &em->edata, CD_MASK_EDITMESH, CD_CALLOC, 0);
for (e=bm->edges.first;e;e=e->next) {
if(!(findedgelist(evlist[e->v1->tflag1], evlist[e->v2->tflag1]))){
eed= addedgelist(evlist[e->v1->tflag1], evlist[e->v2->tflag1], NULL);
@@ -202,12 +189,10 @@ EditMesh *BME_bmesh_to_editmesh(BME_Mesh *bm, BME_TransData_Head *td) {
if(e->flag & ME_HIDE) eed->h |= 1;
if(G.scene->selectmode==SCE_SELECT_EDGE)
EM_select_edge(eed, eed->f & SELECT);
- CustomData_em_copy_data(&bm->edata, &em->edata, e->data, &eed->data);
}
}
/* make faces */
- CustomData_copy(&bm->pdata, &em->fdata, CD_MASK_EDITMESH, CD_CALLOC, 0);
for (f=bm->polys.first;f;f=f->next) {
len = BME_cycle_length(f->loopbase);
if (len==3 || len==4) {
@@ -222,7 +207,6 @@ EditMesh *BME_bmesh_to_editmesh(BME_Mesh *bm, BME_TransData_Head *td) {
}
efa = addfacelist(eve1, eve2, eve3, eve4, NULL, NULL);
- CustomData_em_copy_data(&bm->pdata, &em->fdata, f->data, &efa->data);
efa->mat_nr = (unsigned char)f->mat_nr;
efa->flag= f->flag & ~ME_HIDE;
if(f->flag & ME_FACE_SEL) {
@@ -266,21 +250,13 @@ BME_Mesh *BME_derivedmesh_to_bmesh(DerivedMesh *dm, BME_Mesh *bm)
vert_array = MEM_mallocN(sizeof(*vert_array)*totvert,"BME_derivedmesh_to_bmesh BME_Vert* array");
- /*custom data*/
- /* NOTE: I haven't tested whether or not custom data is being copied correctly */
- CustomData_copy(&dm->vertData, &bm->vdata, CD_MASK_DERIVEDMESH,
- CD_CALLOC, 0);
- CustomData_copy(&dm->edgeData, &bm->edata, CD_MASK_DERIVEDMESH,
- CD_CALLOC, 0);
- CustomData_copy(&dm->faceData, &bm->pdata, CD_MASK_DERIVEDMESH,
- CD_CALLOC, 0);
+ BME_model_begin(bm);
/*add verts*/
for(i=0,mv = mvert; i < totvert;i++,mv++){
v1 = BME_MV(bm,mv->co);
vert_array[i] = v1;
v1->flag = mv->flag;
v1->bweight = mv->bweight/255.0f;
- CustomData_to_em_block(&dm->vertData, &bm->vdata, i, &v1->data);
}
/*add edges*/
for(i=0,me = medge; i < totedge;i++,me++){
@@ -291,7 +267,6 @@ BME_Mesh *BME_derivedmesh_to_bmesh(DerivedMesh *dm, BME_Mesh *bm)
e->bweight = me->bweight/255.0f;
e->flag = (unsigned char)me->flag;
BLI_edgehash_insert(edge_hash,me->v1,me->v2,e);
- CustomData_to_em_block(&dm->edgeData, &bm->edata, i, &e->data);
}
/*add faces.*/
for(i=0,mf = mface; i < totface;i++,mf++){
@@ -315,9 +290,9 @@ BME_Mesh *BME_derivedmesh_to_bmesh(DerivedMesh *dm, BME_Mesh *bm)
f = BME_MF(bm,v1,v2,edar,len);
f->mat_nr = mf->mat_nr;
f->flag = mf->flag;
- CustomData_to_em_block(&dm->faceData, &bm->pdata, i, &f->data);
}
+ BME_model_end(bm);
BLI_edgehash_free(edge_hash, NULL);
MEM_freeN(vert_array);
return bm;
@@ -364,21 +339,12 @@ DerivedMesh *BME_bmesh_to_derivedmesh(BME_Mesh *bm, DerivedMesh *dm)
/*convert back to mesh*/
result = CDDM_from_template(dm,totvert,totedge,totface);
- /*custom data*/
- /* NOTE: I haven't tested whether or not custom data is being copied correctly */
- CustomData_merge(&bm->vdata, &result->vertData, CD_MASK_DERIVEDMESH,
- CD_CALLOC, totvert);
- CustomData_merge(&bm->edata, &result->edgeData, CD_MASK_DERIVEDMESH,
- CD_CALLOC, totedge);
- CustomData_merge(&bm->pdata, &result->faceData, CD_MASK_DERIVEDMESH,
- CD_CALLOC, totface);
/*Make Verts*/
mvert = CDDM_get_verts(result);
for(i=0,v1=bm->verts.first,mv=mvert;v1;v1=v1->next,i++,mv++){
VECCOPY(mv->co,v1->co);
mv->flag = (unsigned char)v1->flag;
mv->bweight = (char)(255.0*v1->bweight);
- CustomData_from_em_block(&bm->vdata, &result->vertData, v1->data, i);
}
medge = CDDM_get_edges(result);
i=0;
@@ -396,7 +362,6 @@ DerivedMesh *BME_bmesh_to_derivedmesh(BME_Mesh *bm, DerivedMesh *dm)
me->crease = (char)(255.0*e->crease);
me->bweight = (char)(255.0*e->bweight);
me->flag = e->flag;
- CustomData_from_em_block(&bm->edata, &result->edgeData, e->data, i);
me++;
i++;
}
@@ -421,7 +386,6 @@ DerivedMesh *BME_bmesh_to_derivedmesh(BME_Mesh *bm, DerivedMesh *dm)
i++;
mf->mat_nr = (unsigned char)f->mat_nr;
mf->flag = (unsigned char)f->flag;
- CustomData_from_em_block(&bm->pdata, &result->faceData, f->data, i);
}
}
}
diff --git a/source/blender/blenkernel/intern/BME_mesh.c b/source/blender/blenkernel/intern/BME_mesh.c
index eee094da891..dfd86f8af8b 100644
--- a/source/blender/blenkernel/intern/BME_mesh.c
+++ b/source/blender/blenkernel/intern/BME_mesh.c
@@ -111,10 +111,10 @@ void BME_free_mesh(BME_Mesh *bm)
for(loopref=bm->loops.first;loopref;loopref=loopref->next) BME_delete_loop(bm,loopref->data);
BLI_freelistN(&(bm->loops));
- CustomData_free(&bm->vdata, 0);
- CustomData_free(&bm->edata, 0);
- CustomData_free(&bm->ldata, 0);
- CustomData_free(&bm->pdata, 0);
+ //CustomData_free(&bm->vdata, 0);
+ //CustomData_free(&bm->edata, 0);
+ //CustomData_free(&bm->ldata, 0);
+ //CustomData_free(&bm->pdata, 0);
MEM_freeN(bm);
}
diff --git a/source/blender/blenkernel/intern/BME_structure.c b/source/blender/blenkernel/intern/BME_structure.c
index 17f91c1d078..78afb502572 100644
--- a/source/blender/blenkernel/intern/BME_structure.c
+++ b/source/blender/blenkernel/intern/BME_structure.c
@@ -60,7 +60,7 @@ int BME_verts_in_edge(BME_Vert *v1, BME_Vert *v2, BME_Edge *e){
return 0;
}
-BME_Vert *BME_edge_getothervert(BME_Edge *e, BME_Vert *v){
+BME_Vert *BME_edge_getothervert(BME_Edge *e, BME_Vert *v){
if(e->v1 == v) return e->v2;
else if(e->v2 == v) return e->v1;
return NULL;
@@ -96,10 +96,10 @@ BME_Vert *BME_addvertlist(BME_Mesh *bm, BME_Vert *example){
if(example)
VECCOPY(v->co,example->co);
- if(example)
- CustomData_em_copy_data(&bm->vdata, &bm->vdata, example->data, &v->data);
- else
- CustomData_em_set_default(&bm->vdata, &v->data);
+ //if(example)
+ // CustomData_em_copy_data(&bm->vdata, &bm->vdata, example->data, &v->data);
+ //else
+ // CustomData_em_set_default(&bm->vdata, &v->data);
return v;
}
@@ -115,10 +115,10 @@ BME_Edge *BME_addedgelist(BME_Mesh *bm, BME_Vert *v1, BME_Vert *v2, BME_Edge *ex
bm->totedge++;
BLI_addtail(&(bm->edges), e);
- if(example)
- CustomData_em_copy_data(&bm->edata, &bm->edata, example->data, &e->data);
- else
- CustomData_em_set_default(&bm->edata, &e->data);
+ //if(example)
+ // CustomData_em_copy_data(&bm->edata, &bm->edata, example->data, &e->data);
+ //else
+ // CustomData_em_set_default(&bm->edata, &e->data);
return e;
@@ -156,10 +156,10 @@ BME_Poly *BME_addpolylist(BME_Mesh *bm, BME_Poly *example){
bm->nextp++;
bm->totpoly++;
- if(example)
- CustomData_em_copy_data(&bm->pdata, &bm->pdata, example->data, &f->data);
- else
- CustomData_em_set_default(&bm->pdata, &f->data);
+ //if(example)
+ // CustomData_em_copy_data(&bm->pdata, &bm->pdata, example->data, &f->data);
+ //else
+ // CustomData_em_set_default(&bm->pdata, &f->data);
return f;
@@ -170,22 +170,22 @@ BME_Poly *BME_addpolylist(BME_Mesh *bm, BME_Poly *example){
*/
void BME_free_vert(BME_Mesh *bm, BME_Vert *v){
bm->totvert--;
- CustomData_em_free_block(&bm->vdata, &v->data);
+ //CustomData_em_free_block(&bm->vdata, &v->data);
MEM_freeN(v);
}
void BME_free_edge(BME_Mesh *bm, BME_Edge *e){
bm->totedge--;
- CustomData_em_free_block(&bm->edata, &e->data);
+ //CustomData_em_free_block(&bm->edata, &e->data);
MEM_freeN(e);
}
void BME_free_poly(BME_Mesh *bm, BME_Poly *f){
bm->totpoly--;
- CustomData_em_free_block(&bm->pdata, &f->data);
+ //CustomData_em_free_block(&bm->pdata, &f->data);
MEM_freeN(f);
}
void BME_delete_loop(BME_Mesh *bm, BME_Loop *l){
bm->totloop--;
- CustomData_em_free_block(&bm->ldata, &l->data);
+ //CustomData_em_free_block(&bm->ldata, &l->data);
MEM_freeN(l);
}
void BME_free_loop(BME_Mesh *bm, BME_Loop *l){
diff --git a/source/blender/blenkernel/intern/modifier.c b/source/blender/blenkernel/intern/modifier.c
index cc54ced4b4d..4db391ddc95 100644
--- a/source/blender/blenkernel/intern/modifier.c
+++ b/source/blender/blenkernel/intern/modifier.c
@@ -2746,9 +2746,7 @@ static DerivedMesh *bevelModifier_applyModifier(
bm = BME_make_mesh();
bm = BME_derivedmesh_to_bmesh(derivedData, bm);
- BME_model_begin(bm);
BME_bevel(bm,bmd->value,bmd->res,options,defgrp_index,bmd->bevel_angle,NULL);
- BME_model_end(bm);
result = BME_bmesh_to_derivedmesh(bm,derivedData);
BME_free_mesh(bm);
@@ -7042,7 +7040,6 @@ ModifierTypeInfo *modifierType_getInfo(ModifierType type)
mti = INIT_TYPE(Bevel);
mti->type = eModifierTypeType_Constructive;
mti->flags = eModifierTypeFlag_AcceptsMesh
- | eModifierTypeFlag_SupportsMapping
| eModifierTypeFlag_SupportsEditmode
| eModifierTypeFlag_EnableInEditmode;
mti->initData = bevelModifier_initData;