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:
authorTon Roosendaal <ton@blender.org>2009-01-04 17:14:06 +0300
committerTon Roosendaal <ton@blender.org>2009-01-04 17:14:06 +0300
commitf7cb86df3a9ceccc4d649e42735732a608169157 (patch)
tree558a9ba43708a2213b1afa8f46d79f5daa140bc6 /source/blender/editors/mesh
parent74f9e98c828c17910405092785633373d4ae88e8 (diff)
2.5
Think global, act local! The old favorite G.scene gone! Man... that took almost 2 days. Also removed G.curscreen and G.edbo. Not everything could get solved; here's some notes. - modifiers now store current scene in ModifierData. This is not meant for permanent, but it can probably stick there until we cleaned the anim system and depsgraph to cope better with timing issues. - Game engine G.scene should become an argument for staring it. Didn't solve this yet. - Texture nodes should get scene cfra, but the current implementation is too tightly wrapped to do it easily.
Diffstat (limited to 'source/blender/editors/mesh')
-rw-r--r--source/blender/editors/mesh/editface.c12
-rw-r--r--source/blender/editors/mesh/editmesh.c1
-rw-r--r--source/blender/editors/mesh/editmesh_add.c22
-rw-r--r--source/blender/editors/mesh/editmesh_loop.c4
-rw-r--r--source/blender/editors/mesh/editmesh_mods.c62
-rw-r--r--source/blender/editors/mesh/editmesh_tools.c109
-rw-r--r--source/blender/editors/mesh/meshtools.c7
7 files changed, 110 insertions, 107 deletions
diff --git a/source/blender/editors/mesh/editface.c b/source/blender/editors/mesh/editface.c
index 61bfc8b8a0f..a572013e849 100644
--- a/source/blender/editors/mesh/editface.c
+++ b/source/blender/editors/mesh/editface.c
@@ -623,11 +623,13 @@ MTFace *get_active_mtface(EditMesh *em, EditFace **act_efa, MCol **mcol, int slo
return NULL;
}
-void make_tfaces(Mesh *me)
+static void make_tfaces(Object *ob)
{
+ Mesh *me= ob->data;
+
if(!me->mtface) {
if(me->mr) {
- multires_add_layer(me, &me->mr->fdata, CD_MTFACE,
+ multires_add_layer(ob, &me->mr->fdata, CD_MTFACE,
CustomData_number_of_layers(&me->fdata, CD_MTFACE));
}
else {
@@ -1312,7 +1314,7 @@ void set_texturepaint(Scene *scene) /* toggle */
G.f |= G_TEXTUREPAINT;
if(me->mtface==NULL)
- make_tfaces(me);
+ make_tfaces(ob);
brush_check_exists(&scene->toolsettings->imapaint.brush);
GPU_paint_set_mipmap(0);
@@ -1373,9 +1375,9 @@ static void texpaint_tri_weights(Object *ob, float *v1, float *v2, float *v3, fl
}
/* compute uv coordinates of mouse in face */
-void texpaint_pick_uv(Object *ob, Mesh *mesh, unsigned int faceindex, short *xy, float *uv)
+void texpaint_pick_uv(Scene *scene, Object *ob, Mesh *mesh, unsigned int faceindex, short *xy, float *uv)
{
- DerivedMesh *dm = mesh_get_derived_final(ob, CD_MASK_BAREMESH);
+ DerivedMesh *dm = mesh_get_derived_final(scene, ob, CD_MASK_BAREMESH);
int *index = dm->getFaceDataArray(dm, CD_ORIGINDEX);
MTFace *tface = dm->getFaceDataArray(dm, CD_MTFACE), *tf;
int numfaces = dm->getNumFaces(dm), a;
diff --git a/source/blender/editors/mesh/editmesh.c b/source/blender/editors/mesh/editmesh.c
index 85fdc5d8ad5..9104e133cc6 100644
--- a/source/blender/editors/mesh/editmesh.c
+++ b/source/blender/editors/mesh/editmesh.c
@@ -1973,7 +1973,6 @@ static void *editMesh_to_undoMesh(void *emv)
// um->retopo_mode= scene->toolsettings->retopo_mode;
{
- Mesh *me= NULL; // XXX
Multires *mr= NULL; // XXX old-style multires
UndoMesh *prev= NULL; // XXX undo_editmode_get_prev(obedit);
diff --git a/source/blender/editors/mesh/editmesh_add.c b/source/blender/editors/mesh/editmesh_add.c
index 1833682b19e..91e1997a8f5 100644
--- a/source/blender/editors/mesh/editmesh_add.c
+++ b/source/blender/editors/mesh/editmesh_add.c
@@ -334,7 +334,7 @@ static void make_fgon(EditMesh *em, int make)
else {
EM_fgon_flags(em); // redo flags and indices for fgons
-// XXX DAG_object_flush_update(G.scene, obedit, OB_RECALC_DATA);
+// XXX DAG_object_flush_update(scene, obedit, OB_RECALC_DATA);
BIF_undo_push("Make FGon");
}
}
@@ -600,7 +600,7 @@ void addfaces_from_edgenet(EditMesh *em)
EM_select_flush(em);
BIF_undo_push("Add faces");
-// XXX DAG_object_flush_update(G.scene, obedit, OB_RECALC_DATA);
+// XXX DAG_object_flush_update(scene, obedit, OB_RECALC_DATA);
}
void addedgeface_mesh(EditMesh *em)
@@ -632,7 +632,7 @@ void addedgeface_mesh(EditMesh *em)
EM_select_edge(eed, 1);
BIF_undo_push("Add edge");
- // XXX DAG_object_flush_update(G.scene, obedit, OB_RECALC_DATA);
+ // XXX DAG_object_flush_update(scene, obedit, OB_RECALC_DATA);
return;
}
else if(amount > 4) {
@@ -734,11 +734,11 @@ void addedgeface_mesh(EditMesh *em)
BIF_undo_push("Add face");
}
-// XXX DAG_object_flush_update(G.scene, obedit, OB_RECALC_DATA);
+// XXX DAG_object_flush_update(scene, obedit, OB_RECALC_DATA);
}
-void adduplicate_mesh(Object *obedit, EditMesh *em)
+void adduplicate_mesh(Scene *scene, Object *obedit, EditMesh *em)
{
if(multires_test()) return;
@@ -755,8 +755,8 @@ void adduplicate_mesh(Object *obedit, EditMesh *em)
* This shouldn't be necessary, derived queries should be
* automatically building this data if invalid. Or something.
*/
-// XXX DAG_object_flush_update(G.scene, obedit, OB_RECALC_DATA);
- object_handle_update(obedit);
+ DAG_object_flush_update(scene, obedit, OB_RECALC_DATA);
+ object_handle_update(scene, obedit);
// XXX BIF_TransformSetUndo("Add Duplicate");
// initTransform(TFM_TRANSLATION, CTX_NO_PET);
@@ -773,13 +773,13 @@ static int confirm_objectExists(Scene *scene, Object *obedit, Mesh **me, float m
if(obedit==NULL) {
/* add_object actually returns an object ! :-)
But it also stores the added object struct in
- G.scene->basact->object (BASACT->object) */
+ scene->basact->object (BASACT->object) */
// XXX add_object_draw(OB_MESH);
obedit= BASACT->object;
- where_is_object(obedit);
+ where_is_object(scene, obedit);
make_editMesh(scene, obedit);
newob= 1;
@@ -1245,7 +1245,7 @@ void add_primitiveMesh(Scene *scene, View3D *v3d, Object *obedit, EditMesh *em,
char *undostr="Add Primitive";
char *name=NULL;
-// if(G.scene->id.lib) return;
+// if(scene->id.lib) return;
/* this function also comes from an info window */
// XXX if ELEM(curarea->spacetype, SPACE_VIEW3D, SPACE_INFO); else return;
@@ -1396,7 +1396,7 @@ void add_primitiveMesh(Scene *scene, View3D *v3d, Object *obedit, EditMesh *em,
if(type!=0 && type!=13) righthandfaces(em, 1); /* otherwise monkey has eyes in wrong direction... */
-// XXX DAG_object_flush_update(G.scene, obedit, OB_RECALC_DATA);
+// XXX DAG_object_flush_update(scene, obedit, OB_RECALC_DATA);
/* if a new object was created, it stores it in Mesh, for reload original data and undo */
if ( !(newob) || U.flag & USER_ADD_EDITMODE) {
diff --git a/source/blender/editors/mesh/editmesh_loop.c b/source/blender/editors/mesh/editmesh_loop.c
index 13cc90f3e2d..bb41accc10d 100644
--- a/source/blender/editors/mesh/editmesh_loop.c
+++ b/source/blender/editors/mesh/editmesh_loop.c
@@ -383,7 +383,7 @@ void CutEdgeloop(Object *obedit, EditMesh *em, int numcuts)
EM_selectmode_set(em);
}
-// DAG_object_flush_update(G.scene, obedit, OB_RECALC_DATA);
+// DAG_object_flush_update(scene, obedit, OB_RECALC_DATA);
return;
}
@@ -547,7 +547,7 @@ static float seg_intersect(EditEdge *e, CutCurve *c, int len, char mode, struct
int i;
//threshold = 0.000001; /*tolerance for vertex intersection*/
-// XXX threshold = G.scene->toolsettings->select_thresh / 100;
+// XXX threshold = scene->toolsettings->select_thresh / 100;
/* Get screen coords of verts */
scr = BLI_ghash_lookup(gh, e->v1);
diff --git a/source/blender/editors/mesh/editmesh_mods.c b/source/blender/editors/mesh/editmesh_mods.c
index 018df499dcc..375ebde5f52 100644
--- a/source/blender/editors/mesh/editmesh_mods.c
+++ b/source/blender/editors/mesh/editmesh_mods.c
@@ -119,15 +119,15 @@ void EM_automerge(int update)
{
// XXX int len;
-// if ((G.scene->automerge) &&
+// if ((scene->automerge) &&
// (obedit && obedit->type==OB_MESH) &&
// (((Mesh*)obedit->data)->mr==NULL)
// ) {
-// len = removedoublesflag(1, 1, G.scene->toolsettings->doublimit);
+// len = removedoublesflag(1, 1, scene->toolsettings->doublimit);
// if (len) {
// G.totvert -= len; /* saves doing a countall */
// if (update) {
-// DAG_object_flush_update(G.scene, obedit, OB_RECALC_DATA);
+// DAG_object_flush_update(scene, obedit, OB_RECALC_DATA);
// }
// }
// }
@@ -670,7 +670,7 @@ int facegroup_select(EditMesh *em, short mode)
unsigned int deselcount=0;
short ok=0;
- float thresh=0; // XXX G.scene->toolsettings->select_thresh;
+ float thresh=0; // XXX scene->toolsettings->select_thresh;
for(efa= em->faces.first; efa; efa= efa->next) {
if (!efa->h) {
@@ -814,7 +814,7 @@ static int edgegroup_select__internal(EditMesh *em, short mode)
unsigned int deselcount=0;
short ok=0;
- float thresh=0; // XXX G.scene->toolsettings->select_thresh;
+ float thresh=0; // XXX scene->toolsettings->select_thresh;
for(eed= em->edges.first; eed; eed= eed->next) {
if (!eed->h) {
@@ -1043,7 +1043,7 @@ int vertgroup_select(EditMesh *em, short mode)
unsigned int deselcount=0;
short ok=0;
- float thresh=0; // XXX G.scene->toolsettings->select_thresh;
+ float thresh=0; // XXX scene->toolsettings->select_thresh;
for(eve= em->verts.first; eve; eve= eve->next) {
if (!eve->h) {
@@ -1343,7 +1343,7 @@ void EM_mesh_copy_edge(EditMesh *em, short type)
}
if (change) {
-// DAG_object_flush_update(G.scene, obedit, OB_RECALC_DATA);
+// DAG_object_flush_update(scene, obedit, OB_RECALC_DATA);
BIF_undo_push("Copy Edge Attribute");
}
@@ -1472,7 +1472,7 @@ void EM_mesh_copy_face(EditMesh *em, short type)
}
if (change) {
-// DAG_object_flush_update(G.scene, obedit, OB_RECALC_DATA);
+// DAG_object_flush_update(scene, obedit, OB_RECALC_DATA);
if (type==3) {
// XXX allqueue(REDRAWIMAGE, 0);
}
@@ -1606,7 +1606,7 @@ void EM_mesh_copy_face_layer(EditMesh *em, short type)
}
if (change) {
-// DAG_object_flush_update(G.scene, obedit, OB_RECALC_DATA);
+// DAG_object_flush_update(scene, obedit, OB_RECALC_DATA);
BIF_undo_push("Copy Face Layer");
}
@@ -2006,7 +2006,7 @@ static void mouse_mesh_loop(ViewContext *vc)
}
}
- switch (0) { // XXX G.scene->toolsettings->edge_mode) {
+ switch (0) { // XXX scene->toolsettings->edge_mode) {
case EDGE_MODE_TAG_SEAM:
G.f |= G_DRAWSEAMS;
break;
@@ -2021,7 +2021,7 @@ static void mouse_mesh_loop(ViewContext *vc)
break;
}
-// DAG_object_flush_update(G.scene, obedit, OB_RECALC_DATA);
+// DAG_object_flush_update(scene, obedit, OB_RECALC_DATA);
}
}
@@ -2425,7 +2425,7 @@ void hide_mesh(EditMesh *em, int swap)
G.totedgesel= G.totfacesel= G.totvertsel= 0;
// if(EM_texFaceCheck())
- // DAG_object_flush_update(G.scene, obedit, OB_RECALC_DATA);
+ // DAG_object_flush_update(scene, obedit, OB_RECALC_DATA);
BIF_undo_push("Hide");
}
@@ -2463,7 +2463,7 @@ void reveal_mesh(EditMesh *em)
EM_selectmode_flush(em);
// if (EM_texFaceCheck())
-// DAG_object_flush_update(G.scene, obedit, OB_RECALC_DATA);
+// DAG_object_flush_update(scene, obedit, OB_RECALC_DATA);
BIF_undo_push("Reveal");
}
@@ -3431,7 +3431,7 @@ void Vertex_Menu(EditMesh *em)
switch(ret)
{
case 1:
-// XXX notice("Removed %d Vertices", removedoublesflag(1, 0, G.scene->toolsettings->doublimit));
+// XXX notice("Removed %d Vertices", removedoublesflag(1, 0, scene->toolsettings->doublimit));
BIF_undo_push("Remove Doubles");
break;
case 2:
@@ -3452,7 +3452,7 @@ void Vertex_Menu(EditMesh *em)
break;
}
/* some items crashed because this is in the original W menu but not here. should really manage this better */
-// DAG_object_flush_update(G.scene, obedit, OB_RECALC_DATA);
+// DAG_object_flush_update(scene, obedit, OB_RECALC_DATA);
}
@@ -3499,16 +3499,16 @@ void Edge_Menu(EditMesh *em)
case 11:
// editmesh_mark_sharp(em, 1);
BIF_undo_push("Mark Sharp");
-// DAG_object_flush_update(G.scene, obedit, OB_RECALC_DATA);
+// DAG_object_flush_update(scene, obedit, OB_RECALC_DATA);
break;
case 12:
// editmesh_mark_sharp(em, 0);
BIF_undo_push("Clear Sharp");
-// DAG_object_flush_update(G.scene, obedit, OB_RECALC_DATA);
+// DAG_object_flush_update(scene, obedit, OB_RECALC_DATA);
break;
}
/* some items crashed because this is in the original W menu but not here. should really manage this better */
-// DAG_object_flush_update(G.scene, obedit, OB_RECALC_DATA);
+// DAG_object_flush_update(scene, obedit, OB_RECALC_DATA);
}
void Face_Menu(EditMesh *em)
@@ -3525,7 +3525,7 @@ void Face_Menu(EditMesh *em)
{
case 1:
// flip_editnormals(em);
-// DAG_object_flush_update(G.scene, obedit, OB_RECALC_DATA);
+// DAG_object_flush_update(scene, obedit, OB_RECALC_DATA);
BIF_undo_push("Flip Normals");
break;
case 2:
@@ -3540,7 +3540,7 @@ void Face_Menu(EditMesh *em)
case 5: /* Quads to Tris */
// convert_to_triface(em, 0);
-// DAG_object_flush_update(G.scene, obedit, OB_RECALC_DATA);
+// DAG_object_flush_update(scene, obedit, OB_RECALC_DATA);
break;
case 6: /* Tris to Quads */
// join_triangles(em);
@@ -3570,7 +3570,7 @@ void Face_Menu(EditMesh *em)
break;
}
/* some items crashed because this is in the original W menu but not here. should really manage this better */
-// DAG_object_flush_update(G.scene, obedit, OB_RECALC_DATA);
+// DAG_object_flush_update(scene, obedit, OB_RECALC_DATA);
}
@@ -3781,7 +3781,7 @@ void righthandfaces(EditMesh *em, int select) /* makes faces righthand turning *
recalc_editnormals(em);
-// DAG_object_flush_update(G.scene, obedit, OB_RECALC_DATA);
+// DAG_object_flush_update(scene, obedit, OB_RECALC_DATA);
waitcursor(0);
}
@@ -3856,7 +3856,7 @@ void faceselect_align_view_to_selected(View3D *v3d, Mesh *me, int axis)
if (totselected == 0)
error("No faces selected.");
else
- view3d_align_axis_to_vector(v3d, axis, norm);
+ view3d_align_axis_to_vector(NULL, v3d, axis, norm);
}
/* helper for below, to survive non-uniform scaled objects */
@@ -3901,7 +3901,7 @@ void editmesh_align_view_to_selected(Object *obedit, EditMesh *em, View3D *v3d,
}
}
- view3d_align_axis_to_vector(v3d, axis, norm);
+ view3d_align_axis_to_vector(NULL, v3d, axis, norm);
}
else if (nselverts>2) {
float cent[3];
@@ -3926,7 +3926,7 @@ void editmesh_align_view_to_selected(Object *obedit, EditMesh *em, View3D *v3d,
}
Mat4Mul3Vecfl(obedit->obmat, norm);
- view3d_align_axis_to_vector(v3d, axis, norm);
+ view3d_align_axis_to_vector(NULL, v3d, axis, norm);
}
else if (nselverts==2) { /* Align view to edge (or 2 verts) */
EditVert *eve, *leve= NULL;
@@ -3943,7 +3943,7 @@ void editmesh_align_view_to_selected(Object *obedit, EditMesh *em, View3D *v3d,
}
}
Mat4Mul3Vecfl(obedit->obmat, norm);
- view3d_align_axis_to_vector(v3d, axis, norm);
+ view3d_align_axis_to_vector(NULL, v3d, axis, norm);
}
else if (nselverts==1) { /* Align view to vert normal */
EditVert *eve;
@@ -3957,7 +3957,7 @@ void editmesh_align_view_to_selected(Object *obedit, EditMesh *em, View3D *v3d,
}
}
Mat4Mul3Vecfl(obedit->obmat, norm);
- view3d_align_axis_to_vector(v3d, axis, norm);
+ view3d_align_axis_to_vector(NULL, v3d, axis, norm);
}
}
@@ -4049,7 +4049,7 @@ void vertexsmooth(Object *obedit, EditMesh *em)
if(eve->f & SELECT) {
if(eve->f1) {
-// XXX if (G.scene->toolsettings->editbutflag & B_MESH_X_MIRROR) {
+// XXX if (scene->toolsettings->editbutflag & B_MESH_X_MIRROR) {
// eve_mir= editmesh_get_x_mirror_vert(obedit, em, eve->co);
// }
@@ -4089,7 +4089,7 @@ void vertexsmooth(Object *obedit, EditMesh *em)
recalc_editnormals(em);
-// DAG_object_flush_update(G.scene, obedit, OB_RECALC_DATA);
+// DAG_object_flush_update(scene, obedit, OB_RECALC_DATA);
BIF_undo_push("Vertex Smooth");
}
@@ -4135,7 +4135,7 @@ void vertexnoise(Object *obedit, EditMesh *em)
}
recalc_editnormals(em);
-// DAG_object_flush_update(G.scene, obedit, OB_RECALC_DATA);
+// DAG_object_flush_update(scene, obedit, OB_RECALC_DATA);
BIF_undo_push("Vertex Noise");
}
@@ -4194,7 +4194,7 @@ void vertices_to_sphere(Scene *scene, View3D *v3d, Object *obedit, EditMesh *em)
}
recalc_editnormals(em);
-// DAG_object_flush_update(G.scene, obedit, OB_RECALC_DATA);
+// DAG_object_flush_update(scene, obedit, OB_RECALC_DATA);
BIF_undo_push("To Sphere");
}
diff --git a/source/blender/editors/mesh/editmesh_tools.c b/source/blender/editors/mesh/editmesh_tools.c
index 1d5e2b24d17..024ef433f1b 100644
--- a/source/blender/editors/mesh/editmesh_tools.c
+++ b/source/blender/editors/mesh/editmesh_tools.c
@@ -596,6 +596,7 @@ void hashvert_flag(EditMesh *em, int flag)
/* generic extern called extruder */
void extrude_mesh(Object *obedit, EditMesh *em)
{
+ Scene *scene= NULL; // XXX CTX!
float nor[3]= {0.0, 0.0, 0.0};
short nr, transmode= 0;
@@ -647,8 +648,8 @@ void extrude_mesh(Object *obedit, EditMesh *em)
* This shouldn't be necessary, derived queries should be
* automatically building this data if invalid. Or something.
*/
-// DAG_object_flush_update(G.scene, obedit, OB_RECALC_DATA);
- object_handle_update(obedit);
+// DAG_object_flush_update(scene, obedit, OB_RECALC_DATA);
+ object_handle_update(scene, obedit);
/* individual faces? */
// BIF_TransformSetUndo("Extrude");
@@ -686,7 +687,7 @@ void split_mesh(EditMesh *em)
waitcursor(0);
-// DAG_object_flush_update(G.scene, obedit, OB_RECALC_DATA);
+// DAG_object_flush_update(scene, obedit, OB_RECALC_DATA);
BIF_undo_push("Split");
@@ -722,7 +723,7 @@ void extrude_repeat_mesh(View3D *v3d, Object *obedit, EditMesh *em, int steps, f
EM_fgon_flags(em);
-// DAG_object_flush_update(G.scene, obedit, OB_RECALC_DATA);
+// DAG_object_flush_update(scene, obedit, OB_RECALC_DATA);
BIF_undo_push("Extrude Repeat");
}
@@ -751,7 +752,7 @@ void spin_mesh(View3D *v3d, Object *obedit, EditMesh *em, int steps, float degr,
phi= degr*M_PI/360.0;
phi/= steps;
-// if(G.scene->toolsettings->editbutflag & B_CLOCKWISE) phi= -phi;
+// if(scene->toolsettings->editbutflag & B_CLOCKWISE) phi= -phi;
if(dvec) {
n[0]= v3d->viewinv[1][0];
@@ -774,7 +775,7 @@ void spin_mesh(View3D *v3d, Object *obedit, EditMesh *em, int steps, float degr,
Mat3MulMat3(tmat,cmat,bmat);
Mat3MulMat3(bmat,imat,tmat);
-// if(mode==0) if(G.scene->toolsettings->editbutflag & B_KEEPORIG) adduplicateflag(1);
+// if(mode==0) if(scene->toolsettings->editbutflag & B_KEEPORIG) adduplicateflag(1);
ok= 1;
for(a=0;a<steps;a++) {
@@ -807,7 +808,7 @@ void spin_mesh(View3D *v3d, Object *obedit, EditMesh *em, int steps, float degr,
EM_fgon_flags(em);
- // DAG_object_flush_update(G.scene, obedit, OB_RECALC_DATA);
+ // DAG_object_flush_update(scene, obedit, OB_RECALC_DATA);
if(dvec==NULL) BIF_undo_push("Spin");
@@ -1062,7 +1063,7 @@ void delete_mesh(Object *obedit, EditMesh *em)
EM_fgon_flags(em); // redo flags and indices for fgons
-// DAG_object_flush_update(G.scene, obedit, OB_RECALC_DATA);
+// DAG_object_flush_update(scene, obedit, OB_RECALC_DATA);
BIF_undo_push(str);
}
@@ -1145,7 +1146,7 @@ void fill_mesh(EditMesh *em)
waitcursor(0);
EM_select_flush(em);
-// DAG_object_flush_update(G.scene, obedit, OB_RECALC_DATA);
+// DAG_object_flush_update(scene, obedit, OB_RECALC_DATA);
BIF_undo_push("Fill");
}
@@ -1574,7 +1575,7 @@ static void fill_quad_double_adj_path(EditMesh *em, EditFace *efa, struct GHash
if (ctrl)
hold->e1->f2 |= EDGEINNER;
facecopy(em, efa,hold);
- //if(G.scene->toolsettings->editbutflag & B_AUTOFGON) {
+ //if(scene->toolsettings->editbutflag & B_AUTOFGON) {
// hold->e1->h |= EM_FGON;
//}
// Make side faces
@@ -1734,7 +1735,7 @@ static void fill_quad_double_adj_inner(EditMesh *em, EditFace *efa, struct GHash
hold->e2->f2 |= EDGEINNER;
facecopy(em, efa,hold);
- //if(G.scene->toolsettings->editbutflag & B_AUTOFGON) {
+ //if(scene->toolsettings->editbutflag & B_AUTOFGON) {
// hold->e1->h |= EM_FGON;
//}
// Add Fill Quads (if # cuts > 1)
@@ -1750,7 +1751,7 @@ static void fill_quad_double_adj_inner(EditMesh *em, EditFace *efa, struct GHash
hold->e4->f2 |= EDGEINNER;
facecopy(em, efa,hold);
- //if(G.scene->toolsettings->editbutflag & B_AUTOFGON) {
+ //if(scene->toolsettings->editbutflag & B_AUTOFGON) {
// hold->e1->h |= EM_FGON;
//}
}
@@ -1957,7 +1958,7 @@ static void fill_quad_triple(EditMesh *em, EditFace *efa, struct GHash *gh, int
// Also Make inner quad
hold = addfacelist(em, verts[1][numcuts/2],verts[1][(numcuts/2)+1],verts[2][numcuts/2],verts[0][(numcuts/2)+1],NULL,NULL);
hold->e3->f2 |= EDGEINNER;
- //if(G.scene->toolsettings->editbutflag & B_AUTOFGON) {
+ //if(scene->toolsettings->editbutflag & B_AUTOFGON) {
// hold->e3->h |= EM_FGON;
//}
facecopy(em, efa,hold);
@@ -1966,7 +1967,7 @@ static void fill_quad_triple(EditMesh *em, EditFace *efa, struct GHash *gh, int
// Make inner tri
hold = addfacelist(em, verts[1][(numcuts/2)+1],verts[2][(numcuts/2)+1],verts[0][(numcuts/2)+1],NULL,NULL,NULL);
hold->e2->f2 |= EDGEINNER;
- //if(G.scene->toolsettings->editbutflag & B_AUTOFGON) {
+ //if(scene->toolsettings->editbutflag & B_AUTOFGON) {
// hold->e2->h |= EM_FGON;
//}
facecopy(em, efa,hold);
@@ -2526,7 +2527,7 @@ void esubdivideflag(Object *obedit, EditMesh *em, int flag, float rad, int beaut
}
}
-// DAG_object_flush_update(G.scene, obedit, OB_RECALC_DATA);
+// DAG_object_flush_update(scene, obedit, OB_RECALC_DATA);
// Now for each face in the mesh we need to figure out How many edges were cut
// and which filling method to use for that face
for(ef = em->faces.first;ef;ef = ef->next) {
@@ -2602,7 +2603,7 @@ void esubdivideflag(Object *obedit, EditMesh *em, int flag, float rad, int beaut
(ef->e2->f & flag && ef->e4->f & flag)) {
fill_quad_double_op(em, ef, gh, numcuts);
}else{
- switch(0) { // XXX G.scene->toolsettings->cornertype) {
+ switch(0) { // XXX scene->toolsettings->cornertype) {
case 0: fill_quad_double_adj_path(em, ef, gh, numcuts); break;
case 1: fill_quad_double_adj_inner(em, ef, gh, numcuts); break;
case 2: fill_quad_double_adj_fan(em, ef, gh, numcuts); break;
@@ -2729,7 +2730,7 @@ void esubdivideflag(Object *obedit, EditMesh *em, int flag, float rad, int beaut
}
recalc_editnormals(em);
-// DAG_object_flush_update(G.scene, obedit, OB_RECALC_DATA);
+// DAG_object_flush_update(scene, obedit, OB_RECALC_DATA);
}
static int count_selected_edges(EditEdge *ed)
@@ -3079,7 +3080,7 @@ void beauty_fill(EditMesh *em)
EM_select_flush(em);
-// DAG_object_flush_update(G.scene, obedit, OB_RECALC_DATA);
+// DAG_object_flush_update(scene, obedit, OB_RECALC_DATA);
BIF_undo_push("Beauty Fill");
}
@@ -3153,7 +3154,7 @@ static int compareFaceAttribs(EditMesh *em, EditFace *f1, EditFace *f2, EditEdge
/*Test to see if the per-face attributes for the joining edge match within limit*/
MTFace *tf1, *tf2;
unsigned int *col1, *col2;
- short i,attrok=0, flag = 0, /* XXX G.scene->toolsettings->editbutflag,*/ fe1[2], fe2[2];
+ short i,attrok=0, flag = 0, /* XXX scene->toolsettings->editbutflag,*/ fe1[2], fe2[2];
tf1 = CustomData_em_get(&em->fdata, f1->data, CD_MTFACE);
tf2 = CustomData_em_get(&em->fdata, f2->data, CD_MTFACE);
@@ -3234,7 +3235,7 @@ void join_triangles(EditMesh *em)
EVPtr *efaa = NULL;
float *creases = NULL;
float measure; /*Used to set tolerance*/
- float limit = 0.0f; // XXX G.scene->toolsettings->jointrilimit;
+ float limit = 0.0f; // XXX scene->toolsettings->jointrilimit;
int i, ok, totedge=0, totseledge=0, complexedges, vindex[4];
/*test for multi-resolution data*/
@@ -3311,9 +3312,9 @@ void join_triangles(EditMesh *em)
the python scripts bundled with Blender releases.
*/
-// XXX if(G.scene->toolsettings->editbutflag & B_JOINTRIA_SHARP && eed->sharp); /*do nothing*/
-// else if(G.scene->toolsettings->editbutflag & B_JOINTRIA_MAT && efaa[0]->mat_nr != efaa[1]->mat_nr); /*do nothing*/
-// else if(((G.scene->toolsettings->editbutflag & B_JOINTRIA_UV) || (G.scene->toolsettings->editbutflag & B_JOINTRIA_VCOL)) &&
+// XXX if(scene->toolsettings->editbutflag & B_JOINTRIA_SHARP && eed->sharp); /*do nothing*/
+// else if(scene->toolsettings->editbutflag & B_JOINTRIA_MAT && efaa[0]->mat_nr != efaa[1]->mat_nr); /*do nothing*/
+// else if(((scene->toolsettings->editbutflag & B_JOINTRIA_UV) || (scene->toolsettings->editbutflag & B_JOINTRIA_VCOL)) &&
compareFaceAttribs(em, efaa[0], efaa[1], eed); // XXX == 0); /*do nothing*/
// else{
measure = measure_facepair(v1, v2, v3, v4, limit);
@@ -3384,7 +3385,7 @@ void join_triangles(EditMesh *em)
if(edsortblock) MEM_freeN(edsortblock);
EM_selectmode_flush(em);
-// DAG_object_flush_update(G.scene, obedit, OB_RECALC_DATA);
+// DAG_object_flush_update(scene, obedit, OB_RECALC_DATA);
BIF_undo_push("Convert Triangles to Quads");
}
@@ -3482,7 +3483,7 @@ void edge_flip(EditMesh *em)
MEM_freeN(efaar);
-// DAG_object_flush_update(G.scene, obedit, OB_RECALC_DATA);
+// DAG_object_flush_update(scene, obedit, OB_RECALC_DATA);
BIF_undo_push("Flip Triangle Edges");
@@ -3719,7 +3720,7 @@ void edge_rotate_selected(EditMesh *em, int dir)
/* flush selected vertices (again) to edges/faces */
EM_select_flush(em);
-// DAG_object_flush_update(G.scene, obedit, OB_RECALC_DATA);
+// DAG_object_flush_update(scene, obedit, OB_RECALC_DATA);
BIF_undo_push("Rotate Edge");
}
@@ -4144,7 +4145,7 @@ int EdgeSlide(EditMesh *em, short immediate, float imperc)
}
- if (uvlay_tot) { // XXX && (G.scene->toolsettings->uvcalc_flag & UVCALC_TRANSFORM_CORRECT)) {
+ if (uvlay_tot) { // XXX && (scene->toolsettings->uvcalc_flag & UVCALC_TRANSFORM_CORRECT)) {
int maxnum = 0;
uvarray = MEM_callocN( uvlay_tot * sizeof(GHash *), "SlideUVs Array");
suv_last = slideuvs = MEM_callocN( uvlay_tot * (numadded+1) * sizeof(SlideUv), "SlideUVs"); /* uvLayers * verts */
@@ -4341,7 +4342,7 @@ int EdgeSlide(EditMesh *em, short immediate, float imperc)
tempev = editedge_getOtherVert((perc>=0)?tempsv->up:tempsv->down, ev);
VecLerpf(ev->co, tempsv->origvert.co, tempev->co, fabs(perc));
- if (0) { // XXX G.scene->toolsettings->uvcalc_flag & UVCALC_TRANSFORM_CORRECT) {
+ if (0) { // XXX scene->toolsettings->uvcalc_flag & UVCALC_TRANSFORM_CORRECT) {
for (uvlay_idx=0; uvlay_idx<uvlay_tot; uvlay_idx++) {
suv = BLI_ghash_lookup( uvarray[uvlay_idx], ev );
if (suv && suv->fuv_list && suv->uv_up && suv->uv_down) {
@@ -4370,7 +4371,7 @@ int EdgeSlide(EditMesh *em, short immediate, float imperc)
if(newlen < 0.0) {newlen = 0.0;}
if(flip == 0) {
VecLerpf(ev->co, editedge_getOtherVert(tempsv->down,ev)->co, editedge_getOtherVert(tempsv->up,ev)->co, fabs(newlen));
- if (0) { // XXX G.scene->toolsettings->uvcalc_flag & UVCALC_TRANSFORM_CORRECT) {
+ if (0) { // XXX scene->toolsettings->uvcalc_flag & UVCALC_TRANSFORM_CORRECT) {
/* dont do anything if no UVs */
for (uvlay_idx=0; uvlay_idx<uvlay_tot; uvlay_idx++) {
suv = BLI_ghash_lookup( uvarray[uvlay_idx], ev );
@@ -4387,7 +4388,7 @@ int EdgeSlide(EditMesh *em, short immediate, float imperc)
} else{
VecLerpf(ev->co, editedge_getOtherVert(tempsv->up,ev)->co, editedge_getOtherVert(tempsv->down,ev)->co, fabs(newlen));
- if (0) { // XXX G.scene->toolsettings->uvcalc_flag & UVCALC_TRANSFORM_CORRECT) {
+ if (0) { // XXX scene->toolsettings->uvcalc_flag & UVCALC_TRANSFORM_CORRECT) {
/* dont do anything if no UVs */
for (uvlay_idx=0; uvlay_idx<uvlay_tot; uvlay_idx++) {
suv = BLI_ghash_lookup( uvarray[uvlay_idx], ev );
@@ -4543,7 +4544,7 @@ int EdgeSlide(EditMesh *em, short immediate, float imperc)
} else {
draw = 0;
}
-// DAG_object_flush_update(G.scene, obedit, OB_RECALC_DATA);
+// DAG_object_flush_update(scene, obedit, OB_RECALC_DATA);
}
@@ -4563,7 +4564,7 @@ int EdgeSlide(EditMesh *em, short immediate, float imperc)
if(!immediate)
EM_automerge(0);
-// DAG_object_flush_update(G.scene, obedit, OB_RECALC_DATA);
+// DAG_object_flush_update(scene, obedit, OB_RECALC_DATA);
// scrarea_queue_winredraw(curarea);
//BLI_ghash_free(edgesgh, freeGHash, NULL);
@@ -4571,7 +4572,7 @@ int EdgeSlide(EditMesh *em, short immediate, float imperc)
BLI_linklist_free(vertlist,NULL);
BLI_linklist_free(edgelist,NULL);
- if (uvlay_tot) { // XXX && (G.scene->toolsettings->uvcalc_flag & UVCALC_TRANSFORM_CORRECT)) {
+ if (uvlay_tot) { // XXX && (scene->toolsettings->uvcalc_flag & UVCALC_TRANSFORM_CORRECT)) {
for (uvlay_idx=0; uvlay_idx<uvlay_tot; uvlay_idx++) {
BLI_ghash_free(uvarray[uvlay_idx], NULL, NULL);
}
@@ -4599,20 +4600,20 @@ int EdgeLoopDelete(EditMesh *em)
/* temporal flag setting so we keep UVs when deleting edge loops,
* this is a bit of a hack but it works how you would want in almost all cases */
- // short uvcalc_flag_orig = 0; // XXX G.scene->toolsettings->uvcalc_flag;
- // G.scene->toolsettings->uvcalc_flag |= UVCALC_TRANSFORM_CORRECT;
+ // short uvcalc_flag_orig = 0; // XXX scene->toolsettings->uvcalc_flag;
+ // scene->toolsettings->uvcalc_flag |= UVCALC_TRANSFORM_CORRECT;
if(!EdgeSlide(em, 1, 1)) {
return 0;
}
/* restore uvcalc flag */
- // G.scene->toolsettings->uvcalc_flag = uvcalc_flag_orig;
+ // scene->toolsettings->uvcalc_flag = uvcalc_flag_orig;
EM_select_more(em);
removedoublesflag(em, 1,0, 0.001);
EM_select_flush(em);
- // DAG_object_flush_update(G.scene, obedit, OB_RECALC_DATA);
+ // DAG_object_flush_update(scene, obedit, OB_RECALC_DATA);
return 1;
}
@@ -4705,7 +4706,7 @@ void mesh_set_smooth_faces(EditMesh *em, short event)
efa= efa->next;
}
-// DAG_object_flush_update(G.scene, obedit, OB_RECALC_DATA);
+// DAG_object_flush_update(scene, obedit, OB_RECALC_DATA);
if(event==1) BIF_undo_push("Set Smooth");
else if(event==0) BIF_undo_push("Set Solid");
@@ -4754,10 +4755,10 @@ void mesh_rip(EditMesh *em)
float projectMat[4][4], vec[3], dist, mindist; // viewMat[4][4], XXX
short doit= 1, mval[2]; // XXX ,propmode,prop;
-// XXX propmode = G.scene->prop_mode;
-// G.scene->prop_mode = 0;
-// prop = G.scene->proportional;
-// G.scene->proportional = 0;
+// XXX propmode = scene->prop_mode;
+// scene->prop_mode = 0;
+// prop = scene->proportional;
+// scene->proportional = 0;
/* select flush... vertices are important */
EM_selectmode_set(em);
@@ -4945,8 +4946,8 @@ void mesh_rip(EditMesh *em)
// initTransform(TFM_TRANSLATION, 0);
// Transform();
-// G.scene->prop_mode = propmode;
-// XXX G.scene->proportional = prop;
+// scene->prop_mode = propmode;
+// XXX scene->proportional = prop;
}
void shape_propagate(Scene *scene, Object *obedit, EditMesh *em)
@@ -5033,7 +5034,7 @@ void shape_copy_from_lerp(EditMesh *em, KeyBlock* thisBlock, KeyBlock* fromBlock
}
}
sprintf(str,"Blending at %d%c MMB to Copy at 100%c",(int)(perc*100),'%','%');
-// DAG_object_flush_update(G.scene, obedit, OB_RECALC_DATA);
+// DAG_object_flush_update(scene, obedit, OB_RECALC_DATA);
// headerprint(str);
// force_draw(0);
@@ -5633,7 +5634,7 @@ int collapseEdges(EditMesh *em)
freecollections(&allcollections);
removedoublesflag(em, 1, 0, MERGELIMIT);
/*get rid of this!*/
-// DAG_object_flush_update(G.scene, obedit, OB_RECALC_DATA);
+// DAG_object_flush_update(scene, obedit, OB_RECALC_DATA);
// if (EM_texFaceCheck())
@@ -5693,7 +5694,7 @@ int merge_target(EditMesh *em, int target, int uvmerge)
collapseuvs(em, NULL);
}
-// DAG_object_flush_update(G.scene, obedit, OB_RECALC_DATA);
+// DAG_object_flush_update(scene, obedit, OB_RECALC_DATA);
return removedoublesflag(em, 1, 0, MERGELIMIT);
@@ -5858,7 +5859,7 @@ void pathselect(EditMesh *em)
MEM_freeN(previous);
BLI_heap_free(heap, NULL);
EM_select_flush(em);
- // DAG_object_flush_update(G.scene, obedit, OB_RECALC_DATA);
+ // DAG_object_flush_update(scene, obedit, OB_RECALC_DATA);
// if (EM_texFaceCheck())
}
@@ -5895,7 +5896,7 @@ void region_to_loop(EditMesh *em)
em->selectmode = SCE_SELECT_EDGE;
EM_selectmode_set(em);
- // DAG_object_flush_update(G.scene, obedit, OB_RECALC_DATA);
+ // DAG_object_flush_update(scene, obedit, OB_RECALC_DATA);
// if (EM_texFaceCheck())
@@ -6054,7 +6055,7 @@ void loop_to_region(EditMesh *em)
}
freecollections(&allcollections);
-// DAG_object_flush_update(G.scene, obedit, OB_RECALC_DATA);
+// DAG_object_flush_update(scene, obedit, OB_RECALC_DATA);
// if (EM_texFaceCheck())
@@ -6126,7 +6127,7 @@ void mesh_rotate_uvs(EditMesh *em)
}
if (change) {
-// DAG_object_flush_update(G.scene, obedit, OB_RECALC_DATA);
+// DAG_object_flush_update(scene, obedit, OB_RECALC_DATA);
BIF_undo_push("Rotate UV face");
}
@@ -6209,7 +6210,7 @@ void mesh_mirror_uvs(EditMesh *em)
}
if (change) {
-// DAG_object_flush_update(G.scene, obedit, OB_RECALC_DATA);
+// DAG_object_flush_update(scene, obedit, OB_RECALC_DATA);
BIF_undo_push("Mirror UV face");
}
@@ -6259,7 +6260,7 @@ void mesh_rotate_colors(EditMesh *em)
}
if (change) {
-// DAG_object_flush_update(G.scene, obedit, OB_RECALC_DATA);
+// DAG_object_flush_update(scene, obedit, OB_RECALC_DATA);
BIF_undo_push("Rotate Color face");
}
@@ -6308,7 +6309,7 @@ void mesh_mirror_colors(EditMesh *em)
}
if (change) {
-// DAG_object_flush_update(G.scene, obedit, OB_RECALC_DATA);
+// DAG_object_flush_update(scene, obedit, OB_RECALC_DATA);
BIF_undo_push("Mirror Color face");
}
}
diff --git a/source/blender/editors/mesh/meshtools.c b/source/blender/editors/mesh/meshtools.c
index 94730be507c..29c11e69a67 100644
--- a/source/blender/editors/mesh/meshtools.c
+++ b/source/blender/editors/mesh/meshtools.c
@@ -950,12 +950,12 @@ static int thread_break(void)
return G.afbreek;
}
-static ScrArea *biggest_image_area(void)
+static ScrArea *biggest_image_area(bScreen *screen)
{
ScrArea *sa, *big= NULL;
int size, maxsize= 0;
- for(sa= G.curscreen->areabase.first; sa; sa= sa->next) {
+ for(sa= screen->areabase.first; sa; sa= sa->next) {
if(sa->spacetype==SPACE_IMAGE) {
size= sa->winx*sa->winy;
if(sa->winx > 10 && sa->winy > 10 && size > maxsize) {
@@ -1004,8 +1004,9 @@ void objects_bake_render(Scene *scene, short event, char **error_msg)
}
if(event>0) {
+ bScreen *screen= NULL; // XXX CTX
Render *re= RE_NewRender("_Bake View_");
- ScrArea *area= biggest_image_area();
+ ScrArea *area= biggest_image_area(screen);
ListBase threads;
BakeRender bkr;
int timer=0, tot; // XXX, sculptmode= G.f & G_SCULPTMODE;