diff options
author | Miika Hamalainen <blender@miikah.org> | 2011-11-07 20:36:49 +0400 |
---|---|---|
committer | Miika Hamalainen <blender@miikah.org> | 2011-11-07 20:36:49 +0400 |
commit | edec46b0a6aac18f406991b9e16228d4bd848c61 (patch) | |
tree | 1240768d737c63705fdb38c9832d926ed0bcda94 /source/blender/editors/transform | |
parent | 2ed6f077b3952123d56916980d18a379ecb3e5ac (diff) | |
parent | 4d7a9e5c055fd3903162b61fdd40fb77b2b96793 (diff) |
Merge with trunk r41625
Diffstat (limited to 'source/blender/editors/transform')
7 files changed, 358 insertions, 20 deletions
diff --git a/source/blender/editors/transform/transform.c b/source/blender/editors/transform/transform.c index 759fefba438..13d686508de 100644 --- a/source/blender/editors/transform/transform.c +++ b/source/blender/editors/transform/transform.c @@ -48,6 +48,7 @@ #include "DNA_armature_types.h" #include "DNA_constraint_types.h" #include "DNA_meshdata_types.h" +#include "DNA_movieclip_types.h" #include "DNA_scene_types.h" /* PET modes */ #include "RNA_access.h" @@ -71,6 +72,7 @@ #include "ED_markers.h" #include "ED_view3d.h" #include "ED_mesh.h" +#include "ED_clip.h" #include "UI_view2d.h" #include "WM_types.h" @@ -155,6 +157,17 @@ void convertViewVec(TransInfo *t, float *vec, int dx, int dy) else if(ELEM(t->spacetype, SPACE_NODE, SPACE_SEQ)) { convertViewVec2D(&t->ar->v2d, vec, dx, dy); } + else if(t->spacetype==SPACE_CLIP) { + View2D *v2d = t->view; + float divx, divy; + + divx= v2d->mask.xmax-v2d->mask.xmin; + divy= v2d->mask.ymax-v2d->mask.ymin; + + vec[0]= (v2d->cur.xmax-v2d->cur.xmin)*(dx)/divx; + vec[1]= (v2d->cur.ymax-v2d->cur.ymin)*(dy)/divy; + vec[2]= 0.0f; + } } void projectIntView(TransInfo *t, float *vec, int *adr) @@ -205,6 +218,9 @@ void projectIntView(TransInfo *t, float *vec, int *adr) adr[0]= out[0]; adr[1]= out[1]; } + else if(t->spacetype==SPACE_CLIP) { + UI_view2d_to_region_no_clip(t->view, vec[0], vec[1], adr, adr+1); + } } void projectFloatView(TransInfo *t, float *vec, float *adr) @@ -213,7 +229,7 @@ void projectFloatView(TransInfo *t, float *vec, float *adr) if(t->ar->regiontype == RGN_TYPE_WINDOW) project_float_noclip(t->ar, vec, adr); } - else if(t->spacetype==SPACE_IMAGE) { + else if(ELEM(t->spacetype, SPACE_IMAGE, SPACE_CLIP)) { int a[2]; projectIntView(t, vec, a); @@ -311,6 +327,15 @@ static void viewRedrawForce(const bContext *C, TransInfo *t) if(sima->lock) WM_event_add_notifier(C, NC_GEOM|ND_DATA, t->obedit->data); else ED_area_tag_redraw(t->sa); } + else if (t->spacetype==SPACE_CLIP) { + SpaceClip *sc= (SpaceClip*)t->sa->spacedata.first; + MovieClip *clip= ED_space_clip(sc); + + /* objects could be parented to tracking data, so send this for viewport refresh */ + WM_event_add_notifier(C, NC_OBJECT|ND_TRANSFORM, NULL); + + WM_event_add_notifier(C, NC_MOVIECLIP|NA_EDITED, clip); + } } static void viewRedrawPost(bContext *C, TransInfo *t) @@ -548,7 +573,7 @@ int transformEvent(TransInfo *t, wmEvent *event) if (t->modifiers & MOD_CONSTRAINT_SELECT) t->con.mode |= CON_SELECT; - VECCOPY2D(t->mval, event->mval); + copy_v2_v2_int(t->mval, event->mval); // t->redraw |= TREDRAW_SOFT; /* Use this for soft redraw. Might cause flicker in object mode */ t->redraw |= TREDRAW_HARD; @@ -579,10 +604,18 @@ int transformEvent(TransInfo *t, wmEvent *event) initSnapping(t, NULL); // need to reinit after mode change t->redraw |= TREDRAW_HARD; } + else if(t->mode == TFM_TRANSLATION) { + if(t->options&CTX_MOVIECLIP) { + restoreTransObjects(t); + + t->flag^= T_ALT_TRANSFORM; + t->redraw |= TREDRAW_HARD; + } + } break; case TFM_MODAL_ROTATE: /* only switch when... */ - if(!(t->options & CTX_TEXTURE)) { + if(!(t->options & CTX_TEXTURE) && !(t->options & CTX_MOVIECLIP)) { if( ELEM4(t->mode, TFM_ROTATION, TFM_RESIZE, TFM_TRACKBALL, TFM_TRANSLATION) ) { resetTransRestrictions(t); @@ -837,7 +870,7 @@ int transformEvent(TransInfo *t, wmEvent *event) break; case RKEY: /* only switch when... */ - if(!(t->options & CTX_TEXTURE)) { + if(!(t->options & CTX_TEXTURE) && !(t->options & CTX_MOVIECLIP)) { if( ELEM4(t->mode, TFM_ROTATION, TFM_RESIZE, TFM_TRACKBALL, TFM_TRANSLATION) ) { resetTransRestrictions(t); @@ -1502,6 +1535,11 @@ int initTransform(bContext *C, TransInfo *t, wmOperator *op, wmEvent *event, int t->draw_handle_view = ED_region_draw_cb_activate(t->ar->type, drawTransformView, t, REGION_DRAW_POST_VIEW); //t->draw_handle_pixel = ED_region_draw_cb_activate(t->ar->type, drawTransformPixel, t, REGION_DRAW_POST_PIXEL); } + else if(t->spacetype == SPACE_CLIP) { + unit_m3(t->spacemtx); + t->draw_handle_view = ED_region_draw_cb_activate(t->ar->type, drawTransformView, t, REGION_DRAW_POST_VIEW); + t->options |= CTX_MOVIECLIP; + } else unit_m3(t->spacemtx); @@ -3293,7 +3331,7 @@ void initTranslation(TransInfo *t) t->snap[2] = t->snap[1] * 0.1f; } } - else if(t->spacetype == SPACE_IMAGE) { + else if(ELEM(t->spacetype, SPACE_IMAGE, SPACE_CLIP)) { t->snap[0] = 0.0f; t->snap[1] = 0.125f; t->snap[2] = 0.0625f; @@ -3882,7 +3920,7 @@ int Bevel(TransInfo *t, const int UNUSED(mval[2])) else { d = distance; } - VECADDFAC(td->loc,td->center,td->axismtx[0],(*td->val)*d); + madd_v3_v3v3fl(td->loc, td->center, td->axismtx[0], (*td->val) * d); } recalcData(t); @@ -4847,7 +4885,7 @@ int doEdgeSlide(TransInfo *t, float perc) interp_v2_v2v2(uv_tmp, suv->origuv, (perc>=0)?suv->uv_up:suv->uv_down, fabs(perc)); fuv_link = suv->fuv_list; while (fuv_link) { - VECCOPY2D(((float *)fuv_link->link), uv_tmp); + copy_v2_v2(((float *)fuv_link->link), uv_tmp); fuv_link = fuv_link->next; } } @@ -4878,7 +4916,7 @@ int doEdgeSlide(TransInfo *t, float perc) interp_v2_v2v2(uv_tmp, suv->uv_down, suv->uv_up, fabs(newlen)); fuv_link = suv->fuv_list; while (fuv_link) { - VECCOPY2D(((float *)fuv_link->link), uv_tmp); + copy_v2_v2(((float *)fuv_link->link), uv_tmp); fuv_link = fuv_link->next; } } @@ -4895,7 +4933,7 @@ int doEdgeSlide(TransInfo *t, float perc) interp_v2_v2v2(uv_tmp, suv->uv_up, suv->uv_down, fabs(newlen)); fuv_link = suv->fuv_list; while (fuv_link) { - VECCOPY2D(((float *)fuv_link->link), uv_tmp); + copy_v2_v2(((float *)fuv_link->link), uv_tmp); fuv_link = fuv_link->next; } } @@ -5861,7 +5899,7 @@ int TimeScale(TransInfo *t, const int UNUSED(mval[2])) /* ************************************ */ -void BIF_TransformSetUndo(char *UNUSED(str)) +void BIF_TransformSetUndo(const char *UNUSED(str)) { // TRANSFORM_FIX_ME //Trans.undostr= str; diff --git a/source/blender/editors/transform/transform.h b/source/blender/editors/transform/transform.h index 77e7cfb4d12..8b8ae95631c 100644 --- a/source/blender/editors/transform/transform.h +++ b/source/blender/editors/transform/transform.h @@ -382,6 +382,9 @@ typedef struct TransInfo { #define T_RELEASE_CONFIRM (1 << 23) + /* alternative transformation. used to add offset to tracking markers */ +#define T_ALT_TRANSFORM (1 << 24) + /* TransInfo->modifiers */ #define MOD_CONSTRAINT_SELECT 0x01 #define MOD_PRECISION 0x02 @@ -546,6 +549,7 @@ void flushTransParticles(TransInfo *t); int clipUVTransform(TransInfo *t, float *vec, int resize); void flushTransNodes(TransInfo *t); void flushTransSeq(TransInfo *t); +void flushTransTracking(TransInfo *t); /*********************** exported from transform_manipulator.c ********** */ int gimbal_axis(struct Object *ob, float gmat[][3]); /* return 0 when no gimbal for selection */ diff --git a/source/blender/editors/transform/transform_conversions.c b/source/blender/editors/transform/transform_conversions.c index 6de854ff6c9..0a6f49f7c9f 100644 --- a/source/blender/editors/transform/transform_conversions.c +++ b/source/blender/editors/transform/transform_conversions.c @@ -51,6 +51,7 @@ #include "DNA_scene_types.h" #include "DNA_meshdata_types.h" #include "DNA_gpencil_types.h" +#include "DNA_movieclip_types.h" #include "MEM_guardedalloc.h" @@ -74,6 +75,9 @@ #include "BKE_bmesh.h" #include "BKE_scene.h" #include "BKE_report.h" +#include "BKE_tracking.h" +#include "BKE_movieclip.h" +#include "BKE_node.h" #include "ED_anim_api.h" @@ -88,8 +92,12 @@ #include "ED_node.h" #include "ED_types.h" #include "ED_uvedit.h" +#include "ED_clip.h" #include "ED_util.h" /* for crazyspace correction */ +#include "WM_api.h" /* for WM_event_add_notifier to deal with stabilization nodes */ +#include "WM_types.h" + #include "UI_view2d.h" #include "BLI_math.h" @@ -2960,8 +2968,8 @@ static TransData *ActionFCurveToTransData(TransData *td, TransData2D **td2dv, FC td2d->h1 = bezt->vec[0]; td2d->h2 = bezt->vec[2]; - VECCOPY2D(td2d->ih1, td2d->h1); - VECCOPY2D(td2d->ih2, td2d->h2); + copy_v2_v2(td2d->ih1, td2d->h1); + copy_v2_v2(td2d->ih2, td2d->h2); td++; td2d++; @@ -3217,14 +3225,14 @@ static void bezt_to_transdata (TransData *td, TransData2D *td2d, AnimData *adt, if (td->flag & TD_MOVEHANDLE1) { td2d->h1 = bezt->vec[0]; - VECCOPY2D(td2d->ih1, td2d->h1); + copy_v2_v2(td2d->ih1, td2d->h1); } else td2d->h1 = NULL; if (td->flag & TD_MOVEHANDLE2) { td2d->h2 = bezt->vec[2]; - VECCOPY2D(td2d->ih2, td2d->h2); + copy_v2_v2(td2d->ih2, td2d->h2); } else td2d->h2 = NULL; @@ -4796,6 +4804,17 @@ void special_aftertrans_update(bContext *C, TransInfo *t) /* clear link line */ ED_node_link_intersect_test(t->sa, 0); } + else if (t->spacetype == SPACE_CLIP) { + SpaceClip *sc= t->sa->spacedata.first; + MovieClip *clip= ED_space_clip(sc); + + if(t->scene->nodetree) { + /* tracks can be used for stabilization nodes, + flush update for such nodes */ + nodeUpdateID(t->scene->nodetree, &clip->id); + WM_event_add_notifier(C, NC_SCENE|ND_NODES, NULL); + } + } else if (t->spacetype == SPACE_ACTION) { SpaceAction *saction= (SpaceAction *)t->sa->spacedata.first; bAnimContext ac; @@ -5264,6 +5283,229 @@ static void createTransNodeData(bContext *C, TransInfo *t) CTX_DATA_END } +/* *** CLIP EDITOR *** */ + +typedef struct TransDataTracking { + int area; + float *relative, *loc; + float soffset[2], srelative[2]; + float offset[2]; + + float (*smarkers)[2]; + int markersnr; + MovieTrackingMarker *markers; +} TransDataTracking; + +static void markerToTransDataInit(TransData *td, TransData2D *td2d, + TransDataTracking *tdt, MovieTrackingTrack *track, int area, float *loc, float *rel, float *off) +{ + int anchor = area==TRACK_AREA_POINT && off; + + if(anchor) { + td2d->loc[0] = rel[0]; /* hold original location */ + td2d->loc[1] = rel[1]; + + tdt->loc= loc; + td2d->loc2d = loc; /* current location */ + } else { + td2d->loc[0] = loc[0]; /* hold original location */ + td2d->loc[1] = loc[1]; + + td2d->loc2d = loc; /* current location */ + } + td2d->loc[2] = 0.0f; + + tdt->relative= rel; + tdt->area= area; + + tdt->markersnr= track->markersnr; + tdt->markers= track->markers; + + if(rel) { + if(!anchor) { + td2d->loc[0]+= rel[0]; + td2d->loc[1]+= rel[1]; + } + + copy_v2_v2(tdt->srelative, rel); + } + + if(off) + copy_v2_v2(tdt->soffset, off); + + td->flag = 0; + td->loc = td2d->loc; + VECCOPY(td->center, td->loc); + VECCOPY(td->iloc, td->loc); + + memset(td->axismtx, 0, sizeof(td->axismtx)); + td->axismtx[2][2] = 1.0f; + + td->ext= NULL; td->val= NULL; + + td->flag |= TD_SELECTED; + td->dist= 0.0; + + unit_m3(td->mtx); + unit_m3(td->smtx); +} + +static void trackToTransData(SpaceClip *sc, TransData *td, TransData2D *td2d, + TransDataTracking *tdt, MovieTrackingTrack *track) +{ + MovieTrackingMarker *marker= BKE_tracking_ensure_marker(track, sc->user.framenr); + + track->transflag= marker->flag; + + marker->flag&= ~(MARKER_DISABLED|MARKER_TRACKED); + + markerToTransDataInit(td++, td2d++, tdt++, track, TRACK_AREA_POINT, track->offset, marker->pos, track->offset); + + if(track->flag&SELECT) + markerToTransDataInit(td++, td2d++, tdt++, track, TRACK_AREA_POINT, marker->pos, NULL, NULL); + + if(track->pat_flag&SELECT) { + markerToTransDataInit(td++, td2d++, tdt++, track, TRACK_AREA_PAT, track->pat_min, marker->pos, NULL); + markerToTransDataInit(td++, td2d++, tdt++, track, TRACK_AREA_PAT, track->pat_max, marker->pos, NULL); + } + + if(track->search_flag&SELECT) { + markerToTransDataInit(td++, td2d++, tdt++, track, TRACK_AREA_SEARCH, track->search_min, marker->pos, NULL); + markerToTransDataInit(td++, td2d++, tdt++, track, TRACK_AREA_SEARCH, track->search_max, marker->pos, NULL); + } +} + +static void transDataTrackingFree(TransInfo *t) +{ + TransDataTracking *tdt= t->customData; + + if(tdt) { + if(tdt->smarkers) MEM_freeN(tdt->smarkers); + MEM_freeN(tdt); + } +} + +static void createTransTrackingData(bContext *C, TransInfo *t) +{ + TransData *td; + TransData2D *td2d; + SpaceClip *sc = CTX_wm_space_clip(C); + MovieClip *clip = ED_space_clip(sc); + MovieTrackingTrack *track; + MovieTrackingMarker *marker; + TransDataTracking *tdt; + int framenr = sc->user.framenr; + + if(clip && !BKE_movieclip_has_frame(clip, &sc->user)) { + t->total = 0; + return; + } + + /* count */ + t->total = 0; + + track = clip->tracking.tracks.first; + while(track) { + if(TRACK_VIEW_SELECTED(sc, track) && (track->flag&TRACK_LOCKED)==0) { + marker= BKE_tracking_get_marker(track, framenr); + + if(marker) { + t->total++; /* offset */ + + if(track->flag&SELECT) t->total++; + if(track->pat_flag&SELECT) t->total+= 2; + if(track->search_flag&SELECT) t->total+= 2; + } + } + + track = track->next; + } + + if(t->total==0) + return; + + td = t->data = MEM_callocN(t->total*sizeof(TransData), "TransTracking TransData"); + td2d = t->data2d = MEM_callocN(t->total*sizeof(TransData2D), "TransTracking TransData2D"); + tdt = t->customData = MEM_callocN(t->total*sizeof(TransDataTracking), "TransTracking TransDataTracking"); + + t->customFree= transDataTrackingFree; + + /* create actual data */ + track = clip->tracking.tracks.first; + while(track) { + if(TRACK_VIEW_SELECTED(sc, track) && (track->flag&TRACK_LOCKED)==0) { + marker= BKE_tracking_get_marker(track, framenr); + + trackToTransData(sc, td, td2d, tdt, track); + + /* offset */ + td++; + td2d++; + tdt++; + + if((marker->flag&MARKER_DISABLED)==0) { + if(track->flag&SELECT) {td++; td2d++; tdt++;} + if(track->pat_flag&SELECT) {td+= 2; td2d+= 2;tdt+=2;} + } + + if(track->search_flag&SELECT) { + td+= 2; + td2d+= 2; + tdt+= 2; + + if(marker->flag&MARKER_DISABLED) { + td+= 3; + td2d+= 3; + tdt+= 3; + }; + } + } + + track = track->next; + } +} + +void flushTransTracking(TransInfo *t) +{ + TransData *td; + TransData2D *td2d; + TransDataTracking *tdt; + int a; + + /* flush to 2d vector from internally used 3d vector */ + for(a=0, td= t->data, td2d= t->data2d, tdt= t->customData; a<t->total; a++, td2d++, td++, tdt++) { + if(t->flag&T_ALT_TRANSFORM) { + if(tdt->area==TRACK_AREA_POINT && tdt->relative) { + float d[2], d2[2]; + + if(!tdt->smarkers) { + tdt->smarkers= MEM_callocN(sizeof(*tdt->smarkers)*tdt->markersnr, "flushTransTracking markers"); + for(a= 0; a<tdt->markersnr; a++) + copy_v2_v2(tdt->smarkers[a], tdt->markers[a].pos); + } + + sub_v2_v2v2(d, td2d->loc, tdt->soffset); + sub_v2_v2(d, tdt->srelative); + + sub_v2_v2v2(d2, td2d->loc, tdt->srelative); + + for(a= 0; a<tdt->markersnr; a++) + add_v2_v2v2(tdt->markers[a].pos, tdt->smarkers[a], d2); + + negate_v2_v2(td2d->loc2d, d); + } + } + + if(tdt->area!=TRACK_AREA_POINT || tdt->relative==0) { + td2d->loc2d[0] = td2d->loc[0]; + td2d->loc2d[1] = td2d->loc[1]; + + if(tdt->relative) + sub_v2_v2(td2d->loc2d, tdt->relative); + } + } +} + void createTransData(bContext *C, TransInfo *t) { Scene *scene = t->scene; @@ -5329,6 +5571,10 @@ void createTransData(bContext *C, TransInfo *t) sort_trans_data_dist(t); } } + else if (t->spacetype == SPACE_CLIP) { + t->flag |= T_POINTS|T_2D_EDIT; + createTransTrackingData(C, t); + } else if (t->obedit) { t->ext = NULL; if (t->obedit->type == OB_MESH) { diff --git a/source/blender/editors/transform/transform_generics.c b/source/blender/editors/transform/transform_generics.c index 2c69cc85214..53e379a2d27 100644 --- a/source/blender/editors/transform/transform_generics.c +++ b/source/blender/editors/transform/transform_generics.c @@ -47,6 +47,7 @@ #include "DNA_meshdata_types.h" #include "DNA_view3d_types.h" #include "DNA_modifier_types.h" +#include "DNA_movieclip_types.h" #include "RNA_access.h" @@ -70,6 +71,7 @@ #include "BKE_mesh.h" #include "BKE_nla.h" #include "BKE_context.h" +#include "BKE_tracking.h" #include "ED_anim_api.h" #include "ED_armature.h" @@ -83,6 +85,7 @@ #include "ED_uvedit.h" #include "ED_view3d.h" #include "ED_curve.h" /* for curve_editnurbs */ +#include "ED_clip.h" //#include "BDR_unwrapper.h" @@ -863,6 +866,48 @@ void recalcData(TransInfo *t) else if (t->spacetype == SPACE_VIEW3D) { recalcData_view3d(t); } + else if (t->spacetype == SPACE_CLIP) { + SpaceClip *sc= t->sa->spacedata.first; + MovieClip *clip= ED_space_clip(sc); + MovieTrackingTrack *track; + + if(t->state == TRANS_CANCEL) { + track= clip->tracking.tracks.first; + while(track) { + if(TRACK_VIEW_SELECTED(sc, track)) { + MovieTrackingMarker *marker= BKE_tracking_ensure_marker(track, sc->user.framenr); + + marker->flag= track->transflag; + } + + track= track->next; + } + } + + flushTransTracking(t); + + track= clip->tracking.tracks.first; + while(track) { + if(TRACK_VIEW_SELECTED(sc, track)) { + if (t->mode == TFM_TRANSLATION) { + if(TRACK_AREA_SELECTED(track, TRACK_AREA_PAT)) + BKE_tracking_clamp_track(track, CLAMP_PAT_POS); + if(TRACK_AREA_SELECTED(track, TRACK_AREA_SEARCH)) + BKE_tracking_clamp_track(track, CLAMP_SEARCH_POS); + } + else if (t->mode == TFM_RESIZE) { + if(TRACK_AREA_SELECTED(track, TRACK_AREA_PAT)) + BKE_tracking_clamp_track(track, CLAMP_PAT_DIM); + if(TRACK_AREA_SELECTED(track, TRACK_AREA_SEARCH)) + BKE_tracking_clamp_track(track, CLAMP_SEARCH_DIM); + } + } + + track= track->next; + } + + DAG_id_tag_update(&clip->id, 0); + } } void drawLine(TransInfo *t, float *center, float *dir, char axis, short options) @@ -941,7 +986,7 @@ int initTransInfo (bContext *C, TransInfo *t, wmOperator *op, wmEvent *event) if (event) { - VECCOPY2D(t->imval, event->mval); + copy_v2_v2_int(t->imval, event->mval); t->event_type = event->type; } else diff --git a/source/blender/editors/transform/transform_input.c b/source/blender/editors/transform/transform_input.c index cc3ffe086f1..3de68a6e312 100644 --- a/source/blender/editors/transform/transform_input.c +++ b/source/blender/editors/transform/transform_input.c @@ -409,7 +409,7 @@ int handleMouseInput(TransInfo *t, MouseInput *mi, wmEvent *event) t->modifiers |= MOD_PRECISION; /* shift is modifier for higher precision transform * store the mouse position where the normal movement ended */ - VECCOPY2D(mi->precision_mval, event->mval); + copy_v2_v2_int(mi->precision_mval, event->mval); mi->precision = 1; } else diff --git a/source/blender/editors/transform/transform_ops.c b/source/blender/editors/transform/transform_ops.c index f926f442830..7951fe0ee02 100644 --- a/source/blender/editors/transform/transform_ops.c +++ b/source/blender/editors/transform/transform_ops.c @@ -973,6 +973,11 @@ void transform_keymap_for_space(wmKeyConfig *keyconf, wmKeyMap *keymap, int spac km = WM_keymap_add_item(keymap, "WM_OT_context_toggle", TABKEY, KM_PRESS, KM_SHIFT, 0); RNA_string_set(km->ptr, "data_path", "tool_settings.use_snap"); break; + case SPACE_CLIP: + WM_keymap_add_item(keymap, OP_TRANSLATION, GKEY, KM_PRESS, 0, 0); + WM_keymap_add_item(keymap, OP_TRANSLATION, EVT_TWEAK_S, KM_ANY, 0, 0); + WM_keymap_add_item(keymap, OP_RESIZE, SKEY, KM_PRESS, 0, 0); + break; default: break; } diff --git a/source/blender/editors/transform/transform_orientations.c b/source/blender/editors/transform/transform_orientations.c index a09778726d5..5d61d2a1ebb 100644 --- a/source/blender/editors/transform/transform_orientations.c +++ b/source/blender/editors/transform/transform_orientations.c @@ -606,9 +606,9 @@ int getTransformOrientation(const bContext *C, float normal[3], float plane[3], { if(efa->f & SELECT) { - VECADD(normal, normal, efa->n); + add_v3_v3(normal, efa->n); sub_v3_v3v3(vec, efa->v2->co, efa->v1->co); - VECADD(plane, plane, vec); + add_v3_v3(plane, vec); } } @@ -662,7 +662,7 @@ int getTransformOrientation(const bContext *C, float normal[3], float plane[3], if(eed->f & SELECT) { /* use average vert normals as plane and edge vector as normal */ copy_v3_v3(plane, eed->v1->no); - VECADD(plane, plane, eed->v2->no); + add_v3_v3(plane, eed->v2->no); sub_v3_v3v3(normal, eed->v2->co, eed->v1->co); break; } @@ -683,7 +683,7 @@ int getTransformOrientation(const bContext *C, float normal[3], float plane[3], v2 = eve; copy_v3_v3(plane, v1->no); - VECADD(plane, plane, v2->no); + add_v3_v3(plane, v2->no); sub_v3_v3v3(normal, v2->co, v1->co); break; } |