39 float dvec[3], vb[2], xscale, yscale;
119 vb[0] = region->
winx;
120 vb[1] = region->
winy;
122 dist_new = rv3d->
dist;
142 xy_delta[0] = (rect.
xmin + rect.
xmax - vb[0]) / 2.0f;
143 xy_delta[1] = (rect.
ymin + rect.
ymax - vb[1]) / 2.0f;
152 dist_new *=
max_ff(xscale, yscale);
157 dist_new = rv3d->
dist * (rv3d->
dist / dist_new);
167 if (is_camera_lock) {
175 sview_params.
ofs = ofs_new;
176 sview_params.
dist = &dist_new;
191 ot->name =
"Zoom to Border";
192 ot->description =
"Zoom in the view to the nearest object contained in the border";
193 ot->idname =
"VIEW3D_OT_zoom_border";
Depsgraph * CTX_data_ensure_evaluated_depsgraph(const bContext *C)
ScrArea * CTX_wm_area(const bContext *C)
RegionView3D * CTX_wm_region_view3d(const bContext *C)
ARegion * CTX_wm_region(const bContext *C)
View3D * CTX_wm_view3d(const bContext *C)
void BKE_report(ReportList *reports, eReportType type, const char *message)
MINLINE float max_ff(float a, float b)
MINLINE void sub_v3_v3(float r[3], const float a[3])
MINLINE void sub_v3_v3v3(float r[3], const float a[3], const float b[3])
MINLINE void copy_v3_v3(float r[3], const float a[3])
MINLINE void negate_v3_v3(float r[3], const float a[3])
MINLINE void add_v3_v3v3(float r[3], const float a[3], const float b[3])
MINLINE float len_v3(const float a[3]) ATTR_WARN_UNUSED_RESULT
BLI_INLINE int BLI_rcti_size_y(const struct rcti *rct)
void BLI_rcti_resize_y(struct rcti *rect, int y)
BLI_INLINE int BLI_rcti_size_x(const struct rcti *rct)
void BLI_rcti_resize_x(struct rcti *rect, int x)
#define DEFAULT_SENSOR_WIDTH
#define RV3D_LOCK_FLAGS(rv3d)
void ED_view3d_win_to_delta(const ARegion *region, const float xy_delta[2], float zfac, float r_out[3], bool precise=false)
void ED_view3d_depth_override(Depsgraph *depsgraph, ARegion *region, View3D *v3d, Object *obact, eV3DDepthOverrideMode mode, bool use_overlay, ViewDepths **r_depths)
blender::Bounds< float > ED_view3d_dist_soft_range_get(const View3D *v3d, bool use_persp_range)
void ED_view3d_persp_switch_from_camera(const Depsgraph *depsgraph, View3D *v3d, RegionView3D *rv3d, char persp)
bool ED_view3d_unproject_v3(const ARegion *region, float regionx, float regiony, float regionz, float world[3])
float ED_view3d_calc_zfac(const RegionView3D *rv3d, const float co[3])
bool ED_view3d_camera_lock_check(const View3D *v3d, const RegionView3D *rv3d)
void view3d_operator_needs_gpu(const bContext *C)
void ED_view3d_camera_lock_init(const Depsgraph *depsgraph, View3D *v3d, RegionView3D *rv3d)
Read Guarded memory(de)allocation.
BPy_StructRNA * depsgraph
bool RNA_boolean_get(PointerRNA *ptr, const char *name)
struct ReportList * reports
struct wmOperatorType * type
void view3d_depths_rect_create(ARegion *region, rcti *rect, ViewDepths *r_d)
float view3d_depth_near(ViewDepths *d)
void view3d_boxview_sync(ScrArea *area, ARegion *region)
bool view3d_zoom_or_dolly_poll(bContext *C)
void ED_view3d_smooth_view(bContext *C, View3D *v3d, ARegion *region, int smooth_viewtx, const V3D_SmoothParams *sview)
static wmOperatorStatus view3d_zoom_border_exec(bContext *C, wmOperator *op)
void VIEW3D_OT_zoom_border(wmOperatorType *ot)
void WM_gesture_box_cancel(bContext *C, wmOperator *op)
wmOperatorStatus WM_gesture_box_modal(bContext *C, wmOperator *op, const wmEvent *event)
wmOperatorStatus WM_gesture_box_invoke(bContext *C, wmOperator *op, const wmEvent *event)
void WM_operator_properties_border_to_rcti(wmOperator *op, rcti *r_rect)
void WM_operator_properties_gesture_box_zoom(wmOperatorType *ot)
int WM_operator_smooth_viewtx_get(const wmOperator *op)