diff options
author | Nicholas Bishop <nicholasbishop@gmail.com> | 2008-08-14 03:53:28 +0400 |
---|---|---|
committer | Nicholas Bishop <nicholasbishop@gmail.com> | 2008-08-14 03:53:28 +0400 |
commit | d2537c77ccc259d7007c6ffa2af2dd42713c020e (patch) | |
tree | 7bcbb6d43e0f6424ae0e27bc2ffb107d4113198f /source/blender | |
parent | 85292aacc954c552a2f4dc20f9df33dba92eeeea (diff) |
Removed a bunch of references to the old multires.
Note: python needs updating to work with the new multires. For now, I've just been commenting out the python multires stuff with #warnings
Diffstat (limited to 'source/blender')
-rw-r--r-- | source/blender/blenkernel/intern/subsurf_ccg.c | 2 | ||||
-rw-r--r-- | source/blender/include/multires.h | 22 | ||||
-rw-r--r-- | source/blender/python/api2_2x/Mesh.c | 18 | ||||
-rw-r--r-- | source/blender/render/intern/source/convertblender.c | 1 | ||||
-rw-r--r-- | source/blender/src/buttons_editing.c | 21 | ||||
-rw-r--r-- | source/blender/src/multires.c | 302 |
6 files changed, 11 insertions, 355 deletions
diff --git a/source/blender/blenkernel/intern/subsurf_ccg.c b/source/blender/blenkernel/intern/subsurf_ccg.c index 2e8e0f864be..94c1f6872e1 100644 --- a/source/blender/blenkernel/intern/subsurf_ccg.c +++ b/source/blender/blenkernel/intern/subsurf_ccg.c @@ -64,8 +64,6 @@ #include "CCGSubSurf.h" -#include "multires.h" - typedef struct _VertData { float co[3]; float no[3]; diff --git a/source/blender/include/multires.h b/source/blender/include/multires.h index e4726c02d7e..87b10010873 100644 --- a/source/blender/include/multires.h +++ b/source/blender/include/multires.h @@ -30,30 +30,8 @@ #ifndef MULTIRES_H #define MULTIRES_H -struct CustomData; -struct EditMesh; -struct Object; -struct MDeformVert; -struct Mesh; -struct MultiresLevel; -struct Multires; -struct uiBlock; - /* For canceling operations that don't work with multires on or on a non-base level */ int multires_test(); int multires_level1_test(); -void multires_draw_interface(struct uiBlock *block, unsigned short cx, unsigned short cy); - -void multires_make(void *ob, void *me); -void multires_delete(void *ob, void *me); -void multires_level_to_editmesh(struct Object *ob, struct Mesh *me, const int render); -void multires_finish_mesh_update(struct Object *ob); -void multires_subdivide(void *ob, void *me); -void multires_del_lower(void *ob, void *me); -void multires_del_higher(void *ob, void *me); -void multires_set_level_cb(void *ob, void *me); -void multires_edge_level_update_cb(void *ob, void *me); -int multires_modifier_warning(); - #endif diff --git a/source/blender/python/api2_2x/Mesh.c b/source/blender/python/api2_2x/Mesh.c index f65a1e4ccbe..ac993b8fe69 100644 --- a/source/blender/python/api2_2x/Mesh.c +++ b/source/blender/python/api2_2x/Mesh.c @@ -87,7 +87,6 @@ #include "constant.h" #include "gen_utils.h" #include "gen_library.h" -#include "multires.h" /* EXPP Mesh defines */ @@ -7157,19 +7156,20 @@ static int Mesh_setMultires( BPy_Mesh * self, PyObject *value, void *type ) "value out of range" ); switch (GET_INT_FROM_POINTER(type)) { +#warning "Python needs to be updated to work with the new multires." case MESH_MULTIRES_LEVEL: - self->mesh->mr->newlvl = i; - multires_set_level_cb(self->object, self->mesh); + /*self->mesh->mr->newlvl = i; + multires_set_level_cb(self->object, self->mesh);*/ break; case MESH_MULTIRES_EDGE: - self->mesh->mr->edgelvl = i; - multires_edge_level_update(self->object, self->mesh); + /*self->mesh->mr->edgelvl = i; + multires_edge_level_update(self->object, self->mesh);*/ break; case MESH_MULTIRES_PIN: - self->mesh->mr->pinlvl = i; + /*self->mesh->mr->pinlvl = i;*/ break; case MESH_MULTIRES_RENDER: - self->mesh->mr->renderlvl = i; + /*self->mesh->mr->renderlvl = i;*/ break; } @@ -8061,14 +8061,14 @@ static int Mesh_setFlag( BPy_Mesh * self, PyObject *value, void *type ) if( !param ) { if ( mesh->mr ) { - multires_delete(self->object, mesh); + /*multires_delete(self->object, mesh);*/ } } else { if ( !mesh->mr ) { if (mesh->key) return EXPP_ReturnIntError( PyExc_RuntimeError, "Cannot enable multires for a mesh with shape keys" ); - multires_make(self->object, mesh); + /*multires_make(self->object, mesh);*/ } } return 0; diff --git a/source/blender/render/intern/source/convertblender.c b/source/blender/render/intern/source/convertblender.c index faa7a68f754..5dddc216b59 100644 --- a/source/blender/render/intern/source/convertblender.c +++ b/source/blender/render/intern/source/convertblender.c @@ -100,7 +100,6 @@ #include "IMB_imbuf_types.h" #include "envmap.h" -#include "multires.h" #include "occlusion.h" #include "render_types.h" #include "rendercore.h" diff --git a/source/blender/src/buttons_editing.c b/source/blender/src/buttons_editing.c index 92af7d63e17..0a33c1a0d9c 100644 --- a/source/blender/src/buttons_editing.c +++ b/source/blender/src/buttons_editing.c @@ -736,14 +736,7 @@ static void delete_customdata_layer(void *data1, void *data2) rndlayerdata = data->layers[CustomData_get_render_layer_index(data, type)].data; CustomData_set_layer_active(data, type, layer - &data->layers[index]); - /* Multires is handled seperately because the display data is separate - from the data stored in multires */ - if(me && me->mr) { - multires_delete_layer(me, &me->mr->fdata, type, layer - &data->layers[index]); - multires_level_to_editmesh(OBACT, me, 0); - multires_finish_mesh_update(OBACT); - } - else if(G.obedit) { + if(G.obedit) { EM_free_data_layer(data, type); } else if(me) { @@ -4789,13 +4782,7 @@ void do_meshbuts(unsigned short event) break; case B_NEWTFACE: - if(me && me->mr) { - layernum= CustomData_number_of_layers(&me->fdata, CD_MTFACE); - multires_add_layer(me, &me->mr->fdata, CD_MTFACE, layernum); - multires_level_to_editmesh(ob, me, 0); - multires_finish_mesh_update(ob); - } - else if(G.obedit) { + if(G.obedit) { layernum= CustomData_number_of_layers(&em->fdata, CD_MTFACE); EM_add_data_layer(&em->fdata, CD_MTFACE); CustomData_set_layer_active(&em->fdata, CD_MTFACE, layernum); @@ -4826,10 +4813,6 @@ void do_meshbuts(unsigned short event) CustomData_set_layer_active(fdata, CD_MTFACE, acttface-1); mesh_update_customdata_pointers(me); - /* Update first-level face data in multires */ - if(me && me->mr && me->mr->current != 1) - CustomData_set_layer_active(&me->mr->fdata, CD_MTFACE, acttface-1); - DAG_object_flush_update(G.scene, ob, OB_RECALC_DATA); BIF_undo_push("Set Active UV Texture"); allqueue(REDRAWVIEW3D, 0); diff --git a/source/blender/src/multires.c b/source/blender/src/multires.c index abad36f05ce..cf811fde300 100644 --- a/source/blender/src/multires.c +++ b/source/blender/src/multires.c @@ -79,8 +79,6 @@ #include <math.h> -void multires_calc_temp_data(struct MultiresLevel *lvl); - int multires_test() { Mesh *me= get_mesh(OBACT); @@ -107,303 +105,3 @@ void multires_check_state() if(G.f & G_SCULPTMODE && !G.obedit) sculptmode_correct_state(); } - -static void medge_flag_to_eed(const short flag, const char crease, EditEdge *eed) -{ - if(!eed) return; - - if(flag & ME_SEAM) eed->seam= 1; - if(flag & ME_SHARP) eed->sharp = 1; - if(flag & SELECT) eed->f |= SELECT; - if(flag & ME_FGON) eed->h= EM_FGON; - if(flag & ME_HIDE) eed->h |= 1; - - eed->crease= ((float)crease)/255.0; -} - -void multires_level_to_editmesh(Object *ob, Mesh *me, const int render) -{ - MultiresLevel *lvl= BLI_findlink(&me->mr->levels,me->mr->current-1); - int i; - EditMesh *em= (!render && G.obedit) ? G.editMesh : NULL; - EditVert **eves= NULL; - EditEdge *eed= NULL; - - if(em) { - /* Remove editmesh elements */ - free_editMesh(em); - - eves= MEM_callocN(sizeof(EditVert*)*lvl->totvert, "editvert pointers"); - - /* Vertices/Edges/Faces */ - for(i=0; i<lvl->totvert; ++i) { - eves[i]= addvertlist(me->mr->verts[i].co, NULL); - if(me->mr->verts[i].flag & 1) eves[i]->f |= SELECT; - if(me->mr->verts[i].flag & ME_HIDE) eves[i]->h= 1; - eves[i]->data= NULL; - } - for(i=0; i<lvl->totedge; ++i) { - addedgelist(eves[lvl->edges[i].v[0]], eves[lvl->edges[i].v[1]], NULL); - } - for(i=0; i<lvl->totface; ++i) { - EditVert *eve4= lvl->faces[i].v[3] ? eves[lvl->faces[i].v[3]] : NULL; - EditFace *efa= addfacelist(eves[lvl->faces[i].v[0]], eves[lvl->faces[i].v[1]], - eves[lvl->faces[i].v[2]], eve4, NULL, NULL); - efa->flag= lvl->faces[i].flag & ~ME_HIDE; - efa->mat_nr= lvl->faces[i].mat_nr; - if(lvl->faces[i].flag & ME_FACE_SEL) - efa->f |= SELECT; - if(lvl->faces[i].flag & ME_HIDE) efa->h= 1; - efa->data= NULL; - } - - /* Edge flags */ - eed= em->edges.first; - if(lvl==me->mr->levels.first) { - for(i=0; i<lvl->totedge; ++i) { - medge_flag_to_eed(me->mr->edge_flags[i], me->mr->edge_creases[i], eed); - eed= eed->next; - } - } else { - MultiresLevel *lvl1= me->mr->levels.first; - const int last= lvl1->totedge * pow(2, me->mr->current-1); - for(i=0; i<last; ++i) { - const int ndx= i / pow(2, me->mr->current-1); - - medge_flag_to_eed(me->mr->edge_flags[ndx], me->mr->edge_creases[ndx], eed); - eed= eed->next; - } - } - - eed= em->edges.first; - for(i=0, eed= em->edges.first; i<lvl->totedge; ++i, eed= eed->next) { - eed->h= me->mr->verts[lvl->edges[i].v[0]].flag & ME_HIDE || - me->mr->verts[lvl->edges[i].v[1]].flag & ME_HIDE; - } - - EM_select_flush(); - - multires_customdata_to_mesh(me, em, lvl, &me->mr->vdata, em ? &em->vdata : &me->vdata, CD_MDEFORMVERT); - multires_customdata_to_mesh(me, em, lvl, &me->mr->fdata, em ? &em->fdata : &me->fdata, CD_MTFACE); - - /* Colors */ - if(me->mr->use_col) { - MCol c[4]; - EditFace *efa= NULL; - CustomData *src= &em->fdata; - - if(me->mr->use_col) EM_add_data_layer(src, CD_MCOL); - efa= em->faces.first; - - for(i=0; i<lvl->totface; ++i) { - if(me->mr->use_col) { - multires_to_mcol(&lvl->colfaces[i], c); - CustomData_em_set(src, efa->data, CD_MCOL, c); - } - efa= efa->next; - } - - } - - mesh_update_customdata_pointers(me); - - MEM_freeN(eves); - DAG_object_flush_update(G.scene, ob, OB_RECALC_DATA); - recalc_editnormals(); - } -} - -void multires_make(void *ob, void *me_v) -{ - Mesh *me= me_v; - Key *key; - - /* Check for shape keys */ - key= me->key; - if(key) { - int ret= okee("Adding multires will delete all shape keys, proceed?"); - if(ret) { - free_key(key); - me->key= NULL; - } else - return; - } - - waitcursor(1); - - multires_check_state(); - - multires_create(ob, me); - - allqueue(REDRAWBUTSEDIT, 0); - BIF_undo_push("Make multires"); - waitcursor(0); -} - -void multires_delete(void *ob, void *me_v) -{ - Mesh *me= me_v; - multires_free(me->mr); - me->mr= NULL; - - multires_check_state(); - - allqueue(REDRAWBUTSEDIT, 0); - - BIF_undo_push("Apply multires"); -} - -/* Make sure that all level indices are clipped to [1, mr->level_count] */ -void multires_clip_levels(Multires *mr) -{ - if(mr) { - const int cnt = mr->level_count; - - if(mr->current < 1) mr->current = 1; - if(mr->edgelvl < 1) mr->edgelvl = 1; - if(mr->pinlvl < 1) mr->pinlvl = 1; - if(mr->renderlvl < 1) mr->renderlvl = 1; - - if(mr->current > cnt) mr->current = cnt; - if(mr->edgelvl > cnt) mr->edgelvl = cnt; - if(mr->pinlvl > cnt) mr->pinlvl = cnt; - if(mr->renderlvl > cnt) mr->renderlvl = cnt; - } -} - -/* Delete all multires levels beneath current level. Subdivide special - first-level data up to the new lowest level. */ -void multires_del_lower(void *ob, void *me) -{ - Multires *mr= ((Mesh*)me)->mr; - MultiresLevel *lvl1= mr->levels.first, *cr_lvl= current_level(mr); - MultiresLevel *lvl= NULL, *lvlprev= NULL; - short *edgeflags= NULL; - char *edgecreases= NULL; - int i, last; - - if(cr_lvl == lvl1) return; - - multires_check_state(); - - /* Subdivide the edge flags to the current level */ - edgeflags= MEM_callocN(sizeof(short)*current_level(mr)->totedge, "Multires Edge Flags"); - edgecreases= MEM_callocN(sizeof(char)*current_level(mr)->totedge, "Multires Edge Creases"); - last= lvl1->totedge * pow(2, mr->current-1); - for(i=0; i<last; ++i) { - edgeflags[i] = mr->edge_flags[(int)(i / pow(2, mr->current-1))]; - edgecreases[i] = mr->edge_creases[(int)(i / pow(2, mr->current-1))]; - } - MEM_freeN(mr->edge_flags); - MEM_freeN(mr->edge_creases); - mr->edge_flags= edgeflags; - mr->edge_creases= edgecreases; - - multires_del_lower_customdata(mr, cr_lvl); - - lvl= cr_lvl->prev; - while(lvl) { - lvlprev= lvl->prev; - - multires_free_level(lvl); - BLI_freelinkN(&mr->levels, lvl); - - mr->current-= 1; - mr->level_count-= 1; - - lvl= lvlprev; - } - mr->newlvl= mr->current; - - multires_clip_levels(mr); - - allqueue(REDRAWBUTSEDIT, 0); - - BIF_undo_push("Multires delete lower"); -} - -void multires_del_higher(void *ob, void *me) -{ - Multires *mr= ((Mesh*)me)->mr; - MultiresLevel *lvl= BLI_findlink(&mr->levels,mr->current-1); - MultiresLevel *lvlnext; - - multires_check_state(); - - lvl= lvl->next; - while(lvl) { - lvlnext= lvl->next; - - multires_free_level(lvl); - BLI_freelinkN(&mr->levels,lvl); - - mr->level_count-= 1; - - lvl= lvlnext; - } - - multires_clip_levels(mr); - - allqueue(REDRAWBUTSEDIT, 0); - - BIF_undo_push("Multires delete higher"); -} - -void multires_finish_mesh_update(Object *ob) -{ - /* friendly check for background render */ - if(G.background==0) { - object_handle_update(ob); - countall(); - - if(G.vd && G.vd->depths) G.vd->depths->damaged= 1; - allqueue(REDRAWVIEW3D, 0); - allqueue(REDRAWIMAGE, 0); - } -} - -void multires_set_level_cb(void *ob, void *me) -{ - waitcursor(1); - - multires_check_state(); - - multires_set_level(ob, me, 0); - multires_level_to_editmesh(ob, me, 0); - multires_finish_mesh_update(ob); - - if(G.obedit || G.f & G_SCULPTMODE) - BIF_undo_push("Multires set level"); - - allqueue(REDRAWBUTSEDIT, 0); - - waitcursor(0); -} - -void multires_edge_level_update_cb(void *ob_v, void *me_v) -{ - multires_edge_level_update(ob_v, me_v); - allqueue(REDRAWVIEW3D, 0); -} - -int multires_modifier_warning() -{ - ModifierData *md; - - for(md= modifiers_getVirtualModifierList(OBACT); md; md= md->next) { - if(md->mode & eModifierMode_Render) { - switch(md->type) { - case eModifierType_Subsurf: - case eModifierType_Build: - case eModifierType_Mirror: - case eModifierType_Decimate: - case eModifierType_Boolean: - case eModifierType_Array: - case eModifierType_EdgeSplit: - return 1; - } - } - } - - return 0; -} |