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:
authorNicholas Bishop <nicholasbishop@gmail.com>2008-08-14 03:53:28 +0400
committerNicholas Bishop <nicholasbishop@gmail.com>2008-08-14 03:53:28 +0400
commitd2537c77ccc259d7007c6ffa2af2dd42713c020e (patch)
tree7bcbb6d43e0f6424ae0e27bc2ffb107d4113198f /source/blender/src
parent85292aacc954c552a2f4dc20f9df33dba92eeeea (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/src')
-rw-r--r--source/blender/src/buttons_editing.c21
-rw-r--r--source/blender/src/multires.c302
2 files changed, 2 insertions, 321 deletions
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;
-}