diff options
author | Joseph Eagar <joeedh@gmail.com> | 2009-09-06 06:43:36 +0400 |
---|---|---|
committer | Joseph Eagar <joeedh@gmail.com> | 2009-09-06 06:43:36 +0400 |
commit | 67c64cf82b8b8f8def26a3412437f8d63e13adf6 (patch) | |
tree | 1f268fc9526e31ac087e45cee444bfe62f489ff4 /source/blender/editors | |
parent | 971155b3733f56ebf3aedddc65a6110a5b1229ae (diff) |
more optimization stuff. transformed a few functions into macro that profiling showed were taking a bunch of time. also have some work-in-progress (if disabled) stuff related to inlining, which I'm trying to get working but may be too much trouble.
Diffstat (limited to 'source/blender/editors')
-rw-r--r-- | source/blender/editors/transform/transform_conversions.c | 27 | ||||
-rw-r--r-- | source/blender/editors/uvedit/uvedit_unwrap_ops.c | 3 |
2 files changed, 28 insertions, 2 deletions
diff --git a/source/blender/editors/transform/transform_conversions.c b/source/blender/editors/transform/transform_conversions.c index 34b36c9b7c1..f7acab46c4b 100644 --- a/source/blender/editors/transform/transform_conversions.c +++ b/source/blender/editors/transform/transform_conversions.c @@ -1907,9 +1907,33 @@ static void editmesh_set_connectivity_distance(EditMesh *em, int total, float *v VECCOPY(centout, cent); } +#define VertsToTransData(t, td, em, eve) \ + td->flag = 0;\ + td->loc = eve->co;\ + VECCOPY(td->center, td->loc);\ + if(t->around==V3D_LOCAL && (em->selectmode & SCE_SELECT_FACE))\ + get_face_center(td->center, em, eve);\ + VECCOPY(td->iloc, td->loc);\ + VECCOPY(td->axismtx[2], eve->no);\ + td->axismtx[0][0] =\ + td->axismtx[0][1] =\ + td->axismtx[0][2] =\ + td->axismtx[1][0] =\ + td->axismtx[1][1] =\ + td->axismtx[1][2] = 0.0f;\ + td->ext = NULL;\ + td->tdi = NULL;\ + td->val = NULL;\ + td->extra = NULL;\ + if (t->mode == TFM_BWEIGHT) {\ + td->val = &(eve->bweight);\ + td->ival = eve->bweight;\ + } + +#if 0 //way to overwrite what data is edited with transform //static void VertsToTransData(TransData *td, EditVert *eve, BakeKey *key) -static void VertsToTransData(TransInfo *t, TransData *td, BMesh *em, BMVert *eve) +inline void VertsToTransData(TransInfo *t, TransData *td, BMesh *em, BMVert *eve) { td->flag = 0; //if(key) @@ -1940,6 +1964,7 @@ static void VertsToTransData(TransInfo *t, TransData *td, BMesh *em, BMVert *eve td->ival = eve->bweight; } } +#endif /* *********************** CrazySpace correction. Now without doing subsurf optimal ****************** */ diff --git a/source/blender/editors/uvedit/uvedit_unwrap_ops.c b/source/blender/editors/uvedit/uvedit_unwrap_ops.c index 53eceb4d342..e24b34f0b8f 100644 --- a/source/blender/editors/uvedit/uvedit_unwrap_ops.c +++ b/source/blender/editors/uvedit/uvedit_unwrap_ops.c @@ -188,7 +188,8 @@ ParamHandle *construct_param_handle(Scene *scene, BMEditMesh *em, BLI_addfilledge(firstv, v); - BLI_edgefill(0, 0); + /*mode 2 enables shortest-diagonal for quads*/ + BLI_edgefill(2, 0); for (sefa = fillfacebase.first; sefa; sefa=sefa->next) { ls[0] = sefa->v1->tmp.p; ls[1] = sefa->v2->tmp.p; |