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:
authorTamito Kajiyama <rd6t-kjym@asahi-net.or.jp>2012-03-01 01:35:49 +0400
committerTamito Kajiyama <rd6t-kjym@asahi-net.or.jp>2012-03-01 01:35:49 +0400
commit35708fe15044445fead8bc7c3709edea6921cff5 (patch)
tree835087aae42cd973e4a51895e60e206434c0e0fe /source/blender/editors/transform/transform.c
parenta20ca0ca32087b97c76819be88091b7caf4da85c (diff)
parentaf0a469307d5abe30d59c62c61d8bbc361bdf359 (diff)
Merged changes in the trunk up to revision 44561.
Conflicts resolved: source/blender/bmesh/bmesh.h source/blender/bmesh/bmesh_operators.h source/blenderplayer/bad_level_call_stubs/stubs.c
Diffstat (limited to 'source/blender/editors/transform/transform.c')
-rw-r--r--source/blender/editors/transform/transform.c36
1 files changed, 24 insertions, 12 deletions
diff --git a/source/blender/editors/transform/transform.c b/source/blender/editors/transform/transform.c
index 2e1d3dfd150..98046ecb991 100644
--- a/source/blender/editors/transform/transform.c
+++ b/source/blender/editors/transform/transform.c
@@ -124,7 +124,7 @@ void setTransformViewMatrices(TransInfo *t)
calculateCenter2D(t);
}
-static void convertViewVec2D(View2D *v2d, float *vec, int dx, int dy)
+static void convertViewVec2D(View2D *v2d, float vec[3], int dx, int dy)
{
float divx, divy;
@@ -4601,7 +4601,7 @@ static int createSlideVerts(TransInfo *t)
}
em->bm->ob = t->obedit;
- bmesh_begin_edit(em->bm, BMO_OP_FLAG_UNTAN_MULTIRES);
+ bmesh_edit_begin(em->bm, BMO_OP_FLAG_UNTAN_MULTIRES);
/*create copies of faces for customdata projection*/
tempsv = sld->sv;
@@ -4631,6 +4631,7 @@ static int createSlideVerts(TransInfo *t)
BLI_smallhash_insert(&sld->vhash, (uintptr_t)tempsv->v, tempsv);
}
+ sld->origfaces_init = TRUE;
sld->em = em;
/*zero out start*/
@@ -4742,11 +4743,26 @@ void projectSVData(TransInfo *t, int final)
BLI_smallhash_release(&visit);
}
+void freeSlideTempFaces(SlideData *sld){
+ if(sld->origfaces_init){
+ SmallHashIter hiter;
+ BMFace *copyf;
+
+ copyf = BLI_smallhash_iternew(&sld->origfaces, &hiter, NULL);
+ for (; copyf; copyf=BLI_smallhash_iternext(&hiter, NULL)) {
+ BM_face_verts_kill(sld->em->bm, copyf);
+ }
+
+ BLI_smallhash_release(&sld->origfaces);
+
+ sld->origfaces_init = FALSE;
+ }
+}
+
+
void freeSlideVerts(TransInfo *t)
{
SlideData *sld = t->customData;
- SmallHashIter hiter;
- BMFace *copyf;
#if 0 /*BMESH_TODO*/
if(me->drawflag & ME_DRAWEXTRA_EDGELEN) {
@@ -4776,17 +4792,13 @@ void freeSlideVerts(TransInfo *t)
sld->perc = 0.0;
projectSVData(t, 0);
}
-
- copyf = BLI_smallhash_iternew(&sld->origfaces, &hiter, NULL);
- for (; copyf; copyf=BLI_smallhash_iternext(&hiter, NULL)) {
- BM_face_verts_kill(sld->em->bm, copyf);
- }
-
+
+ freeSlideTempFaces(sld);
+
sld->em->bm->ob = t->obedit;
- bmesh_end_edit(sld->em->bm, BMO_OP_FLAG_UNTAN_MULTIRES);
+ bmesh_edit_end(sld->em->bm, BMO_OP_FLAG_UNTAN_MULTIRES);
BLI_smallhash_release(&sld->vhash);
- BLI_smallhash_release(&sld->origfaces);
MEM_freeN(sld->sv);
MEM_freeN(sld);