diff options
author | Campbell Barton <ideasman42@gmail.com> | 2018-06-04 10:39:04 +0300 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2018-06-04 10:39:04 +0300 |
commit | 95011f6d484b369db92ae13c674a6522d664ea8f (patch) | |
tree | 91ba2719c9f3096fad0f1f768aa7b1c4d79aa32a /source/blender/editors/space_view3d | |
parent | 0911acb5cf49c5ba05b1df045b41697704aa288a (diff) | |
parent | 44505b38df557a5711703613685a1dec9fc2c3d9 (diff) |
Merge branch 'master' into blender2.8
Diffstat (limited to 'source/blender/editors/space_view3d')
-rw-r--r-- | source/blender/editors/space_view3d/drawobject.c | 2 | ||||
-rw-r--r-- | source/blender/editors/space_view3d/space_view3d.c | 108 | ||||
-rw-r--r-- | source/blender/editors/space_view3d/view3d_buttons.c | 4 | ||||
-rw-r--r-- | source/blender/editors/space_view3d/view3d_draw.c | 10 | ||||
-rw-r--r-- | source/blender/editors/space_view3d/view3d_fly.c | 8 | ||||
-rw-r--r-- | source/blender/editors/space_view3d/view3d_header.c | 22 | ||||
-rw-r--r-- | source/blender/editors/space_view3d/view3d_ops.c | 52 | ||||
-rw-r--r-- | source/blender/editors/space_view3d/view3d_project.c | 16 | ||||
-rw-r--r-- | source/blender/editors/space_view3d/view3d_ruler.c | 2 | ||||
-rw-r--r-- | source/blender/editors/space_view3d/view3d_select.c | 150 | ||||
-rw-r--r-- | source/blender/editors/space_view3d/view3d_snap.c | 70 | ||||
-rw-r--r-- | source/blender/editors/space_view3d/view3d_toolbar.c | 34 | ||||
-rw-r--r-- | source/blender/editors/space_view3d/view3d_view.c | 68 |
13 files changed, 273 insertions, 273 deletions
diff --git a/source/blender/editors/space_view3d/drawobject.c b/source/blender/editors/space_view3d/drawobject.c index b87d6c0b85e..7de7aa77ba3 100644 --- a/source/blender/editors/space_view3d/drawobject.c +++ b/source/blender/editors/space_view3d/drawobject.c @@ -709,7 +709,7 @@ void ED_draw_object_facemap( glFrontFace((ob->transflag & OB_NEG_SCALE) ? GL_CW : GL_CCW); - + #if 0 DM_update_materials(dm, ob); diff --git a/source/blender/editors/space_view3d/space_view3d.c b/source/blender/editors/space_view3d/space_view3d.c index 6a05f870e47..d4fa98cfc88 100644 --- a/source/blender/editors/space_view3d/space_view3d.c +++ b/source/blender/editors/space_view3d/space_view3d.c @@ -95,21 +95,21 @@ ARegion *view3d_has_buttons_region(ScrArea *sa) ar = BKE_area_find_region_type(sa, RGN_TYPE_UI); if (ar) return ar; - + /* add subdiv level; after header */ ar = BKE_area_find_region_type(sa, RGN_TYPE_HEADER); /* is error! */ if (ar == NULL) return NULL; - + arnew = MEM_callocN(sizeof(ARegion), "buttons for view3d"); - + BLI_insertlinkafter(&sa->regionbase, ar, arnew); arnew->regiontype = RGN_TYPE_UI; arnew->alignment = RGN_ALIGN_RIGHT; - + arnew->flag = RGN_FLAG_HIDDEN; - + return arnew; } @@ -132,12 +132,12 @@ ARegion *view3d_has_tools_region(ScrArea *sa) for (arhead = sa->regionbase.first; arhead; arhead = arhead->next) if (arhead->regiontype == RGN_TYPE_HEADER) break; - + /* is error! */ if (arhead == NULL) return NULL; - + artool = MEM_callocN(sizeof(ARegion), "tools for view3d"); - + BLI_insertlinkafter(&sa->regionbase, arhead, artool); artool->regiontype = RGN_TYPE_TOOLS; artool->alignment = RGN_ALIGN_LEFT; @@ -153,7 +153,7 @@ ARegion *view3d_has_tools_region(ScrArea *sa) RegionView3D *ED_view3d_context_rv3d(bContext *C) { RegionView3D *rv3d = CTX_wm_region_view3d(C); - + if (rv3d == NULL) { ScrArea *sa = CTX_wm_area(C); if (sa && sa->spacetype == SPACE_VIEW3D) { @@ -309,7 +309,7 @@ static SpaceLink *view3d_new(const ScrArea *UNUSED(sa), const Scene *scene) ARegion *ar; View3D *v3d; RegionView3D *rv3d; - + v3d = MEM_callocN(sizeof(View3D), "initview3d"); v3d->spacetype = SPACE_VIEW3D; v3d->lay = v3d->layact = 1; @@ -331,10 +331,10 @@ static SpaceLink *view3d_new(const ScrArea *UNUSED(sa), const Scene *scene) v3d->overlay.flag = V3D_OVERLAY_LOOK_DEV; v3d->gridflag = V3D_SHOW_X | V3D_SHOW_Y | V3D_SHOW_FLOOR; - + v3d->flag = V3D_SELECT_OUTLINE; v3d->flag2 = V3D_SHOW_RECONSTRUCTION | V3D_SHOW_GPENCIL; - + v3d->lens = 50.0f; v3d->near = 0.01f; v3d->far = 1000.0f; @@ -352,14 +352,14 @@ static SpaceLink *view3d_new(const ScrArea *UNUSED(sa), const Scene *scene) /* header */ ar = MEM_callocN(sizeof(ARegion), "header for view3d"); - + BLI_addtail(&v3d->regionbase, ar); ar->regiontype = RGN_TYPE_HEADER; ar->alignment = RGN_ALIGN_TOP; - + /* tool shelf */ ar = MEM_callocN(sizeof(ARegion), "toolshelf for view3d"); - + BLI_addtail(&v3d->regionbase, ar); ar->regiontype = RGN_TYPE_TOOLS; ar->alignment = RGN_ALIGN_LEFT; @@ -367,25 +367,25 @@ static SpaceLink *view3d_new(const ScrArea *UNUSED(sa), const Scene *scene) /* buttons/list view */ ar = MEM_callocN(sizeof(ARegion), "buttons for view3d"); - + BLI_addtail(&v3d->regionbase, ar); ar->regiontype = RGN_TYPE_UI; ar->alignment = RGN_ALIGN_RIGHT; ar->flag = RGN_FLAG_HIDDEN; - + /* main region */ ar = MEM_callocN(sizeof(ARegion), "main region for view3d"); - + BLI_addtail(&v3d->regionbase, ar); ar->regiontype = RGN_TYPE_WINDOW; - + ar->regiondata = MEM_callocN(sizeof(RegionView3D), "region view3d"); rv3d = ar->regiondata; rv3d->viewquat[0] = 1.0f; rv3d->persp = RV3D_PERSP; rv3d->view = RV3D_VIEW_USER; rv3d->dist = 10.0; - + return (SpaceLink *)v3d; } @@ -395,9 +395,9 @@ static void view3d_free(SpaceLink *sl) View3D *vd = (View3D *) sl; if (vd->localvd) MEM_freeN(vd->localvd); - + if (vd->properties_storage) MEM_freeN(vd->properties_storage); - + if (vd->fx_settings.ssao) MEM_freeN(vd->fx_settings.ssao); if (vd->fx_settings.dof) @@ -415,7 +415,7 @@ static SpaceLink *view3d_duplicate(SpaceLink *sl) { View3D *v3do = (View3D *)sl; View3D *v3dn = MEM_dupallocN(sl); - + /* clear or remove stuff from old */ if (v3dn->localvd) { @@ -426,7 +426,7 @@ static SpaceLink *view3d_duplicate(SpaceLink *sl) if (v3dn->drawtype == OB_RENDER) v3dn->drawtype = OB_SOLID; - + /* copy or clear inside new stuff */ v3dn->properties_storage = NULL; @@ -452,19 +452,19 @@ static void view3d_main_region_init(wmWindowManager *wm, ARegion *ar) WM_manipulatormap_add_handlers(ar, ar->manipulator_map); /* object ops. */ - + /* important to be before Pose keymap since they can both be enabled at once */ keymap = WM_keymap_find(wm->defaultconf, "Face Mask", 0, 0); WM_event_add_keymap_handler(&ar->handlers, keymap); - - + + keymap = WM_keymap_find(wm->defaultconf, "Weight Paint Vertex Selection", 0, 0); WM_event_add_keymap_handler(&ar->handlers, keymap); /* pose is not modal, operator poll checks for this */ keymap = WM_keymap_find(wm->defaultconf, "Pose", 0, 0); WM_event_add_keymap_handler(&ar->handlers, keymap); - + keymap = WM_keymap_find(wm->defaultconf, "Object Mode", 0, 0); WM_event_add_keymap_handler(&ar->handlers, keymap); @@ -485,13 +485,13 @@ static void view3d_main_region_init(wmWindowManager *wm, ARegion *ar) keymap = WM_keymap_find(wm->defaultconf, "Sculpt", 0, 0); WM_event_add_keymap_handler(&ar->handlers, keymap); - + keymap = WM_keymap_find(wm->defaultconf, "Mesh", 0, 0); WM_event_add_keymap_handler(&ar->handlers, keymap); - + keymap = WM_keymap_find(wm->defaultconf, "Curve", 0, 0); WM_event_add_keymap_handler(&ar->handlers, keymap); - + keymap = WM_keymap_find(wm->defaultconf, "Armature", 0, 0); WM_event_add_keymap_handler(&ar->handlers, keymap); @@ -500,7 +500,7 @@ static void view3d_main_region_init(wmWindowManager *wm, ARegion *ar) keymap = WM_keymap_find(wm->defaultconf, "Metaball", 0, 0); WM_event_add_keymap_handler(&ar->handlers, keymap); - + keymap = WM_keymap_find(wm->defaultconf, "Lattice", 0, 0); WM_event_add_keymap_handler(&ar->handlers, keymap); @@ -523,12 +523,12 @@ static void view3d_main_region_init(wmWindowManager *wm, ARegion *ar) keymap = WM_keymap_find(wm->defaultconf, "3D View", SPACE_VIEW3D, 0); WM_event_add_keymap_handler(&ar->handlers, keymap); - + /* add drop boxes */ lb = WM_dropboxmap_find("View3D", SPACE_VIEW3D, RGN_TYPE_WINDOW); - + WM_event_add_dropbox_handler(&ar->handlers, lb); - + } static void view3d_main_region_exit(wmWindowManager *wm, ARegion *ar) @@ -631,7 +631,7 @@ static void view3d_ob_drop_copy(wmDrag *drag, wmDropBox *drop) static void view3d_collection_drop_copy(wmDrag *drag, wmDropBox *drop) { ID *id = drag->poin; - + drop->opcontext = WM_OP_EXEC_DEFAULT; RNA_string_set(drop->ptr, "name", id->name + 2); } @@ -639,14 +639,14 @@ static void view3d_collection_drop_copy(wmDrag *drag, wmDropBox *drop) static void view3d_id_drop_copy(wmDrag *drag, wmDropBox *drop) { ID *id = drag->poin; - + RNA_string_set(drop->ptr, "name", id->name + 2); } static void view3d_id_path_drop_copy(wmDrag *drag, wmDropBox *drop) { ID *id = drag->poin; - + if (id) { RNA_string_set(drop->ptr, "name", id->name + 2); RNA_struct_property_unset(drop->ptr, "filepath"); @@ -662,7 +662,7 @@ static void view3d_id_path_drop_copy(wmDrag *drag, wmDropBox *drop) static void view3d_dropboxes(void) { ListBase *lb = WM_dropboxmap_find("View3D", SPACE_VIEW3D, RGN_TYPE_WINDOW); - + WM_dropbox_add(lb, "OBJECT_OT_add_named", view3d_ob_drop_poll, view3d_ob_drop_copy); WM_dropbox_add(lb, "OBJECT_OT_drop_named_material", view3d_mat_drop_poll, view3d_id_drop_copy); WM_dropbox_add(lb, "MESH_OT_drop_named_image", view3d_ima_mesh_drop_poll, view3d_id_path_drop_copy); @@ -700,14 +700,14 @@ static void view3d_widgets(void) static void view3d_main_region_free(ARegion *ar) { RegionView3D *rv3d = ar->regiondata; - + if (rv3d) { if (rv3d->localvd) MEM_freeN(rv3d->localvd); if (rv3d->clipbb) MEM_freeN(rv3d->clipbb); if (rv3d->render_engine) RE_engine_free(rv3d->render_engine); - + if (rv3d->depths) { if (rv3d->depths->depths) MEM_freeN(rv3d->depths->depths); MEM_freeN(rv3d->depths); @@ -729,19 +729,19 @@ static void *view3d_main_region_duplicate(void *poin) { if (poin) { RegionView3D *rv3d = poin, *new; - + new = MEM_dupallocN(rv3d); if (rv3d->localvd) new->localvd = MEM_dupallocN(rv3d->localvd); if (rv3d->clipbb) new->clipbb = MEM_dupallocN(rv3d->clipbb); - + new->depths = NULL; new->gpuoffscreen = NULL; new->render_engine = NULL; new->sms = NULL; new->smooth_timer = NULL; - + return new; } return NULL; @@ -1142,7 +1142,7 @@ static void view3d_main_region_cursor(wmWindow *win, ScrArea *sa, ARegion *ar) static void view3d_header_region_init(wmWindowManager *wm, ARegion *ar) { wmKeyMap *keymap = WM_keymap_find(wm->defaultconf, "3D View Generic", SPACE_VIEW3D, 0); - + WM_event_add_keymap_handler(&ar->handlers, keymap); ED_region_header_init(ar); @@ -1221,7 +1221,7 @@ static void view3d_buttons_region_init(wmWindowManager *wm, ARegion *ar) wmKeyMap *keymap; ED_region_panels_init(wm, ar); - + keymap = WM_keymap_find(wm->defaultconf, "3D View Generic", SPACE_VIEW3D, 0); WM_event_add_keymap_handler(&ar->handlers, keymap); } @@ -1348,7 +1348,7 @@ static int view3d_tools_region_snap_size(const ARegion *ar, int size, int axis) static void view3d_tools_region_init(wmWindowManager *wm, ARegion *ar) { wmKeyMap *keymap; - + ED_region_panels_init(wm, ar); keymap = WM_keymap_find(wm->defaultconf, "3D View Generic", SPACE_VIEW3D, 0); @@ -1418,7 +1418,7 @@ static int view3d_context(const bContext *C, const char *member, bContextDataRes CTX_data_pointer_set(result, &scene->id, &RNA_ObjectBase, view_layer->basact); } } - + return 1; } else if (CTX_data_equals(member, "active_object")) { @@ -1430,7 +1430,7 @@ static int view3d_context(const bContext *C, const char *member, bContextDataRes CTX_data_id_pointer_set(result, &ob->id); } } - + return 1; } else { @@ -1489,10 +1489,10 @@ void ED_spacetype_view3d(void) { SpaceType *st = MEM_callocN(sizeof(SpaceType), "spacetype view3d"); ARegionType *art; - + st->spaceid = SPACE_VIEW3D; strncpy(st->name, "View3D", BKE_ST_MAXNAME); - + st->new = view3d_new; st->free = view3d_free; st->init = view3d_init; @@ -1519,7 +1519,7 @@ void ED_spacetype_view3d(void) art->cursor = view3d_main_region_cursor; art->lock = 1; /* can become flag, see BKE_spacedata_draw_locks */ BLI_addhead(&st->regiontypes, art); - + /* regions: listview/buttons */ art = MEM_callocN(sizeof(ARegionType), "spacetype view3d buttons region"); art->regionid = RGN_TYPE_UI; @@ -1544,7 +1544,7 @@ void ED_spacetype_view3d(void) art->init = view3d_tools_region_init; art->draw = view3d_tools_region_draw; BLI_addhead(&st->regiontypes, art); - + #if 0 /* unfinished still */ view3d_toolshelf_register(art); @@ -1560,6 +1560,6 @@ void ED_spacetype_view3d(void) art->draw = view3d_header_region_draw; art->message_subscribe = view3d_header_region_message_subscribe; BLI_addhead(&st->regiontypes, art); - + BKE_spacetype_register(st); } diff --git a/source/blender/editors/space_view3d/view3d_buttons.c b/source/blender/editors/space_view3d/view3d_buttons.c index 644a6956e54..69e8aa07d3f 100644 --- a/source/blender/editors/space_view3d/view3d_buttons.c +++ b/source/blender/editors/space_view3d/view3d_buttons.c @@ -835,7 +835,7 @@ static void view3d_panel_vgroup(const bContext *C, Panel *pa) bcol = uiLayoutColumn(pa->layout, true); row = uiLayoutRow(bcol, true); /* The filter button row */ - + RNA_pointer_create(NULL, &RNA_ToolSettings, ts, &tools_ptr); uiItemR(row, &tools_ptr, "vertex_group_subset", UI_ITEM_R_EXPAND, NULL, ICON_NONE); @@ -864,7 +864,7 @@ static void view3d_panel_vgroup(const bContext *C, Panel *pa) UI_but_flag_enable(but, UI_BUT_INACTIVE); } xco += x; - + row = uiLayoutRow(split, true); uiLayoutSetEnabled(row, !locked); diff --git a/source/blender/editors/space_view3d/view3d_draw.c b/source/blender/editors/space_view3d/view3d_draw.c index d61e79c99f1..5cd36cce31c 100644 --- a/source/blender/editors/space_view3d/view3d_draw.c +++ b/source/blender/editors/space_view3d/view3d_draw.c @@ -441,14 +441,14 @@ static void drawviewborder(Scene *scene, Depsgraph *depsgraph, ARegion *ar, View return; if (v3d->camera->type == OB_CAMERA) ca = v3d->camera->data; - + ED_view3d_calc_camera_border(scene, depsgraph, ar, v3d, rv3d, &viewborder, false); /* the offsets */ x1 = viewborder.xmin; y1 = viewborder.ymin; x2 = viewborder.xmax; y2 = viewborder.ymax; - + glLineWidth(1.0f); /* apply offsets so the real 3D camera shows through */ @@ -647,7 +647,7 @@ static void drawviewborder(Scene *scene, Depsgraph *depsgraph, ARegion *ar, View /* draw */ immUniformThemeColorShade(TH_VIEW_OVERLAY, 100); - + /* TODO Was using UI_draw_roundbox_4fv(false, rect.xmin, rect.ymin, rect.xmax, rect.ymax, 2.0f, color). * We'll probably need a new imm_draw_line_roundbox_dashed dor that - though in practice the * 2.0f round corner effect was nearly not visible anyway... */ @@ -885,7 +885,7 @@ static void UNUSED_FUNCTION(draw_rotation_guide)(RegionView3D *rv3d) sub_v3_v3v3(end, o, scaled_axis); immVertex3fv(pos, end); immEnd(); - + /* -- draw ring around rotation center -- */ { #define ROT_AXIS_DETAIL 13 @@ -1252,7 +1252,7 @@ static void view3d_draw_view(const bContext *C, ARegion *ar) RenderEngineType *ED_view3d_engine_type(Scene *scene, int drawtype) { /* - * Tempory viewport draw modes until we have a proper system. + * Tempory viewport draw modes until we have a proper system. * all modes are done in the draw manager, except * cycles material as it is an external render engine. */ diff --git a/source/blender/editors/space_view3d/view3d_fly.c b/source/blender/editors/space_view3d/view3d_fly.c index 56e90c70511..d8cc9ab9828 100644 --- a/source/blender/editors/space_view3d/view3d_fly.c +++ b/source/blender/editors/space_view3d/view3d_fly.c @@ -151,7 +151,7 @@ void fly_modal_keymap(wmKeyConfig *keyconf) WM_modalkeymap_add_item(keymap, WHEELDOWNMOUSE, KM_PRESS, KM_ANY, 0, FLY_MODAL_DECELERATE); WM_modalkeymap_add_item(keymap, MOUSEPAN, 0, 0, 0, FLY_MODAL_SPEED); - + WM_modalkeymap_add_item(keymap, MIDDLEMOUSE, KM_PRESS, KM_ANY, 0, FLY_MODAL_PAN_ENABLE); /* XXX - Bug in the event system, middle mouse release doesnt work */ WM_modalkeymap_add_item(keymap, MIDDLEMOUSE, KM_RELEASE, KM_ANY, 0, FLY_MODAL_PAN_DISABLE); @@ -550,12 +550,12 @@ static void flyEvent(bContext *C, wmOperator *op, FlyInfo *fly, const wmEvent *e case FLY_MODAL_CONFIRM: fly->state = FLY_CONFIRM; break; - + /* speed adjusting with mousepan (trackpad) */ case FLY_MODAL_SPEED: { float fac = 0.02f * (event->prevy - event->y); - + /* allowing to brake immediate */ if (fac > 0.0f && fly->speed < 0.0f) fly->speed = 0.0f; @@ -563,7 +563,7 @@ static void flyEvent(bContext *C, wmOperator *op, FlyInfo *fly, const wmEvent *e fly->speed = 0.0f; else fly->speed += fly->grid * fac; - + break; } case FLY_MODAL_ACCELERATE: diff --git a/source/blender/editors/space_view3d/view3d_header.c b/source/blender/editors/space_view3d/view3d_header.c index dde86f8bafa..5f07bb0fc3d 100644 --- a/source/blender/editors/space_view3d/view3d_header.c +++ b/source/blender/editors/space_view3d/view3d_header.c @@ -117,7 +117,7 @@ static int view3d_layers_exec(bContext *C, wmOperator *op) Object *obedit = CTX_data_edit_object(C); int nr = RNA_int_get(op->ptr, "nr"); const bool toggle = RNA_boolean_get(op->ptr, "toggle"); - + if (nr < 0) return OPERATOR_CANCELLED; @@ -165,13 +165,13 @@ static int view3d_layers_exec(bContext *C, wmOperator *op) } } } - + if (v3d->scenelock) handle_view3d_lock(C); - + DEG_on_visible_update(CTX_data_main(C), false); ED_area_tag_redraw(sa); - + return OPERATOR_FINISHED; } @@ -181,18 +181,18 @@ static int view3d_layers_invoke(bContext *C, wmOperator *op, const wmEvent *even { if (event->ctrl || event->oskey) return OPERATOR_PASS_THROUGH; - + if (event->shift) RNA_boolean_set(op->ptr, "extend", true); else RNA_boolean_set(op->ptr, "extend", false); - + if (event->alt) { const int nr = RNA_int_get(op->ptr, "nr") + 10; RNA_int_set(op->ptr, "nr", nr); } view3d_layers_exec(C, op); - + return OPERATOR_FINISHED; } @@ -207,15 +207,15 @@ void VIEW3D_OT_layers(wmOperatorType *ot) ot->name = "Layers"; ot->description = "Toggle layer(s) visibility"; ot->idname = "VIEW3D_OT_layers"; - + /* api callbacks */ ot->invoke = view3d_layers_invoke; ot->exec = view3d_layers_exec; ot->poll = view3d_layers_poll; - + /* flags */ ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO; - + RNA_def_int(ot->srna, "nr", 1, 0, 20, "Number", "The layer number to set, zero for all layers", 0, 20); RNA_def_boolean(ot->srna, "extend", 0, "Extend", "Add this layer to the current view layers"); RNA_def_boolean(ot->srna, "toggle", 1, "Toggle", "Toggle the layer"); @@ -371,7 +371,7 @@ void uiTemplateHeader3D(uiLayout *layout, struct bContext *C) ob && !(gpd && (gpd->flag & GP_DATA_STROKE_EDITMODE)) && ELEM(ob->mode, OB_MODE_SCULPT, OB_MODE_VERTEX_PAINT, OB_MODE_WEIGHT_PAINT, OB_MODE_TEXTURE_PAINT)); - + RNA_pointer_create(&screen->id, &RNA_SpaceView3D, v3d, &v3dptr); RNA_pointer_create(&scene->id, &RNA_ToolSettings, ts, &toolsptr); RNA_pointer_create(&scene->id, &RNA_Scene, scene, &sceneptr); diff --git a/source/blender/editors/space_view3d/view3d_ops.c b/source/blender/editors/space_view3d/view3d_ops.c index 4b2f254a2b6..3b800c20ed2 100644 --- a/source/blender/editors/space_view3d/view3d_ops.c +++ b/source/blender/editors/space_view3d/view3d_ops.c @@ -71,9 +71,9 @@ static int view3d_copybuffer_exec(bContext *C, wmOperator *op) { Main *bmain = CTX_data_main(C); char str[FILE_MAX]; - + BKE_copybuffer_begin(bmain); - + /* context, selection, could be generalized */ CTX_DATA_BEGIN (C, Object *, ob, selected_objects) { @@ -93,10 +93,10 @@ static int view3d_copybuffer_exec(bContext *C, wmOperator *op) } } } - + BLI_make_file_string("/", str, BKE_tempdir_base(), "copybuffer.blend"); BKE_copybuffer_save(bmain, str, op->reports); - + BKE_report(op->reports, RPT_INFO, "Copied selected objects to buffer"); return OPERATOR_FINISHED; @@ -104,12 +104,12 @@ static int view3d_copybuffer_exec(bContext *C, wmOperator *op) static void VIEW3D_OT_copybuffer(wmOperatorType *ot) { - + /* identifiers */ ot->name = "Copy Selection to Buffer"; ot->idname = "VIEW3D_OT_copybuffer"; ot->description = "Selected objects are saved in a temp file"; - + /* api callbacks */ ot->exec = view3d_copybuffer_exec; ot->poll = ED_operator_scene; @@ -141,16 +141,16 @@ static int view3d_pastebuffer_exec(bContext *C, wmOperator *op) static void VIEW3D_OT_pastebuffer(wmOperatorType *ot) { - + /* identifiers */ ot->name = "Paste Selection from Buffer"; ot->idname = "VIEW3D_OT_pastebuffer"; ot->description = "Contents of copy buffer gets pasted"; - + /* api callbacks */ ot->exec = view3d_pastebuffer_exec; ot->poll = ED_operator_scene_editable; - + /* flags */ ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO; @@ -209,10 +209,10 @@ void view3d_operatortypes(void) WM_operatortype_append(VIEW3D_OT_layers); WM_operatortype_append(VIEW3D_OT_copybuffer); WM_operatortype_append(VIEW3D_OT_pastebuffer); - + WM_operatortype_append(VIEW3D_OT_properties); WM_operatortype_append(VIEW3D_OT_toolshelf); - + WM_operatortype_append(VIEW3D_OT_snap_selected_to_grid); WM_operatortype_append(VIEW3D_OT_snap_selected_to_cursor); WM_operatortype_append(VIEW3D_OT_snap_selected_to_active); @@ -233,17 +233,17 @@ void view3d_keymap(wmKeyConfig *keyconf) { wmKeyMap *keymap; wmKeyMapItem *kmi; - + keymap = WM_keymap_find(keyconf, "3D View Generic", SPACE_VIEW3D, 0); WM_keymap_add_item(keymap, "VIEW3D_OT_properties", NKEY, KM_PRESS, 0, 0); WM_keymap_add_item(keymap, "VIEW3D_OT_toolshelf", TKEY, KM_PRESS, 0, 0); - + /* only for region 3D window */ keymap = WM_keymap_find(keyconf, "3D View", SPACE_VIEW3D, 0); WM_keymap_verify_item(keymap, "VIEW3D_OT_cursor3d", ACTIONMOUSE, KM_CLICK, 0, 0); - + WM_keymap_verify_item(keymap, "VIEW3D_OT_rotate", MIDDLEMOUSE, KM_PRESS, 0, 0); WM_keymap_verify_item(keymap, "VIEW3D_OT_move", MIDDLEMOUSE, KM_PRESS, KM_SHIFT, 0); WM_keymap_verify_item(keymap, "VIEW3D_OT_zoom", MIDDLEMOUSE, KM_PRESS, KM_CTRL, 0); @@ -259,20 +259,20 @@ void view3d_keymap(wmKeyConfig *keyconf) WM_keymap_verify_item(keymap, "VIEW3D_OT_navigate", FKEY, KM_PRESS, KM_SHIFT, 0); WM_keymap_verify_item(keymap, "VIEW3D_OT_smoothview", TIMER1, KM_ANY, KM_ANY, 0); - + WM_keymap_add_item(keymap, "VIEW3D_OT_rotate", MOUSEPAN, 0, 0, 0); WM_keymap_add_item(keymap, "VIEW3D_OT_rotate", MOUSEROTATE, 0, 0, 0); WM_keymap_add_item(keymap, "VIEW3D_OT_move", MOUSEPAN, 0, KM_SHIFT, 0); WM_keymap_add_item(keymap, "VIEW3D_OT_zoom", MOUSEZOOM, 0, 0, 0); WM_keymap_add_item(keymap, "VIEW3D_OT_zoom", MOUSEPAN, 0, KM_CTRL, 0); - + /*numpad +/-*/ RNA_int_set(WM_keymap_add_item(keymap, "VIEW3D_OT_zoom", PADPLUSKEY, KM_PRESS, 0, 0)->ptr, "delta", 1); RNA_int_set(WM_keymap_add_item(keymap, "VIEW3D_OT_zoom", PADMINUS, KM_PRESS, 0, 0)->ptr, "delta", -1); /*ctrl +/-*/ RNA_int_set(WM_keymap_add_item(keymap, "VIEW3D_OT_zoom", EQUALKEY, KM_PRESS, KM_CTRL, 0)->ptr, "delta", 1); RNA_int_set(WM_keymap_add_item(keymap, "VIEW3D_OT_zoom", MINUSKEY, KM_PRESS, KM_CTRL, 0)->ptr, "delta", -1); - + /*wheel mouse forward/back*/ RNA_int_set(WM_keymap_add_item(keymap, "VIEW3D_OT_zoom", WHEELINMOUSE, KM_PRESS, 0, 0)->ptr, "delta", 1); RNA_int_set(WM_keymap_add_item(keymap, "VIEW3D_OT_zoom", WHEELOUTMOUSE, KM_PRESS, 0, 0)->ptr, "delta", -1); @@ -308,7 +308,7 @@ void view3d_keymap(wmKeyConfig *keyconf) RNA_enum_set(WM_keymap_add_item(keymap, "VIEW3D_OT_viewnumpad", PAD3, KM_PRESS, 0, 0)->ptr, "type", RV3D_VIEW_RIGHT); RNA_enum_set(WM_keymap_add_item(keymap, "VIEW3D_OT_view_orbit", PAD4, KM_PRESS, 0, 0)->ptr, "type", V3D_VIEW_STEPLEFT); WM_keymap_add_item(keymap, "VIEW3D_OT_view_persportho", PAD5, KM_PRESS, 0, 0); - + RNA_enum_set(WM_keymap_add_item(keymap, "VIEW3D_OT_view_orbit", PAD6, KM_PRESS, 0, 0)->ptr, "type", V3D_VIEW_STEPRIGHT); RNA_enum_set(WM_keymap_add_item(keymap, "VIEW3D_OT_viewnumpad", PAD7, KM_PRESS, 0, 0)->ptr, "type", RV3D_VIEW_TOP); RNA_enum_set(WM_keymap_add_item(keymap, "VIEW3D_OT_view_orbit", PAD8, KM_PRESS, 0, 0)->ptr, "type", V3D_VIEW_STEPUP); @@ -334,7 +334,7 @@ void view3d_keymap(wmKeyConfig *keyconf) RNA_enum_set(WM_keymap_add_item(keymap, "VIEW3D_OT_view_orbit", WHEELDOWNMOUSE, KM_PRESS, KM_CTRL | KM_ALT, 0)->ptr, "type", V3D_VIEW_STEPRIGHT); RNA_enum_set(WM_keymap_add_item(keymap, "VIEW3D_OT_view_orbit", WHEELUPMOUSE, KM_PRESS, KM_SHIFT | KM_ALT, 0)->ptr, "type", V3D_VIEW_STEPUP); RNA_enum_set(WM_keymap_add_item(keymap, "VIEW3D_OT_view_orbit", WHEELDOWNMOUSE, KM_PRESS, KM_SHIFT | KM_ALT, 0)->ptr, "type", V3D_VIEW_STEPDOWN); - + RNA_enum_set(WM_keymap_add_item(keymap, "VIEW3D_OT_view_roll", WHEELUPMOUSE, KM_PRESS, KM_CTRL | KM_SHIFT, 0)->ptr, "type", V3D_VIEW_STEPLEFT); RNA_enum_set(WM_keymap_add_item(keymap, "VIEW3D_OT_view_roll", WHEELDOWNMOUSE, KM_PRESS, KM_CTRL | KM_SHIFT, 0)->ptr, "type", V3D_VIEW_STEPRIGHT); @@ -357,7 +357,7 @@ void view3d_keymap(wmKeyConfig *keyconf) kmi = WM_keymap_add_item(keymap, "VIEW3D_OT_viewnumpad", PAD7, KM_PRESS, KM_SHIFT | KM_CTRL, 0); RNA_enum_set(kmi->ptr, "type", RV3D_VIEW_BOTTOM); RNA_boolean_set(kmi->ptr, "align_active", true); - + #ifdef WITH_INPUT_NDOF /* note: positioned here so keymaps show keyboard keys if assigned */ /* 3D mouse */ @@ -376,7 +376,7 @@ void view3d_keymap(wmKeyConfig *keyconf) RNA_enum_set(WM_keymap_add_item(keymap, "VIEW3D_OT_viewnumpad", NDOF_BUTTON_RIGHT, KM_PRESS, 0, 0)->ptr, "type", RV3D_VIEW_RIGHT); RNA_enum_set(WM_keymap_add_item(keymap, "VIEW3D_OT_viewnumpad", NDOF_BUTTON_TOP, KM_PRESS, 0, 0)->ptr, "type", RV3D_VIEW_TOP); RNA_enum_set(WM_keymap_add_item(keymap, "VIEW3D_OT_viewnumpad", NDOF_BUTTON_BOTTOM, KM_PRESS, 0, 0)->ptr, "type", RV3D_VIEW_BOTTOM); - + /* 3D mouse align */ kmi = WM_keymap_add_item(keymap, "VIEW3D_OT_viewnumpad", NDOF_BUTTON_FRONT, KM_PRESS, KM_SHIFT, 0); RNA_enum_set(kmi->ptr, "type", RV3D_VIEW_FRONT); @@ -467,7 +467,7 @@ void view3d_keymap(wmKeyConfig *keyconf) kmi = WM_keymap_add_item(keymap, "VIEW3D_OT_select_lasso", EVT_TWEAK_A, KM_ANY, KM_SHIFT | KM_CTRL, 0); RNA_boolean_set(kmi->ptr, "deselect", true); WM_keymap_add_item(keymap, "VIEW3D_OT_select_circle", CKEY, KM_PRESS, 0, 0); - + WM_keymap_add_item(keymap, "VIEW3D_OT_clip_border", BKEY, KM_PRESS, KM_ALT, 0); WM_keymap_add_item(keymap, "VIEW3D_OT_zoom_border", BKEY, KM_PRESS, KM_SHIFT, 0); @@ -477,19 +477,19 @@ void view3d_keymap(wmKeyConfig *keyconf) RNA_boolean_set(kmi->ptr, "camera_only", false); WM_keymap_add_item(keymap, "VIEW3D_OT_clear_render_border", BKEY, KM_PRESS, KM_CTRL | KM_ALT, 0); - + WM_keymap_add_item(keymap, "VIEW3D_OT_camera_to_view", PAD0, KM_PRESS, KM_ALT | KM_CTRL, 0); WM_keymap_add_item(keymap, "VIEW3D_OT_object_as_camera", PAD0, KM_PRESS, KM_CTRL, 0); - + WM_keymap_add_menu(keymap, "VIEW3D_MT_snap", SKEY, KM_PRESS, KM_SHIFT, 0); - + #ifdef __APPLE__ WM_keymap_add_item(keymap, "VIEW3D_OT_copybuffer", CKEY, KM_PRESS, KM_OSKEY, 0); WM_keymap_add_item(keymap, "VIEW3D_OT_pastebuffer", VKEY, KM_PRESS, KM_OSKEY, 0); #endif WM_keymap_add_item(keymap, "VIEW3D_OT_copybuffer", CKEY, KM_PRESS, KM_CTRL, 0); WM_keymap_add_item(keymap, "VIEW3D_OT_pastebuffer", VKEY, KM_PRESS, KM_CTRL, 0); - + /* context ops */ kmi = WM_keymap_add_item(keymap, "WM_OT_context_set_enum", COMMAKEY, KM_PRESS, 0, 0); RNA_string_set(kmi->ptr, "data_path", "tool_settings.transform_pivot_point"); diff --git a/source/blender/editors/space_view3d/view3d_project.c b/source/blender/editors/space_view3d/view3d_project.c index fe14e82c152..30b91c1a8ee 100644 --- a/source/blender/editors/space_view3d/view3d_project.c +++ b/source/blender/editors/space_view3d/view3d_project.c @@ -57,13 +57,13 @@ void ED_view3d_project_float_v2_m4(const ARegion *ar, const float co[3], float r_co[2], float mat[4][4]) { float vec4[4]; - + copy_v3_v3(vec4, co); vec4[3] = 1.0; /* r_co[0] = IS_CLIPPED; */ /* always overwritten */ - + mul_m4_v4(mat, vec4); - + if (vec4[3] > FLT_EPSILON) { r_co[0] = (float)(ar->winx / 2.0f) + (ar->winx / 2.0f) * vec4[0] / vec4[3]; r_co[1] = (float)(ar->winy / 2.0f) + (ar->winy / 2.0f) * vec4[1] / vec4[3]; @@ -79,13 +79,13 @@ void ED_view3d_project_float_v2_m4(const ARegion *ar, const float co[3], float r void ED_view3d_project_float_v3_m4(const ARegion *ar, const float vec[3], float r_co[3], float mat[4][4]) { float vec4[4]; - + copy_v3_v3(vec4, vec); vec4[3] = 1.0; /* r_co[0] = IS_CLIPPED; */ /* always overwritten */ - + mul_m4_v4(mat, vec4); - + if (vec4[3] > FLT_EPSILON) { r_co[0] = (float)(ar->winx / 2.0f) + (ar->winx / 2.0f) * vec4[0] / vec4[3]; r_co[1] = (float)(ar->winy / 2.0f) + (ar->winy / 2.0f) * vec4[1] / vec4[3]; @@ -551,10 +551,10 @@ void ED_view3d_win_to_delta(const ARegion *ar, const float mval[2], float out[3] { RegionView3D *rv3d = ar->regiondata; float dx, dy; - + dx = 2.0f * mval[0] * zfac / ar->winx; dy = 2.0f * mval[1] * zfac / ar->winy; - + out[0] = (rv3d->persinv[0][0] * dx + rv3d->persinv[1][0] * dy); out[1] = (rv3d->persinv[0][1] * dx + rv3d->persinv[1][1] * dy); out[2] = (rv3d->persinv[0][2] * dx + rv3d->persinv[1][2] * dy); diff --git a/source/blender/editors/space_view3d/view3d_ruler.c b/source/blender/editors/space_view3d/view3d_ruler.c index c0af3c7caaa..54579e93413 100644 --- a/source/blender/editors/space_view3d/view3d_ruler.c +++ b/source/blender/editors/space_view3d/view3d_ruler.c @@ -326,7 +326,7 @@ static bool view3d_ruler_to_gpencil(bContext *C, RulerInfo *ruler_info) if (palcolor == NULL) { palcolor = BKE_gpencil_palettecolor_addnew(palette, (char *)ruler_name, true); } - + gpf = BKE_gpencil_layer_getframe(gpl, CFRA, true); BKE_gpencil_free_strokes(gpf); diff --git a/source/blender/editors/space_view3d/view3d_select.c b/source/blender/editors/space_view3d/view3d_select.c index 745ebe66cf7..2a3e463d922 100644 --- a/source/blender/editors/space_view3d/view3d_select.c +++ b/source/blender/editors/space_view3d/view3d_select.c @@ -299,25 +299,25 @@ static bool edge_fully_inside_rect(const rctf *rect, const float v1[2], const fl static bool edge_inside_rect(const rctf *rect, const float v1[2], const float v2[2]) { int d1, d2, d3, d4; - + /* check points in rect */ if (edge_fully_inside_rect(rect, v1, v2)) return 1; - + /* check points completely out rect */ if (v1[0] < rect->xmin && v2[0] < rect->xmin) return 0; if (v1[0] > rect->xmax && v2[0] > rect->xmax) return 0; if (v1[1] < rect->ymin && v2[1] < rect->ymin) return 0; if (v1[1] > rect->ymax && v2[1] > rect->ymax) return 0; - + /* simple check lines intersecting. */ d1 = (v1[1] - v2[1]) * (v1[0] - rect->xmin) + (v2[0] - v1[0]) * (v1[1] - rect->ymin); d2 = (v1[1] - v2[1]) * (v1[0] - rect->xmin) + (v2[0] - v1[0]) * (v1[1] - rect->ymax); d3 = (v1[1] - v2[1]) * (v1[0] - rect->xmax) + (v2[0] - v1[0]) * (v1[1] - rect->ymax); d4 = (v1[1] - v2[1]) * (v1[0] - rect->xmax) + (v2[0] - v1[0]) * (v1[1] - rect->ymin); - + if (d1 < 0 && d2 < 0 && d3 < 0 && d4 < 0) return 0; if (d1 > 0 && d2 > 0 && d3 > 0 && d4 > 0) return 0; - + return 1; } @@ -373,7 +373,7 @@ static void do_lasso_select_pose(ViewContext *vc, Object *ob, const int mcords[] ViewContext vc_tmp; LassoSelectUserData data; rcti rect; - + if ((ob->type != OB_ARMATURE) || (ob->pose == NULL)) { return; } @@ -417,7 +417,7 @@ static void do_lasso_select_objects( { bool is_pose_mode = vc->obact ? (vc->obact->mode & OB_MODE_POSE) : false; Base *base; - + if (extend == false && select) object_deselect_all_visible(vc->view_layer); @@ -497,7 +497,7 @@ static void do_lasso_select_mesh( ToolSettings *ts = vc->scene->toolsettings; rcti rect; int bbsel; - + /* set editmesh */ vc->em = BKE_editmesh_from_object(vc->obedit); @@ -513,7 +513,7 @@ static void do_lasso_select_mesh( gpuLoadMatrix(vc->rv3d->viewmat); bbsel = EDBM_backbuf_border_mask_init(vc, mcords, moves, rect.xmin, rect.ymin, rect.xmax, rect.ymax); - + if (ts->selectmode & SCE_SELECT_VERTEX) { if (bbsel) { edbm_backbuf_check_and_select_verts(vc->em, select); @@ -532,7 +532,7 @@ static void do_lasso_select_mesh( mesh_foreachScreenEdge(vc, do_lasso_select_mesh__doSelectEdge, &data, V3D_PROJ_TEST_CLIP_NEAR); } } - + if (ts->selectmode & SCE_SELECT_FACE) { if (bbsel) { edbm_backbuf_check_and_select_faces(vc->em, select); @@ -541,7 +541,7 @@ static void do_lasso_select_mesh( mesh_foreachScreenFace(vc, do_lasso_select_mesh__doSelectFace, &data, V3D_PROJ_TEST_CLIP_DEFAULT); } } - + EDBM_backbuf_free(); EDBM_selectmode_flush(vc->em); } @@ -793,7 +793,7 @@ static void do_lasso_select_paintface(ViewContext *vc, const int mcords[][2], sh BLI_lasso_boundbox(&rect, mcords, moves); EDBM_backbuf_border_mask_init(vc, mcords, moves, rect.xmin, rect.ymin, rect.xmax, rect.ymax); - + edbm_backbuf_check_and_select_tfaces(me, select); EDBM_backbuf_free(); @@ -805,19 +805,19 @@ static void do_lasso_select_paintface(ViewContext *vc, const int mcords[][2], sh static void do_lasso_select_node(int mcords[][2], short moves, const bool select) { SpaceNode *snode = sa->spacedata.first; - + bNode *node; rcti rect; int node_cent[2]; float node_centf[2]; - + BLI_lasso_boundbox(&rect, mcords, moves); - + /* store selection in temp test flag */ for (node = snode->edittree->nodes.first; node; node = node->next) { node_centf[0] = BLI_RCT_CENTER_X(&node->totr); node_centf[1] = BLI_RCT_CENTER_Y(&node->totr); - + ipoco_to_areaco_noclip(G.v2d, node_centf, node_cent); if (BLI_rcti_isect_pt_v(&rect, node_cent) && BLI_lasso_is_point_inside(mcords, moves, node_cent[0], node_cent[1])) { if (select) { @@ -898,18 +898,18 @@ static int view3d_lasso_select_exec(bContext *C, wmOperator *op) ViewContext vc; int mcords_tot; const int (*mcords)[2] = WM_gesture_lasso_path_to_array(C, op, &mcords_tot); - + if (mcords) { bool extend, select; view3d_operator_needs_opengl(C); - + /* setup view context for argument to callbacks */ ED_view3d_viewcontext_init(C, &vc); - + extend = RNA_boolean_get(op->ptr, "extend"); select = !RNA_boolean_get(op->ptr, "deselect"); view3d_lasso_select(C, &vc, mcords, mcords_tot, extend, select); - + MEM_freeN((void *)mcords); return OPERATOR_FINISHED; @@ -922,16 +922,16 @@ void VIEW3D_OT_select_lasso(wmOperatorType *ot) ot->name = "Lasso Select"; ot->description = "Select items using lasso selection"; ot->idname = "VIEW3D_OT_select_lasso"; - + ot->invoke = WM_gesture_lasso_invoke; ot->modal = WM_gesture_lasso_modal; ot->exec = view3d_lasso_select_exec; ot->poll = view3d_selectable_data; ot->cancel = WM_gesture_lasso_cancel; - + /* flags */ ot->flag = OPTYPE_UNDO; - + /* properties */ WM_operator_properties_gesture_lasso_select(ot); } @@ -1281,12 +1281,12 @@ static Base *mouse_select_eval_buffer( ViewLayer *view_layer = vc->view_layer; Base *base, *basact = NULL; int a; - + if (do_nearest) { unsigned int min = 0xFFFFFFFF; int selcol = 0, notcol = 0; - - + + if (has_bones) { /* we skip non-bone hits */ for (a = 0; a < hits; a++) { @@ -1301,7 +1301,7 @@ static Base *mouse_select_eval_buffer( if (BASACT(view_layer) && (BASACT(view_layer)->flag & BASE_SELECTED) && hits > 1) { notcol = BASACT(view_layer)->object->select_color; } - + for (a = 0; a < hits; a++) { if (min > buffer[4 * a + 1] && notcol != (buffer[4 * a + 3] & 0xFFFF)) { min = buffer[4 * a + 1]; @@ -1309,7 +1309,7 @@ static Base *mouse_select_eval_buffer( } } } - + base = FIRSTBASE(view_layer); while (base) { if (BASE_SELECTABLE(base)) { @@ -1320,7 +1320,7 @@ static Base *mouse_select_eval_buffer( if (base) basact = base; } else { - + base = startbase; while (base) { /* skip objects with select restriction, to prevent prematurely ending this loop @@ -1330,7 +1330,7 @@ static Base *mouse_select_eval_buffer( if (base == NULL) base = FIRSTBASE(view_layer); if (base == startbase) break; } - + if (BASE_SELECTABLE(base)) { for (a = 0; a < hits; a++) { if (has_bones) { @@ -1346,15 +1346,15 @@ static Base *mouse_select_eval_buffer( } } } - + if (basact) break; - + base = base->next; if (base == NULL) base = FIRSTBASE(view_layer); if (base == startbase) break; } } - + return basact; } @@ -1366,19 +1366,19 @@ Base *ED_view3d_give_base_under_cursor(bContext *C, const int mval[2]) unsigned int buffer[MAXPICKBUF]; int hits; bool do_nearest; - + /* setup view context for argument to callbacks */ view3d_operator_needs_opengl(C); ED_view3d_viewcontext_init(C, &vc); - + hits = mixed_bones_object_selectbuffer(&vc, buffer, mval, false, false, &do_nearest); - + if (hits > 0) { const bool has_bones = selectbuffer_has_bones(buffer, hits); basact = mouse_select_eval_buffer(&vc, buffer, hits, vc.view_layer->object_bases.first, has_bones, do_nearest); } - + return basact; } @@ -1433,11 +1433,11 @@ static bool ed_object_select_pick( /* always start list from basact in wire mode */ startbase = FIRSTBASE(view_layer); if (BASACT(view_layer) && BASACT(view_layer)->next) startbase = BASACT(view_layer)->next; - + /* This block uses the control key to make the object selected by its center point rather than its contents */ /* in editmode do not activate */ if (obcenter) { - + /* note; shift+alt goes to group-flush-selecting */ if (enumerate) { basact = object_mouse_select_menu(C, &vc, NULL, 0, mval, toggle); @@ -1460,7 +1460,7 @@ static bool ed_object_select_pick( } } base = base->next; - + if (base == NULL) base = FIRSTBASE(view_layer); if (base == startbase) break; } @@ -1579,16 +1579,16 @@ static bool ed_object_select_pick( view_layer, basact, buffer, hits, extend, deselect, toggle, do_nearest)) { /* then bone is found */ - - /* we make the armature selected: + + /* we make the armature selected: * not-selected active object in posemode won't work well for tools */ basact->flag |= BASE_SELECTED; BKE_scene_object_base_flag_sync_from_base(basact); - + retval = true; WM_event_add_notifier(C, NC_OBJECT | ND_BONE_SELECT, basact->object); WM_event_add_notifier(C, NC_OBJECT | ND_BONE_ACTIVE, basact->object); - + /* in weightpaint, we use selected bone to select vertexgroup, so no switch to new active object */ if (BASACT(view_layer) && (BASACT(view_layer)->object->mode & OB_MODE_WEIGHT_PAINT)) { /* prevent activating */ @@ -1620,7 +1620,7 @@ static bool ed_object_select_pick( /* so, do we have something selected? */ if (basact) { retval = true; - + if (vc.obedit) { /* only do select */ deselectall_except(view_layer, basact); @@ -1827,7 +1827,7 @@ static void do_nurbs_box_select__doSelect( static int do_nurbs_box_select(ViewContext *vc, rcti *rect, bool select, bool extend) { BoxSelectUserData data; - + view3d_userdata_boxselect_init(&data, vc, rect, select); if (extend == false && select) { @@ -1861,7 +1861,7 @@ static int do_lattice_box_select(ViewContext *vc, rcti *rect, bool select, bool ED_view3d_init_mats_rv3d(vc->obedit, vc->rv3d); /* for foreach's screen/vert projection */ lattice_foreachScreenVert(vc, do_lattice_box_select__doSelect, &data, V3D_PROJ_TEST_CLIP_DEFAULT); - + return OPERATOR_FINISHED; } @@ -1906,7 +1906,7 @@ static int do_mesh_box_select( BoxSelectUserData data; ToolSettings *ts = vc->scene->toolsettings; int bbsel; - + view3d_userdata_boxselect_init(&data, vc, rect, select); if (extend == false && select) @@ -1937,7 +1937,7 @@ static int do_mesh_box_select( mesh_foreachScreenEdge(vc, do_mesh_box_select__doSelectEdge, &data, V3D_PROJ_TEST_CLIP_NEAR); } } - + if (ts->selectmode & SCE_SELECT_FACE) { if (bbsel) { edbm_backbuf_check_and_select_faces(vc->em, select); @@ -1946,11 +1946,11 @@ static int do_mesh_box_select( mesh_foreachScreenFace(vc, do_mesh_box_select__doSelectFace, &data, V3D_PROJ_TEST_CLIP_DEFAULT); } } - + EDBM_backbuf_free(); - + EDBM_selectmode_flush(vc->em); - + return OPERATOR_FINISHED; } @@ -1969,7 +1969,7 @@ static int do_meta_box_select( if (extend == false && select) BKE_mball_deselect_all(mb); - + for (ml = mb->editelems->first; ml; ml = ml->next) { for (a = 0; a < hits; a++) { if (ml->selcol1 == buffer[(4 * a) + 3]) { @@ -2120,12 +2120,12 @@ static int do_object_pose_box_select(bContext *C, ViewContext *vc, rcti *rect, b int bone_only; int totobj = MAXPICKBUF; /* XXX solve later */ int hits; - + if (vc->obact && (vc->obact->mode & OB_MODE_POSE)) bone_only = 1; else bone_only = 0; - + if (extend == false && select) { if (bone_only) { FOREACH_OBJECT_IN_MODE_BEGIN (vc->view_layer, OB_MODE_POSE, ob_iter) { @@ -2231,7 +2231,7 @@ static int do_object_pose_box_select(bContext *C, ViewContext *vc, rcti *rect, b /* mask modifier ('armature' mode), etc. */ DEG_id_tag_update(&vc->obact->id, OB_RECALC_DATA); } - + /* copy on write tag is needed (for the armature), or else no refresh happens */ DEG_id_tag_update(&arm->id, DEG_TAG_COPY_ON_WRITE); } @@ -2260,7 +2260,7 @@ static int view3d_borderselect_exec(bContext *C, wmOperator *op) /* setup view context for argument to callbacks */ ED_view3d_viewcontext_init(C, &vc); - + select = !RNA_boolean_get(op->ptr, "deselect"); extend = RNA_boolean_get(op->ptr, "extend"); WM_operator_properties_border_to_rcti(op, &rect); @@ -2336,7 +2336,7 @@ static int view3d_borderselect_exec(bContext *C, wmOperator *op) } return ret; -} +} /* *****************Selection Operators******************* */ @@ -2348,17 +2348,17 @@ void VIEW3D_OT_select_border(wmOperatorType *ot) ot->name = "Border Select"; ot->description = "Select items using border selection"; ot->idname = "VIEW3D_OT_select_border"; - + /* api callbacks */ ot->invoke = WM_gesture_border_invoke; ot->exec = view3d_borderselect_exec; ot->modal = WM_gesture_border_modal; ot->poll = view3d_selectable_data; ot->cancel = WM_gesture_border_cancel; - + /* flags */ ot->flag = OPTYPE_UNDO; - + /* rna */ WM_operator_properties_gesture_border_select(ot); } @@ -2458,7 +2458,7 @@ static int view3d_select_exec(bContext *C, wmOperator *op) retval = ED_mball_select_pick(C, location, extend, deselect, toggle); else if (obedit->type == OB_FONT) retval = ED_curve_editfont_select_pick(C, location, extend, deselect, toggle); - + } else if (obact && obact->mode & OB_MODE_PARTICLE_EDIT) return PE_mouse_particles(C, location, extend, deselect, toggle); @@ -2493,15 +2493,15 @@ void VIEW3D_OT_select(wmOperatorType *ot) ot->name = "Activate/Select"; ot->description = "Activate/select item(s)"; ot->idname = "VIEW3D_OT_select"; - + /* api callbacks */ ot->invoke = view3d_select_invoke; ot->exec = view3d_select_exec; ot->poll = ED_operator_view3d_active; - + /* flags */ ot->flag = OPTYPE_UNDO; - + /* properties */ WM_operator_properties_mouse_select(ot); @@ -2576,7 +2576,7 @@ static void mesh_circle_select(ViewContext *vc, const bool select, const int mva ToolSettings *ts = vc->scene->toolsettings; int bbsel; CircleSelectUserData data; - + bbsel = EDBM_backbuf_circle_init(vc, mval[0], mval[1], (short)(rad + 1.0f)); ED_view3d_init_mats_rv3d(vc->obedit, vc->rv3d); /* for foreach's screen/vert projection */ @@ -2601,7 +2601,7 @@ static void mesh_circle_select(ViewContext *vc, const bool select, const int mva mesh_foreachScreenEdge(vc, mesh_circle_doSelectEdge, &data, V3D_PROJ_TEST_CLIP_NEAR); } } - + if (ts->selectmode & SCE_SELECT_FACE) { if (bbsel) { edbm_backbuf_check_and_select_faces(vc->em, select); @@ -2794,11 +2794,11 @@ static void do_circle_select_pose__doSelectBone( static void pose_circle_select(ViewContext *vc, const bool select, const int mval[2], float rad) { CircleSelectUserData data; - + view3d_userdata_circleselect_init(&data, vc, select, mval, rad); ED_view3d_init_mats_rv3d(vc->obact, vc->rv3d); /* for foreach's screen/vert projection */ - + pose_foreachScreenBone(vc, do_circle_select_pose__doSelectBone, &data, V3D_PROJ_TEST_CLIP_DEFAULT); if (data.is_changed) { @@ -2810,7 +2810,7 @@ static void pose_circle_select(ViewContext *vc, const bool select, const int mva /* mask modifier ('armature' mode), etc. */ DEG_id_tag_update(&vc->obact->id, OB_RECALC_DATA); } - + /* copy on write tag is needed (for the armature), or else no refresh happens */ DEG_id_tag_update(&arm->id, DEG_TAG_COPY_ON_WRITE); } @@ -2824,13 +2824,13 @@ static bool armature_circle_doSelectJoint(void *userData, EditBone *ebone, const if (head) { if (data->select) ebone->flag |= BONE_ROOTSEL; - else + else ebone->flag &= ~BONE_ROOTSEL; } else { if (data->select) ebone->flag |= BONE_TIPSEL; - else + else ebone->flag &= ~BONE_TIPSEL; } return 1; @@ -3030,7 +3030,7 @@ static int view3d_circle_select_exec(bContext *C, wmOperator *op) WM_event_add_notifier(C, NC_SCENE | ND_OB_SELECT, vc.scene); } } - + return OPERATOR_FINISHED; } @@ -3039,13 +3039,13 @@ void VIEW3D_OT_select_circle(wmOperatorType *ot) ot->name = "Circle Select"; ot->description = "Select items using circle selection"; ot->idname = "VIEW3D_OT_select_circle"; - + ot->invoke = WM_gesture_circle_invoke; ot->modal = WM_gesture_circle_modal; ot->exec = view3d_circle_select_exec; ot->poll = view3d_selectable_data; ot->cancel = WM_gesture_circle_cancel; - + /* flags */ ot->flag = OPTYPE_UNDO; diff --git a/source/blender/editors/space_view3d/view3d_snap.c b/source/blender/editors/space_view3d/view3d_snap.c index ac967e3c97c..606c07cd1fa 100644 --- a/source/blender/editors/space_view3d/view3d_snap.c +++ b/source/blender/editors/space_view3d/view3d_snap.c @@ -140,15 +140,15 @@ static int snap_sel_to_grid_exec(bContext *C, wmOperator *UNUSED(op)) if (ob->mode & OB_MODE_POSE) { bPoseChannel *pchan_eval; bArmature *arm_eval = ob_eval->data; - + invert_m4_m4(ob_eval->imat, ob_eval->obmat); - + for (pchan_eval = ob_eval->pose->chanbase.first; pchan_eval; pchan_eval = pchan_eval->next) { if (pchan_eval->bone->flag & BONE_SELECTED) { if (pchan_eval->bone->layer & arm_eval->layer) { if ((pchan_eval->bone->flag & BONE_CONNECTED) == 0) { float nLoc[3]; - + /* get nearest grid point to snap to */ copy_v3_v3(nLoc, pchan_eval->pose_mat[3]); /* We must operate in world space! */ @@ -158,10 +158,10 @@ static int snap_sel_to_grid_exec(bContext *C, wmOperator *UNUSED(op)) vec[2] = gridf * floorf(0.5f + nLoc[2] / gridf); /* Back in object space... */ mul_m4_v3(ob_eval->imat, vec); - + /* Get location of grid point in pose space. */ BKE_armature_loc_pose_to_bone(pchan_eval, vec, vec); - + /* adjust location on the original pchan*/ bPoseChannel *pchan = BKE_pose_channel_find_name(ob->pose, pchan_eval->name); if ((pchan->protectflag & OB_LOCK_LOCX) == 0) @@ -181,18 +181,18 @@ static int snap_sel_to_grid_exec(bContext *C, wmOperator *UNUSED(op)) } } ob->pose->flag |= (POSE_LOCKED | POSE_DO_UNLOCK); - + DEG_id_tag_update(&ob->id, OB_RECALC_DATA); } else { vec[0] = -ob_eval->obmat[3][0] + gridf * floorf(0.5f + ob_eval->obmat[3][0] / gridf); vec[1] = -ob_eval->obmat[3][1] + gridf * floorf(0.5f + ob_eval->obmat[3][1] / gridf); vec[2] = -ob_eval->obmat[3][2] + gridf * floorf(0.5f + ob_eval->obmat[3][2] / gridf); - + if (ob->parent) { float originmat[3][3]; BKE_object_where_is_calc_ex(depsgraph, scene, NULL, ob, originmat); - + invert_m3_m3(imat, originmat); mul_m3_v3(imat, vec); } @@ -202,7 +202,7 @@ static int snap_sel_to_grid_exec(bContext *C, wmOperator *UNUSED(op)) ob->loc[1] = ob_eval->loc[1] + vec[1]; if ((ob->protectflag & OB_LOCK_LOCZ) == 0) ob->loc[2] = ob_eval->loc[2] + vec[2]; - + /* auto-keyframing */ ED_autokeyframe_object(C, scene, ob, ks); @@ -213,7 +213,7 @@ static int snap_sel_to_grid_exec(bContext *C, wmOperator *UNUSED(op)) } WM_event_add_notifier(C, NC_OBJECT | ND_TRANSFORM, NULL); - + return OPERATOR_FINISHED; } @@ -223,11 +223,11 @@ void VIEW3D_OT_snap_selected_to_grid(wmOperatorType *ot) ot->name = "Snap Selection to Grid"; ot->description = "Snap selected item(s) to nearest grid division"; ot->idname = "VIEW3D_OT_snap_selected_to_grid"; - + /* api callbacks */ ot->exec = snap_sel_to_grid_exec; ot->poll = ED_operator_region_view3d_active; - + /* flags */ ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO; } @@ -262,7 +262,7 @@ static int snap_selected_to_location(bContext *C, const float snap_target_global if (obedit) { float snap_target_local[3]; - + if (ED_transverts_check_obedit(obedit)) ED_transverts_create_from_obedit(&tvs, obedit, 0); if (tvs.transverts_tot == 0) @@ -270,7 +270,7 @@ static int snap_selected_to_location(bContext *C, const float snap_target_global copy_m3_m4(bmat, obedit->obmat); invert_m3_m3(imat, bmat); - + /* get the cursor in object space */ sub_v3_v3v3(snap_target_local, snap_target_global, obedit->obmat[3]); mul_m3_v3(imat, snap_target_local); @@ -291,7 +291,7 @@ static int snap_selected_to_location(bContext *C, const float snap_target_global copy_v3_v3(tv->loc, snap_target_local); } } - + ED_transverts_update_obedit(&tvs, obedit); ED_transverts_free(&tvs); } @@ -423,7 +423,7 @@ static int snap_selected_to_location(bContext *C, const float snap_target_global } WM_event_add_notifier(C, NC_OBJECT | ND_TRANSFORM, NULL); - + return OPERATOR_FINISHED; } @@ -445,11 +445,11 @@ void VIEW3D_OT_snap_selected_to_cursor(wmOperatorType *ot) ot->name = "Snap Selection to Cursor"; ot->description = "Snap selected item(s) to cursor"; ot->idname = "VIEW3D_OT_snap_selected_to_cursor"; - + /* api callbacks */ ot->exec = snap_selected_to_cursor_exec; ot->poll = ED_operator_view3d_active; - + /* flags */ ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO; @@ -500,7 +500,7 @@ static int snap_curs_to_grid_exec(bContext *C, wmOperator *UNUSED(op)) curs[0] = gridf * floorf(0.5f + curs[0] / gridf); curs[1] = gridf * floorf(0.5f + curs[1] / gridf); curs[2] = gridf * floorf(0.5f + curs[2] / gridf); - + WM_event_add_notifier(C, NC_SPACE | ND_SPACE_VIEW3D, v3d); /* hrm */ DEG_id_tag_update(&scene->id, DEG_TAG_COPY_ON_WRITE); @@ -513,11 +513,11 @@ void VIEW3D_OT_snap_cursor_to_grid(wmOperatorType *ot) ot->name = "Snap Cursor to Grid"; ot->description = "Snap cursor to nearest grid division"; ot->idname = "VIEW3D_OT_snap_cursor_to_grid"; - + /* api callbacks */ ot->exec = snap_curs_to_grid_exec; ot->poll = ED_operator_region_view3d_active; - + /* flags */ ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO; } @@ -602,7 +602,7 @@ static bool snap_curs_to_sel_ex(bContext *C, float cursor[3]) Object *obedit_eval = DEG_get_evaluated_object(depsgraph, obedit); copy_m3_m4(bmat, obedit_eval->obmat); - + tv = tvs.transverts; for (a = 0; a < tvs.transverts_tot; a++, tv++) { copy_v3_v3(vec, tv->loc); @@ -611,7 +611,7 @@ static bool snap_curs_to_sel_ex(bContext *C, float cursor[3]) add_v3_v3(centroid, vec); minmax_v3v3_v3(min, max, vec); } - + if (scene->toolsettings->transform_pivot_point == V3D_AROUND_CENTER_MEAN) { mul_v3_fl(centroid, 1.0f / (float)tvs.transverts_tot); copy_v3_v3(cursor, centroid); @@ -701,11 +701,11 @@ void VIEW3D_OT_snap_cursor_to_selected(wmOperatorType *ot) ot->name = "Snap Cursor to Selected"; ot->description = "Snap cursor to center of selected item(s)"; ot->idname = "VIEW3D_OT_snap_cursor_to_selected"; - + /* api callbacks */ ot->exec = snap_curs_to_sel_exec; ot->poll = ED_operator_view3d_active; - + /* flags */ ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO; } @@ -761,7 +761,7 @@ static int snap_curs_to_active_exec(bContext *C, wmOperator *UNUSED(op)) Scene *scene = CTX_data_scene(C); View3D *v3d = CTX_wm_view3d(C); float *curs; - + curs = ED_view3d_cursor3d_get(scene, v3d)->location; if (snap_calc_active_center(C, false, curs)) { @@ -781,11 +781,11 @@ void VIEW3D_OT_snap_cursor_to_active(wmOperatorType *ot) ot->name = "Snap Cursor to Active"; ot->description = "Snap cursor to active item"; ot->idname = "VIEW3D_OT_snap_cursor_to_active"; - + /* api callbacks */ ot->exec = snap_curs_to_active_exec; ot->poll = ED_operator_view3d_active; - + /* flags */ ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO; } @@ -800,7 +800,7 @@ static int snap_curs_to_center_exec(bContext *C, wmOperator *UNUSED(op)) curs = ED_view3d_cursor3d_get(scene, v3d)->location; zero_v3(curs); - + WM_event_add_notifier(C, NC_SPACE | ND_SPACE_VIEW3D, v3d); DEG_id_tag_update(&scene->id, DEG_TAG_COPY_ON_WRITE); @@ -813,11 +813,11 @@ void VIEW3D_OT_snap_cursor_to_center(wmOperatorType *ot) ot->name = "Snap Cursor to Center"; ot->description = "Snap cursor to the Center"; ot->idname = "VIEW3D_OT_snap_cursor_to_center"; - + /* api callbacks */ ot->exec = snap_curs_to_center_exec; ot->poll = ED_operator_view3d_active; - + /* flags */ ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO; } @@ -847,12 +847,12 @@ bool ED_view3d_minmax_verts(Object *obedit, float min[3], float max[3]) if (ED_transverts_check_obedit(obedit)) ED_transverts_create_from_obedit(&tvs, obedit, TM_ALL_JOINTS); - + if (tvs.transverts_tot == 0) return false; copy_m3_m4(bmat, obedit->obmat); - + tv = tvs.transverts; for (a = 0; a < tvs.transverts_tot; a++, tv++) { copy_v3_v3(vec, (tv->flag & TX_VERT_USE_MAPLOC) ? tv->maploc : tv->loc); @@ -861,8 +861,8 @@ bool ED_view3d_minmax_verts(Object *obedit, float min[3], float max[3]) add_v3_v3(centroid, vec); minmax_v3v3_v3(min, max, vec); } - + ED_transverts_free(&tvs); - + return true; } diff --git a/source/blender/editors/space_view3d/view3d_toolbar.c b/source/blender/editors/space_view3d/view3d_toolbar.c index fa683f95988..8ea33927c4d 100644 --- a/source/blender/editors/space_view3d/view3d_toolbar.c +++ b/source/blender/editors/space_view3d/view3d_toolbar.c @@ -73,15 +73,15 @@ typedef struct CustomTool { static void operator_call_cb(struct bContext *C, void *arg_listbase, void *arg2) { wmOperatorType *ot = arg2; - + if (ot) { CustomTool *ct = MEM_callocN(sizeof(CustomTool), "CustomTool"); - + BLI_addtail(arg_listbase, ct); BLI_strncpy(ct->opname, ot->idname, OP_MAX_TYPENAME); BLI_strncpy(ct->context, CTX_data_mode_string(C), OP_MAX_TYPENAME); } - + } static void operator_search_cb(const struct bContext *C, void *UNUSED(arg), const char *str, uiSearchItems *items) @@ -93,7 +93,7 @@ static void operator_search_cb(const struct bContext *C, void *UNUSED(arg), cons if (BLI_strcasestr(ot->name, str)) { if (WM_operator_poll((bContext *)C, ot)) { - + if (false == UI_search_item_add(items, ot->name, ot, 0)) break; } @@ -110,30 +110,30 @@ static uiBlock *tool_search_menu(bContext *C, ARegion *ar, void *arg_listbase) wmWindow *win = CTX_wm_window(C); uiBlock *block; uiBut *but; - + /* clear initial search string, then all items show */ search[0] = 0; - + block = UI_block_begin(C, ar, "_popup", UI_EMBOSS); UI_block_flag_enable(block, UI_BLOCK_LOOP | UI_BLOCK_SEARCH_MENU); - + /* fake button, it holds space for search items */ uiDefBut(block, UI_BTYPE_LABEL, 0, "", 10, 15, UI_searchbox_size_x(), UI_searchbox_size_y(), NULL, 0, 0, 0, 0, NULL); - + but = uiDefSearchBut(block, search, 0, ICON_VIEWZOOM, sizeof(search), 10, 0, 150, 19, 0, 0, ""); UI_but_func_search_set(but, NULL, operator_search_cb, arg_listbase, operator_call_cb, NULL); - + UI_block_bounds_set_normal(block, 6); UI_block_direction_set(block, UI_DIR_DOWN); UI_block_end(C, block); - + wm_event_init_from_window(win, &event); event.type = EVT_BUT_OPEN; event.val = KM_PRESS; event.customdata = but; event.customdatafree = false; wm_event_add(win, &event); - + return block; } @@ -144,13 +144,13 @@ static void view3d_panel_tool_shelf(const bContext *C, Panel *pa) SpaceType *st = NULL; uiLayout *col; const char *context = CTX_data_mode_string(C); - + if (sl) st = BKE_spacetype_from_id(sl->spacetype); - + if (st && st->toolshelf.first) { CustomTool *ct; - + for (ct = st->toolshelf.first; ct; ct = ct->next) { if (STREQLEN(context, ct->context, OP_MAX_TYPENAME)) { col = uiLayoutColumn(pa->layout, true); @@ -181,7 +181,7 @@ static int view3d_toolshelf_toggle_exec(bContext *C, wmOperator *UNUSED(op)) { ScrArea *sa = CTX_wm_area(C); ARegion *ar = view3d_has_tools_region(sa); - + if (ar) ED_region_toggle_hidden(C, ar); @@ -193,10 +193,10 @@ void VIEW3D_OT_toolshelf(wmOperatorType *ot) ot->name = "Tool Shelf"; ot->description = "Toggles tool shelf display"; ot->idname = "VIEW3D_OT_toolshelf"; - + ot->exec = view3d_toolshelf_toggle_exec; ot->poll = ED_operator_view3d_active; - + /* flags */ ot->flag = 0; } diff --git a/source/blender/editors/space_view3d/view3d_view.c b/source/blender/editors/space_view3d/view3d_view.c index c52a1714802..73b9a67ac56 100644 --- a/source/blender/editors/space_view3d/view3d_view.c +++ b/source/blender/editors/space_view3d/view3d_view.c @@ -181,11 +181,11 @@ void ED_view3d_smooth_view_ex( ED_view3d_from_object(ob_camera_eval, sms.dst.ofs, sms.dst.quat, &sms.dst.dist, &sms.dst.lens); sms.to_camera = true; /* restore view3d values in end */ } - + /* skip smooth viewing for render engine draw */ if (smooth_viewtx && v3d->drawtype != OB_RENDER) { bool changed = false; /* zero means no difference */ - + if (sview->camera_old != sview->camera) changed = true; else if (sms.dst.dist != rv3d->dist) @@ -196,7 +196,7 @@ void ED_view3d_smooth_view_ex( changed = true; else if (!equals_v4v4(sms.dst.quat, rv3d->viewquat)) changed = true; - + /* The new view is different from the old one * so animate the view */ if (changed) { @@ -214,10 +214,10 @@ void ED_view3d_smooth_view_ex( } sms.time_allowed = (double)smooth_viewtx / 1000.0; - + /* if this is view rotation only * we can decrease the time allowed by - * the angle between quats + * the angle between quats * this means small rotations wont lag */ if (sview->quat && !sview->ofs && !sview->dist) { /* scale the time allowed by the rotation */ @@ -235,7 +235,7 @@ void ED_view3d_smooth_view_ex( } rv3d->rflag |= RV3D_NAVIGATING; - + /* not essential but in some cases the caller will tag the area for redraw, * and in that case we can get a flicker of the 'org' user view but we want to see 'src' */ view3d_smooth_view_state_restore(&sms.src, v3d, rv3d); @@ -254,7 +254,7 @@ void ED_view3d_smooth_view_ex( ok = true; } } - + /* if we get here nothing happens */ if (ok == false) { if (sms.to_camera == false) { @@ -298,15 +298,15 @@ static void view3d_smoothview_apply(bContext *C, View3D *v3d, ARegion *ar, bool RegionView3D *rv3d = ar->regiondata; struct SmoothView3DStore *sms = rv3d->sms; float step, step_inv; - + if (sms->time_allowed != 0.0) step = (float)((rv3d->smooth_timer->duration) / sms->time_allowed); else step = 1.0f; - + /* end timer */ if (step >= 1.0f) { - + /* if we went to camera, store the original */ if (sms->to_camera) { rv3d->persp = RV3D_CAMOB; @@ -318,14 +318,14 @@ static void view3d_smoothview_apply(bContext *C, View3D *v3d, ARegion *ar, bool ED_view3d_camera_lock_sync(depsgraph, v3d, rv3d); ED_view3d_camera_lock_autokey(v3d, rv3d, C, true, true); } - + if ((rv3d->viewlock & RV3D_LOCKED) == 0) { rv3d->view = sms->org_view; } MEM_freeN(rv3d->sms); rv3d->sms = NULL; - + WM_event_remove_timer(CTX_wm_manager(C), CTX_wm_window(C), rv3d->smooth_timer); rv3d->smooth_timer = NULL; rv3d->rflag &= ~RV3D_NAVIGATING; @@ -344,7 +344,7 @@ static void view3d_smoothview_apply(bContext *C, View3D *v3d, ARegion *ar, bool else { interp_v3_v3v3(rv3d->ofs, sms->src.ofs, sms->dst.ofs, step); } - + rv3d->dist = sms->dst.dist * step + sms->src.dist * step_inv; v3d->lens = sms->dst.lens * step + sms->src.lens * step_inv; @@ -356,7 +356,7 @@ static void view3d_smoothview_apply(bContext *C, View3D *v3d, ARegion *ar, bool /* Event handling won't know if a UI item has been moved under the pointer. */ WM_event_add_mousemove(C); } - + if (sync_boxview && (rv3d->viewlock & RV3D_BOXVIEW)) { view3d_boxview_copy(CTX_wm_area(C), ar); } @@ -456,9 +456,9 @@ static int view3d_camera_to_view_exec(bContext *C, wmOperator *UNUSED(op)) DEG_id_tag_update(&v3d->camera->id, OB_RECALC_OB); rv3d->persp = RV3D_CAMOB; - + WM_event_add_notifier(C, NC_OBJECT | ND_TRANSFORM, v3d->camera); - + return OPERATOR_FINISHED; } @@ -488,11 +488,11 @@ void VIEW3D_OT_camera_to_view(wmOperatorType *ot) ot->name = "Align Camera To View"; ot->description = "Set camera view to active view"; ot->idname = "VIEW3D_OT_camera_to_view"; - + /* api callbacks */ ot->exec = view3d_camera_to_view_exec; ot->poll = view3d_camera_to_view_poll; - + /* flags */ ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO; } @@ -659,7 +659,7 @@ static int view3d_setobjectascamera_exec(bContext *C, wmOperator *op) } WM_event_add_notifier(C, NC_OBJECT | ND_DRAW, scene); } - + return OPERATOR_FINISHED; } @@ -677,11 +677,11 @@ void VIEW3D_OT_object_as_camera(wmOperatorType *ot) ot->name = "Set Active Object as Camera"; ot->description = "Set the active object as the active camera for this view or scene"; ot->idname = "VIEW3D_OT_object_as_camera"; - + /* api callbacks */ ot->exec = view3d_setobjectascamera_exec; ot->poll = ED_operator_rv3d_user_region_poll; - + /* flags */ ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO; } @@ -701,7 +701,7 @@ void view3d_winmatrix_set(Depsgraph *depsgraph, ARegion *ar, const View3D *v3d, rctf viewplane; float clipsta, clipend; bool is_ortho; - + is_ortho = ED_view3d_viewplane_get(depsgraph, v3d, rv3d, ar->winx, ar->winy, &viewplane, &clipsta, &clipend, NULL); rv3d->is_persp = !is_ortho; @@ -778,13 +778,13 @@ void view3d_viewmatrix_set( /* should be moved to better initialize later on XXX */ if (rv3d->viewlock & RV3D_LOCKED) ED_view3d_lock(rv3d); - + quat_to_mat4(rv3d->viewmat, rv3d->viewquat); if (rv3d->persp == RV3D_PERSP) rv3d->viewmat[3][2] -= rv3d->dist; if (v3d->ob_centre) { Object *ob_eval = DEG_get_evaluated_object(depsgraph, v3d->ob_centre); float vec[3]; - + copy_v3_v3(vec, ob_eval->obmat[3]); if (ob_eval->type == OB_ARMATURE && v3d->ob_centre_bone[0]) { bPoseChannel *pchan = BKE_pose_channel_find_name(ob_eval->pose, v3d->ob_centre_bone); @@ -984,7 +984,7 @@ int view3d_opengl_select( if (vc->rv3d->rflag & RV3D_CLIPPING) ED_view3d_clipping_set(vc->rv3d); - + #ifdef WITH_OPENGL_LEGACY if (IS_VIEWPORT_LEGACY(vc->v3d)) { @@ -1021,12 +1021,12 @@ int view3d_opengl_select( G.f &= ~G_PICKSEL; ED_view3d_draw_setup_view(vc->win, depsgraph, scene, ar, v3d, vc->rv3d->viewmat, NULL, NULL); - + if (v3d->drawtype > OB_WIRE) { v3d->zbuf = 0; glDisable(GL_DEPTH_TEST); } - + if (vc->rv3d->rflag & RV3D_CLIPPING) ED_view3d_clipping_disable(); @@ -1052,28 +1052,28 @@ finally: int ED_view3d_view_layer_set(int lay, const int *values, int *active) { int i, tot = 0; - + /* ensure we always have some layer selected */ for (i = 0; i < 20; i++) if (values[i]) tot++; - + if (tot == 0) return lay; - + for (i = 0; i < 20; i++) { - + if (active) { /* if this value has just been switched on, make that layer active */ if (values[i] && (lay & (1 << i)) == 0) { *active = (1 << i); } } - + if (values[i]) lay |= (1 << i); else lay &= ~(1 << i); } - + /* ensure always an active layer */ if (active && (lay & *active) == 0) { for (i = 0; i < 20; i++) { @@ -1083,7 +1083,7 @@ int ED_view3d_view_layer_set(int lay, const int *values, int *active) } } } - + return lay; } |