85 prop =
RNA_def_int(
ot->
srna,
"mx", 0, 0, INT_MAX,
"Region Position X",
"", 0, INT_MAX);
87 prop =
RNA_def_int(
ot->
srna,
"my", 0, 0, INT_MAX,
"Region Position Y",
"", 0, INT_MAX);
91 RNA_def_int(
ot->
srna,
"delta", 0, INT_MIN, INT_MAX,
"Delta",
"", INT_MIN, INT_MAX);
96 ot->
srna,
"use_all_regions", 0,
"All Regions",
"View selected for all regions");
118 const float aspect[2] = {size_min /
size[0], size_min /
size[1]};
123 const float d =
len_v2(r_dir);
135 const float ofs_old[3],
136 const float viewquat_old[4],
137 const float viewquat_new[4],
138 const float dyn_ofs[3])
162 static float lastofs[3] = {0, 0, 0};
195 for (
int i = 0; i < 4; i++) {
208 float select_center[3];
211 for (base_eval =
FIRSTBASE(view_layer_eval); base_eval; base_eval = base_eval->
next) {
231 mul_v3_fl(select_center, 1.0f / (
float)tot);
288 float fallback_depth_pt[3];
360 upvec[0] = upvec[1] = 0;
361 upvec[2] = rv3d->
dist;
391 int event_xy_offset[2];
405 if (rv3d->
persmat[2][1] < 0.0f) {
452 const float quat_[4],
456 const float *align_to_quat,
457 const int smooth_viewtx)
461 const short orig_persp = rv3d->
persp;
471 if (align_to_quat ==
NULL) {
485 rv3d->
persp = perspo;
495 .camera_old = v3d->
camera,
519 .camera_old = camera_eval,
529 const float *dyn_ofs_pt =
NULL;
535 dyn_ofs_pt = dyn_ofs;
546 .dyn_ofs = dyn_ofs_pt,
555 const float event_ofs[2] = {
598 const bool skip_camera,
602 *r_only_center =
false;
604 if (skip_camera && (ob == v3d->
camera)) {
610 *r_only_center =
true;
620 const bool only_center,
642 const int smooth_viewtx)
669 if (
size < 0.0001f) {
700 .camera_old = v3d->
camera,
702 .dist = ok_dist ? &new_dist :
NULL,
714 .dist = ok_dist ? &new_dist :
NULL,
731 const int smooth_viewtx)
735 for (region =
area->regionbase.first; region; region = region->
next) {
765 bool changed =
false;
783 bool only_center =
false;
818 if (use_all_regions) {
870 const bool is_face_map = ((is_gp_edit ==
false) && region->
gizmo_map &&
873 bool ok =
false, ok_dist =
true;
900 ob_eval = base_eval->
object;
910 if (gps->editcurve !=
NULL) {
911 for (
int i = 0; i < gps->editcurve->tot_curve_points; i++) {
912 BezTriple *bezt = &gps->editcurve->curve_points[i].bezt;
930 if ((ob_eval) && (ok)) {
935 else if (is_face_map) {
947 view_layer_eval, v3d, ob_eval->
type, ob_eval->
mode, ob_eval_iter) {
967 for (base_eval =
FIRSTBASE(view_layer_eval); base_eval; base_eval = base_eval->
next) {
969 bool only_center =
false;
991 if (use_all_regions) {
1006 ot->
name =
"Frame Selected";
1008 ot->
idname =
"VIEW3D_OT_view_selected";
1060 ot->
name =
"Center View to Cursor";
1061 ot->
description =
"Center the view so that the cursor is in the middle of the view";
1062 ot->
idname =
"VIEW3D_OT_view_center_cursor";
1118 ot->
name =
"Center View to Mouse";
1119 ot->
description =
"Center the view to the Z-depth position under the mouse cursor";
1120 ot->
idname =
"VIEW3D_OT_view_center_pick";
1137 {
RV3D_VIEW_LEFT,
"LEFT", ICON_TRIA_LEFT,
"Left",
"View from the left"},
1138 {
RV3D_VIEW_RIGHT,
"RIGHT", ICON_TRIA_RIGHT,
"Right",
"View from the right"},
1139 {
RV3D_VIEW_BOTTOM,
"BOTTOM", ICON_TRIA_DOWN,
"Bottom",
"View from the bottom"},
1140 {
RV3D_VIEW_TOP,
"TOP", ICON_TRIA_UP,
"Top",
"View from the top"},
1164 float align_quat_buf[4];
1165 float *align_quat =
NULL;
1170 if (obact !=
NULL) {
1176 align_quat = align_quat_buf;
1183 float quat_rotate[4];
1210 float angle_best = FLT_MAX;
1212 int view_axis_roll_best = -1;
1221 if (angle_best > angle_test) {
1222 angle_best = angle_test;
1224 view_axis_roll_best = j;
1228 if (view_best == -1) {
1241 viewnum = view_best;
1242 view_axis_roll = view_axis_roll_best;
1250 C, v3d, region, quat, viewnum, view_axis_roll, nextperspo, align_quat, smooth_viewtx);
1252 perspo = rv3d->
persp;
1264 ot->
idname =
"VIEW3D_OT_view_axis";
1278 ot->
srna,
"align_active", 0,
"Align Active",
"Align to the active object's axis");
1281 ot->
srna,
"relative", 0,
"Relative",
"Rotate relative to the current orientation");
1361 .dist = &rv3d->
dist,
1388 ot->
name =
"View Camera";
1390 ot->
idname =
"VIEW3D_OT_view_camera";
1416 {
V3D_VIEW_STEPLEFT,
"ORBITLEFT", 0,
"Orbit Left",
"Orbit the view around to the left"},
1417 {
V3D_VIEW_STEPRIGHT,
"ORBITRIGHT", 0,
"Orbit Right",
"Orbit the view around to the right"},
1456 if (is_camera_lock) {
1493 rv3d->
view = view_opposite;
1501 float dyn_ofs[3], *dyn_ofs_pt =
NULL;
1506 dyn_ofs_pt = dyn_ofs;
1516 .dyn_ofs = dyn_ofs_pt,
1519 .undo_grouped =
true,
1536 ot->
idname =
"VIEW3D_OT_view_orbit";
1546 prop =
RNA_def_float(
ot->
srna,
"angle", 0, -FLT_MAX, FLT_MAX,
"Roll",
"", -FLT_MAX, FLT_MAX);
1608 ot->
name =
"Pan View Direction";
typedef float(TangentPoint)[2]
bool BKE_pose_minmax(struct Object *ob, float r_min[3], float r_max[3], bool use_hidden, bool use_select)
struct ScrArea * CTX_wm_area(const bContext *C)
struct Scene * CTX_data_scene(const bContext *C)
struct Object * CTX_data_edit_object(const bContext *C)
struct wmWindowManager * CTX_wm_manager(const bContext *C)
#define CTX_DATA_BEGIN(C, Type, instance, member)
struct ViewLayer * CTX_data_view_layer(const bContext *C)
struct Depsgraph * CTX_data_ensure_evaluated_depsgraph(const bContext *C)
struct Object * CTX_data_active_object(const bContext *C)
struct View3D * CTX_wm_view3d(const bContext *C)
struct wmMsgBus * CTX_wm_message_bus(const bContext *C)
struct ARegion * CTX_wm_region(const bContext *C)
struct Main * CTX_data_main(const bContext *C)
struct RegionView3D * CTX_wm_region_view3d(const bContext *C)
bool BKE_gpencil_stroke_minmax(const struct bGPDstroke *gps, bool use_select, float r_min[3], float r_max[3])
struct Object * BKE_view_layer_camera_find(struct ViewLayer *view_layer)
#define FOREACH_OBJECT_IN_MODE_END
#define FOREACH_OBJECT_IN_MODE_BEGIN(_view_layer, _v3d, _object_type, _object_mode, _instance)
General operations, lookup, etc. for blender objects.
bool BKE_object_minmax_dupli(struct Depsgraph *depsgraph, struct Scene *scene, struct Object *ob, float r_min[3], float r_max[3], bool use_hidden)
struct Object * BKE_object_pose_armature_get(struct Object *ob)
void BKE_boundbox_calc_center_aabb(const struct BoundBox *bb, float r_cent[3])
void BKE_object_minmax(struct Object *ob, float r_min[3], float r_max[3], bool use_hidden)
bool BKE_object_empty_image_frame_is_visible_in_view3d(const struct Object *ob, const struct RegionView3D *rv3d)
bool BKE_paint_select_face_test(struct Object *ob)
void BKE_paint_stroke_get_average(struct Scene *scene, struct Object *ob, float stroke[3])
void BKE_scene_cursor_mat3_to_rot(struct View3DCursor *cursor, const float mat[3][3], bool use_compat)
MINLINE float max_fff(float a, float b, float c)
MINLINE float max_ff(float a, float b)
MINLINE float min_ff(float a, float b)
MINLINE float square_f(float a)
float closest_to_line_v3(float r_close[3], const float p[3], const float l1[3], const float l2[3])
void mul_m3_v3(const float M[3][3], float r[3])
void unit_m3(float m[3][3])
void copy_m3_m4(float m1[3][3], const float m2[4][4])
void mul_m4_v3(const float M[4][4], float r[3])
void invert_qt_normalized(float q[4])
void axis_angle_to_quat(float r[4], const float axis[3], float angle)
void axis_angle_to_quat_single(float q[4], char axis, float angle)
void mat3_to_quat(float q[4], const float mat[3][3])
float normalize_qt(float q[4])
void mul_qt_v3(const float q[4], float r[3])
float normalize_qt_qt(float r[4], const float q[4])
void invert_qt_qt_normalized(float q1[4], const float q2[4])
void mul_qt_qtqt(float q[4], const float a[4], const float b[4])
void copy_qt_qt(float q[4], const float a[4])
float angle_signed_qtqt(const float q1[4], const float q2[4])
MINLINE float len_v3v3(const float a[3], const float b[3]) ATTR_WARN_UNUSED_RESULT
void minmax_v3v3_v3(float min[3], float max[3], const float vec[3])
MINLINE void sub_v3_v3(float r[3], const float a[3])
MINLINE void add_v2_v2v2_int(int r[2], const int a[2], const int b[2])
MINLINE void sub_v3_v3v3(float r[3], const float a[3], const float b[3])
MINLINE void mul_v2_fl(float r[2], float f)
MINLINE void mul_v3_fl(float r[3], float f)
MINLINE void copy_v2_v2_int(int r[2], const int a[2])
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_v2_v2(float r[2], const float a[2])
MINLINE void negate_v3(float r[3])
void mid_v3_v3v3(float r[3], const float a[3], const float b[3])
MINLINE float len_v2(const float a[2]) ATTR_WARN_UNUSED_RESULT
MINLINE void zero_v3(float r[3])
MINLINE void add_v3_v3(float r[3], const float a[3])
BLI_INLINE int BLI_rcti_size_y(const struct rcti *rct)
BLI_INLINE int BLI_rcti_size_x(const struct rcti *rct)
BLI_INLINE int BLI_rcti_cent_y(const struct rcti *rct)
BLI_INLINE int BLI_rcti_cent_x(const struct rcti *rct)
#define INIT_MINMAX(min, max)
#define BLT_I18NCONTEXT_EDITOR_VIEW3D
struct Depsgraph Depsgraph
void DEG_id_tag_update(struct ID *id, int flag)
struct Object * DEG_get_original_object(struct Object *object)
struct ViewLayer * DEG_get_evaluated_view_layer(const struct Depsgraph *graph)
struct Object * DEG_get_evaluated_object(const struct Depsgraph *depsgraph, struct Object *object)
@ ID_RECALC_COPY_ON_WRITE
#define GPENCIL_ANY_MODE(gpd)
#define OB_MODE_ALL_PAINT
#define BASE_SELECTED_EDITABLE(v3d, base)
#define FIRSTBASE(_view_layer)
#define OBACT(_view_layer)
#define BASE_VISIBLE(v3d, base)
@ V3D_AROUND_CENTER_MEDIAN
#define RV3D_VIEW_IS_AXIS(view)
#define RV3D_LOCK_FLAGS(rv3d)
@ RV3D_VIEW_AXIS_ROLL_270
@ RV3D_LOCK_ANY_TRANSFORM
@ RV3D_LOCK_ZOOM_AND_DOLLY
#define RV3D_CLIPPING_ENABLED(v3d, rv3d)
bool paintface_minmax(struct Object *ob, float r_min[3], float r_max[3])
int PE_minmax(struct Depsgraph *depsgraph, struct Scene *scene, struct ViewLayer *view_layer, float min[3], float max[3])
void ED_region_tag_redraw(struct ARegion *region)
bool ED_operator_region_view3d_active(struct bContext *C)
bool ED_view3d_camera_view_pan(struct ARegion *region, const float event_ofs[2])
bool ED_view3d_camera_lock_sync(const struct Depsgraph *depsgraph, struct View3D *v3d, struct RegionView3D *rv3d)
bool ED_view3d_clipping_clamp_minmax(const struct RegionView3D *rv3d, float min[3], float max[3])
char ED_view3d_axis_view_opposite(char view)
void ED_view3d_win_to_3d_int(const struct View3D *v3d, const struct ARegion *region, const float depth_pt[3], const int mval[2], float r_out[3])
bool ED_view3d_camera_lock_check(const struct View3D *v3d, const struct RegionView3D *rv3d)
void ED_view3d_win_to_delta(const struct ARegion *region, const float xy_delta[2], float zfac, float r_out[3])
bool ED_operator_rv3d_user_region_poll(struct bContext *C)
bool ED_view3d_quat_from_axis_view(char view, char view_axis_roll, float r_quat[4])
bool ED_view3d_offset_lock_check(const struct View3D *v3d, const struct RegionView3D *rv3d)
bool ED_view3d_persp_ensure(const struct Depsgraph *depsgraph, struct View3D *v3d, struct ARegion *region)
void ED_view3d_from_object(const struct Object *ob, float ofs[3], float quat[4], float *dist, float *lens)
void ED_view3d_win_to_vector(const struct ARegion *region, const float mval[2], float r_out[3])
float ED_view3d_radius_to_dist(const struct View3D *v3d, const struct ARegion *region, const struct Depsgraph *depsgraph, char persp, bool use_aspect, float radius)
float ED_view3d_calc_zfac(const struct RegionView3D *rv3d, const float co[3])
bool ED_view3d_camera_lock_undo_push(const char *str, View3D *v3d, struct RegionView3D *rv3d, struct bContext *C)
void ED_view3d_lastview_store(struct RegionView3D *rv3d)
void ED_view3d_win_to_3d(const struct View3D *v3d, const struct ARegion *region, const float depth_pt[3], const float mval[2], float r_out[3])
void ED_view3d_camera_lock_init(const struct Depsgraph *depsgraph, struct View3D *v3d, struct RegionView3D *rv3d)
void view3d_operator_needs_opengl(const struct bContext *C)
bool ED_view3d_context_user_region(struct bContext *C, struct View3D **r_v3d, struct ARegion **r_region)
bool ED_view3d_autodist(struct Depsgraph *depsgraph, struct ARegion *region, struct View3D *v3d, const int mval[2], float mouse_worldloc[3], bool alphaoverride, const float fallback_depth_pt[3])
NSNotificationCenter * center
_GL_VOID GLfloat value _GL_VOID_RET _GL_VOID const GLuint GLboolean *residences _GL_BOOL_RET _GL_VOID GLsizei GLfloat GLfloat GLfloat GLfloat const GLubyte *bitmap _GL_VOID_RET _GL_VOID GLenum const void *lists _GL_VOID_RET _GL_VOID const GLdouble *equation _GL_VOID_RET _GL_VOID GLdouble GLdouble blue _GL_VOID_RET _GL_VOID GLfloat GLfloat blue _GL_VOID_RET _GL_VOID GLint GLint blue _GL_VOID_RET _GL_VOID GLshort GLshort blue _GL_VOID_RET _GL_VOID GLubyte GLubyte blue _GL_VOID_RET _GL_VOID GLuint GLuint blue _GL_VOID_RET _GL_VOID GLushort GLushort blue _GL_VOID_RET _GL_VOID GLbyte GLbyte GLbyte alpha _GL_VOID_RET _GL_VOID GLdouble GLdouble GLdouble alpha _GL_VOID_RET _GL_VOID GLfloat GLfloat GLfloat alpha _GL_VOID_RET _GL_VOID GLint GLint GLint alpha _GL_VOID_RET _GL_VOID GLshort GLshort GLshort alpha _GL_VOID_RET _GL_VOID GLubyte GLubyte GLubyte alpha _GL_VOID_RET _GL_VOID GLuint GLuint GLuint alpha _GL_VOID_RET _GL_VOID GLushort GLushort GLushort alpha _GL_VOID_RET _GL_VOID GLenum mode _GL_VOID_RET _GL_VOID GLint y
_GL_VOID GLfloat value _GL_VOID_RET _GL_VOID const GLuint GLboolean *residences _GL_BOOL_RET _GL_VOID GLsizei GLfloat GLfloat GLfloat GLfloat const GLubyte *bitmap _GL_VOID_RET _GL_VOID GLenum const void *lists _GL_VOID_RET _GL_VOID const GLdouble *equation _GL_VOID_RET _GL_VOID GLdouble GLdouble blue _GL_VOID_RET _GL_VOID GLfloat GLfloat blue _GL_VOID_RET _GL_VOID GLint GLint blue _GL_VOID_RET _GL_VOID GLshort GLshort blue _GL_VOID_RET _GL_VOID GLubyte GLubyte blue _GL_VOID_RET _GL_VOID GLuint GLuint blue _GL_VOID_RET _GL_VOID GLushort GLushort blue _GL_VOID_RET _GL_VOID GLbyte GLbyte GLbyte alpha _GL_VOID_RET _GL_VOID GLdouble GLdouble GLdouble alpha _GL_VOID_RET _GL_VOID GLfloat GLfloat GLfloat alpha _GL_VOID_RET _GL_VOID GLint GLint GLint alpha _GL_VOID_RET _GL_VOID GLshort GLshort GLshort alpha _GL_VOID_RET _GL_VOID GLubyte GLubyte GLubyte alpha _GL_VOID_RET _GL_VOID GLuint GLuint GLuint alpha _GL_VOID_RET _GL_VOID GLushort GLushort GLushort alpha _GL_VOID_RET _GL_VOID GLenum mode _GL_VOID_RET _GL_VOID GLint GLsizei GLsizei GLenum type _GL_VOID_RET _GL_VOID GLsizei GLenum GLenum const void *pixels _GL_VOID_RET _GL_VOID const void *pointer _GL_VOID_RET _GL_VOID GLdouble v _GL_VOID_RET _GL_VOID GLfloat v _GL_VOID_RET _GL_VOID GLint GLint i2 _GL_VOID_RET _GL_VOID GLint j _GL_VOID_RET _GL_VOID GLfloat param _GL_VOID_RET _GL_VOID GLint param _GL_VOID_RET _GL_VOID GLdouble GLdouble GLdouble GLdouble GLdouble zFar _GL_VOID_RET _GL_UINT GLdouble *equation _GL_VOID_RET _GL_VOID GLenum GLint *params _GL_VOID_RET _GL_VOID GLenum GLfloat *v _GL_VOID_RET _GL_VOID GLenum GLfloat *params _GL_VOID_RET _GL_VOID GLfloat *values _GL_VOID_RET _GL_VOID GLushort *values _GL_VOID_RET _GL_VOID GLenum GLfloat *params _GL_VOID_RET _GL_VOID GLenum GLdouble *params _GL_VOID_RET _GL_VOID GLenum GLint *params _GL_VOID_RET _GL_VOID GLsizei const void *pointer _GL_VOID_RET _GL_VOID GLsizei const void *pointer _GL_VOID_RET _GL_BOOL GLfloat param _GL_VOID_RET _GL_VOID GLint param _GL_VOID_RET _GL_VOID GLenum GLfloat param _GL_VOID_RET _GL_VOID GLenum GLint param _GL_VOID_RET _GL_VOID GLushort pattern _GL_VOID_RET _GL_VOID GLdouble GLdouble GLint GLint const GLdouble *points _GL_VOID_RET _GL_VOID GLdouble GLdouble GLint GLint GLdouble GLdouble GLint GLint const GLdouble *points _GL_VOID_RET _GL_VOID GLdouble GLdouble u2 _GL_VOID_RET _GL_VOID GLdouble GLdouble GLint GLdouble GLdouble v2 _GL_VOID_RET _GL_VOID GLenum GLfloat param _GL_VOID_RET _GL_VOID GLenum GLint param _GL_VOID_RET _GL_VOID GLenum mode _GL_VOID_RET _GL_VOID GLdouble GLdouble nz _GL_VOID_RET _GL_VOID GLfloat GLfloat nz _GL_VOID_RET _GL_VOID GLint GLint nz _GL_VOID_RET _GL_VOID GLshort GLshort nz _GL_VOID_RET _GL_VOID GLsizei const void *pointer _GL_VOID_RET _GL_VOID GLsizei const GLfloat *values _GL_VOID_RET _GL_VOID GLsizei const GLushort *values _GL_VOID_RET _GL_VOID GLint param _GL_VOID_RET _GL_VOID const GLuint const GLclampf *priorities _GL_VOID_RET _GL_VOID GLdouble y _GL_VOID_RET _GL_VOID GLfloat y _GL_VOID_RET _GL_VOID GLint y _GL_VOID_RET _GL_VOID GLshort y _GL_VOID_RET _GL_VOID GLdouble GLdouble z _GL_VOID_RET _GL_VOID GLfloat GLfloat z _GL_VOID_RET _GL_VOID GLint GLint z _GL_VOID_RET _GL_VOID GLshort GLshort z _GL_VOID_RET _GL_VOID GLdouble GLdouble GLdouble w _GL_VOID_RET _GL_VOID GLfloat GLfloat GLfloat w _GL_VOID_RET _GL_VOID GLint GLint GLint w _GL_VOID_RET _GL_VOID GLshort GLshort GLshort w _GL_VOID_RET _GL_VOID GLdouble GLdouble GLdouble y2 _GL_VOID_RET _GL_VOID GLfloat GLfloat GLfloat y2 _GL_VOID_RET _GL_VOID GLint GLint GLint y2 _GL_VOID_RET _GL_VOID GLshort GLshort GLshort y2 _GL_VOID_RET _GL_VOID GLdouble GLdouble GLdouble z _GL_VOID_RET _GL_VOID GLdouble GLdouble z _GL_VOID_RET _GL_VOID GLuint *buffer _GL_VOID_RET _GL_VOID GLdouble t _GL_VOID_RET _GL_VOID GLfloat t _GL_VOID_RET _GL_VOID GLint t _GL_VOID_RET _GL_VOID GLshort t _GL_VOID_RET _GL_VOID GLdouble t
Read Guarded memory(de)allocation.
static DBVT_INLINE btScalar size(const btDbvtVolume &a)
SIMD_FORCE_INLINE btScalar angle(const btVector3 &v) const
Return the angle between this and another vector.
const Depsgraph * depsgraph
void(* MEM_freeN)(void *vmemh)
void *(* MEM_callocN)(size_t len, const char *str)
MINLINE void zero_v2_int(int r[2])
static void area(int d1, int d2, int e1, int e2, float weights[2])
float RNA_property_float_get(PointerRNA *ptr, PropertyRNA *prop)
bool RNA_property_is_set(PointerRNA *ptr, PropertyRNA *prop)
PropertyRNA * RNA_struct_find_property(PointerRNA *ptr, const char *identifier)
bool RNA_boolean_get(PointerRNA *ptr, const char *name)
int RNA_enum_get(PointerRNA *ptr, const char *name)
PropertyRNA * RNA_def_float(StructOrFunctionRNA *cont_, const char *identifier, float default_value, float hardmin, float hardmax, const char *ui_name, const char *ui_description, float softmin, float softmax)
PropertyRNA * RNA_def_boolean(StructOrFunctionRNA *cont_, const char *identifier, bool default_value, const char *ui_name, const char *ui_description)
void RNA_def_property_translation_context(PropertyRNA *prop, const char *context)
void RNA_def_property_flag(PropertyRNA *prop, PropertyFlag flag)
PropertyRNA * RNA_def_int(StructOrFunctionRNA *cont_, const char *identifier, int default_value, int hardmin, int hardmax, const char *ui_name, const char *ui_description, int softmin, int softmax)
PropertyRNA * RNA_def_enum(StructOrFunctionRNA *cont_, const char *identifier, const EnumPropertyItem *items, int default_value, const char *ui_name, const char *ui_description)
struct wmGizmoMap * gizmo_map
struct EditFont * editfont
struct wmTimer * smooth_timer
struct ViewOpsData::@578 curr
struct RegionView3D * rv3d
struct ViewOpsData::@577 prev
struct Depsgraph * depsgraph
struct ViewOpsData::@576 init
int(* invoke)(struct bContext *, struct wmOperator *, const struct wmEvent *) ATTR_WARN_UNUSED_RESULT
bool(* poll)(struct bContext *) ATTR_WARN_UNUSED_RESULT
int(* exec)(struct bContext *, struct wmOperator *) ATTR_WARN_UNUSED_RESULT
struct wmOperatorType * type
bool ED_view3d_minmax_verts(struct Object *obedit, float min[3], float max[3])
void view3d_boxview_sync(struct ScrArea *area, struct ARegion *region)
static void view3d_from_minmax_multi(bContext *C, View3D *v3d, const float min[3], const float max[3], const bool ok_dist, const int smooth_viewtx)
void VIEW3D_OT_view_axis(wmOperatorType *ot)
static int view_camera_exec(bContext *C, wmOperator *op)
static int view_axis_exec(bContext *C, wmOperator *op)
void view3d_operator_properties_common(wmOperatorType *ot, const enum eV3D_OpPropFlag flag)
void viewops_data_free(bContext *C, ViewOpsData *vod)
ViewOpsData * viewops_data_create(bContext *C, const wmEvent *event, enum eViewOpsFlag viewops_flag)
static void view3d_from_minmax(bContext *C, View3D *v3d, ARegion *region, const float min[3], const float max[3], bool ok_dist, const int smooth_viewtx)
void VIEW3D_OT_view_orbit(wmOperatorType *ot)
void view3d_orbit_apply_dyn_ofs(float r_ofs[3], const float ofs_old[3], const float viewquat_old[4], const float viewquat_new[4], const float dyn_ofs[3])
static int viewselected_exec(bContext *C, wmOperator *op)
static void axis_set_view(bContext *C, View3D *v3d, ARegion *region, const float quat_[4], char view, char view_axis_roll, int perspo, const float *align_to_quat, const int smooth_viewtx)
bool view3d_rotation_poll(bContext *C)
bool view3d_location_poll(bContext *C)
static int vieworbit_exec(bContext *C, wmOperator *op)
static const EnumPropertyItem prop_view_orbit_items[]
static bool view3d_object_skip_minmax(const View3D *v3d, const RegionView3D *rv3d, const Object *ob, const bool skip_camera, bool *r_only_center)
enum eViewOpsFlag viewops_flag_from_prefs(void)
bool view3d_orbit_calc_center(bContext *C, float r_dyn_ofs[3])
static int viewpan_invoke(bContext *C, wmOperator *op, const wmEvent *event)
void viewmove_apply(ViewOpsData *vod, int x, int y)
void calctrackballvec(const rcti *rect, const int event_xy[2], float r_dir[3])
void VIEW3D_OT_view_pan(wmOperatorType *ot)
static int view3d_all_exec(bContext *C, wmOperator *op)
static void view3d_object_calc_minmax(Depsgraph *depsgraph, Scene *scene, Object *ob_eval, const bool only_center, float min[3], float max[3])
void VIEW3D_OT_view_all(wmOperatorType *ot)
static bool view3d_navigation_poll_impl(bContext *C, const char viewlock)
static enum eViewOpsFlag viewops_flag_from_args(bool use_select, bool use_depth)
void VIEW3D_OT_view_selected(wmOperatorType *ot)
static const EnumPropertyItem prop_view_items[]
void VIEW3D_OT_view_camera(wmOperatorType *ot)
void VIEW3D_OT_view_center_pick(wmOperatorType *ot)
void VIEW3D_OT_view_center_cursor(wmOperatorType *ot)
void viewrotate_apply_dyn_ofs(ViewOpsData *vod, const float viewquat_new[4])
static const EnumPropertyItem prop_view_pan_items[]
static int viewcenter_cursor_exec(bContext *C, wmOperator *op)
static int viewcenter_pick_invoke(bContext *C, wmOperator *op, const wmEvent *event)
bool view3d_zoom_or_dolly_poll(bContext *C)
void ED_view3d_smooth_view(struct bContext *C, struct View3D *v3d, struct ARegion *region, int smooth_viewtx, const V3D_SmoothParams *sview)
@ VIEWOPS_FLAG_USE_MOUSE_INIT
@ VIEWOPS_FLAG_ORBIT_SELECT
@ VIEWOPS_FLAG_DEPTH_NAVIGATE
@ VIEWOPS_FLAG_PERSP_ENSURE
void ED_view3d_smooth_view_force_finish(struct bContext *C, struct View3D *v3d, struct ARegion *region)
@ V3D_OP_PROP_USE_MOUSE_INIT
@ V3D_OP_PROP_USE_ALL_REGIONS
void ED_view3d_smooth_view_undo_end(struct bContext *C, struct ScrArea *area, const char *undo_str, bool undo_grouped)
void ED_view3d_smooth_view_undo_begin(struct bContext *C, struct ScrArea *area)
#define V3D_OP_TRACKBALLSIZE
bool WM_gizmomap_is_any_selected(const wmGizmoMap *gzmap)
bool WM_gizmomap_minmax(const wmGizmoMap *gzmap, bool UNUSED(use_hidden), bool use_select, float r_min[3], float r_max[3])
#define WM_msg_publish_rna_prop(mbus, id_, data_, type_, prop_)
void WM_operator_properties_use_cursor_init(wmOperatorType *ot)
int WM_operator_smooth_viewtx_get(const wmOperator *op)
void WM_event_remove_timer(wmWindowManager *wm, wmWindow *UNUSED(win), wmTimer *timer)