Changeset View
Changeset View
Standalone View
Standalone View
source/blender/editors/space_view3d/view3d_fly.c
| Show First 20 Lines • Show All 187 Lines • ▼ Show 20 Lines | void fly_modal_keymap(wmKeyConfig *keyconf) | ||||
| WM_modalkeymap_assign(keymap, "VIEW3D_OT_fly"); | WM_modalkeymap_assign(keymap, "VIEW3D_OT_fly"); | ||||
| } | } | ||||
| typedef struct FlyInfo { | typedef struct FlyInfo { | ||||
| /* context stuff */ | /* context stuff */ | ||||
| RegionView3D *rv3d; | RegionView3D *rv3d; | ||||
| View3D *v3d; | View3D *v3d; | ||||
| ARegion *ar; | ARegion *ar; | ||||
| const struct Depsgraph *depsgraph; | |||||
| Scene *scene; | Scene *scene; | ||||
| wmTimer *timer; /* needed for redraws */ | wmTimer *timer; /* needed for redraws */ | ||||
| short state; | short state; | ||||
| bool redraw; | bool redraw; | ||||
| bool use_precision; | bool use_precision; | ||||
| /* if the user presses shift they can look about | /* if the user presses shift they can look about | ||||
| Show All 33 Lines | |||||
| static void drawFlyPixel(const struct bContext *UNUSED(C), ARegion *UNUSED(ar), void *arg) | static void drawFlyPixel(const struct bContext *UNUSED(C), ARegion *UNUSED(ar), void *arg) | ||||
| { | { | ||||
| FlyInfo *fly = arg; | FlyInfo *fly = arg; | ||||
| rctf viewborder; | rctf viewborder; | ||||
| int xoff, yoff; | int xoff, yoff; | ||||
| float x1, x2, y1, y2; | float x1, x2, y1, y2; | ||||
| if (fly->scene->camera) { | if (fly->scene->camera) { | ||||
| ED_view3d_calc_camera_border(fly->scene, fly->ar, fly->v3d, fly->rv3d, &viewborder, false); | ED_view3d_calc_camera_border(fly->scene, fly->depsgraph, fly->ar, fly->v3d, fly->rv3d, &viewborder, false); | ||||
| xoff = viewborder.xmin; | xoff = viewborder.xmin; | ||||
| yoff = viewborder.ymin; | yoff = viewborder.ymin; | ||||
| } | } | ||||
| else { | else { | ||||
| xoff = 0; | xoff = 0; | ||||
| yoff = 0; | yoff = 0; | ||||
| } | } | ||||
| ▲ Show 20 Lines • Show All 92 Lines • ▼ Show 20 Lines | static bool initFlyInfo(bContext *C, FlyInfo *fly, wmOperator *op, const wmEvent *event) | ||||
| rctf viewborder; | rctf viewborder; | ||||
| float upvec[3]; /* tmp */ | float upvec[3]; /* tmp */ | ||||
| float mat[3][3]; | float mat[3][3]; | ||||
| fly->rv3d = CTX_wm_region_view3d(C); | fly->rv3d = CTX_wm_region_view3d(C); | ||||
| fly->v3d = CTX_wm_view3d(C); | fly->v3d = CTX_wm_view3d(C); | ||||
| fly->ar = CTX_wm_region(C); | fly->ar = CTX_wm_region(C); | ||||
| fly->depsgraph = CTX_data_depsgraph(C); | |||||
| fly->scene = CTX_data_scene(C); | fly->scene = CTX_data_scene(C); | ||||
| #ifdef NDOF_FLY_DEBUG | #ifdef NDOF_FLY_DEBUG | ||||
| puts("\n-- fly begin --"); | puts("\n-- fly begin --"); | ||||
| #endif | #endif | ||||
| /* sanity check: for rare but possible case (if lib-linking the camera fails) */ | /* sanity check: for rare but possible case (if lib-linking the camera fails) */ | ||||
| if ((fly->rv3d->persp == RV3D_CAMOB) && (fly->v3d->camera == NULL)) { | if ((fly->rv3d->persp == RV3D_CAMOB) && (fly->v3d->camera == NULL)) { | ||||
| ▲ Show 20 Lines • Show All 55 Lines • ▼ Show 20 Lines | #endif | ||||
| } | } | ||||
| fly->v3d_camera_control = ED_view3d_cameracontrol_acquire( | fly->v3d_camera_control = ED_view3d_cameracontrol_acquire( | ||||
| C, fly->scene, fly->v3d, fly->rv3d, | C, fly->scene, fly->v3d, fly->rv3d, | ||||
| (U.uiflag & USER_CAM_LOCK_NO_PARENT) == 0); | (U.uiflag & USER_CAM_LOCK_NO_PARENT) == 0); | ||||
| /* calculate center */ | /* calculate center */ | ||||
| if (fly->scene->camera) { | if (fly->scene->camera) { | ||||
| ED_view3d_calc_camera_border(fly->scene, fly->ar, fly->v3d, fly->rv3d, &viewborder, false); | ED_view3d_calc_camera_border(fly->scene, fly->depsgraph, fly->ar, fly->v3d, fly->rv3d, &viewborder, false); | ||||
| fly->width = BLI_rctf_size_x(&viewborder); | fly->width = BLI_rctf_size_x(&viewborder); | ||||
| fly->height = BLI_rctf_size_y(&viewborder); | fly->height = BLI_rctf_size_y(&viewborder); | ||||
| fly->center_mval[0] = viewborder.xmin + fly->width / 2; | fly->center_mval[0] = viewborder.xmin + fly->width / 2; | ||||
| fly->center_mval[1] = viewborder.ymin + fly->height / 2; | fly->center_mval[1] = viewborder.ymin + fly->height / 2; | ||||
| } | } | ||||
| else { | else { | ||||
| ▲ Show 20 Lines • Show All 667 Lines • Show Last 20 Lines | |||||