Blender
V5.0
source
blender
editors
space_view3d
view3d_navigate_view_center_cursor.cc
Go to the documentation of this file.
1
/* SPDX-FileCopyrightText: 2023 Blender Authors
2
*
3
* SPDX-License-Identifier: GPL-2.0-or-later */
4
8
9
#include "
BLI_math_vector.h
"
10
11
#include "
BKE_context.hh
"
12
13
#include "
WM_api.hh
"
14
15
#include "
view3d_intern.hh
"
16
17
#include "
view3d_navigate.hh
"
/* own include */
18
19
/* -------------------------------------------------------------------- */
22
23
static
wmOperatorStatus
viewcenter_cursor_exec
(
bContext
*
C
,
wmOperator
*op)
24
{
25
View3D
*v3d =
CTX_wm_view3d
(
C
);
26
RegionView3D
*rv3d =
CTX_wm_region_view3d
(
C
);
27
Scene
*scene =
CTX_data_scene
(
C
);
28
29
if
(rv3d) {
30
ARegion
*region =
CTX_wm_region
(
C
);
31
const
int
smooth_viewtx =
WM_operator_smooth_viewtx_get
(op);
32
33
ED_view3d_smooth_view_force_finish
(
C
, v3d, region);
34
35
/* non camera center */
36
float
ofs_new[3];
37
negate_v3_v3
(ofs_new, scene->
cursor
.
location
);
38
39
V3D_SmoothParams
sview = {
nullptr
};
40
sview.
ofs
= ofs_new;
41
sview.
undo_str
= op->
type
->
name
;
42
ED_view3d_smooth_view
(
C
, v3d, region, smooth_viewtx, &sview);
43
44
/* Smooth view does view-lock #RV3D_BOXVIEW copy. */
45
}
46
47
return
OPERATOR_FINISHED
;
48
}
49
50
void
VIEW3D_OT_view_center_cursor
(
wmOperatorType
*
ot
)
51
{
52
/* identifiers */
53
ot
->name =
"Center View to Cursor"
;
54
ot
->description =
"Center the view so that the cursor is in the middle of the view"
;
55
ot
->idname =
"VIEW3D_OT_view_center_cursor"
;
56
57
/* API callbacks. */
58
ot
->exec =
viewcenter_cursor_exec
;
59
ot
->poll =
view3d_location_poll
;
60
61
/* flags */
62
ot
->flag = 0;
63
}
64
BKE_context.hh
CTX_data_scene
Scene * CTX_data_scene(const bContext *C)
Definition
blenkernel/intern/context.cc:1310
CTX_wm_region_view3d
RegionView3D * CTX_wm_region_view3d(const bContext *C)
Definition
blenkernel/intern/context.cc:1005
CTX_wm_region
ARegion * CTX_wm_region(const bContext *C)
Definition
blenkernel/intern/context.cc:961
CTX_wm_view3d
View3D * CTX_wm_view3d(const bContext *C)
Definition
blenkernel/intern/context.cc:996
BLI_math_vector.h
negate_v3_v3
MINLINE void negate_v3_v3(float r[3], const float a[3])
Definition
math_vector_inline.cc:565
wmOperatorStatus
wmOperatorStatus
Definition
DNA_windowmanager_enums.h:16
OPERATOR_FINISHED
@ OPERATOR_FINISHED
Definition
DNA_windowmanager_enums.h:19
C
#define C
Definition
RandGen.cpp:29
WM_api.hh
ARegion
Definition
DNA_screen_types.h:509
RegionView3D
Definition
DNA_view3d_types.h:32
Scene
Definition
DNA_scene_types.h:2120
Scene::cursor
View3DCursor cursor
Definition
DNA_scene_types.h:2140
V3D_SmoothParams
Definition
view3d_navigate.hh:327
V3D_SmoothParams::undo_str
const char * undo_str
Definition
view3d_navigate.hh:335
V3D_SmoothParams::ofs
const float * ofs
Definition
view3d_navigate.hh:329
View3DCursor::location
float location[3]
Definition
DNA_view3d_types.h:140
View3D
Definition
DNA_view3d_types.h:295
bContext
Definition
blenkernel/intern/context.cc:63
wmOperatorType
Definition
WM_types.hh:1031
wmOperatorType::name
const char * name
Definition
WM_types.hh:1033
wmOperator
Definition
DNA_windowmanager_types.h:531
wmOperator::type
struct wmOperatorType * type
Definition
DNA_windowmanager_types.h:542
view3d_intern.hh
view3d_location_poll
bool view3d_location_poll(bContext *C)
Definition
view3d_navigate.cc:606
view3d_navigate.hh
ED_view3d_smooth_view
void ED_view3d_smooth_view(bContext *C, View3D *v3d, ARegion *region, int smooth_viewtx, const V3D_SmoothParams *sview)
Definition
view3d_navigate_smoothview.cc:387
ED_view3d_smooth_view_force_finish
void ED_view3d_smooth_view_force_finish(bContext *C, View3D *v3d, ARegion *region)
Definition
view3d_navigate_smoothview.cc:568
viewcenter_cursor_exec
static wmOperatorStatus viewcenter_cursor_exec(bContext *C, wmOperator *op)
Definition
view3d_navigate_view_center_cursor.cc:23
VIEW3D_OT_view_center_cursor
void VIEW3D_OT_view_center_cursor(wmOperatorType *ot)
Definition
view3d_navigate_view_center_cursor.cc:50
ot
wmOperatorType * ot
Definition
wm_files.cc:4237
WM_operator_smooth_viewtx_get
int WM_operator_smooth_viewtx_get(const wmOperator *op)
Definition
wm_operators.cc:1094
Generated on
for Blender by
doxygen
1.16.1