From 5ebebcfbfff4c218ab4101ee7f6a66617ee9b01f Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Sat, 14 Jul 2018 23:49:00 +0200 Subject: WM: rename manipulator to gizmo internally --- .../gizmo_library/geometry/geom_arrow_gizmo.c | 2 +- .../gizmo_library/geometry/geom_cube_gizmo.c | 2 +- .../gizmo_library/geometry/geom_dial_gizmo.c | 2 +- .../editors/gizmo_library/gizmo_draw_utils.c | 10 +- .../blender/editors/gizmo_library/gizmo_geometry.h | 22 +- .../editors/gizmo_library/gizmo_library_intern.h | 56 ++-- .../editors/gizmo_library/gizmo_library_presets.c | 44 +-- .../editors/gizmo_library/gizmo_library_utils.c | 78 ++--- .../gizmo_library/gizmo_types/arrow2d_gizmo.c | 56 ++-- .../gizmo_library/gizmo_types/arrow3d_gizmo.c | 246 +++++++-------- .../gizmo_library/gizmo_types/button2d_gizmo.c | 76 ++--- .../gizmo_library/gizmo_types/cage2d_gizmo.c | 322 ++++++++++---------- .../gizmo_library/gizmo_types/cage3d_gizmo.c | 214 ++++++------- .../gizmo_library/gizmo_types/dial3d_gizmo.c | 128 ++++---- .../gizmo_library/gizmo_types/grab3d_gizmo.c | 144 ++++----- .../gizmo_library/gizmo_types/primitive3d_gizmo.c | 76 ++--- source/blender/editors/include/ED_gizmo_library.h | 206 ++++++------- source/blender/editors/include/ED_transform.h | 20 +- source/blender/editors/include/UI_interface.h | 4 +- source/blender/editors/include/UI_resources.h | 10 +- .../editors/interface/interface_region_tooltip.c | 14 +- source/blender/editors/interface/resources.c | 28 +- source/blender/editors/mesh/editmesh_add_gizmo.c | 138 ++++----- source/blender/editors/mesh/editmesh_bevel.c | 2 +- source/blender/editors/mesh/editmesh_bisect.c | 180 +++++------ source/blender/editors/mesh/editmesh_extrude.c | 120 ++++---- .../blender/editors/mesh/editmesh_extrude_spin.c | 208 ++++++------- source/blender/editors/mesh/editmesh_inset.c | 2 +- source/blender/editors/mesh/editmesh_polybuild.c | 2 +- source/blender/editors/mesh/mesh_intern.h | 4 +- source/blender/editors/mesh/mesh_ops.c | 2 +- source/blender/editors/screen/area.c | 4 +- source/blender/editors/screen/screen_edit.c | 4 +- source/blender/editors/space_api/spacetypes.c | 28 +- source/blender/editors/space_image/space_image.c | 40 +-- source/blender/editors/space_node/node_draw.c | 2 +- source/blender/editors/space_node/node_gizmo.c | 170 +++++------ source/blender/editors/space_node/node_intern.h | 8 +- source/blender/editors/space_node/space_node.c | 34 +-- .../editors/space_sequencer/sequencer_select.c | 2 +- source/blender/editors/space_view3d/space_view3d.c | 70 ++--- source/blender/editors/space_view3d/view3d_draw.c | 6 +- source/blender/editors/space_view3d/view3d_edit.c | 8 +- .../editors/space_view3d/view3d_gizmo_armature.c | 52 ++-- .../editors/space_view3d/view3d_gizmo_camera.c | 156 +++++----- .../editors/space_view3d/view3d_gizmo_empty.c | 56 ++-- .../editors/space_view3d/view3d_gizmo_forcefield.c | 52 ++-- .../editors/space_view3d/view3d_gizmo_lamp.c | 128 ++++---- .../editors/space_view3d/view3d_gizmo_navigate.c | 98 +++--- .../space_view3d/view3d_gizmo_navigate_type.c | 34 +-- .../editors/space_view3d/view3d_gizmo_ruler.c | 92 +++--- .../blender/editors/space_view3d/view3d_header.c | 6 +- .../blender/editors/space_view3d/view3d_intern.h | 30 +- source/blender/editors/space_view3d/view3d_ops.c | 2 +- source/blender/editors/transform/transform.c | 12 +- source/blender/editors/transform/transform.h | 6 +- .../editors/transform/transform_conversions.c | 2 +- .../blender/editors/transform/transform_generics.c | 6 +- .../blender/editors/transform/transform_gizmo_2d.c | 150 ++++----- .../blender/editors/transform/transform_gizmo_3d.c | 336 ++++++++++----------- source/blender/editors/transform/transform_ops.c | 4 +- 61 files changed, 2008 insertions(+), 2008 deletions(-) (limited to 'source/blender/editors') diff --git a/source/blender/editors/gizmo_library/geometry/geom_arrow_gizmo.c b/source/blender/editors/gizmo_library/geometry/geom_arrow_gizmo.c index e8804238590..11708f5b5ce 100644 --- a/source/blender/editors/gizmo_library/geometry/geom_arrow_gizmo.c +++ b/source/blender/editors/gizmo_library/geometry/geom_arrow_gizmo.c @@ -132,7 +132,7 @@ static unsigned short indices[] = { 3, 1, 17, }; -ManipulatorGeomInfo wm_manipulator_geom_data_arrow = { +GizmoGeomInfo wm_gizmo_geom_data_arrow = { .nverts = 25, .ntris = 46, .verts = verts, diff --git a/source/blender/editors/gizmo_library/geometry/geom_cube_gizmo.c b/source/blender/editors/gizmo_library/geometry/geom_cube_gizmo.c index f2d03821302..28eb772c082 100644 --- a/source/blender/editors/gizmo_library/geometry/geom_cube_gizmo.c +++ b/source/blender/editors/gizmo_library/geometry/geom_cube_gizmo.c @@ -66,7 +66,7 @@ static const unsigned short indices[] = { 4, 0, 7, }; -ManipulatorGeomInfo wm_manipulator_geom_data_cube = { +GizmoGeomInfo wm_gizmo_geom_data_cube = { .nverts = 8, .ntris = 12, .verts = verts, diff --git a/source/blender/editors/gizmo_library/geometry/geom_dial_gizmo.c b/source/blender/editors/gizmo_library/geometry/geom_dial_gizmo.c index bc3fb6fcaff..0225a662ff3 100644 --- a/source/blender/editors/gizmo_library/geometry/geom_dial_gizmo.c +++ b/source/blender/editors/gizmo_library/geometry/geom_dial_gizmo.c @@ -804,7 +804,7 @@ static const unsigned short indices[] = { 186, 191, 0, }; -ManipulatorGeomInfo wm_manipulator_geom_data_dial = { +GizmoGeomInfo wm_gizmo_geom_data_dial = { .nverts = 192, .ntris = 384, .verts = verts, diff --git a/source/blender/editors/gizmo_library/gizmo_draw_utils.c b/source/blender/editors/gizmo_library/gizmo_draw_utils.c index 8ae21f61758..aaaee182c71 100644 --- a/source/blender/editors/gizmo_library/gizmo_draw_utils.c +++ b/source/blender/editors/gizmo_library/gizmo_draw_utils.c @@ -50,18 +50,18 @@ #include "WM_api.h" #include "WM_types.h" -/* only for own init/exit calls (wm_manipulatortype_init/wm_manipulatortype_free) */ +/* only for own init/exit calls (wm_gizmotype_init/wm_gizmotype_free) */ #include "wm.h" /* own includes */ #include "gizmo_library_intern.h" /** - * Main draw call for ManipulatorGeomInfo data + * Main draw call for GizmoGeomInfo data */ -void wm_manipulator_geometryinfo_draw(const ManipulatorGeomInfo *info, const bool UNUSED(select), const float color[4]) +void wm_gizmo_geometryinfo_draw(const GizmoGeomInfo *info, const bool UNUSED(select), const float color[4]) { - /* TODO store the Batches inside the ManipulatorGeomInfo and updated it when geom changes + /* TODO store the Batches inside the GizmoGeomInfo and updated it when geom changes * So we don't need to re-created and discard it every time */ Gwn_VertBuf *vbo; @@ -108,7 +108,7 @@ void wm_manipulator_geometryinfo_draw(const ManipulatorGeomInfo *info, const boo GWN_batch_discard(batch); } -void wm_manipulator_vec_draw( +void wm_gizmo_vec_draw( const float color[4], const float (*verts)[3], uint vert_count, uint pos, uint primitive_type) { diff --git a/source/blender/editors/gizmo_library/gizmo_geometry.h b/source/blender/editors/gizmo_library/gizmo_geometry.h index de976bbad48..254fb6b0957 100644 --- a/source/blender/editors/gizmo_library/gizmo_geometry.h +++ b/source/blender/editors/gizmo_library/gizmo_geometry.h @@ -24,31 +24,31 @@ /** \file gizmo_geometry.h * \ingroup wm * - * \name Manipulator Geometry + * \name Gizmo Geometry * - * \brief Prototypes for arrays defining the manipulator geometry. The actual definitions can be found in files usually - * called geom_xxx_manipulator.c + * \brief Prototypes for arrays defining the gizmo geometry. The actual definitions can be found in files usually + * called geom_xxx_gizmo.c */ #ifndef __GIZMO_GEOMETRY_H__ #define __GIZMO_GEOMETRY_H__ -typedef struct ManipulatorGeomInfo { +typedef struct GizmoGeomInfo { int nverts; int ntris; const float (*verts)[3]; const float (*normals)[3]; const unsigned short *indices; -} ManipulatorGeomInfo; +} GizmoGeomInfo; -/* arrow manipulator */ -extern ManipulatorGeomInfo wm_manipulator_geom_data_arrow; +/* arrow gizmo */ +extern GizmoGeomInfo wm_gizmo_geom_data_arrow; -/* cube manipulator */ -extern ManipulatorGeomInfo wm_manipulator_geom_data_cube; +/* cube gizmo */ +extern GizmoGeomInfo wm_gizmo_geom_data_cube; -/* dial manipulator */ -extern ManipulatorGeomInfo wm_manipulator_geom_data_dial; +/* dial gizmo */ +extern GizmoGeomInfo wm_gizmo_geom_data_dial; #endif /* __GIZMO_GEOMETRY_H__ */ diff --git a/source/blender/editors/gizmo_library/gizmo_library_intern.h b/source/blender/editors/gizmo_library/gizmo_library_intern.h index 17121d3752e..f1689ee93db 100644 --- a/source/blender/editors/gizmo_library/gizmo_library_intern.h +++ b/source/blender/editors/gizmo_library/gizmo_library_intern.h @@ -30,25 +30,25 @@ #ifndef __GIZMO_LIBRARY_INTERN_H__ #define __GIZMO_LIBRARY_INTERN_H__ -/* distance around which manipulators respond to input (and get highlighted) */ -#define MANIPULATOR_HOTSPOT 14.0f +/* distance around which gizmos respond to input (and get highlighted) */ +#define GIZMO_HOTSPOT 14.0f /** - * Data for common interactions. Used in manipulator_library_utils.c functions. + * Data for common interactions. Used in gizmo_library_utils.c functions. */ -typedef struct ManipulatorCommonData { +typedef struct GizmoCommonData { int flag; float range_fac; /* factor for arrow min/max distance */ float offset; - /* property range for constrained manipulators */ + /* property range for constrained gizmos */ float range; - /* min/max value for constrained manipulators */ + /* min/max value for constrained gizmos */ float min, max; -} ManipulatorCommonData; +} GizmoCommonData; -typedef struct ManipulatorInteraction { +typedef struct GizmoInteraction { float init_value; /* initial property value */ float init_mval[2]; float init_offset; @@ -60,50 +60,50 @@ typedef struct ManipulatorInteraction { /* Total offset added by precision tweaking. * Needed to allow toggling precision on/off without causing jumps */ float precision_offset; -} ManipulatorInteraction; +} GizmoInteraction; -/* ManipulatorCommonData->flag */ +/* GizmoCommonData->flag */ enum { - MANIPULATOR_CUSTOM_RANGE_SET = (1 << 0), + GIZMO_CUSTOM_RANGE_SET = (1 << 0), }; -float manipulator_offset_from_value( - ManipulatorCommonData *data, const float value, +float gizmo_offset_from_value( + GizmoCommonData *data, const float value, const bool constrained, const bool inverted); -float manipulator_value_from_offset( - ManipulatorCommonData *data, ManipulatorInteraction *inter, const float offset, +float gizmo_value_from_offset( + GizmoCommonData *data, GizmoInteraction *inter, const float offset, const bool constrained, const bool inverted, const bool use_precision); -void manipulator_property_data_update( - struct wmManipulator *mpr, ManipulatorCommonData *data, wmManipulatorProperty *mpr_prop, +void gizmo_property_data_update( + struct wmGizmo *mpr, GizmoCommonData *data, wmGizmoProperty *mpr_prop, const bool constrained, const bool inverted); -void manipulator_property_value_reset( - bContext *C, const struct wmManipulator *mpr, ManipulatorInteraction *inter, wmManipulatorProperty *mpr_prop); +void gizmo_property_value_reset( + bContext *C, const struct wmGizmo *mpr, GizmoInteraction *inter, wmGizmoProperty *mpr_prop); /* -------------------------------------------------------------------- */ -void manipulator_color_get( - const struct wmManipulator *mpr, const bool highlight, +void gizmo_color_get( + const struct wmGizmo *mpr, const bool highlight, float r_color[4]); -bool manipulator_window_project_2d( - bContext *C, const struct wmManipulator *mpr, const float mval[2], int axis, bool use_offset, +bool gizmo_window_project_2d( + bContext *C, const struct wmGizmo *mpr, const float mval[2], int axis, bool use_offset, float r_co[2]); -bool manipulator_window_project_3d( - bContext *C, const struct wmManipulator *mpr, const float mval[2], bool use_offset, +bool gizmo_window_project_3d( + bContext *C, const struct wmGizmo *mpr, const float mval[2], bool use_offset, float r_co[3]); /* -------------------------------------------------------------------- */ -/* Manipulator drawing */ +/* Gizmo drawing */ #include "gizmo_geometry.h" -void wm_manipulator_geometryinfo_draw(const struct ManipulatorGeomInfo *info, const bool select, const float color[4]); -void wm_manipulator_vec_draw( +void wm_gizmo_geometryinfo_draw(const struct GizmoGeomInfo *info, const bool select, const float color[4]); +void wm_gizmo_vec_draw( const float color[4], const float (*verts)[3], uint vert_count, uint pos, uint primitive_type); diff --git a/source/blender/editors/gizmo_library/gizmo_library_presets.c b/source/blender/editors/gizmo_library/gizmo_library_presets.c index d58e0c9dc85..8a6b92e48d6 100644 --- a/source/blender/editors/gizmo_library/gizmo_library_presets.c +++ b/source/blender/editors/gizmo_library/gizmo_library_presets.c @@ -21,9 +21,9 @@ /** \file blender/editors/gizmo_library/gizmo_library_presets.c * \ingroup wm * - * \name Manipulator Lib Presets + * \name Gizmo Lib Presets * - * \brief Preset shapes that can be drawn from any manipulator type. + * \brief Preset shapes that can be drawn from any gizmo type. */ #include "MEM_guardedalloc.h" @@ -57,7 +57,7 @@ #include "ED_gizmo_library.h" /* own include */ #include "gizmo_library_intern.h" /* own include */ -/* TODO, this is to be used by RNA. might move to ED_manipulator_library */ +/* TODO, this is to be used by RNA. might move to ED_gizmo_library */ /** * Given a single axis, orient the matrix to a different direction. @@ -80,15 +80,15 @@ static void single_axis_convert( /** * Use for all geometry. */ -static void ed_manipulator_draw_preset_geometry( - const struct wmManipulator *mpr, float mat[4][4], int select_id, - const ManipulatorGeomInfo *info) +static void ed_gizmo_draw_preset_geometry( + const struct wmGizmo *mpr, float mat[4][4], int select_id, + const GizmoGeomInfo *info) { const bool is_select = (select_id != -1); - const bool is_highlight = is_select && (mpr->state & WM_MANIPULATOR_STATE_HIGHLIGHT) != 0; + const bool is_highlight = is_select && (mpr->state & WM_GIZMO_STATE_HIGHLIGHT) != 0; float color[4]; - manipulator_color_get(mpr, is_highlight, color); + gizmo_color_get(mpr, is_highlight, color); if (is_select) { GPU_select_load_id(select_id); @@ -96,7 +96,7 @@ static void ed_manipulator_draw_preset_geometry( gpuPushMatrix(); gpuMultMatrix(mat); - wm_manipulator_geometryinfo_draw(info, is_select, color); + wm_gizmo_geometryinfo_draw(info, is_select, color); gpuPopMatrix(); if (is_select) { @@ -104,36 +104,36 @@ static void ed_manipulator_draw_preset_geometry( } } -void ED_manipulator_draw_preset_box( - const struct wmManipulator *mpr, float mat[4][4], int select_id) +void ED_gizmo_draw_preset_box( + const struct wmGizmo *mpr, float mat[4][4], int select_id) { - ed_manipulator_draw_preset_geometry(mpr, mat, select_id, &wm_manipulator_geom_data_cube); + ed_gizmo_draw_preset_geometry(mpr, mat, select_id, &wm_gizmo_geom_data_cube); } -void ED_manipulator_draw_preset_arrow( - const struct wmManipulator *mpr, float mat[4][4], int axis, int select_id) +void ED_gizmo_draw_preset_arrow( + const struct wmGizmo *mpr, float mat[4][4], int axis, int select_id) { float mat_rotate[4][4]; single_axis_convert(OB_POSZ, mat, axis, mat_rotate); - ed_manipulator_draw_preset_geometry(mpr, mat_rotate, select_id, &wm_manipulator_geom_data_arrow); + ed_gizmo_draw_preset_geometry(mpr, mat_rotate, select_id, &wm_gizmo_geom_data_arrow); } -void ED_manipulator_draw_preset_circle( - const struct wmManipulator *mpr, float mat[4][4], int axis, int select_id) +void ED_gizmo_draw_preset_circle( + const struct wmGizmo *mpr, float mat[4][4], int axis, int select_id) { float mat_rotate[4][4]; single_axis_convert(OB_POSZ, mat, axis, mat_rotate); - ed_manipulator_draw_preset_geometry(mpr, mat_rotate, select_id, &wm_manipulator_geom_data_dial); + ed_gizmo_draw_preset_geometry(mpr, mat_rotate, select_id, &wm_gizmo_geom_data_dial); } -void ED_manipulator_draw_preset_facemap( - const bContext *C, const struct wmManipulator *mpr, struct Scene *scene, Object *ob, const int facemap, int select_id) +void ED_gizmo_draw_preset_facemap( + const bContext *C, const struct wmGizmo *mpr, struct Scene *scene, Object *ob, const int facemap, int select_id) { const bool is_select = (select_id != -1); - const bool is_highlight = is_select && (mpr->state & WM_MANIPULATOR_STATE_HIGHLIGHT) != 0; + const bool is_highlight = is_select && (mpr->state & WM_GIZMO_STATE_HIGHLIGHT) != 0; float color[4]; - manipulator_color_get(mpr, is_highlight, color); + gizmo_color_get(mpr, is_highlight, color); if (is_select) { GPU_select_load_id(select_id); diff --git a/source/blender/editors/gizmo_library/gizmo_library_utils.c b/source/blender/editors/gizmo_library/gizmo_library_utils.c index 794728dd03c..6e6bc2ed824 100644 --- a/source/blender/editors/gizmo_library/gizmo_library_utils.c +++ b/source/blender/editors/gizmo_library/gizmo_library_utils.c @@ -26,9 +26,9 @@ /** \file gizmo_library_utils.c * \ingroup wm * - * \name Manipulator Library Utilities + * \name Gizmo Library Utilities * - * \brief This file contains functions for common behaviors of manipulators. + * \brief This file contains functions for common behaviors of gizmos. */ #include "BLI_math.h" @@ -50,34 +50,34 @@ #include "gizmo_library_intern.h" /* factor for precision tweaking */ -#define MANIPULATOR_PRECISION_FAC 0.05f +#define GIZMO_PRECISION_FAC 0.05f -BLI_INLINE float manipulator_offset_from_value_constr( +BLI_INLINE float gizmo_offset_from_value_constr( const float range_fac, const float min, const float range, const float value, const bool inverted) { return inverted ? (range_fac * (min + range - value) / range) : (range_fac * (value / range)); } -BLI_INLINE float manipulator_value_from_offset_constr( +BLI_INLINE float gizmo_value_from_offset_constr( const float range_fac, const float min, const float range, const float value, const bool inverted) { return inverted ? (min + range - (value * range / range_fac)) : (value * range / range_fac); } -float manipulator_offset_from_value( - ManipulatorCommonData *data, const float value, const bool constrained, const bool inverted) +float gizmo_offset_from_value( + GizmoCommonData *data, const float value, const bool constrained, const bool inverted) { if (constrained) - return manipulator_offset_from_value_constr(data->range_fac, data->min, data->range, value, inverted); + return gizmo_offset_from_value_constr(data->range_fac, data->min, data->range, value, inverted); return value; } -float manipulator_value_from_offset( - ManipulatorCommonData *data, ManipulatorInteraction *inter, const float offset, +float gizmo_value_from_offset( + GizmoCommonData *data, GizmoInteraction *inter, const float offset, const bool constrained, const bool inverted, const bool use_precision) { const float max = data->min + data->range; @@ -88,26 +88,26 @@ float manipulator_value_from_offset( } inter->prev_offset = offset; - float ofs_new = inter->init_offset + offset - inter->precision_offset * (1.0f - MANIPULATOR_PRECISION_FAC); + float ofs_new = inter->init_offset + offset - inter->precision_offset * (1.0f - GIZMO_PRECISION_FAC); float value; if (constrained) { - value = manipulator_value_from_offset_constr(data->range_fac, data->min, data->range, ofs_new, inverted); + value = gizmo_value_from_offset_constr(data->range_fac, data->min, data->range, ofs_new, inverted); } else { value = ofs_new; } /* clamp to custom range */ - if (data->flag & MANIPULATOR_CUSTOM_RANGE_SET) { + if (data->flag & GIZMO_CUSTOM_RANGE_SET) { CLAMP(value, data->min, max); } return value; } -void manipulator_property_data_update( - wmManipulator *mpr, ManipulatorCommonData *data, wmManipulatorProperty *mpr_prop, +void gizmo_property_data_update( + wmGizmo *mpr, GizmoCommonData *data, wmGizmoProperty *mpr_prop, const bool constrained, const bool inverted) { if (mpr_prop->custom_func.value_get_fn != NULL) { @@ -121,12 +121,12 @@ void manipulator_property_data_update( return; } - float value = WM_manipulator_target_property_value_get(mpr, mpr_prop); + float value = WM_gizmo_target_property_value_get(mpr, mpr_prop); if (constrained) { - if ((data->flag & MANIPULATOR_CUSTOM_RANGE_SET) == 0) { + if ((data->flag & GIZMO_CUSTOM_RANGE_SET) == 0) { float range[2]; - if (WM_manipulator_target_property_range_get(mpr, mpr_prop, range)) { + if (WM_gizmo_target_property_range_get(mpr, mpr_prop, range)) { data->range = range[1] - range[0]; data->min = range[0]; } @@ -134,27 +134,27 @@ void manipulator_property_data_update( BLI_assert(0); } } - data->offset = manipulator_offset_from_value_constr(data->range_fac, data->min, data->range, value, inverted); + data->offset = gizmo_offset_from_value_constr(data->range_fac, data->min, data->range, value, inverted); } else { data->offset = value; } } -void manipulator_property_value_reset( - bContext *C, const wmManipulator *mpr, ManipulatorInteraction *inter, - wmManipulatorProperty *mpr_prop) +void gizmo_property_value_reset( + bContext *C, const wmGizmo *mpr, GizmoInteraction *inter, + wmGizmoProperty *mpr_prop) { - WM_manipulator_target_property_value_set(C, mpr, mpr_prop, inter->init_value); + WM_gizmo_target_property_value_set(C, mpr, mpr_prop, inter->init_value); } /* -------------------------------------------------------------------- */ -void manipulator_color_get( - const wmManipulator *mpr, const bool highlight, +void gizmo_color_get( + const wmGizmo *mpr, const bool highlight, float r_col[4]) { - if (highlight && !(mpr->flag & WM_MANIPULATOR_DRAW_HOVER)) { + if (highlight && !(mpr->flag & WM_GIZMO_DRAW_HOVER)) { copy_v4_v4(r_col, mpr->color_hi); } else { @@ -165,26 +165,26 @@ void manipulator_color_get( /* -------------------------------------------------------------------- */ /** - * Takes mouse coordinates and returns them in relation to the manipulator. - * Both 2D & 3D supported, use so we can use 2D manipulators in the 3D view. + * Takes mouse coordinates and returns them in relation to the gizmo. + * Both 2D & 3D supported, use so we can use 2D gizmos in the 3D view. */ -bool manipulator_window_project_2d( - bContext *C, const struct wmManipulator *mpr, const float mval[2], int axis, bool use_offset, +bool gizmo_window_project_2d( + bContext *C, const struct wmGizmo *mpr, const float mval[2], int axis, bool use_offset, float r_co[2]) { float mat[4][4]; { float mat_identity[4][4]; - struct WM_ManipulatorMatrixParams params = {NULL}; + struct WM_GizmoMatrixParams params = {NULL}; if (use_offset == false) { unit_m4(mat_identity); params.matrix_offset = mat_identity; } - WM_manipulator_calc_matrix_final_params(mpr, ¶ms, mat); + WM_gizmo_calc_matrix_final_params(mpr, ¶ms, mat); } /* rotate mouse in relation to the center and relocate it */ - if (mpr->parent_mgroup->type->flag & WM_MANIPULATORGROUPTYPE_3D) { + if (mpr->parent_mgroup->type->flag & WM_GIZMOGROUPTYPE_3D) { /* For 3d views, transform 2D mouse pos onto plane. */ View3D *v3d = CTX_wm_view3d(C); ARegion *ar = CTX_wm_region(C); @@ -220,26 +220,26 @@ bool manipulator_window_project_2d( } } -bool manipulator_window_project_3d( - bContext *C, const struct wmManipulator *mpr, const float mval[2], bool use_offset, +bool gizmo_window_project_3d( + bContext *C, const struct wmGizmo *mpr, const float mval[2], bool use_offset, float r_co[3]) { float mat[4][4]; { float mat_identity[4][4]; - struct WM_ManipulatorMatrixParams params = {NULL}; + struct WM_GizmoMatrixParams params = {NULL}; if (use_offset == false) { unit_m4(mat_identity); params.matrix_offset = mat_identity; } - WM_manipulator_calc_matrix_final_params(mpr, ¶ms, mat); + WM_gizmo_calc_matrix_final_params(mpr, ¶ms, mat); } - if (mpr->parent_mgroup->type->flag & WM_MANIPULATORGROUPTYPE_3D) { + if (mpr->parent_mgroup->type->flag & WM_GIZMOGROUPTYPE_3D) { View3D *v3d = CTX_wm_view3d(C); ARegion *ar = CTX_wm_region(C); /* Note: we might want a custom reference point passed in, - * instead of the manipulator center. */ + * instead of the gizmo center. */ ED_view3d_win_to_3d(v3d, ar, mat[3], mval, r_co); invert_m4(mat); mul_m4_v3(mat, r_co); diff --git a/source/blender/editors/gizmo_library/gizmo_types/arrow2d_gizmo.c b/source/blender/editors/gizmo_library/gizmo_types/arrow2d_gizmo.c index fbb30b95562..dfa2eeeb38b 100644 --- a/source/blender/editors/gizmo_library/gizmo_types/arrow2d_gizmo.c +++ b/source/blender/editors/gizmo_library/gizmo_types/arrow2d_gizmo.c @@ -26,9 +26,9 @@ /** \file arrow2d_gizmo.c * \ingroup wm * - * \name 2D Arrow Manipulator + * \name 2D Arrow Gizmo * - * \brief Simple arrow manipulator which is dragged into a certain direction. + * \brief Simple arrow gizmo which is dragged into a certain direction. */ #include "BLI_listbase.h" @@ -61,7 +61,7 @@ #include "../gizmo_library_intern.h" -static void arrow2d_draw_geom(wmManipulator *mpr, const float matrix[4][4], const float color[4]) +static void arrow2d_draw_geom(wmGizmo *mpr, const float matrix[4][4], const float color[4]) { const float size = 0.11f; const float size_breadth = size / 2.0f; @@ -96,24 +96,24 @@ static void arrow2d_draw_geom(wmManipulator *mpr, const float matrix[4][4], cons gpuPopMatrix(); } -static void manipulator_arrow2d_draw(const bContext *UNUSED(C), wmManipulator *mpr) +static void gizmo_arrow2d_draw(const bContext *UNUSED(C), wmGizmo *mpr) { float color[4]; float matrix_final[4][4]; - manipulator_color_get(mpr, mpr->state & WM_MANIPULATOR_STATE_HIGHLIGHT, color); + gizmo_color_get(mpr, mpr->state & WM_GIZMO_STATE_HIGHLIGHT, color); GPU_line_width(mpr->line_width); - WM_manipulator_calc_matrix_final(mpr, matrix_final); + WM_gizmo_calc_matrix_final(mpr, matrix_final); GPU_blend(true); arrow2d_draw_geom(mpr, matrix_final, color); GPU_blend(false); if (mpr->interaction_data) { - ManipulatorInteraction *inter = mpr->interaction_data; + GizmoInteraction *inter = mpr->interaction_data; GPU_blend(true); arrow2d_draw_geom(mpr, inter->init_matrix_final, (const float[4]){0.5f, 0.5f, 0.5f, 0.5f}); @@ -121,26 +121,26 @@ static void manipulator_arrow2d_draw(const bContext *UNUSED(C), wmManipulator *m } } -static void manipulator_arrow2d_setup(wmManipulator *mpr) +static void gizmo_arrow2d_setup(wmGizmo *mpr) { - mpr->flag |= WM_MANIPULATOR_DRAW_MODAL; + mpr->flag |= WM_GIZMO_DRAW_MODAL; } -static int manipulator_arrow2d_invoke( - bContext *UNUSED(C), wmManipulator *mpr, const wmEvent *UNUSED(event)) +static int gizmo_arrow2d_invoke( + bContext *UNUSED(C), wmGizmo *mpr, const wmEvent *UNUSED(event)) { - ManipulatorInteraction *inter = MEM_callocN(sizeof(ManipulatorInteraction), __func__); + GizmoInteraction *inter = MEM_callocN(sizeof(GizmoInteraction), __func__); copy_m4_m4(inter->init_matrix_basis, mpr->matrix_basis); - WM_manipulator_calc_matrix_final(mpr, inter->init_matrix_final); + WM_gizmo_calc_matrix_final(mpr, inter->init_matrix_final); mpr->interaction_data = inter; return OPERATOR_RUNNING_MODAL; } -static int manipulator_arrow2d_test_select( - bContext *UNUSED(C), wmManipulator *mpr, const wmEvent *event) +static int gizmo_arrow2d_test_select( + bContext *UNUSED(C), wmGizmo *mpr, const wmEvent *event) { const float mval[2] = {event->mval[0], event->mval[1]}; const float arrow_length = RNA_float_get(mpr->ptr, "length"); @@ -165,14 +165,14 @@ static int manipulator_arrow2d_test_select( /* arrow line intersection check */ float isect_1[2], isect_2[2]; const int isect = isect_line_sphere_v2( - line[0], line[1], mval_local, MANIPULATOR_HOTSPOT + mpr->line_width * 0.5f, + line[0], line[1], mval_local, GIZMO_HOTSPOT + mpr->line_width * 0.5f, isect_1, isect_2); if (isect > 0) { float line_ext[2][2]; /* extended line for segment check including hotspot */ copy_v2_v2(line_ext[0], line[0]); - line_ext[1][0] = line[1][0] + MANIPULATOR_HOTSPOT * ((line[1][0] - line[0][0]) / line_len); - line_ext[1][1] = line[1][1] + MANIPULATOR_HOTSPOT * ((line[1][1] - line[0][1]) / line_len); + line_ext[1][0] = line[1][0] + GIZMO_HOTSPOT * ((line[1][0] - line[0][0]) / line_len); + line_ext[1][1] = line[1][1] + GIZMO_HOTSPOT * ((line[1][1] - line[0][1]) / line_len); const float lambda_1 = line_point_factor_v2(isect_1, line_ext[0], line_ext[1]); if (isect == 1) { @@ -193,22 +193,22 @@ static int manipulator_arrow2d_test_select( } /* -------------------------------------------------------------------- */ -/** \name 2D Arrow Manipulator API +/** \name 2D Arrow Gizmo API * * \{ */ -static void MANIPULATOR_WT_arrow_2d(wmManipulatorType *wt) +static void GIZMO_WT_arrow_2d(wmGizmoType *wt) { /* identifiers */ - wt->idname = "MANIPULATOR_WT_arrow_2d"; + wt->idname = "GIZMO_WT_arrow_2d"; /* api callbacks */ - wt->draw = manipulator_arrow2d_draw; - wt->setup = manipulator_arrow2d_setup; - wt->invoke = manipulator_arrow2d_invoke; - wt->test_select = manipulator_arrow2d_test_select; + wt->draw = gizmo_arrow2d_draw; + wt->setup = gizmo_arrow2d_setup; + wt->invoke = gizmo_arrow2d_invoke; + wt->test_select = gizmo_arrow2d_test_select; - wt->struct_size = sizeof(wmManipulator); + wt->struct_size = sizeof(wmGizmo); /* rna */ RNA_def_float(wt->srna, "length", 1.0f, 0.0f, FLT_MAX, "Arrow Line Length", "", 0.0f, FLT_MAX); @@ -217,9 +217,9 @@ static void MANIPULATOR_WT_arrow_2d(wmManipulatorType *wt) "Roll", "", DEG2RADF(-360.0f), DEG2RADF(360.0f)); } -void ED_manipulatortypes_arrow_2d(void) +void ED_gizmotypes_arrow_2d(void) { - WM_manipulatortype_append(MANIPULATOR_WT_arrow_2d); + WM_gizmotype_append(GIZMO_WT_arrow_2d); } /** \} */ diff --git a/source/blender/editors/gizmo_library/gizmo_types/arrow3d_gizmo.c b/source/blender/editors/gizmo_library/gizmo_types/arrow3d_gizmo.c index 72b24e03c00..9807a111d26 100644 --- a/source/blender/editors/gizmo_library/gizmo_types/arrow3d_gizmo.c +++ b/source/blender/editors/gizmo_library/gizmo_types/arrow3d_gizmo.c @@ -26,15 +26,15 @@ /** \file arrow3d_gizmo.c * \ingroup wm * - * \name Arrow Manipulator + * \name Arrow Gizmo * - * 3D Manipulator + * 3D Gizmo * - * \brief Simple arrow manipulator which is dragged into a certain direction. + * \brief Simple arrow gizmo which is dragged into a certain direction. * The arrow head can have varying shapes, e.g. cone, box, etc. * * - `matrix[0]` is derived from Y and Z. - * - `matrix[1]` is 'up' for manipulator types that have an up. + * - `matrix[1]` is 'up' for gizmo types that have an up. * - `matrix[2]` is the arrow direction (for all arrowes). */ @@ -69,35 +69,35 @@ #include "../gizmo_geometry.h" #include "../gizmo_library_intern.h" -/* to use custom arrows exported to geom_arrow_manipulator.c */ -//#define USE_MANIPULATOR_CUSTOM_ARROWS +/* to use custom arrows exported to geom_arrow_gizmo.c */ +//#define USE_GIZMO_CUSTOM_ARROWS -typedef struct ArrowManipulator3D { - wmManipulator manipulator; - ManipulatorCommonData data; -} ArrowManipulator3D; +typedef struct ArrowGizmo3D { + wmGizmo gizmo; + GizmoCommonData data; +} ArrowGizmo3D; /* -------------------------------------------------------------------- */ -static void manipulator_arrow_matrix_basis_get(const wmManipulator *mpr, float r_matrix[4][4]) +static void gizmo_arrow_matrix_basis_get(const wmGizmo *mpr, float r_matrix[4][4]) { - ArrowManipulator3D *arrow = (ArrowManipulator3D *)mpr; + ArrowGizmo3D *arrow = (ArrowGizmo3D *)mpr; - copy_m4_m4(r_matrix, arrow->manipulator.matrix_basis); - madd_v3_v3fl(r_matrix[3], arrow->manipulator.matrix_basis[2], arrow->data.offset); + copy_m4_m4(r_matrix, arrow->gizmo.matrix_basis); + madd_v3_v3fl(r_matrix[3], arrow->gizmo.matrix_basis[2], arrow->data.offset); } -static void arrow_draw_geom(const ArrowManipulator3D *arrow, const bool select, const float color[4]) +static void arrow_draw_geom(const ArrowGizmo3D *arrow, const bool select, const float color[4]) { uint pos = GWN_vertformat_attr_add(immVertexFormat(), "pos", GWN_COMP_F32, 3, GWN_FETCH_FLOAT); bool unbind_shader = true; - const int draw_style = RNA_enum_get(arrow->manipulator.ptr, "draw_style"); - const int draw_options = RNA_enum_get(arrow->manipulator.ptr, "draw_options"); + const int draw_style = RNA_enum_get(arrow->gizmo.ptr, "draw_style"); + const int draw_options = RNA_enum_get(arrow->gizmo.ptr, "draw_options"); immBindBuiltinProgram(GPU_SHADER_3D_UNIFORM_COLOR); - if (draw_style == ED_MANIPULATOR_ARROW_STYLE_CROSS) { + if (draw_style == ED_GIZMO_ARROW_STYLE_CROSS) { immUniformColor4fv(color); immBegin(GWN_PRIM_LINES, 4); @@ -107,9 +107,9 @@ static void arrow_draw_geom(const ArrowManipulator3D *arrow, const bool select, immVertex3f(pos, 0.0f, 1.0f, 0.0f); immEnd(); } - else if (draw_style == ED_MANIPULATOR_ARROW_STYLE_CONE) { + else if (draw_style == ED_GIZMO_ARROW_STYLE_CONE) { float aspect[2]; - RNA_float_get_array(arrow->manipulator.ptr, "aspect", aspect); + RNA_float_get_array(arrow->gizmo.ptr, "aspect", aspect); const float unitx = aspect[0]; const float unity = aspect[1]; const float vec[4][3] = { @@ -119,23 +119,23 @@ static void arrow_draw_geom(const ArrowManipulator3D *arrow, const bool select, {-unitx, unity, 0}, }; - GPU_line_width(arrow->manipulator.line_width); - wm_manipulator_vec_draw(color, vec, ARRAY_SIZE(vec), pos, GWN_PRIM_LINE_LOOP); + GPU_line_width(arrow->gizmo.line_width); + wm_gizmo_vec_draw(color, vec, ARRAY_SIZE(vec), pos, GWN_PRIM_LINE_LOOP); } else { -#ifdef USE_MANIPULATOR_CUSTOM_ARROWS - wm_manipulator_geometryinfo_draw(&wm_manipulator_geom_data_arrow, select, color); +#ifdef USE_GIZMO_CUSTOM_ARROWS + wm_gizmo_geometryinfo_draw(&wm_gizmo_geom_data_arrow, select, color); #else - const float arrow_length = RNA_float_get(arrow->manipulator.ptr, "length"); + const float arrow_length = RNA_float_get(arrow->gizmo.ptr, "length"); const float vec[2][3] = { {0.0f, 0.0f, 0.0f}, {0.0f, 0.0f, arrow_length}, }; - if (draw_options & ED_MANIPULATOR_ARROW_DRAW_FLAG_STEM) { - GPU_line_width(arrow->manipulator.line_width); - wm_manipulator_vec_draw(color, vec, ARRAY_SIZE(vec), pos, GWN_PRIM_LINE_STRIP); + if (draw_options & ED_GIZMO_ARROW_DRAW_FLAG_STEM) { + GPU_line_width(arrow->gizmo.line_width); + wm_gizmo_vec_draw(color, vec, ARRAY_SIZE(vec), pos, GWN_PRIM_LINE_STRIP); } else { immUniformColor4fv(color); @@ -145,7 +145,7 @@ static void arrow_draw_geom(const ArrowManipulator3D *arrow, const bool select, gpuPushMatrix(); - if (draw_style == ED_MANIPULATOR_ARROW_STYLE_BOX) { + if (draw_style == ED_GIZMO_ARROW_STYLE_BOX) { const float size = 0.05f; /* translate to line end with some extra offset so box starts exactly where line ends */ @@ -156,10 +156,10 @@ static void arrow_draw_geom(const ArrowManipulator3D *arrow, const bool select, /* draw cube */ immUnbindProgram(); unbind_shader = false; - wm_manipulator_geometryinfo_draw(&wm_manipulator_geom_data_cube, select, color); + wm_gizmo_geometryinfo_draw(&wm_gizmo_geom_data_cube, select, color); } else { - BLI_assert(draw_style == ED_MANIPULATOR_ARROW_STYLE_NORMAL); + BLI_assert(draw_style == ED_GIZMO_ARROW_STYLE_NORMAL); const float len = 0.25f; const float width = 0.06f; @@ -172,7 +172,7 @@ static void arrow_draw_geom(const ArrowManipulator3D *arrow, const bool select, } gpuPopMatrix(); -#endif /* USE_MANIPULATOR_CUSTOM_ARROWS */ +#endif /* USE_GIZMO_CUSTOM_ARROWS */ } if (unbind_shader) { @@ -180,15 +180,15 @@ static void arrow_draw_geom(const ArrowManipulator3D *arrow, const bool select, } } -static void arrow_draw_intern(ArrowManipulator3D *arrow, const bool select, const bool highlight) +static void arrow_draw_intern(ArrowGizmo3D *arrow, const bool select, const bool highlight) { - wmManipulator *mpr = &arrow->manipulator; + wmGizmo *mpr = &arrow->gizmo; float color[4]; float matrix_final[4][4]; - manipulator_color_get(mpr, highlight, color); + gizmo_color_get(mpr, highlight, color); - WM_manipulator_calc_matrix_final(mpr, matrix_final); + WM_gizmo_calc_matrix_final(mpr, matrix_final); gpuPushMatrix(); gpuMultMatrix(matrix_final); @@ -199,7 +199,7 @@ static void arrow_draw_intern(ArrowManipulator3D *arrow, const bool select, cons gpuPopMatrix(); if (mpr->interaction_data) { - ManipulatorInteraction *inter = mpr->interaction_data; + GizmoInteraction *inter = mpr->interaction_data; gpuPushMatrix(); gpuMultMatrix(inter->init_matrix_final); @@ -213,29 +213,29 @@ static void arrow_draw_intern(ArrowManipulator3D *arrow, const bool select, cons } } -static void manipulator_arrow_draw_select( - const bContext *UNUSED(C), wmManipulator *mpr, +static void gizmo_arrow_draw_select( + const bContext *UNUSED(C), wmGizmo *mpr, int select_id) { GPU_select_load_id(select_id); - arrow_draw_intern((ArrowManipulator3D *)mpr, true, false); + arrow_draw_intern((ArrowGizmo3D *)mpr, true, false); } -static void manipulator_arrow_draw(const bContext *UNUSED(C), wmManipulator *mpr) +static void gizmo_arrow_draw(const bContext *UNUSED(C), wmGizmo *mpr) { - arrow_draw_intern((ArrowManipulator3D *)mpr, false, (mpr->state & WM_MANIPULATOR_STATE_HIGHLIGHT) != 0); + arrow_draw_intern((ArrowGizmo3D *)mpr, false, (mpr->state & WM_GIZMO_STATE_HIGHLIGHT) != 0); } /** * Calculate arrow offset independent from prop min value, * meaning the range will not be offset by min value first. */ -static int manipulator_arrow_modal( - bContext *C, wmManipulator *mpr, const wmEvent *event, - eWM_ManipulatorTweak tweak_flag) +static int gizmo_arrow_modal( + bContext *C, wmGizmo *mpr, const wmEvent *event, + eWM_GizmoFlagTweak tweak_flag) { - ArrowManipulator3D *arrow = (ArrowManipulator3D *)mpr; - ManipulatorInteraction *inter = mpr->interaction_data; + ArrowGizmo3D *arrow = (ArrowGizmo3D *)mpr; + GizmoInteraction *inter = mpr->interaction_data; View3D *v3d = CTX_wm_view3d(C); ARegion *ar = CTX_wm_region(C); RegionView3D *rv3d = ar->regiondata; @@ -256,7 +256,7 @@ static int manipulator_arrow_modal( float arrow_co[3]; float arrow_no[3]; copy_v3_v3(arrow_co, inter->init_matrix_basis[3]); - normalize_v3_v3(arrow_no, arrow->manipulator.matrix_basis[2]); + normalize_v3_v3(arrow_no, arrow->gizmo.matrix_basis[2]); int ok = 0; @@ -268,7 +268,7 @@ static int manipulator_arrow_modal( { /* Force Y axis if we're view aligned */ if (j == 0) { - if (RAD2DEGF(acosf(dot_v3v3(proj[j].ray_direction, arrow->manipulator.matrix_basis[2]))) < 5.0f) { + if (RAD2DEGF(acosf(dot_v3v3(proj[j].ray_direction, arrow->gizmo.matrix_basis[2]))) < 5.0f) { normalize_v3_v3(arrow_no, rv3d->viewinv[1]); } } @@ -296,24 +296,24 @@ static int manipulator_arrow_modal( sub_v3_v3v3(offset, proj[1].location, proj[0].location); facdir = dot_v3v3(arrow_no, offset) < 0.0f ? -1 : 1; - ManipulatorCommonData *data = &arrow->data; + GizmoCommonData *data = &arrow->data; const float ofs_new = facdir * len_v3(offset); - wmManipulatorProperty *mpr_prop = WM_manipulator_target_property_find(mpr, "offset"); + wmGizmoProperty *mpr_prop = WM_gizmo_target_property_find(mpr, "offset"); /* set the property for the operator and call its modal function */ - if (WM_manipulator_target_property_is_valid(mpr_prop)) { - const int transform_flag = RNA_enum_get(arrow->manipulator.ptr, "transform"); - const bool constrained = (transform_flag & ED_MANIPULATOR_ARROW_XFORM_FLAG_CONSTRAINED) != 0; - const bool inverted = (transform_flag & ED_MANIPULATOR_ARROW_XFORM_FLAG_INVERTED) != 0; - const bool use_precision = (tweak_flag & WM_MANIPULATOR_TWEAK_PRECISE) != 0; - float value = manipulator_value_from_offset(data, inter, ofs_new, constrained, inverted, use_precision); - - WM_manipulator_target_property_value_set(C, mpr, mpr_prop, value); + if (WM_gizmo_target_property_is_valid(mpr_prop)) { + const int transform_flag = RNA_enum_get(arrow->gizmo.ptr, "transform"); + const bool constrained = (transform_flag & ED_GIZMO_ARROW_XFORM_FLAG_CONSTRAINED) != 0; + const bool inverted = (transform_flag & ED_GIZMO_ARROW_XFORM_FLAG_INVERTED) != 0; + const bool use_precision = (tweak_flag & WM_GIZMO_TWEAK_PRECISE) != 0; + float value = gizmo_value_from_offset(data, inter, ofs_new, constrained, inverted, use_precision); + + WM_gizmo_target_property_value_set(C, mpr, mpr_prop, value); /* get clamped value */ - value = WM_manipulator_target_property_value_get(mpr, mpr_prop); + value = WM_gizmo_target_property_value_get(mpr, mpr_prop); - data->offset = manipulator_offset_from_value(data, value, constrained, inverted); + data->offset = gizmo_offset_from_value(data, value, constrained, inverted); } else { data->offset = ofs_new; @@ -326,25 +326,25 @@ static int manipulator_arrow_modal( return OPERATOR_RUNNING_MODAL; } -static void manipulator_arrow_setup(wmManipulator *mpr) +static void gizmo_arrow_setup(wmGizmo *mpr) { - ArrowManipulator3D *arrow = (ArrowManipulator3D *)mpr; + ArrowGizmo3D *arrow = (ArrowGizmo3D *)mpr; - arrow->manipulator.flag |= WM_MANIPULATOR_DRAW_MODAL; + arrow->gizmo.flag |= WM_GIZMO_DRAW_MODAL; arrow->data.range_fac = 1.0f; } -static int manipulator_arrow_invoke( - bContext *UNUSED(C), wmManipulator *mpr, const wmEvent *event) +static int gizmo_arrow_invoke( + bContext *UNUSED(C), wmGizmo *mpr, const wmEvent *event) { - ArrowManipulator3D *arrow = (ArrowManipulator3D *)mpr; - ManipulatorInteraction *inter = MEM_callocN(sizeof(ManipulatorInteraction), __func__); - wmManipulatorProperty *mpr_prop = WM_manipulator_target_property_find(mpr, "offset"); + ArrowGizmo3D *arrow = (ArrowGizmo3D *)mpr; + GizmoInteraction *inter = MEM_callocN(sizeof(GizmoInteraction), __func__); + wmGizmoProperty *mpr_prop = WM_gizmo_target_property_find(mpr, "offset"); - /* Some manipulators don't use properties. */ - if (WM_manipulator_target_property_is_valid(mpr_prop)) { - inter->init_value = WM_manipulator_target_property_value_get(mpr, mpr_prop); + /* Some gizmos don't use properties. */ + if (WM_gizmo_target_property_is_valid(mpr_prop)) { + inter->init_value = WM_gizmo_target_property_value_get(mpr, mpr_prop); } inter->init_offset = arrow->data.offset; @@ -352,126 +352,126 @@ static int manipulator_arrow_invoke( inter->init_mval[0] = event->mval[0]; inter->init_mval[1] = event->mval[1]; - manipulator_arrow_matrix_basis_get(mpr, inter->init_matrix_basis); - WM_manipulator_calc_matrix_final(mpr, inter->init_matrix_final); + gizmo_arrow_matrix_basis_get(mpr, inter->init_matrix_basis); + WM_gizmo_calc_matrix_final(mpr, inter->init_matrix_final); mpr->interaction_data = inter; return OPERATOR_RUNNING_MODAL; } -static void manipulator_arrow_property_update(wmManipulator *mpr, wmManipulatorProperty *mpr_prop) +static void gizmo_arrow_property_update(wmGizmo *mpr, wmGizmoProperty *mpr_prop) { - ArrowManipulator3D *arrow = (ArrowManipulator3D *)mpr; - const int transform_flag = RNA_enum_get(arrow->manipulator.ptr, "transform"); - const bool constrained = (transform_flag & ED_MANIPULATOR_ARROW_XFORM_FLAG_CONSTRAINED) != 0; - const bool inverted = (transform_flag & ED_MANIPULATOR_ARROW_XFORM_FLAG_INVERTED) != 0; - manipulator_property_data_update(mpr, &arrow->data, mpr_prop, constrained, inverted); + ArrowGizmo3D *arrow = (ArrowGizmo3D *)mpr; + const int transform_flag = RNA_enum_get(arrow->gizmo.ptr, "transform"); + const bool constrained = (transform_flag & ED_GIZMO_ARROW_XFORM_FLAG_CONSTRAINED) != 0; + const bool inverted = (transform_flag & ED_GIZMO_ARROW_XFORM_FLAG_INVERTED) != 0; + gizmo_property_data_update(mpr, &arrow->data, mpr_prop, constrained, inverted); } -static void manipulator_arrow_exit(bContext *C, wmManipulator *mpr, const bool cancel) +static void gizmo_arrow_exit(bContext *C, wmGizmo *mpr, const bool cancel) { - ArrowManipulator3D *arrow = (ArrowManipulator3D *)mpr; - ManipulatorCommonData *data = &arrow->data; - wmManipulatorProperty *mpr_prop = WM_manipulator_target_property_find(mpr, "offset"); - const bool is_prop_valid = WM_manipulator_target_property_is_valid(mpr_prop); + ArrowGizmo3D *arrow = (ArrowGizmo3D *)mpr; + GizmoCommonData *data = &arrow->data; + wmGizmoProperty *mpr_prop = WM_gizmo_target_property_find(mpr, "offset"); + const bool is_prop_valid = WM_gizmo_target_property_is_valid(mpr_prop); if (!cancel) { /* Assign incase applying the opetration needs an updated offset * editmesh bisect needs this. */ if (is_prop_valid) { - data->offset = WM_manipulator_target_property_value_get(mpr, mpr_prop); + data->offset = WM_gizmo_target_property_value_get(mpr, mpr_prop); } return; } - ManipulatorInteraction *inter = mpr->interaction_data; + GizmoInteraction *inter = mpr->interaction_data; if (is_prop_valid) { - manipulator_property_value_reset(C, mpr, inter, mpr_prop); + gizmo_property_value_reset(C, mpr, inter, mpr_prop); } data->offset = inter->init_offset; } /* -------------------------------------------------------------------- */ -/** \name Arrow Manipulator API +/** \name Arrow Gizmo API * * \{ */ /** * Define a custom property UI range * - * \note Needs to be called before WM_manipulator_target_property_def_rna! + * \note Needs to be called before WM_gizmo_target_property_def_rna! */ -void ED_manipulator_arrow3d_set_ui_range(wmManipulator *mpr, const float min, const float max) +void ED_gizmo_arrow3d_set_ui_range(wmGizmo *mpr, const float min, const float max) { - ArrowManipulator3D *arrow = (ArrowManipulator3D *)mpr; + ArrowGizmo3D *arrow = (ArrowGizmo3D *)mpr; BLI_assert(min < max); - BLI_assert(!(WM_manipulator_target_property_is_valid(WM_manipulator_target_property_find(mpr, "offset")) && - "Make sure this function is called before WM_manipulator_target_property_def_rna")); + BLI_assert(!(WM_gizmo_target_property_is_valid(WM_gizmo_target_property_find(mpr, "offset")) && + "Make sure this function is called before WM_gizmo_target_property_def_rna")); arrow->data.range = max - min; arrow->data.min = min; - arrow->data.flag |= MANIPULATOR_CUSTOM_RANGE_SET; + arrow->data.flag |= GIZMO_CUSTOM_RANGE_SET; } /** * Define a custom factor for arrow min/max distance * - * \note Needs to be called before WM_manipulator_target_property_def_rna! + * \note Needs to be called before WM_gizmo_target_property_def_rna! */ -void ED_manipulator_arrow3d_set_range_fac(wmManipulator *mpr, const float range_fac) +void ED_gizmo_arrow3d_set_range_fac(wmGizmo *mpr, const float range_fac) { - ArrowManipulator3D *arrow = (ArrowManipulator3D *)mpr; - BLI_assert(!(WM_manipulator_target_property_is_valid(WM_manipulator_target_property_find(mpr, "offset")) && - "Make sure this function is called before WM_manipulator_target_property_def_rna")); + ArrowGizmo3D *arrow = (ArrowGizmo3D *)mpr; + BLI_assert(!(WM_gizmo_target_property_is_valid(WM_gizmo_target_property_find(mpr, "offset")) && + "Make sure this function is called before WM_gizmo_target_property_def_rna")); arrow->data.range_fac = range_fac; } -static void MANIPULATOR_WT_arrow_3d(wmManipulatorType *wt) +static void GIZMO_WT_arrow_3d(wmGizmoType *wt) { /* identifiers */ - wt->idname = "MANIPULATOR_WT_arrow_3d"; + wt->idname = "GIZMO_WT_arrow_3d"; /* api callbacks */ - wt->draw = manipulator_arrow_draw; - wt->draw_select = manipulator_arrow_draw_select; - wt->matrix_basis_get = manipulator_arrow_matrix_basis_get; - wt->modal = manipulator_arrow_modal; - wt->setup = manipulator_arrow_setup; - wt->invoke = manipulator_arrow_invoke; - wt->property_update = manipulator_arrow_property_update; - wt->exit = manipulator_arrow_exit; + wt->draw = gizmo_arrow_draw; + wt->draw_select = gizmo_arrow_draw_select; + wt->matrix_basis_get = gizmo_arrow_matrix_basis_get; + wt->modal = gizmo_arrow_modal; + wt->setup = gizmo_arrow_setup; + wt->invoke = gizmo_arrow_invoke; + wt->property_update = gizmo_arrow_property_update; + wt->exit = gizmo_arrow_exit; - wt->struct_size = sizeof(ArrowManipulator3D); + wt->struct_size = sizeof(ArrowGizmo3D); /* rna */ static EnumPropertyItem rna_enum_draw_style_items[] = { - {ED_MANIPULATOR_ARROW_STYLE_NORMAL, "NORMAL", 0, "Normal", ""}, - {ED_MANIPULATOR_ARROW_STYLE_CROSS, "CROSS", 0, "Cross", ""}, - {ED_MANIPULATOR_ARROW_STYLE_BOX, "BOX", 0, "Box", ""}, - {ED_MANIPULATOR_ARROW_STYLE_CONE, "CONE", 0, "Cone", ""}, + {ED_GIZMO_ARROW_STYLE_NORMAL, "NORMAL", 0, "Normal", ""}, + {ED_GIZMO_ARROW_STYLE_CROSS, "CROSS", 0, "Cross", ""}, + {ED_GIZMO_ARROW_STYLE_BOX, "BOX", 0, "Box", ""}, + {ED_GIZMO_ARROW_STYLE_CONE, "CONE", 0, "Cone", ""}, {0, NULL, 0, NULL, NULL} }; static EnumPropertyItem rna_enum_draw_options_items[] = { - {ED_MANIPULATOR_ARROW_DRAW_FLAG_STEM, "STEM", 0, "Stem", ""}, + {ED_GIZMO_ARROW_DRAW_FLAG_STEM, "STEM", 0, "Stem", ""}, {0, NULL, 0, NULL, NULL} }; static EnumPropertyItem rna_enum_transform_items[] = { - {ED_MANIPULATOR_ARROW_XFORM_FLAG_INVERTED, "INVERT", 0, "Inverted", ""}, - {ED_MANIPULATOR_ARROW_XFORM_FLAG_CONSTRAINED, "CONSTRAIN", 0, "Constrained", ""}, + {ED_GIZMO_ARROW_XFORM_FLAG_INVERTED, "INVERT", 0, "Inverted", ""}, + {ED_GIZMO_ARROW_XFORM_FLAG_CONSTRAINED, "CONSTRAIN", 0, "Constrained", ""}, {0, NULL, 0, NULL, NULL} }; RNA_def_enum( wt->srna, "draw_style", rna_enum_draw_style_items, - ED_MANIPULATOR_ARROW_STYLE_NORMAL, + ED_GIZMO_ARROW_STYLE_NORMAL, "Draw Style", ""); RNA_def_enum_flag( wt->srna, "draw_options", rna_enum_draw_options_items, - ED_MANIPULATOR_ARROW_DRAW_FLAG_STEM, + ED_GIZMO_ARROW_DRAW_FLAG_STEM, "Draw Options", ""); RNA_def_enum_flag( wt->srna, "transform", rna_enum_transform_items, @@ -481,12 +481,12 @@ static void MANIPULATOR_WT_arrow_3d(wmManipulatorType *wt) RNA_def_float(wt->srna, "length", 1.0f, 0.0f, FLT_MAX, "Arrow Line Length", "", 0.0f, FLT_MAX); RNA_def_float_vector(wt->srna, "aspect", 2, NULL, 0, FLT_MAX, "Aspect", "Cone/box style only", 0.0f, FLT_MAX); - WM_manipulatortype_target_property_def(wt, "offset", PROP_FLOAT, 1); + WM_gizmotype_target_property_def(wt, "offset", PROP_FLOAT, 1); } -void ED_manipulatortypes_arrow_3d(void) +void ED_gizmotypes_arrow_3d(void) { - WM_manipulatortype_append(MANIPULATOR_WT_arrow_3d); + WM_gizmotype_append(GIZMO_WT_arrow_3d); } /** \} */ diff --git a/source/blender/editors/gizmo_library/gizmo_types/button2d_gizmo.c b/source/blender/editors/gizmo_library/gizmo_types/button2d_gizmo.c index 78f374064e6..33639dd7ec7 100644 --- a/source/blender/editors/gizmo_library/gizmo_types/button2d_gizmo.c +++ b/source/blender/editors/gizmo_library/gizmo_types/button2d_gizmo.c @@ -21,11 +21,11 @@ /** \file button2d_gizmo.c * \ingroup wm * - * \name Button Manipulator + * \name Button Gizmo * - * 2D Manipulator, also works in 3D views. + * 2D Gizmo, also works in 3D views. * - * \brief Single click button action for use in manipulator groups. + * \brief Single click button action for use in gizmo groups. * * \note Currently only basic icon & vector-shape buttons are supported. * @@ -66,20 +66,20 @@ #include "../gizmo_geometry.h" #include "../gizmo_library_intern.h" -typedef struct ButtonManipulator2D { - wmManipulator manipulator; +typedef struct ButtonGizmo2D { + wmGizmo gizmo; bool is_init; /* Use an icon or shape */ int icon; Gwn_Batch *shape_batch[2]; -} ButtonManipulator2D; +} ButtonGizmo2D; #define CIRCLE_RESOLUTION 32 /* -------------------------------------------------------------------- */ static void button2d_geom_draw_backdrop( - const wmManipulator *mpr, const float color[4], const bool select) + const wmGizmo *mpr, const float color[4], const bool select) { GPU_line_width(mpr->line_width); @@ -99,10 +99,10 @@ static void button2d_geom_draw_backdrop( } static void button2d_draw_intern( - const bContext *C, wmManipulator *mpr, + const bContext *C, wmGizmo *mpr, const bool select, const bool highlight) { - ButtonManipulator2D *button = (ButtonManipulator2D *)mpr; + ButtonGizmo2D *button = (ButtonGizmo2D *)mpr; const int draw_options = RNA_enum_get(mpr->ptr, "draw_options"); if (button->is_init == false) { @@ -126,16 +126,16 @@ static void button2d_draw_intern( float color[4]; float matrix_final[4][4]; - manipulator_color_get(mpr, highlight, color); - WM_manipulator_calc_matrix_final(mpr, matrix_final); + gizmo_color_get(mpr, highlight, color); + WM_gizmo_calc_matrix_final(mpr, matrix_final); - bool is_3d = (mpr->parent_mgroup->type->flag & WM_MANIPULATORGROUPTYPE_3D) != 0; + bool is_3d = (mpr->parent_mgroup->type->flag & WM_GIZMOGROUPTYPE_3D) != 0; - if (draw_options & ED_MANIPULATOR_BUTTON_SHOW_HELPLINE) { + if (draw_options & ED_GIZMO_BUTTON_SHOW_HELPLINE) { float matrix_final_no_offset[4][4]; - WM_manipulator_calc_matrix_final_no_offset(mpr, matrix_final_no_offset); + WM_gizmo_calc_matrix_final_no_offset(mpr, matrix_final_no_offset); uint pos = GWN_vertformat_attr_add(immVertexFormat(), "pos", GWN_COMP_F32, 3, GWN_FETCH_FLOAT); immBindBuiltinProgram(GPU_SHADER_3D_UNIFORM_COLOR); immUniformColor4fv(color); @@ -180,7 +180,7 @@ static void button2d_draw_intern( GWN_batch_uniform_4f(button->shape_batch[i], "color", UNPACK4(color)); GWN_batch_draw(button->shape_batch[i]); - if (draw_options & ED_MANIPULATOR_BUTTON_SHOW_OUTLINE) { + if (draw_options & ED_GIZMO_BUTTON_SHOW_OUTLINE) { color[0] = 1.0f - color[0]; color[1] = 1.0f - color[1]; color[2] = 1.0f - color[2]; @@ -215,29 +215,29 @@ static void button2d_draw_intern( } } -static void manipulator_button2d_draw_select(const bContext *C, wmManipulator *mpr, int select_id) +static void gizmo_button2d_draw_select(const bContext *C, wmGizmo *mpr, int select_id) { GPU_select_load_id(select_id); button2d_draw_intern(C, mpr, true, false); } -static void manipulator_button2d_draw(const bContext *C, wmManipulator *mpr) +static void gizmo_button2d_draw(const bContext *C, wmGizmo *mpr) { - const bool is_highlight = (mpr->state & WM_MANIPULATOR_STATE_HIGHLIGHT) != 0; + const bool is_highlight = (mpr->state & WM_GIZMO_STATE_HIGHLIGHT) != 0; GPU_blend(true); button2d_draw_intern(C, mpr, false, is_highlight); GPU_blend(false); } -static int manipulator_button2d_test_select( - bContext *C, wmManipulator *mpr, const wmEvent *event) +static int gizmo_button2d_test_select( + bContext *C, wmGizmo *mpr, const wmEvent *event) { float point_local[2]; if (0) { /* correct, but unnecessarily slow. */ - if (manipulator_window_project_2d( + if (gizmo_window_project_2d( C, mpr, (const float[2]){UNPACK2(event->mval)}, 2, true, point_local) == false) { return -1; @@ -256,7 +256,7 @@ static int manipulator_button2d_test_select( return -1; } -static int manipulator_button2d_cursor_get(wmManipulator *mpr) +static int gizmo_button2d_cursor_get(wmGizmo *mpr) { if (RNA_boolean_get(mpr->ptr, "show_drag")) { return BC_NSEW_SCROLLCURSOR; @@ -264,9 +264,9 @@ static int manipulator_button2d_cursor_get(wmManipulator *mpr) return CURSOR_STD; } -static void manipulator_button2d_free(wmManipulator *mpr) +static void gizmo_button2d_free(wmGizmo *mpr) { - ButtonManipulator2D *shape = (ButtonManipulator2D *)mpr; + ButtonGizmo2D *shape = (ButtonGizmo2D *)mpr; for (uint i = 0; i < ARRAY_SIZE(shape->shape_batch); i++) { GWN_BATCH_DISCARD_SAFE(shape->shape_batch[i]); @@ -276,28 +276,28 @@ static void manipulator_button2d_free(wmManipulator *mpr) /** \} */ /* -------------------------------------------------------------------- */ -/** \name Button Manipulator API +/** \name Button Gizmo API * * \{ */ -static void MANIPULATOR_WT_button_2d(wmManipulatorType *wt) +static void GIZMO_WT_button_2d(wmGizmoType *wt) { /* identifiers */ - wt->idname = "MANIPULATOR_WT_button_2d"; + wt->idname = "GIZMO_WT_button_2d"; /* api callbacks */ - wt->draw = manipulator_button2d_draw; - wt->draw_select = manipulator_button2d_draw_select; - wt->test_select = manipulator_button2d_test_select; - wt->cursor_get = manipulator_button2d_cursor_get; - wt->free = manipulator_button2d_free; + wt->draw = gizmo_button2d_draw; + wt->draw_select = gizmo_button2d_draw_select; + wt->test_select = gizmo_button2d_test_select; + wt->cursor_get = gizmo_button2d_cursor_get; + wt->free = gizmo_button2d_free; - wt->struct_size = sizeof(ButtonManipulator2D); + wt->struct_size = sizeof(ButtonGizmo2D); /* rna */ static EnumPropertyItem rna_enum_draw_options[] = { - {ED_MANIPULATOR_BUTTON_SHOW_OUTLINE, "OUTLINE", 0, "Outline", ""}, - {ED_MANIPULATOR_BUTTON_SHOW_HELPLINE, "HELPLINE", 0, "Help Line", ""}, + {ED_GIZMO_BUTTON_SHOW_OUTLINE, "OUTLINE", 0, "Outline", ""}, + {ED_GIZMO_BUTTON_SHOW_HELPLINE, "HELPLINE", 0, "Help Line", ""}, {0, NULL, 0, NULL, NULL} }; PropertyRNA *prop; @@ -314,9 +314,9 @@ static void MANIPULATOR_WT_button_2d(wmManipulatorType *wt) RNA_def_boolean(wt->srna, "show_drag", true, "Show Drag", ""); } -void ED_manipulatortypes_button_2d(void) +void ED_gizmotypes_button_2d(void) { - WM_manipulatortype_append(MANIPULATOR_WT_button_2d); + WM_gizmotype_append(GIZMO_WT_button_2d); } -/** \} */ // Button Manipulator API +/** \} */ // Button Gizmo API diff --git a/source/blender/editors/gizmo_library/gizmo_types/cage2d_gizmo.c b/source/blender/editors/gizmo_library/gizmo_types/cage2d_gizmo.c index 382733d298f..a037727de58 100644 --- a/source/blender/editors/gizmo_library/gizmo_types/cage2d_gizmo.c +++ b/source/blender/editors/gizmo_library/gizmo_types/cage2d_gizmo.c @@ -26,12 +26,12 @@ /** \file cage2d_gizmo.c * \ingroup wm * - * \name Cage Manipulator + * \name Cage Gizmo * - * 2D Manipulator + * 2D Gizmo * - * \brief Rectangular manipulator acting as a 'cage' around its content. - * Interacting scales or translates the manipulator. + * \brief Rectangular gizmo acting as a 'cage' around its content. + * Interacting scales or translates the gizmo. */ #include "MEM_guardedalloc.h" @@ -64,11 +64,11 @@ /* own includes */ #include "../gizmo_library_intern.h" -#define MANIPULATOR_RESIZER_SIZE 10.0f -#define MANIPULATOR_MARGIN_OFFSET_SCALE 1.5f +#define GIZMO_RESIZER_SIZE 10.0f +#define GIZMO_MARGIN_OFFSET_SCALE 1.5f -static void manipulator_calc_rect_view_scale( - const wmManipulator *mpr, const float dims[2], float scale[2]) +static void gizmo_calc_rect_view_scale( + const wmGizmo *mpr, const float dims[2], float scale[2]) { float matrix_final_no_offset[4][4]; float asp[2] = {1.0f, 1.0f}; @@ -79,7 +79,7 @@ static void manipulator_calc_rect_view_scale( asp[1] = dims[0] / dims[1]; } float x_axis[3], y_axis[3]; - WM_manipulator_calc_matrix_final_no_offset(mpr, matrix_final_no_offset); + WM_gizmo_calc_matrix_final_no_offset(mpr, matrix_final_no_offset); mul_v3_mat3_m4v3(x_axis, matrix_final_no_offset, mpr->matrix_offset[0]); mul_v3_mat3_m4v3(y_axis, matrix_final_no_offset, mpr->matrix_offset[1]); @@ -90,37 +90,37 @@ static void manipulator_calc_rect_view_scale( scale[1] = 1.0f / len_v3(y_axis); } -static void manipulator_calc_rect_view_margin( - const wmManipulator *mpr, const float dims[2], float margin[2]) +static void gizmo_calc_rect_view_margin( + const wmGizmo *mpr, const float dims[2], float margin[2]) { float handle_size; - if (mpr->parent_mgroup->type->flag & WM_MANIPULATORGROUPTYPE_3D) { + if (mpr->parent_mgroup->type->flag & WM_GIZMOGROUPTYPE_3D) { handle_size = 0.15f; } else { - handle_size = MANIPULATOR_RESIZER_SIZE; + handle_size = GIZMO_RESIZER_SIZE; } handle_size *= mpr->scale_final; float scale_xy[2]; - manipulator_calc_rect_view_scale(mpr, dims, scale_xy); + gizmo_calc_rect_view_scale(mpr, dims, scale_xy); margin[0] = ((handle_size * scale_xy[0])); margin[1] = ((handle_size * scale_xy[1])); } /* -------------------------------------------------------------------- */ -static void manipulator_rect_pivot_from_scale_part(int part, float r_pt[2], bool r_constrain_axis[2]) +static void gizmo_rect_pivot_from_scale_part(int part, float r_pt[2], bool r_constrain_axis[2]) { bool x = true, y = true; switch (part) { - case ED_MANIPULATOR_CAGE2D_PART_SCALE_MIN_X: { ARRAY_SET_ITEMS(r_pt, 0.5, 0.0); x = false; break; } - case ED_MANIPULATOR_CAGE2D_PART_SCALE_MAX_X: { ARRAY_SET_ITEMS(r_pt, -0.5, 0.0); x = false; break; } - case ED_MANIPULATOR_CAGE2D_PART_SCALE_MIN_Y: { ARRAY_SET_ITEMS(r_pt, 0.0, 0.5); y = false; break; } - case ED_MANIPULATOR_CAGE2D_PART_SCALE_MAX_Y: { ARRAY_SET_ITEMS(r_pt, 0.0, -0.5); y = false; break; } - case ED_MANIPULATOR_CAGE2D_PART_SCALE_MIN_X_MIN_Y: { ARRAY_SET_ITEMS(r_pt, 0.5, 0.5); x = y = false; break; } - case ED_MANIPULATOR_CAGE2D_PART_SCALE_MIN_X_MAX_Y: { ARRAY_SET_ITEMS(r_pt, 0.5, -0.5); x = y = false; break; } - case ED_MANIPULATOR_CAGE2D_PART_SCALE_MAX_X_MIN_Y: { ARRAY_SET_ITEMS(r_pt, -0.5, 0.5); x = y = false; break; } - case ED_MANIPULATOR_CAGE2D_PART_SCALE_MAX_X_MAX_Y: { ARRAY_SET_ITEMS(r_pt, -0.5, -0.5); x = y = false; break; } + case ED_GIZMO_CAGE2D_PART_SCALE_MIN_X: { ARRAY_SET_ITEMS(r_pt, 0.5, 0.0); x = false; break; } + case ED_GIZMO_CAGE2D_PART_SCALE_MAX_X: { ARRAY_SET_ITEMS(r_pt, -0.5, 0.0); x = false; break; } + case ED_GIZMO_CAGE2D_PART_SCALE_MIN_Y: { ARRAY_SET_ITEMS(r_pt, 0.0, 0.5); y = false; break; } + case ED_GIZMO_CAGE2D_PART_SCALE_MAX_Y: { ARRAY_SET_ITEMS(r_pt, 0.0, -0.5); y = false; break; } + case ED_GIZMO_CAGE2D_PART_SCALE_MIN_X_MIN_Y: { ARRAY_SET_ITEMS(r_pt, 0.5, 0.5); x = y = false; break; } + case ED_GIZMO_CAGE2D_PART_SCALE_MIN_X_MAX_Y: { ARRAY_SET_ITEMS(r_pt, 0.5, -0.5); x = y = false; break; } + case ED_GIZMO_CAGE2D_PART_SCALE_MAX_X_MIN_Y: { ARRAY_SET_ITEMS(r_pt, -0.5, 0.5); x = y = false; break; } + case ED_GIZMO_CAGE2D_PART_SCALE_MAX_X_MAX_Y: { ARRAY_SET_ITEMS(r_pt, -0.5, -0.5); x = y = false; break; } default: BLI_assert(0); } r_constrain_axis[0] = x; @@ -130,7 +130,7 @@ static void manipulator_rect_pivot_from_scale_part(int part, float r_pt[2], bool /* -------------------------------------------------------------------- */ /** \name Box Draw Style * - * Useful for 3D views, see: #ED_MANIPULATOR_CAGE2D_STYLE_BOX + * Useful for 3D views, see: #ED_GIZMO_CAGE2D_STYLE_BOX * \{ */ static void cage2d_draw_box_corners( @@ -179,7 +179,7 @@ static void cage2d_draw_box_interaction( Gwn_PrimType prim_type = GWN_PRIM_NONE; switch (highlighted) { - case ED_MANIPULATOR_CAGE2D_PART_SCALE_MIN_X: + case ED_GIZMO_CAGE2D_PART_SCALE_MIN_X: { rctf r = { .xmin = -size[0], .xmax = -size[0] + margin[0], @@ -199,7 +199,7 @@ static void cage2d_draw_box_interaction( } break; } - case ED_MANIPULATOR_CAGE2D_PART_SCALE_MAX_X: + case ED_GIZMO_CAGE2D_PART_SCALE_MAX_X: { rctf r = { .xmin = size[0] - margin[0], .xmax = size[0], @@ -219,7 +219,7 @@ static void cage2d_draw_box_interaction( } break; } - case ED_MANIPULATOR_CAGE2D_PART_SCALE_MIN_Y: + case ED_GIZMO_CAGE2D_PART_SCALE_MIN_Y: { rctf r = { .xmin = -size[0] + margin[0], .xmax = size[0] - margin[0], @@ -239,7 +239,7 @@ static void cage2d_draw_box_interaction( } break; } - case ED_MANIPULATOR_CAGE2D_PART_SCALE_MAX_Y: + case ED_GIZMO_CAGE2D_PART_SCALE_MAX_Y: { rctf r = { .xmin = -size[0] + margin[0], .xmax = size[0] - margin[0], @@ -259,7 +259,7 @@ static void cage2d_draw_box_interaction( } break; } - case ED_MANIPULATOR_CAGE2D_PART_SCALE_MIN_X_MIN_Y: + case ED_GIZMO_CAGE2D_PART_SCALE_MIN_X_MIN_Y: { rctf r = { .xmin = -size[0], .xmax = -size[0] + margin[0], @@ -279,7 +279,7 @@ static void cage2d_draw_box_interaction( } break; } - case ED_MANIPULATOR_CAGE2D_PART_SCALE_MIN_X_MAX_Y: + case ED_GIZMO_CAGE2D_PART_SCALE_MIN_X_MAX_Y: { rctf r = { .xmin = -size[0], .xmax = -size[0] + margin[0], @@ -299,7 +299,7 @@ static void cage2d_draw_box_interaction( } break; } - case ED_MANIPULATOR_CAGE2D_PART_SCALE_MAX_X_MIN_Y: + case ED_GIZMO_CAGE2D_PART_SCALE_MAX_X_MIN_Y: { rctf r = { .xmin = size[0] - margin[0], .xmax = size[0], @@ -319,7 +319,7 @@ static void cage2d_draw_box_interaction( } break; } - case ED_MANIPULATOR_CAGE2D_PART_SCALE_MAX_X_MAX_Y: + case ED_GIZMO_CAGE2D_PART_SCALE_MAX_X_MAX_Y: { rctf r = { .xmin = size[0] - margin[0], .xmax = size[0], @@ -339,7 +339,7 @@ static void cage2d_draw_box_interaction( } break; } - case ED_MANIPULATOR_CAGE2D_PART_ROTATE: + case ED_GIZMO_CAGE2D_PART_ROTATE: { const float rotate_pt[2] = {0.0f, size[1] + margin[1]}; const rctf r_rotate = { @@ -363,8 +363,8 @@ static void cage2d_draw_box_interaction( break; } - case ED_MANIPULATOR_CAGE2D_PART_TRANSLATE: - if (draw_options & ED_MANIPULATOR_CAGE2D_DRAW_FLAG_XFORM_CENTER_HANDLE) { + case ED_GIZMO_CAGE2D_PART_TRANSLATE: + if (draw_options & ED_GIZMO_CAGE2D_DRAW_FLAG_XFORM_CENTER_HANDLE) { ARRAY_SET_ITEMS(verts[0], -margin[0] / 2, -margin[1] / 2); ARRAY_SET_ITEMS(verts[1], margin[0] / 2, margin[1] / 2); ARRAY_SET_ITEMS(verts[2], -margin[0] / 2, margin[1] / 2); @@ -449,7 +449,7 @@ static void cage2d_draw_box_interaction( /* -------------------------------------------------------------------- */ /** \name Circle Draw Style * - * Useful for 2D views, see: #ED_MANIPULATOR_CAGE2D_STYLE_CIRCLE + * Useful for 2D views, see: #ED_GIZMO_CAGE2D_STYLE_CIRCLE * \{ */ static void imm_draw_point_aspect_2d( @@ -479,15 +479,15 @@ static void cage2d_draw_circle_wire( immVertex2f(pos, r->xmin, r->ymax); immEnd(); - if (transform_flag & ED_MANIPULATOR_CAGE2D_XFORM_FLAG_ROTATE) { + if (transform_flag & ED_GIZMO_CAGE2D_XFORM_FLAG_ROTATE) { immBegin(GWN_PRIM_LINE_LOOP, 2); immVertex2f(pos, BLI_rctf_cent_x(r), r->ymax); immVertex2f(pos, BLI_rctf_cent_x(r), r->ymax + margin[1]); immEnd(); } - if (transform_flag & ED_MANIPULATOR_CAGE2D_XFORM_FLAG_TRANSLATE) { - if (draw_options & ED_MANIPULATOR_CAGE2D_DRAW_FLAG_XFORM_CENTER_HANDLE) { + if (transform_flag & ED_GIZMO_CAGE2D_XFORM_FLAG_TRANSLATE) { + if (draw_options & ED_GIZMO_CAGE2D_DRAW_FLAG_XFORM_CENTER_HANDLE) { const float rad[2] = {margin[0] / 2, margin[1] / 2}; const float center[2] = {BLI_rctf_cent_x(r), BLI_rctf_cent_y(r)}; @@ -525,8 +525,8 @@ static void cage2d_draw_circle_handles( imm_draw_point_aspect_2d(pos, r->xmin, r->ymax, rad[0], rad[1], solid); } - if (transform_flag & ED_MANIPULATOR_CAGE2D_XFORM_FLAG_ROTATE) { - const float handle[2] = {BLI_rctf_cent_x(r), r->ymax + (margin[1] * MANIPULATOR_MARGIN_OFFSET_SCALE)}; + if (transform_flag & ED_GIZMO_CAGE2D_XFORM_FLAG_ROTATE) { + const float handle[2] = {BLI_rctf_cent_x(r), r->ymax + (margin[1] * GIZMO_MARGIN_OFFSET_SCALE)}; circle_fn(pos, handle[0], handle[1], rad[0], rad[1], resolu); } @@ -535,10 +535,10 @@ static void cage2d_draw_circle_handles( /** \} */ -static void manipulator_cage2d_draw_intern( - wmManipulator *mpr, const bool select, const bool highlight, const int select_id) +static void gizmo_cage2d_draw_intern( + wmGizmo *mpr, const bool select, const bool highlight, const int select_id) { - // const bool use_clamp = (mpr->parent_mgroup->type->flag & WM_MANIPULATORGROUPTYPE_3D) == 0; + // const bool use_clamp = (mpr->parent_mgroup->type->flag & WM_GIZMOGROUPTYPE_3D) == 0; float dims[2]; RNA_float_get_array(mpr->ptr, "dimensions", dims); float matrix_final[4][4]; @@ -549,13 +549,13 @@ static void manipulator_cage2d_draw_intern( const float size_real[2] = {dims[0] / 2.0f, dims[1] / 2.0f}; - WM_manipulator_calc_matrix_final(mpr, matrix_final); + WM_gizmo_calc_matrix_final(mpr, matrix_final); gpuPushMatrix(); gpuMultMatrix(matrix_final); float margin[2]; - manipulator_calc_rect_view_margin(mpr, dims, margin); + gizmo_calc_rect_view_margin(mpr, dims, margin); /* Handy for quick testing draw (if it's outside bounds). */ if (false) { @@ -573,17 +573,17 @@ static void manipulator_cage2d_draw_intern( /* expand for hotspot */ const float size[2] = {size_real[0] + margin[0] / 2, size_real[1] + margin[1] / 2}; - if (transform_flag & ED_MANIPULATOR_CAGE2D_XFORM_FLAG_SCALE) { + if (transform_flag & ED_GIZMO_CAGE2D_XFORM_FLAG_SCALE) { int scale_parts[] = { - ED_MANIPULATOR_CAGE2D_PART_SCALE_MIN_X, - ED_MANIPULATOR_CAGE2D_PART_SCALE_MAX_X, - ED_MANIPULATOR_CAGE2D_PART_SCALE_MIN_Y, - ED_MANIPULATOR_CAGE2D_PART_SCALE_MAX_Y, - - ED_MANIPULATOR_CAGE2D_PART_SCALE_MIN_X_MIN_Y, - ED_MANIPULATOR_CAGE2D_PART_SCALE_MIN_X_MAX_Y, - ED_MANIPULATOR_CAGE2D_PART_SCALE_MAX_X_MIN_Y, - ED_MANIPULATOR_CAGE2D_PART_SCALE_MAX_X_MAX_Y, + ED_GIZMO_CAGE2D_PART_SCALE_MIN_X, + ED_GIZMO_CAGE2D_PART_SCALE_MAX_X, + ED_GIZMO_CAGE2D_PART_SCALE_MIN_Y, + ED_GIZMO_CAGE2D_PART_SCALE_MAX_Y, + + ED_GIZMO_CAGE2D_PART_SCALE_MIN_X_MIN_Y, + ED_GIZMO_CAGE2D_PART_SCALE_MIN_X_MAX_Y, + ED_GIZMO_CAGE2D_PART_SCALE_MAX_X_MIN_Y, + ED_GIZMO_CAGE2D_PART_SCALE_MAX_X_MAX_Y, }; for (int i = 0; i < ARRAY_SIZE(scale_parts); i++) { GPU_select_load_id(select_id | scale_parts[i]); @@ -591,15 +591,15 @@ static void manipulator_cage2d_draw_intern( mpr->color, scale_parts[i], size, margin, mpr->line_width, true, draw_options); } } - if (transform_flag & ED_MANIPULATOR_CAGE2D_XFORM_FLAG_TRANSLATE) { - const int transform_part = ED_MANIPULATOR_CAGE2D_PART_TRANSLATE; + if (transform_flag & ED_GIZMO_CAGE2D_XFORM_FLAG_TRANSLATE) { + const int transform_part = ED_GIZMO_CAGE2D_PART_TRANSLATE; GPU_select_load_id(select_id | transform_part); cage2d_draw_box_interaction( mpr->color, transform_part, size, margin, mpr->line_width, true, draw_options); } - if (transform_flag & ED_MANIPULATOR_CAGE2D_XFORM_FLAG_ROTATE) { + if (transform_flag & ED_GIZMO_CAGE2D_XFORM_FLAG_ROTATE) { cage2d_draw_box_interaction( - mpr->color, ED_MANIPULATOR_CAGE2D_PART_ROTATE, size_real, margin, mpr->line_width, true, draw_options); + mpr->color, ED_GIZMO_CAGE2D_PART_ROTATE, size_real, margin, mpr->line_width, true, draw_options); } } else { @@ -609,22 +609,22 @@ static void manipulator_cage2d_draw_intern( .xmax = size_real[0], .ymax = size_real[1], }; - if (draw_style == ED_MANIPULATOR_CAGE2D_STYLE_BOX) { - /* corner manipulators */ + if (draw_style == ED_GIZMO_CAGE2D_STYLE_BOX) { + /* corner gizmos */ GPU_line_width(mpr->line_width + 3.0f); cage2d_draw_box_corners(&r, margin, (const float[3]){0, 0, 0}); - /* corner manipulators */ + /* corner gizmos */ float color[4]; - manipulator_color_get(mpr, highlight, color); + gizmo_color_get(mpr, highlight, color); GPU_line_width(mpr->line_width); cage2d_draw_box_corners(&r, margin, color); bool show = false; - if (mpr->highlight_part == ED_MANIPULATOR_CAGE2D_PART_TRANSLATE) { + if (mpr->highlight_part == ED_GIZMO_CAGE2D_PART_TRANSLATE) { /* Only show if we're drawing the center handle * otherwise the entire rectangle is the hotspot. */ - if (draw_options & ED_MANIPULATOR_CAGE2D_DRAW_FLAG_XFORM_CENTER_HANDLE) { + if (draw_options & ED_GIZMO_CAGE2D_DRAW_FLAG_XFORM_CENTER_HANDLE) { show = true; } } @@ -637,14 +637,14 @@ static void manipulator_cage2d_draw_intern( mpr->color, mpr->highlight_part, size_real, margin, mpr->line_width, false, draw_options); } - if (transform_flag & ED_MANIPULATOR_CAGE2D_XFORM_FLAG_ROTATE) { + if (transform_flag & ED_GIZMO_CAGE2D_XFORM_FLAG_ROTATE) { cage2d_draw_box_interaction( - mpr->color, ED_MANIPULATOR_CAGE2D_PART_ROTATE, size_real, margin, mpr->line_width, false, draw_options); + mpr->color, ED_GIZMO_CAGE2D_PART_ROTATE, size_real, margin, mpr->line_width, false, draw_options); } } - else if (draw_style == ED_MANIPULATOR_CAGE2D_STYLE_CIRCLE) { + else if (draw_style == ED_GIZMO_CAGE2D_STYLE_CIRCLE) { float color[4]; - manipulator_color_get(mpr, highlight, color); + gizmo_color_get(mpr, highlight, color); GPU_line_smooth(true); GPU_blend(true); @@ -655,7 +655,7 @@ static void manipulator_cage2d_draw_intern( cage2d_draw_circle_wire(&r, margin, color, transform_flag, draw_options); - /* corner manipulators */ + /* corner gizmos */ cage2d_draw_circle_handles(&r, margin, color, transform_flag, true); cage2d_draw_circle_handles(&r, margin, (const float[3]){0, 0, 0}, transform_flag, false); @@ -674,74 +674,74 @@ static void manipulator_cage2d_draw_intern( /** * For when we want to draw 2d cage in 3d views. */ -static void manipulator_cage2d_draw_select(const bContext *UNUSED(C), wmManipulator *mpr, int select_id) +static void gizmo_cage2d_draw_select(const bContext *UNUSED(C), wmGizmo *mpr, int select_id) { - manipulator_cage2d_draw_intern(mpr, true, false, select_id); + gizmo_cage2d_draw_intern(mpr, true, false, select_id); } -static void manipulator_cage2d_draw(const bContext *UNUSED(C), wmManipulator *mpr) +static void gizmo_cage2d_draw(const bContext *UNUSED(C), wmGizmo *mpr) { - const bool is_highlight = (mpr->state & WM_MANIPULATOR_STATE_HIGHLIGHT) != 0; - manipulator_cage2d_draw_intern(mpr, false, is_highlight, -1); + const bool is_highlight = (mpr->state & WM_GIZMO_STATE_HIGHLIGHT) != 0; + gizmo_cage2d_draw_intern(mpr, false, is_highlight, -1); } -static int manipulator_cage2d_get_cursor(wmManipulator *mpr) +static int gizmo_cage2d_get_cursor(wmGizmo *mpr) { int highlight_part = mpr->highlight_part; - if (mpr->parent_mgroup->type->flag & WM_MANIPULATORGROUPTYPE_3D) { + if (mpr->parent_mgroup->type->flag & WM_GIZMOGROUPTYPE_3D) { return BC_NSEW_SCROLLCURSOR; } switch (highlight_part) { - case ED_MANIPULATOR_CAGE2D_PART_TRANSLATE: + case ED_GIZMO_CAGE2D_PART_TRANSLATE: return BC_NSEW_SCROLLCURSOR; - case ED_MANIPULATOR_CAGE2D_PART_SCALE_MIN_X: - case ED_MANIPULATOR_CAGE2D_PART_SCALE_MAX_X: + case ED_GIZMO_CAGE2D_PART_SCALE_MIN_X: + case ED_GIZMO_CAGE2D_PART_SCALE_MAX_X: return CURSOR_X_MOVE; - case ED_MANIPULATOR_CAGE2D_PART_SCALE_MIN_Y: - case ED_MANIPULATOR_CAGE2D_PART_SCALE_MAX_Y: + case ED_GIZMO_CAGE2D_PART_SCALE_MIN_Y: + case ED_GIZMO_CAGE2D_PART_SCALE_MAX_Y: return CURSOR_Y_MOVE; /* TODO diagonal cursor */ - case ED_MANIPULATOR_CAGE2D_PART_SCALE_MIN_X_MIN_Y: - case ED_MANIPULATOR_CAGE2D_PART_SCALE_MAX_X_MIN_Y: + case ED_GIZMO_CAGE2D_PART_SCALE_MIN_X_MIN_Y: + case ED_GIZMO_CAGE2D_PART_SCALE_MAX_X_MIN_Y: return BC_NSEW_SCROLLCURSOR; - case ED_MANIPULATOR_CAGE2D_PART_SCALE_MIN_X_MAX_Y: - case ED_MANIPULATOR_CAGE2D_PART_SCALE_MAX_X_MAX_Y: + case ED_GIZMO_CAGE2D_PART_SCALE_MIN_X_MAX_Y: + case ED_GIZMO_CAGE2D_PART_SCALE_MAX_X_MAX_Y: return BC_NSEW_SCROLLCURSOR; - case ED_MANIPULATOR_CAGE2D_PART_ROTATE: + case ED_GIZMO_CAGE2D_PART_ROTATE: return BC_CROSSCURSOR; default: return CURSOR_STD; } } -static int manipulator_cage2d_test_select( - bContext *C, wmManipulator *mpr, const wmEvent *event) +static int gizmo_cage2d_test_select( + bContext *C, wmGizmo *mpr, const wmEvent *event) { float point_local[2]; float dims[2]; RNA_float_get_array(mpr->ptr, "dimensions", dims); const float size_real[2] = {dims[0] / 2.0f, dims[1] / 2.0f}; - if (manipulator_window_project_2d( + if (gizmo_window_project_2d( C, mpr, (const float[2]){UNPACK2(event->mval)}, 2, true, point_local) == false) { return -1; } float margin[2]; - manipulator_calc_rect_view_margin(mpr, dims, margin); + gizmo_calc_rect_view_margin(mpr, dims, margin); /* expand for hotspot */ const float size[2] = {size_real[0] + margin[0] / 2, size_real[1] + margin[1] / 2}; const int transform_flag = RNA_enum_get(mpr->ptr, "transform"); const int draw_options = RNA_enum_get(mpr->ptr, "draw_options"); - if (transform_flag & ED_MANIPULATOR_CAGE2D_XFORM_FLAG_TRANSLATE) { + if (transform_flag & ED_GIZMO_CAGE2D_XFORM_FLAG_TRANSLATE) { rctf r; - if (draw_options & ED_MANIPULATOR_CAGE2D_DRAW_FLAG_XFORM_CENTER_HANDLE) { + if (draw_options & ED_GIZMO_CAGE2D_DRAW_FLAG_XFORM_CENTER_HANDLE) { r.xmin = -margin[0] / 2; r.ymin = -margin[1] / 2; r.xmax = margin[0] / 2; @@ -755,12 +755,12 @@ static int manipulator_cage2d_test_select( }; bool isect = BLI_rctf_isect_pt_v(&r, point_local); if (isect) { - return ED_MANIPULATOR_CAGE2D_PART_TRANSLATE; + return ED_GIZMO_CAGE2D_PART_TRANSLATE; } } - /* if manipulator does not have a scale intersection, don't do it */ - if (transform_flag & (ED_MANIPULATOR_CAGE2D_XFORM_FLAG_SCALE | ED_MANIPULATOR_CAGE2D_XFORM_FLAG_SCALE_UNIFORM)) { + /* if gizmo does not have a scale intersection, don't do it */ + if (transform_flag & (ED_GIZMO_CAGE2D_XFORM_FLAG_SCALE | ED_GIZMO_CAGE2D_XFORM_FLAG_SCALE_UNIFORM)) { const rctf r_xmin = {.xmin = -size[0], .ymin = -size[1], .xmax = -size[0] + margin[0], .ymax = size[1]}; const rctf r_xmax = {.xmin = size[0] - margin[0], .ymin = -size[1], .xmax = size[0], .ymax = size[1]}; const rctf r_ymin = {.xmin = -size[0], .ymin = -size[1], .xmax = size[0], .ymax = -size[1] + margin[1]}; @@ -768,37 +768,37 @@ static int manipulator_cage2d_test_select( if (BLI_rctf_isect_pt_v(&r_xmin, point_local)) { if (BLI_rctf_isect_pt_v(&r_ymin, point_local)) { - return ED_MANIPULATOR_CAGE2D_PART_SCALE_MIN_X_MIN_Y; + return ED_GIZMO_CAGE2D_PART_SCALE_MIN_X_MIN_Y; } if (BLI_rctf_isect_pt_v(&r_ymax, point_local)) { - return ED_MANIPULATOR_CAGE2D_PART_SCALE_MIN_X_MAX_Y; + return ED_GIZMO_CAGE2D_PART_SCALE_MIN_X_MAX_Y; } - return ED_MANIPULATOR_CAGE2D_PART_SCALE_MIN_X; + return ED_GIZMO_CAGE2D_PART_SCALE_MIN_X; } if (BLI_rctf_isect_pt_v(&r_xmax, point_local)) { if (BLI_rctf_isect_pt_v(&r_ymin, point_local)) { - return ED_MANIPULATOR_CAGE2D_PART_SCALE_MAX_X_MIN_Y; + return ED_GIZMO_CAGE2D_PART_SCALE_MAX_X_MIN_Y; } if (BLI_rctf_isect_pt_v(&r_ymax, point_local)) { - return ED_MANIPULATOR_CAGE2D_PART_SCALE_MAX_X_MAX_Y; + return ED_GIZMO_CAGE2D_PART_SCALE_MAX_X_MAX_Y; } - return ED_MANIPULATOR_CAGE2D_PART_SCALE_MAX_X; + return ED_GIZMO_CAGE2D_PART_SCALE_MAX_X; } if (BLI_rctf_isect_pt_v(&r_ymin, point_local)) { - return ED_MANIPULATOR_CAGE2D_PART_SCALE_MIN_Y; + return ED_GIZMO_CAGE2D_PART_SCALE_MIN_Y; } if (BLI_rctf_isect_pt_v(&r_ymax, point_local)) { - return ED_MANIPULATOR_CAGE2D_PART_SCALE_MAX_Y; + return ED_GIZMO_CAGE2D_PART_SCALE_MAX_Y; } } - if (transform_flag & ED_MANIPULATOR_CAGE2D_XFORM_FLAG_ROTATE) { + if (transform_flag & ED_GIZMO_CAGE2D_XFORM_FLAG_ROTATE) { /* Rotate: * (*) <-- hot spot is here! * +---+ * | | * +---+ */ - const float r_rotate_pt[2] = {0.0f, size_real[1] + (margin[1] * MANIPULATOR_MARGIN_OFFSET_SCALE)}; + const float r_rotate_pt[2] = {0.0f, size_real[1] + (margin[1] * GIZMO_MARGIN_OFFSET_SCALE)}; const rctf r_rotate = { .xmin = r_rotate_pt[0] - margin[0] / 2.0f, .xmax = r_rotate_pt[0] + margin[0] / 2.0f, @@ -807,7 +807,7 @@ static int manipulator_cage2d_test_select( }; if (BLI_rctf_isect_pt_v(&r_rotate, point_local)) { - return ED_MANIPULATOR_CAGE2D_PART_ROTATE; + return ED_GIZMO_CAGE2D_PART_ROTATE; } } @@ -821,20 +821,20 @@ typedef struct RectTransformInteraction { Dial *dial; } RectTransformInteraction; -static void manipulator_cage2d_setup(wmManipulator *mpr) +static void gizmo_cage2d_setup(wmGizmo *mpr) { - mpr->flag |= WM_MANIPULATOR_DRAW_MODAL | WM_MANIPULATOR_DRAW_NO_SCALE; + mpr->flag |= WM_GIZMO_DRAW_MODAL | WM_GIZMO_DRAW_NO_SCALE; } -static int manipulator_cage2d_invoke( - bContext *C, wmManipulator *mpr, const wmEvent *event) +static int gizmo_cage2d_invoke( + bContext *C, wmGizmo *mpr, const wmEvent *event) { RectTransformInteraction *data = MEM_callocN(sizeof(RectTransformInteraction), "cage_interaction"); copy_m4_m4(data->orig_matrix_offset, mpr->matrix_offset); - WM_manipulator_calc_matrix_final_no_offset(mpr, data->orig_matrix_final_no_offset); + WM_gizmo_calc_matrix_final_no_offset(mpr, data->orig_matrix_final_no_offset); - if (manipulator_window_project_2d( + if (gizmo_window_project_2d( C, mpr, (const float[2]){UNPACK2(event->mval)}, 2, false, data->orig_mouse) == 0) { zero_v2(data->orig_mouse); @@ -845,9 +845,9 @@ static int manipulator_cage2d_invoke( return OPERATOR_RUNNING_MODAL; } -static int manipulator_cage2d_modal( - bContext *C, wmManipulator *mpr, const wmEvent *event, - eWM_ManipulatorTweak UNUSED(tweak_flag)) +static int gizmo_cage2d_modal( + bContext *C, wmGizmo *mpr, const wmEvent *event, + eWM_GizmoFlagTweak UNUSED(tweak_flag)) { /* For transform logic to be managable we operate in -0.5..0.5 2D space, * no matter the size of the rectangle, mouse coorts are scaled to unit space. @@ -867,7 +867,7 @@ static int manipulator_cage2d_modal( copy_m4_m4(matrix_back, mpr->matrix_offset); copy_m4_m4(mpr->matrix_offset, data->orig_matrix_offset); - bool ok = manipulator_window_project_2d( + bool ok = gizmo_window_project_2d( C, mpr, (const float[2]){UNPACK2(event->mval)}, 2, false, point_local); copy_m4_m4(mpr->matrix_offset, matrix_back); if (!ok) { @@ -876,20 +876,20 @@ static int manipulator_cage2d_modal( } const int transform_flag = RNA_enum_get(mpr->ptr, "transform"); - wmManipulatorProperty *mpr_prop; + wmGizmoProperty *mpr_prop; - mpr_prop = WM_manipulator_target_property_find(mpr, "matrix"); + mpr_prop = WM_gizmo_target_property_find(mpr, "matrix"); if (mpr_prop->type != NULL) { - WM_manipulator_target_property_value_get_array(mpr, mpr_prop, &mpr->matrix_offset[0][0]); + WM_gizmo_target_property_value_get_array(mpr, mpr_prop, &mpr->matrix_offset[0][0]); } - if (mpr->highlight_part == ED_MANIPULATOR_CAGE2D_PART_TRANSLATE) { + if (mpr->highlight_part == ED_GIZMO_CAGE2D_PART_TRANSLATE) { /* do this to prevent clamping from changing size */ copy_m4_m4(mpr->matrix_offset, data->orig_matrix_offset); mpr->matrix_offset[3][0] = data->orig_matrix_offset[3][0] + (point_local[0] - data->orig_mouse[0]); mpr->matrix_offset[3][1] = data->orig_matrix_offset[3][1] + (point_local[1] - data->orig_mouse[1]); } - else if (mpr->highlight_part == ED_MANIPULATOR_CAGE2D_PART_ROTATE) { + else if (mpr->highlight_part == ED_GIZMO_CAGE2D_PART_ROTATE) { #define MUL_V2_V3_M4_FINAL(test_co, mouse_co) \ mul_v3_m4v3(test_co, data->orig_matrix_final_no_offset, ((const float[3]){UNPACK2(mouse_co), 0.0})) @@ -935,8 +935,8 @@ static int manipulator_cage2d_modal( float pivot[2]; bool constrain_axis[2] = {false}; - if (transform_flag & ED_MANIPULATOR_CAGE2D_XFORM_FLAG_TRANSLATE) { - manipulator_rect_pivot_from_scale_part(mpr->highlight_part, pivot, constrain_axis); + if (transform_flag & ED_GIZMO_CAGE2D_XFORM_FLAG_TRANSLATE) { + gizmo_rect_pivot_from_scale_part(mpr->highlight_part, pivot, constrain_axis); } else { zero_v2(pivot); @@ -960,7 +960,7 @@ static int manipulator_cage2d_modal( scale[i] = 1.0f + ((delta_curr[i] - delta_orig[i]) / len_v3(data->orig_matrix_offset[i])); - if ((transform_flag & ED_MANIPULATOR_CAGE2D_XFORM_FLAG_SCALE_SIGNED) == 0) { + if ((transform_flag & ED_GIZMO_CAGE2D_XFORM_FLAG_SCALE_SIGNED) == 0) { if (sign != signum_i(scale[i])) { scale[i] = 0.0f; } @@ -968,7 +968,7 @@ static int manipulator_cage2d_modal( } } - if (transform_flag & ED_MANIPULATOR_CAGE2D_XFORM_FLAG_SCALE_UNIFORM) { + if (transform_flag & ED_GIZMO_CAGE2D_XFORM_FLAG_SCALE_UNIFORM) { if (constrain_axis[0] == false && constrain_axis[1] == false) { scale[1] = scale[0] = (scale[1] + scale[0]) / 2.0f; } @@ -995,7 +995,7 @@ static int manipulator_cage2d_modal( } if (mpr_prop->type != NULL) { - WM_manipulator_target_property_value_set_array(C, mpr, mpr_prop, &mpr->matrix_offset[0][0]); + WM_gizmo_target_property_value_set_array(C, mpr, mpr_prop, &mpr->matrix_offset[0][0]); } /* tag the region for redraw */ @@ -1005,11 +1005,11 @@ static int manipulator_cage2d_modal( return OPERATOR_RUNNING_MODAL; } -static void manipulator_cage2d_property_update(wmManipulator *mpr, wmManipulatorProperty *mpr_prop) +static void gizmo_cage2d_property_update(wmGizmo *mpr, wmGizmoProperty *mpr_prop) { if (STREQ(mpr_prop->type->idname, "matrix")) { - if (WM_manipulator_target_property_array_length(mpr, mpr_prop) == 16) { - WM_manipulator_target_property_value_get_array(mpr, mpr_prop, &mpr->matrix_offset[0][0]); + if (WM_gizmo_target_property_array_length(mpr, mpr_prop) == 16) { + WM_gizmo_target_property_value_get_array(mpr, mpr_prop, &mpr->matrix_offset[0][0]); } else { BLI_assert(0); @@ -1020,7 +1020,7 @@ static void manipulator_cage2d_property_update(wmManipulator *mpr, wmManipulator } } -static void manipulator_cage2d_exit(bContext *C, wmManipulator *mpr, const bool cancel) +static void gizmo_cage2d_exit(bContext *C, wmGizmo *mpr, const bool cancel) { RectTransformInteraction *data = mpr->interaction_data; @@ -1029,12 +1029,12 @@ static void manipulator_cage2d_exit(bContext *C, wmManipulator *mpr, const bool if (!cancel) return; - wmManipulatorProperty *mpr_prop; + wmGizmoProperty *mpr_prop; /* reset properties */ - mpr_prop = WM_manipulator_target_property_find(mpr, "matrix"); + mpr_prop = WM_gizmo_target_property_find(mpr, "matrix"); if (mpr_prop->type != NULL) { - WM_manipulator_target_property_value_set_array(C, mpr, mpr_prop, &data->orig_matrix_offset[0][0]); + WM_gizmo_target_property_value_set_array(C, mpr, mpr_prop, &data->orig_matrix_offset[0][0]); } copy_m4_m4(mpr->matrix_offset, data->orig_matrix_offset); @@ -1042,59 +1042,59 @@ static void manipulator_cage2d_exit(bContext *C, wmManipulator *mpr, const bool /* -------------------------------------------------------------------- */ -/** \name Cage Manipulator API +/** \name Cage Gizmo API * * \{ */ -static void MANIPULATOR_WT_cage_2d(wmManipulatorType *wt) +static void GIZMO_WT_cage_2d(wmGizmoType *wt) { /* identifiers */ - wt->idname = "MANIPULATOR_WT_cage_2d"; + wt->idname = "GIZMO_WT_cage_2d"; /* api callbacks */ - wt->draw = manipulator_cage2d_draw; - wt->draw_select = manipulator_cage2d_draw_select; - wt->test_select = manipulator_cage2d_test_select; - wt->setup = manipulator_cage2d_setup; - wt->invoke = manipulator_cage2d_invoke; - wt->property_update = manipulator_cage2d_property_update; - wt->modal = manipulator_cage2d_modal; - wt->exit = manipulator_cage2d_exit; - wt->cursor_get = manipulator_cage2d_get_cursor; - - wt->struct_size = sizeof(wmManipulator); + wt->draw = gizmo_cage2d_draw; + wt->draw_select = gizmo_cage2d_draw_select; + wt->test_select = gizmo_cage2d_test_select; + wt->setup = gizmo_cage2d_setup; + wt->invoke = gizmo_cage2d_invoke; + wt->property_update = gizmo_cage2d_property_update; + wt->modal = gizmo_cage2d_modal; + wt->exit = gizmo_cage2d_exit; + wt->cursor_get = gizmo_cage2d_get_cursor; + + wt->struct_size = sizeof(wmGizmo); /* rna */ static EnumPropertyItem rna_enum_draw_style[] = { - {ED_MANIPULATOR_CAGE2D_STYLE_BOX, "BOX", 0, "Box", ""}, - {ED_MANIPULATOR_CAGE2D_STYLE_CIRCLE, "CIRCLE", 0, "Circle", ""}, + {ED_GIZMO_CAGE2D_STYLE_BOX, "BOX", 0, "Box", ""}, + {ED_GIZMO_CAGE2D_STYLE_CIRCLE, "CIRCLE", 0, "Circle", ""}, {0, NULL, 0, NULL, NULL} }; static EnumPropertyItem rna_enum_transform[] = { - {ED_MANIPULATOR_CAGE2D_XFORM_FLAG_TRANSLATE, "TRANSLATE", 0, "Translate", ""}, - {ED_MANIPULATOR_CAGE2D_XFORM_FLAG_ROTATE, "ROTATE", 0, "Rotate", ""}, - {ED_MANIPULATOR_CAGE2D_XFORM_FLAG_SCALE, "SCALE", 0, "Scale", ""}, - {ED_MANIPULATOR_CAGE2D_XFORM_FLAG_SCALE_UNIFORM, "SCALE_UNIFORM", 0, "Scale Uniform", ""}, + {ED_GIZMO_CAGE2D_XFORM_FLAG_TRANSLATE, "TRANSLATE", 0, "Translate", ""}, + {ED_GIZMO_CAGE2D_XFORM_FLAG_ROTATE, "ROTATE", 0, "Rotate", ""}, + {ED_GIZMO_CAGE2D_XFORM_FLAG_SCALE, "SCALE", 0, "Scale", ""}, + {ED_GIZMO_CAGE2D_XFORM_FLAG_SCALE_UNIFORM, "SCALE_UNIFORM", 0, "Scale Uniform", ""}, {0, NULL, 0, NULL, NULL} }; static EnumPropertyItem rna_enum_draw_options[] = { - {ED_MANIPULATOR_CAGE2D_DRAW_FLAG_XFORM_CENTER_HANDLE, "XFORM_CENTER_HANDLE", 0, "Center Handle", ""}, + {ED_GIZMO_CAGE2D_DRAW_FLAG_XFORM_CENTER_HANDLE, "XFORM_CENTER_HANDLE", 0, "Center Handle", ""}, {0, NULL, 0, NULL, NULL} }; static float unit_v2[2] = {1.0f, 1.0f}; RNA_def_float_vector(wt->srna, "dimensions", 2, unit_v2, 0, FLT_MAX, "Dimensions", "", 0.0f, FLT_MAX); RNA_def_enum_flag(wt->srna, "transform", rna_enum_transform, 0, "Transform Options", ""); - RNA_def_enum(wt->srna, "draw_style", rna_enum_draw_style, ED_MANIPULATOR_CAGE2D_STYLE_CIRCLE, "Draw Style", ""); + RNA_def_enum(wt->srna, "draw_style", rna_enum_draw_style, ED_GIZMO_CAGE2D_STYLE_CIRCLE, "Draw Style", ""); RNA_def_enum_flag( wt->srna, "draw_options", rna_enum_draw_options, - ED_MANIPULATOR_CAGE2D_DRAW_FLAG_XFORM_CENTER_HANDLE, "Draw Options", ""); + ED_GIZMO_CAGE2D_DRAW_FLAG_XFORM_CENTER_HANDLE, "Draw Options", ""); - WM_manipulatortype_target_property_def(wt, "matrix", PROP_FLOAT, 16); + WM_gizmotype_target_property_def(wt, "matrix", PROP_FLOAT, 16); } -void ED_manipulatortypes_cage_2d(void) +void ED_gizmotypes_cage_2d(void) { - WM_manipulatortype_append(MANIPULATOR_WT_cage_2d); + WM_gizmotype_append(GIZMO_WT_cage_2d); } /** \} */ diff --git a/source/blender/editors/gizmo_library/gizmo_types/cage3d_gizmo.c b/source/blender/editors/gizmo_library/gizmo_types/cage3d_gizmo.c index 0f3e67d7585..e266514855b 100644 --- a/source/blender/editors/gizmo_library/gizmo_types/cage3d_gizmo.c +++ b/source/blender/editors/gizmo_library/gizmo_types/cage3d_gizmo.c @@ -26,12 +26,12 @@ /** \file cage3d_gizmo.c * \ingroup wm * - * \name Cage Manipulator + * \name Cage Gizmo * - * 2D Manipulator + * 2D Gizmo * - * \brief Rectangular manipulator acting as a 'cage' around its content. - * Interacting scales or translates the manipulator. + * \brief Rectangular gizmo acting as a 'cage' around its content. + * Interacting scales or translates the gizmo. */ #include "MEM_guardedalloc.h" @@ -63,24 +63,24 @@ /* own includes */ #include "../gizmo_library_intern.h" -#define MANIPULATOR_RESIZER_SIZE 10.0f -#define MANIPULATOR_MARGIN_OFFSET_SCALE 1.5f +#define GIZMO_RESIZER_SIZE 10.0f +#define GIZMO_MARGIN_OFFSET_SCALE 1.5f -static void manipulator_calc_matrix_final_no_offset( - const wmManipulator *mpr, float orig_matrix_final_no_offset[4][4], bool use_space) +static void gizmo_calc_matrix_final_no_offset( + const wmGizmo *mpr, float orig_matrix_final_no_offset[4][4], bool use_space) { float mat_identity[4][4]; - struct WM_ManipulatorMatrixParams params = {NULL}; + struct WM_GizmoMatrixParams params = {NULL}; unit_m4(mat_identity); if (use_space == false) { params.matrix_basis = mat_identity; } params.matrix_offset = mat_identity; - WM_manipulator_calc_matrix_final_params(mpr, ¶ms, orig_matrix_final_no_offset); + WM_gizmo_calc_matrix_final_params(mpr, ¶ms, orig_matrix_final_no_offset); } -static void manipulator_calc_rect_view_scale( - const wmManipulator *mpr, const float dims[3], float scale[3]) +static void gizmo_calc_rect_view_scale( + const wmGizmo *mpr, const float dims[3], float scale[3]) { UNUSED_VARS(dims); @@ -88,7 +88,7 @@ static void manipulator_calc_rect_view_scale( float matrix_final_no_offset[4][4]; float x_axis[3], y_axis[3], z_axis[3]; - manipulator_calc_matrix_final_no_offset(mpr, matrix_final_no_offset, false); + gizmo_calc_matrix_final_no_offset(mpr, matrix_final_no_offset, false); mul_v3_mat3_m4v3(x_axis, matrix_final_no_offset, mpr->matrix_offset[0]); mul_v3_mat3_m4v3(y_axis, matrix_final_no_offset, mpr->matrix_offset[1]); mul_v3_mat3_m4v3(z_axis, matrix_final_no_offset, mpr->matrix_offset[2]); @@ -98,21 +98,21 @@ static void manipulator_calc_rect_view_scale( scale[2] = 1.0f / len_v3(z_axis); } -static void manipulator_calc_rect_view_margin( - const wmManipulator *mpr, const float dims[3], float margin[3]) +static void gizmo_calc_rect_view_margin( + const wmGizmo *mpr, const float dims[3], float margin[3]) { float handle_size; - if (mpr->parent_mgroup->type->flag & WM_MANIPULATORGROUPTYPE_3D) { + if (mpr->parent_mgroup->type->flag & WM_GIZMOGROUPTYPE_3D) { handle_size = 0.15f; } else { - handle_size = MANIPULATOR_RESIZER_SIZE; + handle_size = GIZMO_RESIZER_SIZE; } // XXX, the scale isn't taking offset into account, we need to calculate scale per handle! // handle_size *= mpr->scale_final; float scale_xyz[3]; - manipulator_calc_rect_view_scale(mpr, dims, scale_xyz); + gizmo_calc_rect_view_scale(mpr, dims, scale_xyz); margin[0] = ((handle_size * scale_xyz[0])); margin[1] = ((handle_size * scale_xyz[1])); margin[2] = ((handle_size * scale_xyz[2])); @@ -120,12 +120,12 @@ static void manipulator_calc_rect_view_margin( /* -------------------------------------------------------------------- */ -static void manipulator_rect_pivot_from_scale_part(int part, float r_pt[3], bool r_constrain_axis[3]) +static void gizmo_rect_pivot_from_scale_part(int part, float r_pt[3], bool r_constrain_axis[3]) { - if (part >= ED_MANIPULATOR_CAGE3D_PART_SCALE_MIN_X_MIN_Y_MIN_Z && - part <= ED_MANIPULATOR_CAGE3D_PART_SCALE_MAX_X_MAX_Y_MAX_Z) + if (part >= ED_GIZMO_CAGE3D_PART_SCALE_MIN_X_MIN_Y_MIN_Z && + part <= ED_GIZMO_CAGE3D_PART_SCALE_MAX_X_MAX_Y_MAX_Z) { - int index = (part - ED_MANIPULATOR_CAGE3D_PART_SCALE_MIN_X_MIN_Y_MIN_Z); + int index = (part - ED_GIZMO_CAGE3D_PART_SCALE_MIN_X_MIN_Y_MIN_Z); int range[3]; range[2] = index % 3; index = index / 3; @@ -144,7 +144,7 @@ static void manipulator_rect_pivot_from_scale_part(int part, float r_pt[3], bool /* -------------------------------------------------------------------- */ /** \name Box Draw Style * - * Useful for 3D views, see: #ED_MANIPULATOR_CAGE2D_STYLE_BOX + * Useful for 3D views, see: #ED_GIZMO_CAGE2D_STYLE_BOX * \{ */ static void cage3d_draw_box_corners( @@ -165,10 +165,10 @@ static void cage3d_draw_box_interaction( const float color[4], const int highlighted, const float size[3], const float margin[3]) { - if (highlighted >= ED_MANIPULATOR_CAGE3D_PART_SCALE_MIN_X_MIN_Y_MIN_Z && - highlighted <= ED_MANIPULATOR_CAGE3D_PART_SCALE_MAX_X_MAX_Y_MAX_Z) + if (highlighted >= ED_GIZMO_CAGE3D_PART_SCALE_MIN_X_MIN_Y_MIN_Z && + highlighted <= ED_GIZMO_CAGE3D_PART_SCALE_MAX_X_MAX_Y_MAX_Z) { - int index = (highlighted - ED_MANIPULATOR_CAGE3D_PART_SCALE_MIN_X_MIN_Y_MIN_Z); + int index = (highlighted - ED_GIZMO_CAGE3D_PART_SCALE_MIN_X_MIN_Y_MIN_Z); int range[3]; range[2] = index % 3; index = index / 3; @@ -199,7 +199,7 @@ static void cage3d_draw_box_interaction( /* -------------------------------------------------------------------- */ /** \name Circle Draw Style * - * Useful for 2D views, see: #ED_MANIPULATOR_CAGE2D_STYLE_CIRCLE + * Useful for 2D views, see: #ED_GIZMO_CAGE2D_STYLE_CIRCLE * \{ */ static void imm_draw_point_aspect_3d( @@ -225,8 +225,8 @@ static void cage3d_draw_circle_wire( imm_draw_cube_wire_3d(pos, (float[3]){0}, r); #if 0 - if (transform_flag & ED_MANIPULATOR_CAGE2D_XFORM_FLAG_TRANSLATE) { - if (draw_options & ED_MANIPULATOR_CAGE2D_DRAW_FLAG_XFORM_CENTER_HANDLE) { + if (transform_flag & ED_GIZMO_CAGE2D_XFORM_FLAG_TRANSLATE) { + if (draw_options & ED_GIZMO_CAGE2D_DRAW_FLAG_XFORM_CENTER_HANDLE) { const float rad[2] = {margin[0] / 2, margin[1] / 2}; const float center[2] = {0.0f, 0.0f}; @@ -279,11 +279,11 @@ static void cage3d_draw_circle_handles( /** \} */ -static void manipulator_cage3d_draw_intern( +static void gizmo_cage3d_draw_intern( RegionView3D *rv3d, - wmManipulator *mpr, const bool select, const bool highlight, const int select_id) + wmGizmo *mpr, const bool select, const bool highlight, const int select_id) { - // const bool use_clamp = (mpr->parent_mgroup->type->flag & WM_MANIPULATORGROUPTYPE_3D) == 0; + // const bool use_clamp = (mpr->parent_mgroup->type->flag & WM_GIZMOGROUPTYPE_3D) == 0; float dims[3]; RNA_float_get_array(mpr->ptr, "dimensions", dims); float matrix_final[4][4]; @@ -294,13 +294,13 @@ static void manipulator_cage3d_draw_intern( const float size_real[3] = {dims[0] / 2.0f, dims[1] / 2.0f, dims[2] / 2.0f}; - WM_manipulator_calc_matrix_final(mpr, matrix_final); + WM_gizmo_calc_matrix_final(mpr, matrix_final); gpuPushMatrix(); gpuMultMatrix(matrix_final); float margin[3]; - manipulator_calc_rect_view_margin(mpr, dims, margin); + gizmo_calc_rect_view_margin(mpr, dims, margin); /* Handy for quick testing draw (if it's outside bounds). */ if (false) { @@ -328,12 +328,12 @@ static void manipulator_cage3d_draw_intern( #endif - if (transform_flag & ED_MANIPULATOR_CAGE2D_XFORM_FLAG_SCALE) { - for (int i = ED_MANIPULATOR_CAGE3D_PART_SCALE_MIN_X_MIN_Y_MIN_Z; - i <= ED_MANIPULATOR_CAGE3D_PART_SCALE_MAX_X_MAX_Y_MAX_Z; + if (transform_flag & ED_GIZMO_CAGE2D_XFORM_FLAG_SCALE) { + for (int i = ED_GIZMO_CAGE3D_PART_SCALE_MIN_X_MIN_Y_MIN_Z; + i <= ED_GIZMO_CAGE3D_PART_SCALE_MAX_X_MAX_Y_MAX_Z; i++) { - if (i == ED_MANIPULATOR_CAGE3D_PART_SCALE_MID_X_MID_Y_MID_Z) { + if (i == ED_GIZMO_CAGE3D_PART_SCALE_MID_X_MID_Y_MID_Z) { continue; } GPU_select_load_id(select_id | i); @@ -341,8 +341,8 @@ static void manipulator_cage3d_draw_intern( mpr->color, i, size, margin); } } - if (transform_flag & ED_MANIPULATOR_CAGE2D_XFORM_FLAG_TRANSLATE) { - const int transform_part = ED_MANIPULATOR_CAGE3D_PART_TRANSLATE; + if (transform_flag & ED_GIZMO_CAGE2D_XFORM_FLAG_TRANSLATE) { + const int transform_part = ED_GIZMO_CAGE3D_PART_TRANSLATE; GPU_select_load_id(select_id | transform_part); cage3d_draw_box_interaction( mpr->color, transform_part, size, margin); @@ -357,22 +357,22 @@ static void manipulator_cage3d_draw_intern( .ymax = size_real[1], }; #endif - if (draw_style == ED_MANIPULATOR_CAGE2D_STYLE_BOX) { - /* corner manipulators */ + if (draw_style == ED_GIZMO_CAGE2D_STYLE_BOX) { + /* corner gizmos */ GPU_line_width(mpr->line_width + 3.0f); cage3d_draw_box_corners(size_real, margin, (const float[3]){0, 0, 0}); - /* corner manipulators */ + /* corner gizmos */ float color[4]; - manipulator_color_get(mpr, highlight, color); + gizmo_color_get(mpr, highlight, color); GPU_line_width(mpr->line_width); cage3d_draw_box_corners(size_real, margin, color); bool show = false; - if (mpr->highlight_part == ED_MANIPULATOR_CAGE3D_PART_TRANSLATE) { + if (mpr->highlight_part == ED_GIZMO_CAGE3D_PART_TRANSLATE) { /* Only show if we're drawing the center handle * otherwise the entire rectangle is the hotspot. */ - if (draw_options & ED_MANIPULATOR_CAGE2D_DRAW_FLAG_XFORM_CENTER_HANDLE) { + if (draw_options & ED_GIZMO_CAGE2D_DRAW_FLAG_XFORM_CENTER_HANDLE) { show = true; } } @@ -385,9 +385,9 @@ static void manipulator_cage3d_draw_intern( mpr->color, mpr->highlight_part, size_real, margin); } } - else if (draw_style == ED_MANIPULATOR_CAGE2D_STYLE_CIRCLE) { + else if (draw_style == ED_GIZMO_CAGE2D_STYLE_CIRCLE) { float color[4]; - manipulator_color_get(mpr, highlight, color); + gizmo_color_get(mpr, highlight, color); GPU_line_smooth(true); GPU_polygon_smooth(true); @@ -398,7 +398,7 @@ static void manipulator_cage3d_draw_intern( GPU_line_width(mpr->line_width); cage3d_draw_circle_wire(size_real, margin, color, transform_flag, draw_options); - /* corner manipulators */ + /* corner gizmos */ cage3d_draw_circle_handles(rv3d, matrix_final, size_real, margin, (const float[3]){0, 0, 0}, true, 60); cage3d_draw_circle_handles(rv3d, matrix_final, size_real, margin, color, true, 40); @@ -418,24 +418,24 @@ static void manipulator_cage3d_draw_intern( /** * For when we want to draw 3d cage in 3d views. */ -static void manipulator_cage3d_draw_select(const bContext *C, wmManipulator *mpr, int select_id) +static void gizmo_cage3d_draw_select(const bContext *C, wmGizmo *mpr, int select_id) { ARegion *ar = CTX_wm_region(C); RegionView3D *rv3d = ar->regiondata; - manipulator_cage3d_draw_intern(rv3d, mpr, true, false, select_id); + gizmo_cage3d_draw_intern(rv3d, mpr, true, false, select_id); } -static void manipulator_cage3d_draw(const bContext *C, wmManipulator *mpr) +static void gizmo_cage3d_draw(const bContext *C, wmGizmo *mpr) { ARegion *ar = CTX_wm_region(C); RegionView3D *rv3d = ar->regiondata; - const bool is_highlight = (mpr->state & WM_MANIPULATOR_STATE_HIGHLIGHT) != 0; - manipulator_cage3d_draw_intern(rv3d, mpr, false, is_highlight, -1); + const bool is_highlight = (mpr->state & WM_GIZMO_STATE_HIGHLIGHT) != 0; + gizmo_cage3d_draw_intern(rv3d, mpr, false, is_highlight, -1); } -static int manipulator_cage3d_get_cursor(wmManipulator *mpr) +static int gizmo_cage3d_get_cursor(wmGizmo *mpr) { - if (mpr->parent_mgroup->type->flag & WM_MANIPULATORGROUPTYPE_3D) { + if (mpr->parent_mgroup->type->flag & WM_GIZMOGROUPTYPE_3D) { return BC_NSEW_SCROLLCURSOR; } @@ -448,21 +448,21 @@ typedef struct RectTransformInteraction { float orig_matrix_final_no_offset[4][4]; } RectTransformInteraction; -static void manipulator_cage3d_setup(wmManipulator *mpr) +static void gizmo_cage3d_setup(wmGizmo *mpr) { - mpr->flag |= /* WM_MANIPULATOR_DRAW_MODAL | */ /* TODO */ - WM_MANIPULATOR_DRAW_NO_SCALE; + mpr->flag |= /* WM_GIZMO_DRAW_MODAL | */ /* TODO */ + WM_GIZMO_DRAW_NO_SCALE; } -static int manipulator_cage3d_invoke( - bContext *C, wmManipulator *mpr, const wmEvent *event) +static int gizmo_cage3d_invoke( + bContext *C, wmGizmo *mpr, const wmEvent *event) { RectTransformInteraction *data = MEM_callocN(sizeof(RectTransformInteraction), "cage_interaction"); copy_m4_m4(data->orig_matrix_offset, mpr->matrix_offset); - manipulator_calc_matrix_final_no_offset(mpr, data->orig_matrix_final_no_offset, true); + gizmo_calc_matrix_final_no_offset(mpr, data->orig_matrix_final_no_offset, true); - if (manipulator_window_project_3d( + if (gizmo_window_project_3d( C, mpr, (const float[2]){UNPACK2(event->mval)}, false, data->orig_mouse) == 0) { zero_v3(data->orig_mouse); @@ -473,9 +473,9 @@ static int manipulator_cage3d_invoke( return OPERATOR_RUNNING_MODAL; } -static int manipulator_cage3d_modal( - bContext *C, wmManipulator *mpr, const wmEvent *event, - eWM_ManipulatorTweak UNUSED(tweak_flag)) +static int gizmo_cage3d_modal( + bContext *C, wmGizmo *mpr, const wmEvent *event, + eWM_GizmoFlagTweak UNUSED(tweak_flag)) { /* For transform logic to be managable we operate in -0.5..0.5 2D space, * no matter the size of the rectangle, mouse coorts are scaled to unit space. @@ -495,7 +495,7 @@ static int manipulator_cage3d_modal( copy_m4_m4(matrix_back, mpr->matrix_offset); copy_m4_m4(mpr->matrix_offset, data->orig_matrix_offset); - bool ok = manipulator_window_project_3d( + bool ok = gizmo_window_project_3d( C, mpr, (const float[2]){UNPACK2(event->mval)}, false, point_local); copy_m4_m4(mpr->matrix_offset, matrix_back); if (!ok) { @@ -504,21 +504,21 @@ static int manipulator_cage3d_modal( } const int transform_flag = RNA_enum_get(mpr->ptr, "transform"); - wmManipulatorProperty *mpr_prop; + wmGizmoProperty *mpr_prop; - mpr_prop = WM_manipulator_target_property_find(mpr, "matrix"); + mpr_prop = WM_gizmo_target_property_find(mpr, "matrix"); if (mpr_prop->type != NULL) { - WM_manipulator_target_property_value_get_array(mpr, mpr_prop, &mpr->matrix_offset[0][0]); + WM_gizmo_target_property_value_get_array(mpr, mpr_prop, &mpr->matrix_offset[0][0]); } - if (mpr->highlight_part == ED_MANIPULATOR_CAGE3D_PART_TRANSLATE) { + if (mpr->highlight_part == ED_GIZMO_CAGE3D_PART_TRANSLATE) { /* do this to prevent clamping from changing size */ copy_m4_m4(mpr->matrix_offset, data->orig_matrix_offset); mpr->matrix_offset[3][0] = data->orig_matrix_offset[3][0] + (point_local[0] - data->orig_mouse[0]); mpr->matrix_offset[3][1] = data->orig_matrix_offset[3][1] + (point_local[1] - data->orig_mouse[1]); mpr->matrix_offset[3][2] = data->orig_matrix_offset[3][2] + (point_local[2] - data->orig_mouse[2]); } - else if (mpr->highlight_part == ED_MANIPULATOR_CAGE3D_PART_ROTATE) { + else if (mpr->highlight_part == ED_GIZMO_CAGE3D_PART_ROTATE) { /* TODO (if needed) */ } else { @@ -527,8 +527,8 @@ static int manipulator_cage3d_modal( float pivot[3]; bool constrain_axis[3] = {false}; - if (transform_flag & ED_MANIPULATOR_CAGE2D_XFORM_FLAG_TRANSLATE) { - manipulator_rect_pivot_from_scale_part(mpr->highlight_part, pivot, constrain_axis); + if (transform_flag & ED_GIZMO_CAGE2D_XFORM_FLAG_TRANSLATE) { + gizmo_rect_pivot_from_scale_part(mpr->highlight_part, pivot, constrain_axis); } else { zero_v3(pivot); @@ -553,7 +553,7 @@ static int manipulator_cage3d_modal( scale[i] = 1.0f + ((delta_curr[i] - delta_orig[i]) / len_v3(data->orig_matrix_offset[i])); - if ((transform_flag & ED_MANIPULATOR_CAGE2D_XFORM_FLAG_SCALE_SIGNED) == 0) { + if ((transform_flag & ED_GIZMO_CAGE2D_XFORM_FLAG_SCALE_SIGNED) == 0) { if (sign != signum_i(scale[i])) { scale[i] = 0.0f; } @@ -561,7 +561,7 @@ static int manipulator_cage3d_modal( } } - if (transform_flag & ED_MANIPULATOR_CAGE2D_XFORM_FLAG_SCALE_UNIFORM) { + if (transform_flag & ED_GIZMO_CAGE2D_XFORM_FLAG_SCALE_UNIFORM) { if (constrain_axis[0] == false && constrain_axis[1] == false) { scale[1] = scale[0] = (scale[1] + scale[0]) / 2.0f; } @@ -591,7 +591,7 @@ static int manipulator_cage3d_modal( } if (mpr_prop->type != NULL) { - WM_manipulator_target_property_value_set_array(C, mpr, mpr_prop, &mpr->matrix_offset[0][0]); + WM_gizmo_target_property_value_set_array(C, mpr, mpr_prop, &mpr->matrix_offset[0][0]); } /* tag the region for redraw */ @@ -601,11 +601,11 @@ static int manipulator_cage3d_modal( return OPERATOR_RUNNING_MODAL; } -static void manipulator_cage3d_property_update(wmManipulator *mpr, wmManipulatorProperty *mpr_prop) +static void gizmo_cage3d_property_update(wmGizmo *mpr, wmGizmoProperty *mpr_prop) { if (STREQ(mpr_prop->type->idname, "matrix")) { - if (WM_manipulator_target_property_array_length(mpr, mpr_prop) == 16) { - WM_manipulator_target_property_value_get_array(mpr, mpr_prop, &mpr->matrix_offset[0][0]); + if (WM_gizmo_target_property_array_length(mpr, mpr_prop) == 16) { + WM_gizmo_target_property_value_get_array(mpr, mpr_prop, &mpr->matrix_offset[0][0]); } else { BLI_assert(0); @@ -616,19 +616,19 @@ static void manipulator_cage3d_property_update(wmManipulator *mpr, wmManipulator } } -static void manipulator_cage3d_exit(bContext *C, wmManipulator *mpr, const bool cancel) +static void gizmo_cage3d_exit(bContext *C, wmGizmo *mpr, const bool cancel) { RectTransformInteraction *data = mpr->interaction_data; if (!cancel) return; - wmManipulatorProperty *mpr_prop; + wmGizmoProperty *mpr_prop; /* reset properties */ - mpr_prop = WM_manipulator_target_property_find(mpr, "matrix"); + mpr_prop = WM_gizmo_target_property_find(mpr, "matrix"); if (mpr_prop->type != NULL) { - WM_manipulator_target_property_value_set_array(C, mpr, mpr_prop, &data->orig_matrix_offset[0][0]); + WM_gizmo_target_property_value_set_array(C, mpr, mpr_prop, &data->orig_matrix_offset[0][0]); } copy_m4_m4(mpr->matrix_offset, data->orig_matrix_offset); @@ -636,57 +636,57 @@ static void manipulator_cage3d_exit(bContext *C, wmManipulator *mpr, const bool /* -------------------------------------------------------------------- */ -/** \name Cage Manipulator API +/** \name Cage Gizmo API * * \{ */ -static void MANIPULATOR_WT_cage_3d(wmManipulatorType *wt) +static void GIZMO_WT_cage_3d(wmGizmoType *wt) { /* identifiers */ - wt->idname = "MANIPULATOR_WT_cage_3d"; + wt->idname = "GIZMO_WT_cage_3d"; /* api callbacks */ - wt->draw = manipulator_cage3d_draw; - wt->draw_select = manipulator_cage3d_draw_select; - wt->setup = manipulator_cage3d_setup; - wt->invoke = manipulator_cage3d_invoke; - wt->property_update = manipulator_cage3d_property_update; - wt->modal = manipulator_cage3d_modal; - wt->exit = manipulator_cage3d_exit; - wt->cursor_get = manipulator_cage3d_get_cursor; + wt->draw = gizmo_cage3d_draw; + wt->draw_select = gizmo_cage3d_draw_select; + wt->setup = gizmo_cage3d_setup; + wt->invoke = gizmo_cage3d_invoke; + wt->property_update = gizmo_cage3d_property_update; + wt->modal = gizmo_cage3d_modal; + wt->exit = gizmo_cage3d_exit; + wt->cursor_get = gizmo_cage3d_get_cursor; - wt->struct_size = sizeof(wmManipulator); + wt->struct_size = sizeof(wmGizmo); /* rna */ static EnumPropertyItem rna_enum_draw_style[] = { - {ED_MANIPULATOR_CAGE2D_STYLE_BOX, "BOX", 0, "Box", ""}, - {ED_MANIPULATOR_CAGE2D_STYLE_CIRCLE, "CIRCLE", 0, "Circle", ""}, + {ED_GIZMO_CAGE2D_STYLE_BOX, "BOX", 0, "Box", ""}, + {ED_GIZMO_CAGE2D_STYLE_CIRCLE, "CIRCLE", 0, "Circle", ""}, {0, NULL, 0, NULL, NULL} }; static EnumPropertyItem rna_enum_transform[] = { - {ED_MANIPULATOR_CAGE2D_XFORM_FLAG_TRANSLATE, "TRANSLATE", 0, "Translate", ""}, - {ED_MANIPULATOR_CAGE2D_XFORM_FLAG_SCALE, "SCALE", 0, "Scale", ""}, - {ED_MANIPULATOR_CAGE2D_XFORM_FLAG_SCALE_UNIFORM, "SCALE_UNIFORM", 0, "Scale Uniform", ""}, + {ED_GIZMO_CAGE2D_XFORM_FLAG_TRANSLATE, "TRANSLATE", 0, "Translate", ""}, + {ED_GIZMO_CAGE2D_XFORM_FLAG_SCALE, "SCALE", 0, "Scale", ""}, + {ED_GIZMO_CAGE2D_XFORM_FLAG_SCALE_UNIFORM, "SCALE_UNIFORM", 0, "Scale Uniform", ""}, {0, NULL, 0, NULL, NULL} }; static EnumPropertyItem rna_enum_draw_options[] = { - {ED_MANIPULATOR_CAGE2D_DRAW_FLAG_XFORM_CENTER_HANDLE, "XFORM_CENTER_HANDLE", 0, "Center Handle", ""}, + {ED_GIZMO_CAGE2D_DRAW_FLAG_XFORM_CENTER_HANDLE, "XFORM_CENTER_HANDLE", 0, "Center Handle", ""}, {0, NULL, 0, NULL, NULL} }; static float unit_v3[3] = {1.0f, 1.0f, 1.0f}; RNA_def_float_vector(wt->srna, "dimensions", 3, unit_v3, 0, FLT_MAX, "Dimensions", "", 0.0f, FLT_MAX); RNA_def_enum_flag(wt->srna, "transform", rna_enum_transform, 0, "Transform Options", ""); - RNA_def_enum(wt->srna, "draw_style", rna_enum_draw_style, ED_MANIPULATOR_CAGE2D_STYLE_CIRCLE, "Draw Style", ""); + RNA_def_enum(wt->srna, "draw_style", rna_enum_draw_style, ED_GIZMO_CAGE2D_STYLE_CIRCLE, "Draw Style", ""); RNA_def_enum_flag( wt->srna, "draw_options", rna_enum_draw_options, - ED_MANIPULATOR_CAGE2D_DRAW_FLAG_XFORM_CENTER_HANDLE, "Draw Options", ""); + ED_GIZMO_CAGE2D_DRAW_FLAG_XFORM_CENTER_HANDLE, "Draw Options", ""); - WM_manipulatortype_target_property_def(wt, "matrix", PROP_FLOAT, 16); + WM_gizmotype_target_property_def(wt, "matrix", PROP_FLOAT, 16); } -void ED_manipulatortypes_cage_3d(void) +void ED_gizmotypes_cage_3d(void) { - WM_manipulatortype_append(MANIPULATOR_WT_cage_3d); + WM_gizmotype_append(GIZMO_WT_cage_3d); } /** \} */ diff --git a/source/blender/editors/gizmo_library/gizmo_types/dial3d_gizmo.c b/source/blender/editors/gizmo_library/gizmo_types/dial3d_gizmo.c index 8d0061f66c8..b93b87b1efa 100644 --- a/source/blender/editors/gizmo_library/gizmo_types/dial3d_gizmo.c +++ b/source/blender/editors/gizmo_library/gizmo_types/dial3d_gizmo.c @@ -26,15 +26,15 @@ /** \file dial3d_gizmo.c * \ingroup wm * - * \name Dial Manipulator + * \name Dial Gizmo * - * 3D Manipulator + * 3D Gizmo * - * \brief Circle shaped manipulator for circular interaction. + * \brief Circle shaped gizmo for circular interaction. * Currently no own handling, use with operator only. * * - `matrix[0]` is derived from Y and Z. - * - `matrix[1]` is 'up' when DialManipulator.use_start_y_axis is set. + * - `matrix[1]` is 'up' when DialGizmo.use_start_y_axis is set. * - `matrix[2]` is the axis the dial rotates around (all dials). */ @@ -67,12 +67,12 @@ #include "../gizmo_geometry.h" #include "../gizmo_library_intern.h" -/* to use custom dials exported to geom_dial_manipulator.c */ -// #define USE_MANIPULATOR_CUSTOM_DIAL +/* to use custom dials exported to geom_dial_gizmo.c */ +// #define USE_GIZMO_CUSTOM_DIAL -static int manipulator_dial_modal( - bContext *C, wmManipulator *mpr, const wmEvent *event, - eWM_ManipulatorTweak tweak_flag); +static int gizmo_dial_modal( + bContext *C, wmGizmo *mpr, const wmEvent *event, + eWM_GizmoFlagTweak tweak_flag); typedef struct DialInteraction { float init_mval[2]; @@ -99,9 +99,9 @@ typedef struct DialInteraction { #define DIAL_CLIP_BIAS 0.02 /** - * We can't use this for the #wmManipulatorType.matrix_basis_get callback, it conflicts with depth picking. + * We can't use this for the #wmGizmoType.matrix_basis_get callback, it conflicts with depth picking. */ -static void dial_calc_matrix(const wmManipulator *mpr, float mat[4][4]) +static void dial_calc_matrix(const wmGizmo *mpr, float mat[4][4]) { float rot[3][3]; const float up[3] = {0.0f, 0.0f, 1.0f}; @@ -114,15 +114,15 @@ static void dial_calc_matrix(const wmManipulator *mpr, float mat[4][4]) /* -------------------------------------------------------------------- */ static void dial_geom_draw( - const wmManipulator *mpr, const float color[4], const bool select, + const wmGizmo *mpr, const float color[4], const bool select, float axis_modal_mat[4][4], float clip_plane[4]) { -#ifdef USE_MANIPULATOR_CUSTOM_DIAL +#ifdef USE_GIZMO_CUSTOM_DIAL UNUSED_VARS(dial, col, axis_modal_mat, clip_plane); - wm_manipulator_geometryinfo_draw(&wm_manipulator_geom_data_dial, select); + wm_gizmo_geometryinfo_draw(&wm_gizmo_geom_data_dial, select); #else const int draw_options = RNA_enum_get(mpr->ptr, "draw_options"); - const bool filled = (draw_options & ED_MANIPULATOR_DIAL_DRAW_FLAG_FILL) != 0; + const bool filled = (draw_options & ED_GIZMO_DIAL_DRAW_FLAG_FILL) != 0; GPU_line_width(mpr->line_width); @@ -181,9 +181,9 @@ static void dial_ghostarc_draw_helpline(const float angle, const float co_outer[ } static void dial_ghostarc_draw( - const wmManipulator *mpr, const float angle_ofs, const float angle_delta, const float color[4]) + const wmGizmo *mpr, const float angle_ofs, const float angle_delta, const float color[4]) { - const float width_inner = DIAL_WIDTH - mpr->line_width * 0.5f / U.manipulator_size; + const float width_inner = DIAL_WIDTH - mpr->line_width * 0.5f / U.gizmo_size; Gwn_VertFormat *format = immVertexFormat(); uint pos = GWN_vertformat_attr_add(format, "pos", GWN_COMP_F32, 2, GWN_FETCH_FLOAT); @@ -196,7 +196,7 @@ static void dial_ghostarc_draw( static void dial_ghostarc_get_angles( struct Depsgraph *depsgraph, - const wmManipulator *mpr, + const wmGizmo *mpr, const wmEvent *event, const ARegion *ar, const View3D *v3d, float mat[4][4], const float co_outer[3], @@ -243,7 +243,7 @@ static void dial_ghostarc_get_angles( /* Start direction from mouse or set by user */ const float *proj_init_rel = - (draw_options & ED_MANIPULATOR_DIAL_DRAW_FLAG_ANGLE_START_Y) ? + (draw_options & ED_GIZMO_DIAL_DRAW_FLAG_ANGLE_START_Y) ? mpr->matrix_basis[1] : proj_mval_init_rel; /* return angles */ @@ -274,7 +274,7 @@ fail: } static void dial_draw_intern( - const bContext *C, wmManipulator *mpr, + const bContext *C, wmGizmo *mpr, const bool select, const bool highlight, float clip_plane[4]) { float matrix_basis_adjust[4][4]; @@ -283,12 +283,12 @@ static void dial_draw_intern( BLI_assert(CTX_wm_area(C)->spacetype == SPACE_VIEW3D); - manipulator_color_get(mpr, highlight, color); + gizmo_color_get(mpr, highlight, color); dial_calc_matrix(mpr, matrix_basis_adjust); - WM_manipulator_calc_matrix_final_params( - mpr, &((struct WM_ManipulatorMatrixParams) { + WM_gizmo_calc_matrix_final_params( + mpr, &((struct WM_GizmoMatrixParams) { .matrix_basis = (void *)matrix_basis_adjust, }), matrix_final); @@ -296,17 +296,17 @@ static void dial_draw_intern( gpuMultMatrix(matrix_final); /* draw rotation indicator arc first */ - if ((mpr->flag & WM_MANIPULATOR_DRAW_VALUE) && - (mpr->state & WM_MANIPULATOR_STATE_MODAL)) + if ((mpr->flag & WM_GIZMO_DRAW_VALUE) && + (mpr->state & WM_GIZMO_STATE_MODAL)) { const float co_outer[4] = {0.0f, DIAL_WIDTH, 0.0f}; /* coordinate at which the arc drawing will be started */ DialInteraction *inter = mpr->interaction_data; - /* XXX, View3D rotation manipulator doesn't call modal. */ - if (!WM_manipulator_target_property_is_valid_any(mpr)) { + /* XXX, View3D rotation gizmo doesn't call modal. */ + if (!WM_gizmo_target_property_is_valid_any(mpr)) { wmWindow *win = CTX_wm_window(C); - manipulator_dial_modal((bContext *)C, mpr, win->eventstate, 0); + gizmo_dial_modal((bContext *)C, mpr, win->eventstate, 0); } float angle_ofs = inter->output.angle_ofs; @@ -323,7 +323,7 @@ static void dial_draw_intern( if (i == 0) { const int draw_options = RNA_enum_get(mpr->ptr, "draw_options"); - if ((draw_options & ED_MANIPULATOR_DIAL_DRAW_FLAG_ANGLE_MIRROR) == 0) { + if ((draw_options & ED_GIZMO_DIAL_DRAW_FLAG_ANGLE_MIRROR) == 0) { break; } } @@ -332,17 +332,17 @@ static void dial_draw_intern( } } - /* draw actual dial manipulator */ + /* draw actual dial gizmo */ dial_geom_draw(mpr, color, select, matrix_basis_adjust, clip_plane); gpuPopMatrix(); } -static void manipulator_dial_draw_select(const bContext *C, wmManipulator *mpr, int select_id) +static void gizmo_dial_draw_select(const bContext *C, wmGizmo *mpr, int select_id) { float clip_plane_buf[4]; const int draw_options = RNA_enum_get(mpr->ptr, "draw_options"); - float *clip_plane = (draw_options & ED_MANIPULATOR_DIAL_DRAW_FLAG_CLIP) ? clip_plane_buf : NULL; + float *clip_plane = (draw_options & ED_GIZMO_DIAL_DRAW_FLAG_CLIP) ? clip_plane_buf : NULL; /* enable clipping if needed */ if (clip_plane) { @@ -363,13 +363,13 @@ static void manipulator_dial_draw_select(const bContext *C, wmManipulator *mpr, } } -static void manipulator_dial_draw(const bContext *C, wmManipulator *mpr) +static void gizmo_dial_draw(const bContext *C, wmGizmo *mpr) { - const bool is_modal = mpr->state & WM_MANIPULATOR_STATE_MODAL; - const bool is_highlight = (mpr->state & WM_MANIPULATOR_STATE_HIGHLIGHT) != 0; + const bool is_modal = mpr->state & WM_GIZMO_STATE_MODAL; + const bool is_highlight = (mpr->state & WM_GIZMO_STATE_HIGHLIGHT) != 0; float clip_plane_buf[4]; const int draw_options = RNA_enum_get(mpr->ptr, "draw_options"); - float *clip_plane = (!is_modal && (draw_options & ED_MANIPULATOR_DIAL_DRAW_FLAG_CLIP)) ? clip_plane_buf : NULL; + float *clip_plane = (!is_modal && (draw_options & ED_GIZMO_DIAL_DRAW_FLAG_CLIP)) ? clip_plane_buf : NULL; /* enable clipping if needed */ if (clip_plane) { @@ -392,9 +392,9 @@ static void manipulator_dial_draw(const bContext *C, wmManipulator *mpr) } } -static int manipulator_dial_modal( - bContext *C, wmManipulator *mpr, const wmEvent *event, - eWM_ManipulatorTweak UNUSED(tweak_flag)) +static int gizmo_dial_modal( + bContext *C, wmGizmo *mpr, const wmEvent *event, + eWM_GizmoFlagTweak UNUSED(tweak_flag)) { const float co_outer[4] = {0.0f, DIAL_WIDTH, 0.0f}; /* coordinate at which the arc drawing will be started */ float angle_ofs, angle_delta; @@ -413,15 +413,15 @@ static int manipulator_dial_modal( inter->output.angle_ofs = angle_ofs; /* set the property for the operator and call its modal function */ - wmManipulatorProperty *mpr_prop = WM_manipulator_target_property_find(mpr, "offset"); - if (WM_manipulator_target_property_is_valid(mpr_prop)) { - WM_manipulator_target_property_value_set(C, mpr, mpr_prop, inter->init_prop_angle + angle_delta); + wmGizmoProperty *mpr_prop = WM_gizmo_target_property_find(mpr, "offset"); + if (WM_gizmo_target_property_is_valid(mpr_prop)) { + WM_gizmo_target_property_value_set(C, mpr, mpr_prop, inter->init_prop_angle + angle_delta); } return OPERATOR_RUNNING_MODAL; } -static void manipulator_dial_setup(wmManipulator *mpr) +static void gizmo_dial_setup(wmGizmo *mpr) { const float dir_default[3] = {0.0f, 0.0f, 1.0f}; @@ -429,17 +429,17 @@ static void manipulator_dial_setup(wmManipulator *mpr) copy_v3_v3(mpr->matrix_basis[2], dir_default); } -static int manipulator_dial_invoke( - bContext *UNUSED(C), wmManipulator *mpr, const wmEvent *event) +static int gizmo_dial_invoke( + bContext *UNUSED(C), wmGizmo *mpr, const wmEvent *event) { DialInteraction *inter = MEM_callocN(sizeof(DialInteraction), __func__); inter->init_mval[0] = event->mval[0]; inter->init_mval[1] = event->mval[1]; - wmManipulatorProperty *mpr_prop = WM_manipulator_target_property_find(mpr, "offset"); - if (WM_manipulator_target_property_is_valid(mpr_prop)) { - inter->init_prop_angle = WM_manipulator_target_property_value_get(mpr, mpr_prop); + wmGizmoProperty *mpr_prop = WM_gizmo_target_property_find(mpr, "offset"); + if (WM_gizmo_target_property_is_valid(mpr_prop)) { + inter->init_prop_angle = WM_gizmo_target_property_value_get(mpr, mpr_prop); } mpr->interaction_data = inter; @@ -448,40 +448,40 @@ static int manipulator_dial_invoke( } /* -------------------------------------------------------------------- */ -/** \name Dial Manipulator API +/** \name Dial Gizmo API * * \{ */ -static void MANIPULATOR_WT_dial_3d(wmManipulatorType *wt) +static void GIZMO_WT_dial_3d(wmGizmoType *wt) { /* identifiers */ - wt->idname = "MANIPULATOR_WT_dial_3d"; + wt->idname = "GIZMO_WT_dial_3d"; /* api callbacks */ - wt->draw = manipulator_dial_draw; - wt->draw_select = manipulator_dial_draw_select; - wt->setup = manipulator_dial_setup; - wt->invoke = manipulator_dial_invoke; - wt->modal = manipulator_dial_modal; + wt->draw = gizmo_dial_draw; + wt->draw_select = gizmo_dial_draw_select; + wt->setup = gizmo_dial_setup; + wt->invoke = gizmo_dial_invoke; + wt->modal = gizmo_dial_modal; - wt->struct_size = sizeof(wmManipulator); + wt->struct_size = sizeof(wmGizmo); /* rna */ static EnumPropertyItem rna_enum_draw_options[] = { - {ED_MANIPULATOR_DIAL_DRAW_FLAG_CLIP, "CLIP", 0, "Clipped", ""}, - {ED_MANIPULATOR_DIAL_DRAW_FLAG_FILL, "FILL", 0, "Filled", ""}, - {ED_MANIPULATOR_DIAL_DRAW_FLAG_ANGLE_MIRROR, "ANGLE_MIRROR", 0, "Angle Mirror", ""}, - {ED_MANIPULATOR_DIAL_DRAW_FLAG_ANGLE_START_Y, "ANGLE_START_Y", 0, "Angle Start Y", ""}, + {ED_GIZMO_DIAL_DRAW_FLAG_CLIP, "CLIP", 0, "Clipped", ""}, + {ED_GIZMO_DIAL_DRAW_FLAG_FILL, "FILL", 0, "Filled", ""}, + {ED_GIZMO_DIAL_DRAW_FLAG_ANGLE_MIRROR, "ANGLE_MIRROR", 0, "Angle Mirror", ""}, + {ED_GIZMO_DIAL_DRAW_FLAG_ANGLE_START_Y, "ANGLE_START_Y", 0, "Angle Start Y", ""}, {0, NULL, 0, NULL, NULL} }; RNA_def_enum_flag(wt->srna, "draw_options", rna_enum_draw_options, 0, "Draw Options", ""); - WM_manipulatortype_target_property_def(wt, "offset", PROP_FLOAT, 1); + WM_gizmotype_target_property_def(wt, "offset", PROP_FLOAT, 1); } -void ED_manipulatortypes_dial_3d(void) +void ED_gizmotypes_dial_3d(void) { - WM_manipulatortype_append(MANIPULATOR_WT_dial_3d); + WM_gizmotype_append(GIZMO_WT_dial_3d); } /** \} */ diff --git a/source/blender/editors/gizmo_library/gizmo_types/grab3d_gizmo.c b/source/blender/editors/gizmo_library/gizmo_types/grab3d_gizmo.c index e55b57327b6..2a89c8cc4ab 100644 --- a/source/blender/editors/gizmo_library/gizmo_types/grab3d_gizmo.c +++ b/source/blender/editors/gizmo_library/gizmo_types/grab3d_gizmo.c @@ -21,15 +21,15 @@ /** \file grab3d_gizmo.c * \ingroup wm * - * \name Grab Manipulator + * \name Grab Gizmo * - * 3D Manipulator, also works in 2D views. + * 3D Gizmo, also works in 2D views. * - * \brief Simple manipulator to grab and translate. + * \brief Simple gizmo to grab and translate. * * - `matrix[0]` is derived from Y and Z. * - `matrix[1]` currently not used. - * - `matrix[2]` is the widget direction (for all manipulators). + * - `matrix[2]` is the widget direction (for all gizmos). * */ @@ -62,23 +62,23 @@ #include "../gizmo_geometry.h" #include "../gizmo_library_intern.h" -typedef struct GrabManipulator3D { - wmManipulator manipulator; +typedef struct GrabGizmo3D { + wmGizmo gizmo; /* Added to 'matrix_basis' when calculating the matrix. */ float prop_co[3]; -} GrabManipulator3D; +} GrabGizmo3D; -static void manipulator_grab_matrix_basis_get(const wmManipulator *mpr, float r_matrix[4][4]) +static void gizmo_grab_matrix_basis_get(const wmGizmo *mpr, float r_matrix[4][4]) { - GrabManipulator3D *grab = (GrabManipulator3D *)mpr; + GrabGizmo3D *grab = (GrabGizmo3D *)mpr; - copy_m4_m4(r_matrix, grab->manipulator.matrix_basis); + copy_m4_m4(r_matrix, grab->gizmo.matrix_basis); add_v3_v3(r_matrix[3], grab->prop_co); } -static int manipulator_grab_modal( - bContext *C, wmManipulator *mpr, const wmEvent *event, - eWM_ManipulatorTweak tweak_flag); +static int gizmo_grab_modal( + bContext *C, wmGizmo *mpr, const wmEvent *event, + eWM_GizmoFlagTweak tweak_flag); typedef struct GrabInteraction { float init_mval[2]; @@ -94,14 +94,14 @@ typedef struct GrabInteraction { /* -------------------------------------------------------------------- */ static void grab_geom_draw( - const wmManipulator *mpr, const float color[4], const bool select, const int draw_options) + const wmGizmo *mpr, const float color[4], const bool select, const int draw_options) { -#ifdef USE_MANIPULATOR_CUSTOM_DIAL +#ifdef USE_GIZMO_CUSTOM_DIAL UNUSED_VARS(grab3d, col, axis_modal_mat); - wm_manipulator_geometryinfo_draw(&wm_manipulator_geom_data_grab3d, select); + wm_gizmo_geometryinfo_draw(&wm_gizmo_geom_data_grab3d, select); #else const int draw_style = RNA_enum_get(mpr->ptr, "draw_style"); - const bool filled = (draw_options & ED_MANIPULATOR_GRAB_DRAW_FLAG_FILL) != 0; + const bool filled = (draw_options & ED_GIZMO_GRAB_DRAW_FLAG_FILL) != 0; GPU_line_width(mpr->line_width); @@ -112,7 +112,7 @@ static void grab_geom_draw( immUniformColor4fv(color); - if (draw_style == ED_MANIPULATOR_GRAB_STYLE_RING_2D) { + if (draw_style == ED_GIZMO_GRAB_STYLE_RING_2D) { if (filled) { imm_draw_circle_fill_2d(pos, 0, 0, 1.0f, DIAL_RESOLUTION); } @@ -120,7 +120,7 @@ static void grab_geom_draw( imm_draw_circle_wire_2d(pos, 0, 0, 1.0f, DIAL_RESOLUTION); } } - else if (draw_style == ED_MANIPULATOR_GRAB_STYLE_CROSS_2D) { + else if (draw_style == ED_GIZMO_GRAB_STYLE_CROSS_2D) { immBegin(GWN_PRIM_LINES, 4); immVertex2f(pos, 1.0f, 1.0f); immVertex2f(pos, -1.0f, -1.0f); @@ -140,7 +140,7 @@ static void grab_geom_draw( } static void grab3d_get_translate( - const wmManipulator *mpr, const wmEvent *event, const ARegion *ar, + const wmGizmo *mpr, const wmEvent *event, const ARegion *ar, float co_delta[3]) { GrabInteraction *inter = mpr->interaction_data; @@ -163,18 +163,18 @@ static void grab3d_get_translate( } static void grab3d_draw_intern( - const bContext *C, wmManipulator *mpr, + const bContext *C, wmGizmo *mpr, const bool select, const bool highlight) { GrabInteraction *inter = mpr->interaction_data; const int draw_options = RNA_enum_get(mpr->ptr, "draw_options"); - const bool align_view = (draw_options & ED_MANIPULATOR_GRAB_DRAW_FLAG_ALIGN_VIEW) != 0; + const bool align_view = (draw_options & ED_GIZMO_GRAB_DRAW_FLAG_ALIGN_VIEW) != 0; float color[4]; float matrix_final[4][4]; float matrix_align[4][4]; - manipulator_color_get(mpr, highlight, color); - WM_manipulator_calc_matrix_final(mpr, matrix_final); + gizmo_color_get(mpr, highlight, color); + WM_gizmo_calc_matrix_final(mpr, matrix_final); gpuPushMatrix(); gpuMultMatrix(matrix_final); @@ -209,16 +209,16 @@ static void grab3d_draw_intern( } } -static void manipulator_grab_draw_select(const bContext *C, wmManipulator *mpr, int select_id) +static void gizmo_grab_draw_select(const bContext *C, wmGizmo *mpr, int select_id) { GPU_select_load_id(select_id); grab3d_draw_intern(C, mpr, true, false); } -static void manipulator_grab_draw(const bContext *C, wmManipulator *mpr) +static void gizmo_grab_draw(const bContext *C, wmGizmo *mpr) { - const bool is_modal = mpr->state & WM_MANIPULATOR_STATE_MODAL; - const bool is_highlight = (mpr->state & WM_MANIPULATOR_STATE_HIGHLIGHT) != 0; + const bool is_modal = mpr->state & WM_GIZMO_STATE_MODAL; + const bool is_highlight = (mpr->state & WM_GIZMO_STATE_HIGHLIGHT) != 0; (void)is_modal; @@ -227,11 +227,11 @@ static void manipulator_grab_draw(const bContext *C, wmManipulator *mpr) GPU_blend(false); } -static int manipulator_grab_modal( - bContext *C, wmManipulator *mpr, const wmEvent *event, - eWM_ManipulatorTweak UNUSED(tweak_flag)) +static int gizmo_grab_modal( + bContext *C, wmGizmo *mpr, const wmEvent *event, + eWM_GizmoFlagTweak UNUSED(tweak_flag)) { - GrabManipulator3D *grab = (GrabManipulator3D *)mpr; + GrabGizmo3D *grab = (GrabGizmo3D *)mpr; GrabInteraction *inter = mpr->interaction_data; ARegion *ar = CTX_wm_region(C); @@ -241,9 +241,9 @@ static int manipulator_grab_modal( } else { float mval_proj_init[2], mval_proj_curr[2]; - if ((manipulator_window_project_2d( + if ((gizmo_window_project_2d( C, mpr, inter->init_mval, 2, false, mval_proj_init) == false) || - (manipulator_window_project_2d( + (gizmo_window_project_2d( C, mpr, (const float[2]){UNPACK2(event->mval)}, 2, false, mval_proj_curr) == false)) { return OPERATOR_RUNNING_MODAL; @@ -254,9 +254,9 @@ static int manipulator_grab_modal( add_v3_v3v3(grab->prop_co, inter->init_prop_co, prop_delta); /* set the property for the operator and call its modal function */ - wmManipulatorProperty *mpr_prop = WM_manipulator_target_property_find(mpr, "offset"); - if (WM_manipulator_target_property_is_valid(mpr_prop)) { - WM_manipulator_target_property_value_set_array(C, mpr, mpr_prop, grab->prop_co); + wmGizmoProperty *mpr_prop = WM_gizmo_target_property_find(mpr, "offset"); + if (WM_gizmo_target_property_is_valid(mpr_prop)) { + WM_gizmo_target_property_value_set_array(C, mpr, mpr_prop, grab->prop_co); } else { zero_v3(grab->prop_co); @@ -267,8 +267,8 @@ static int manipulator_grab_modal( return OPERATOR_RUNNING_MODAL; } -static int manipulator_grab_invoke( - bContext *UNUSED(C), wmManipulator *mpr, const wmEvent *event) +static int gizmo_grab_invoke( + bContext *UNUSED(C), wmGizmo *mpr, const wmEvent *event) { GrabInteraction *inter = MEM_callocN(sizeof(GrabInteraction), __func__); @@ -278,13 +278,13 @@ static int manipulator_grab_invoke( #if 0 copy_v3_v3(inter->init_prop_co, grab->prop_co); #else - wmManipulatorProperty *mpr_prop = WM_manipulator_target_property_find(mpr, "offset"); - if (WM_manipulator_target_property_is_valid(mpr_prop)) { - WM_manipulator_target_property_value_get_array(mpr, mpr_prop, inter->init_prop_co); + wmGizmoProperty *mpr_prop = WM_gizmo_target_property_find(mpr, "offset"); + if (WM_gizmo_target_property_is_valid(mpr_prop)) { + WM_gizmo_target_property_value_get_array(mpr, mpr_prop, inter->init_prop_co); } #endif - WM_manipulator_calc_matrix_final(mpr, inter->init_matrix_final); + WM_gizmo_calc_matrix_final(mpr, inter->init_matrix_final); mpr->interaction_data = inter; @@ -292,12 +292,12 @@ static int manipulator_grab_invoke( } -static int manipulator_grab_test_select( - bContext *C, wmManipulator *mpr, const wmEvent *event) +static int gizmo_grab_test_select( + bContext *C, wmGizmo *mpr, const wmEvent *event) { float point_local[2]; - if (manipulator_window_project_2d( + if (gizmo_window_project_2d( C, mpr, (const float[2]){UNPACK2(event->mval)}, 2, true, point_local) == false) { return -1; @@ -311,65 +311,65 @@ static int manipulator_grab_test_select( return -1; } -static void manipulator_grab_property_update(wmManipulator *mpr, wmManipulatorProperty *mpr_prop) +static void gizmo_grab_property_update(wmGizmo *mpr, wmGizmoProperty *mpr_prop) { - GrabManipulator3D *grab = (GrabManipulator3D *)mpr; - if (WM_manipulator_target_property_is_valid(mpr_prop)) { - WM_manipulator_target_property_value_get_array(mpr, mpr_prop, grab->prop_co); + GrabGizmo3D *grab = (GrabGizmo3D *)mpr; + if (WM_gizmo_target_property_is_valid(mpr_prop)) { + WM_gizmo_target_property_value_get_array(mpr, mpr_prop, grab->prop_co); } else { zero_v3(grab->prop_co); } } -static int manipulator_grab_cursor_get(wmManipulator *UNUSED(mpr)) +static int gizmo_grab_cursor_get(wmGizmo *UNUSED(mpr)) { return BC_NSEW_SCROLLCURSOR; } /* -------------------------------------------------------------------- */ -/** \name Grab Manipulator API +/** \name Grab Gizmo API * * \{ */ -static void MANIPULATOR_WT_grab_3d(wmManipulatorType *wt) +static void GIZMO_WT_grab_3d(wmGizmoType *wt) { /* identifiers */ - wt->idname = "MANIPULATOR_WT_grab_3d"; + wt->idname = "GIZMO_WT_grab_3d"; /* api callbacks */ - wt->draw = manipulator_grab_draw; - wt->draw_select = manipulator_grab_draw_select; - wt->test_select = manipulator_grab_test_select; - wt->matrix_basis_get = manipulator_grab_matrix_basis_get; - wt->invoke = manipulator_grab_invoke; - wt->property_update = manipulator_grab_property_update; - wt->modal = manipulator_grab_modal; - wt->cursor_get = manipulator_grab_cursor_get; + wt->draw = gizmo_grab_draw; + wt->draw_select = gizmo_grab_draw_select; + wt->test_select = gizmo_grab_test_select; + wt->matrix_basis_get = gizmo_grab_matrix_basis_get; + wt->invoke = gizmo_grab_invoke; + wt->property_update = gizmo_grab_property_update; + wt->modal = gizmo_grab_modal; + wt->cursor_get = gizmo_grab_cursor_get; - wt->struct_size = sizeof(GrabManipulator3D); + wt->struct_size = sizeof(GrabGizmo3D); /* rna */ static EnumPropertyItem rna_enum_draw_style[] = { - {ED_MANIPULATOR_GRAB_STYLE_RING_2D, "RING_2D", 0, "Ring", ""}, - {ED_MANIPULATOR_GRAB_STYLE_CROSS_2D, "CROSS_2D", 0, "Ring", ""}, + {ED_GIZMO_GRAB_STYLE_RING_2D, "RING_2D", 0, "Ring", ""}, + {ED_GIZMO_GRAB_STYLE_CROSS_2D, "CROSS_2D", 0, "Ring", ""}, {0, NULL, 0, NULL, NULL} }; static EnumPropertyItem rna_enum_draw_options[] = { - {ED_MANIPULATOR_GRAB_DRAW_FLAG_FILL, "FILL", 0, "Filled", ""}, - {ED_MANIPULATOR_GRAB_DRAW_FLAG_ALIGN_VIEW, "ALIGN_VIEW", 0, "Align View", ""}, + {ED_GIZMO_GRAB_DRAW_FLAG_FILL, "FILL", 0, "Filled", ""}, + {ED_GIZMO_GRAB_DRAW_FLAG_ALIGN_VIEW, "ALIGN_VIEW", 0, "Align View", ""}, {0, NULL, 0, NULL, NULL} }; - RNA_def_enum(wt->srna, "draw_style", rna_enum_draw_style, ED_MANIPULATOR_GRAB_STYLE_RING_2D, "Draw Style", ""); + RNA_def_enum(wt->srna, "draw_style", rna_enum_draw_style, ED_GIZMO_GRAB_STYLE_RING_2D, "Draw Style", ""); RNA_def_enum_flag(wt->srna, "draw_options", rna_enum_draw_options, 0, "Draw Options", ""); - WM_manipulatortype_target_property_def(wt, "offset", PROP_FLOAT, 3); + WM_gizmotype_target_property_def(wt, "offset", PROP_FLOAT, 3); } -void ED_manipulatortypes_grab_3d(void) +void ED_gizmotypes_grab_3d(void) { - WM_manipulatortype_append(MANIPULATOR_WT_grab_3d); + WM_gizmotype_append(GIZMO_WT_grab_3d); } -/** \} */ // Grab Manipulator API +/** \} */ // Grab Gizmo API diff --git a/source/blender/editors/gizmo_library/gizmo_types/primitive3d_gizmo.c b/source/blender/editors/gizmo_library/gizmo_types/primitive3d_gizmo.c index 1331a4e983f..ff02517dafa 100644 --- a/source/blender/editors/gizmo_library/gizmo_types/primitive3d_gizmo.c +++ b/source/blender/editors/gizmo_library/gizmo_types/primitive3d_gizmo.c @@ -21,11 +21,11 @@ /** \file primitive3d_gizmo.c * \ingroup wm * - * \name Primitive Manipulator + * \name Primitive Gizmo * - * 3D Manipulator + * 3D Gizmo * - * \brief Manipulator with primitive drawing type (plane, cube, etc.). + * \brief Gizmo with primitive drawing type (plane, cube, etc.). * Currently only plane primitive supported without own handling, use with operator only. */ @@ -65,13 +65,13 @@ static float verts_plane[4][3] = { /* -------------------------------------------------------------------- */ -static void manipulator_primitive_draw_geom( +static void gizmo_primitive_draw_geom( const float col_inner[4], const float col_outer[4], const int draw_style) { float (*verts)[3]; uint vert_count = 0; - if (draw_style == ED_MANIPULATOR_PRIMITIVE_STYLE_PLANE) { + if (draw_style == ED_GIZMO_PRIMITIVE_STYLE_PLANE) { verts = verts_plane; vert_count = ARRAY_SIZE(verts_plane); } @@ -79,37 +79,37 @@ static void manipulator_primitive_draw_geom( if (vert_count > 0) { uint pos = GWN_vertformat_attr_add(immVertexFormat(), "pos", GWN_COMP_F32, 3, GWN_FETCH_FLOAT); immBindBuiltinProgram(GPU_SHADER_3D_UNIFORM_COLOR); - wm_manipulator_vec_draw(col_inner, verts, vert_count, pos, GWN_PRIM_TRI_FAN); - wm_manipulator_vec_draw(col_outer, verts, vert_count, pos, GWN_PRIM_LINE_LOOP); + wm_gizmo_vec_draw(col_inner, verts, vert_count, pos, GWN_PRIM_TRI_FAN); + wm_gizmo_vec_draw(col_outer, verts, vert_count, pos, GWN_PRIM_LINE_LOOP); immUnbindProgram(); } } -static void manipulator_primitive_draw_intern( - wmManipulator *mpr, const bool UNUSED(select), +static void gizmo_primitive_draw_intern( + wmGizmo *mpr, const bool UNUSED(select), const bool highlight) { float color_inner[4], color_outer[4]; float matrix_final[4][4]; const int draw_style = RNA_enum_get(mpr->ptr, "draw_style"); - manipulator_color_get(mpr, highlight, color_outer); + gizmo_color_get(mpr, highlight, color_outer); copy_v4_v4(color_inner, color_outer); color_inner[3] *= 0.5f; - WM_manipulator_calc_matrix_final(mpr, matrix_final); + WM_gizmo_calc_matrix_final(mpr, matrix_final); gpuPushMatrix(); gpuMultMatrix(matrix_final); GPU_blend(true); - manipulator_primitive_draw_geom(color_inner, color_outer, draw_style); + gizmo_primitive_draw_geom(color_inner, color_outer, draw_style); GPU_blend(false); gpuPopMatrix(); if (mpr->interaction_data) { - ManipulatorInteraction *inter = mpr->interaction_data; + GizmoInteraction *inter = mpr->interaction_data; copy_v4_fl(color_inner, 0.5f); copy_v3_fl(color_outer, 0.5f); @@ -119,39 +119,39 @@ static void manipulator_primitive_draw_intern( gpuMultMatrix(inter->init_matrix_final); GPU_blend(true); - manipulator_primitive_draw_geom(color_inner, color_outer, draw_style); + gizmo_primitive_draw_geom(color_inner, color_outer, draw_style); GPU_blend(false); gpuPopMatrix(); } } -static void manipulator_primitive_draw_select( - const bContext *UNUSED(C), wmManipulator *mpr, +static void gizmo_primitive_draw_select( + const bContext *UNUSED(C), wmGizmo *mpr, int select_id) { GPU_select_load_id(select_id); - manipulator_primitive_draw_intern(mpr, true, false); + gizmo_primitive_draw_intern(mpr, true, false); } -static void manipulator_primitive_draw(const bContext *UNUSED(C), wmManipulator *mpr) +static void gizmo_primitive_draw(const bContext *UNUSED(C), wmGizmo *mpr) { - manipulator_primitive_draw_intern( + gizmo_primitive_draw_intern( mpr, false, - (mpr->state & WM_MANIPULATOR_STATE_HIGHLIGHT)); + (mpr->state & WM_GIZMO_STATE_HIGHLIGHT)); } -static void manipulator_primitive_setup(wmManipulator *mpr) +static void gizmo_primitive_setup(wmGizmo *mpr) { - mpr->flag |= WM_MANIPULATOR_DRAW_MODAL; + mpr->flag |= WM_GIZMO_DRAW_MODAL; } -static int manipulator_primitive_invoke( - bContext *UNUSED(C), wmManipulator *mpr, const wmEvent *UNUSED(event)) +static int gizmo_primitive_invoke( + bContext *UNUSED(C), wmGizmo *mpr, const wmEvent *UNUSED(event)) { - ManipulatorInteraction *inter = MEM_callocN(sizeof(ManipulatorInteraction), __func__); + GizmoInteraction *inter = MEM_callocN(sizeof(GizmoInteraction), __func__); - WM_manipulator_calc_matrix_final(mpr, inter->init_matrix_final); + WM_gizmo_calc_matrix_final(mpr, inter->init_matrix_final); mpr->interaction_data = inter; @@ -159,33 +159,33 @@ static int manipulator_primitive_invoke( } /* -------------------------------------------------------------------- */ -/** \name Primitive Manipulator API +/** \name Primitive Gizmo API * * \{ */ -static void MANIPULATOR_WT_primitive_3d(wmManipulatorType *wt) +static void GIZMO_WT_primitive_3d(wmGizmoType *wt) { /* identifiers */ - wt->idname = "MANIPULATOR_WT_primitive_3d"; + wt->idname = "GIZMO_WT_primitive_3d"; /* api callbacks */ - wt->draw = manipulator_primitive_draw; - wt->draw_select = manipulator_primitive_draw_select; - wt->setup = manipulator_primitive_setup; - wt->invoke = manipulator_primitive_invoke; + wt->draw = gizmo_primitive_draw; + wt->draw_select = gizmo_primitive_draw_select; + wt->setup = gizmo_primitive_setup; + wt->invoke = gizmo_primitive_invoke; - wt->struct_size = sizeof(wmManipulator); + wt->struct_size = sizeof(wmGizmo); static EnumPropertyItem rna_enum_draw_style[] = { - {ED_MANIPULATOR_PRIMITIVE_STYLE_PLANE, "PLANE", 0, "Plane", ""}, + {ED_GIZMO_PRIMITIVE_STYLE_PLANE, "PLANE", 0, "Plane", ""}, {0, NULL, 0, NULL, NULL} }; - RNA_def_enum(wt->srna, "draw_style", rna_enum_draw_style, ED_MANIPULATOR_PRIMITIVE_STYLE_PLANE, "Draw Style", ""); + RNA_def_enum(wt->srna, "draw_style", rna_enum_draw_style, ED_GIZMO_PRIMITIVE_STYLE_PLANE, "Draw Style", ""); } -void ED_manipulatortypes_primitive_3d(void) +void ED_gizmotypes_primitive_3d(void) { - WM_manipulatortype_append(MANIPULATOR_WT_primitive_3d); + WM_gizmotype_append(GIZMO_WT_primitive_3d); } /** \} */ diff --git a/source/blender/editors/include/ED_gizmo_library.h b/source/blender/editors/include/ED_gizmo_library.h index b33fbf47630..39a58929b7c 100644 --- a/source/blender/editors/include/ED_gizmo_library.h +++ b/source/blender/editors/include/ED_gizmo_library.h @@ -21,28 +21,28 @@ /** \file ED_gizmo_library.h * \ingroup wm * - * \name Generic Manipulators. + * \name Generic Gizmos. * - * This is exposes pre-defined manipulators for re-use. + * This is exposes pre-defined gizmos for re-use. */ #ifndef __ED_GIZMO_LIBRARY_H__ #define __ED_GIZMO_LIBRARY_H__ -/* initialize manipulators */ -void ED_manipulatortypes_arrow_2d(void); -void ED_manipulatortypes_arrow_3d(void); -void ED_manipulatortypes_button_2d(void); -void ED_manipulatortypes_cage_2d(void); -void ED_manipulatortypes_cage_3d(void); -void ED_manipulatortypes_dial_3d(void); -void ED_manipulatortypes_grab_3d(void); -void ED_manipulatortypes_facemap_3d(void); -void ED_manipulatortypes_primitive_3d(void); +/* initialize gizmos */ +void ED_gizmotypes_arrow_2d(void); +void ED_gizmotypes_arrow_3d(void); +void ED_gizmotypes_button_2d(void); +void ED_gizmotypes_cage_2d(void); +void ED_gizmotypes_cage_3d(void); +void ED_gizmotypes_dial_3d(void); +void ED_gizmotypes_grab_3d(void); +void ED_gizmotypes_facemap_3d(void); +void ED_gizmotypes_primitive_3d(void); -struct wmManipulator; -struct wmManipulatorGroup; +struct wmGizmo; +struct wmGizmoGroup; /* -------------------------------------------------------------------- */ @@ -51,172 +51,172 @@ struct wmManipulatorGroup; * Intended to be called by custom draw functions. */ -/* manipulator_library_presets.c */ -void ED_manipulator_draw_preset_box( - const struct wmManipulator *mpr, float mat[4][4], int select_id); -void ED_manipulator_draw_preset_arrow( - const struct wmManipulator *mpr, float mat[4][4], int axis, int select_id); -void ED_manipulator_draw_preset_circle( - const struct wmManipulator *mpr, float mat[4][4], int axis, int select_id); -void ED_manipulator_draw_preset_facemap( - const struct bContext *C, const struct wmManipulator *mpr, struct Scene *scene, +/* gizmo_library_presets.c */ +void ED_gizmo_draw_preset_box( + const struct wmGizmo *mpr, float mat[4][4], int select_id); +void ED_gizmo_draw_preset_arrow( + const struct wmGizmo *mpr, float mat[4][4], int axis, int select_id); +void ED_gizmo_draw_preset_circle( + const struct wmGizmo *mpr, float mat[4][4], int axis, int select_id); +void ED_gizmo_draw_preset_facemap( + const struct bContext *C, const struct wmGizmo *mpr, struct Scene *scene, struct Object *ob, const int facemap, int select_id); /* -------------------------------------------------------------------- */ -/* 3D Arrow Manipulator */ +/* 3D Arrow Gizmo */ enum { - ED_MANIPULATOR_ARROW_STYLE_NORMAL = 0, - ED_MANIPULATOR_ARROW_STYLE_CROSS = 1, - ED_MANIPULATOR_ARROW_STYLE_BOX = 2, - ED_MANIPULATOR_ARROW_STYLE_CONE = 3, + ED_GIZMO_ARROW_STYLE_NORMAL = 0, + ED_GIZMO_ARROW_STYLE_CROSS = 1, + ED_GIZMO_ARROW_STYLE_BOX = 2, + ED_GIZMO_ARROW_STYLE_CONE = 3, }; /* transform */ enum { /* inverted offset during interaction - if set it also sets constrained below */ - ED_MANIPULATOR_ARROW_XFORM_FLAG_INVERTED = (1 << 3), + ED_GIZMO_ARROW_XFORM_FLAG_INVERTED = (1 << 3), /* clamp arrow interaction to property width */ - ED_MANIPULATOR_ARROW_XFORM_FLAG_CONSTRAINED = (1 << 4), + ED_GIZMO_ARROW_XFORM_FLAG_CONSTRAINED = (1 << 4), }; /* draw_options */ enum { /* Show arrow stem. */ - ED_MANIPULATOR_ARROW_DRAW_FLAG_STEM = (1 << 0), + ED_GIZMO_ARROW_DRAW_FLAG_STEM = (1 << 0), }; -void ED_manipulator_arrow3d_set_ui_range(struct wmManipulator *mpr, const float min, const float max); -void ED_manipulator_arrow3d_set_range_fac(struct wmManipulator *mpr, const float range_fac); +void ED_gizmo_arrow3d_set_ui_range(struct wmGizmo *mpr, const float min, const float max); +void ED_gizmo_arrow3d_set_range_fac(struct wmGizmo *mpr, const float range_fac); /* -------------------------------------------------------------------- */ -/* 2D Arrow Manipulator */ +/* 2D Arrow Gizmo */ /* none */ /* -------------------------------------------------------------------- */ -/* Cage Manipulator */ +/* Cage Gizmo */ enum { - ED_MANIPULATOR_CAGE2D_XFORM_FLAG_TRANSLATE = (1 << 0), /* Translates */ - ED_MANIPULATOR_CAGE2D_XFORM_FLAG_ROTATE = (1 << 1), /* Rotates */ - ED_MANIPULATOR_CAGE2D_XFORM_FLAG_SCALE = (1 << 2), /* Scales */ - ED_MANIPULATOR_CAGE2D_XFORM_FLAG_SCALE_UNIFORM = (1 << 3), /* Scales uniformly */ - ED_MANIPULATOR_CAGE2D_XFORM_FLAG_SCALE_SIGNED = (1 << 4), /* Negative scale allowed */ + ED_GIZMO_CAGE2D_XFORM_FLAG_TRANSLATE = (1 << 0), /* Translates */ + ED_GIZMO_CAGE2D_XFORM_FLAG_ROTATE = (1 << 1), /* Rotates */ + ED_GIZMO_CAGE2D_XFORM_FLAG_SCALE = (1 << 2), /* Scales */ + ED_GIZMO_CAGE2D_XFORM_FLAG_SCALE_UNIFORM = (1 << 3), /* Scales uniformly */ + ED_GIZMO_CAGE2D_XFORM_FLAG_SCALE_SIGNED = (1 << 4), /* Negative scale allowed */ }; /* draw_style */ enum { - ED_MANIPULATOR_CAGE2D_STYLE_BOX = 0, - ED_MANIPULATOR_CAGE2D_STYLE_CIRCLE = 1, + ED_GIZMO_CAGE2D_STYLE_BOX = 0, + ED_GIZMO_CAGE2D_STYLE_CIRCLE = 1, }; /* draw_options */ enum { /** Draw a central handle (instead of having the entire area selectable) * Needed for large rectangles that we don't want to swallow all events. */ - ED_MANIPULATOR_CAGE2D_DRAW_FLAG_XFORM_CENTER_HANDLE = (1 << 0), + ED_GIZMO_CAGE2D_DRAW_FLAG_XFORM_CENTER_HANDLE = (1 << 0), }; -/** #wmManipulator.highlight_part */ +/** #wmGizmo.highlight_part */ enum { - ED_MANIPULATOR_CAGE2D_PART_TRANSLATE = 0, - ED_MANIPULATOR_CAGE2D_PART_SCALE_MIN_X = 1, - ED_MANIPULATOR_CAGE2D_PART_SCALE_MAX_X = 2, - ED_MANIPULATOR_CAGE2D_PART_SCALE_MIN_Y = 3, - ED_MANIPULATOR_CAGE2D_PART_SCALE_MAX_Y = 4, + ED_GIZMO_CAGE2D_PART_TRANSLATE = 0, + ED_GIZMO_CAGE2D_PART_SCALE_MIN_X = 1, + ED_GIZMO_CAGE2D_PART_SCALE_MAX_X = 2, + ED_GIZMO_CAGE2D_PART_SCALE_MIN_Y = 3, + ED_GIZMO_CAGE2D_PART_SCALE_MAX_Y = 4, /* Corners */ - ED_MANIPULATOR_CAGE2D_PART_SCALE_MIN_X_MIN_Y = 5, - ED_MANIPULATOR_CAGE2D_PART_SCALE_MIN_X_MAX_Y = 6, - ED_MANIPULATOR_CAGE2D_PART_SCALE_MAX_X_MIN_Y = 7, - ED_MANIPULATOR_CAGE2D_PART_SCALE_MAX_X_MAX_Y = 8, + ED_GIZMO_CAGE2D_PART_SCALE_MIN_X_MIN_Y = 5, + ED_GIZMO_CAGE2D_PART_SCALE_MIN_X_MAX_Y = 6, + ED_GIZMO_CAGE2D_PART_SCALE_MAX_X_MIN_Y = 7, + ED_GIZMO_CAGE2D_PART_SCALE_MAX_X_MAX_Y = 8, - ED_MANIPULATOR_CAGE2D_PART_ROTATE = 9, + ED_GIZMO_CAGE2D_PART_ROTATE = 9, }; -/** #wmManipulator.highlight_part */ +/** #wmGizmo.highlight_part */ enum { /* ordered min/mid/max so we can loop over values (MIN/MID/MAX) on each axis. */ - ED_MANIPULATOR_CAGE3D_PART_SCALE_MIN_X_MIN_Y_MIN_Z = 0, - ED_MANIPULATOR_CAGE3D_PART_SCALE_MIN_X_MIN_Y_MID_Z, - ED_MANIPULATOR_CAGE3D_PART_SCALE_MIN_X_MIN_Y_MAX_Z, - ED_MANIPULATOR_CAGE3D_PART_SCALE_MIN_X_MID_Y_MIN_Z, - ED_MANIPULATOR_CAGE3D_PART_SCALE_MIN_X_MID_Y_MID_Z, - ED_MANIPULATOR_CAGE3D_PART_SCALE_MIN_X_MID_Y_MAX_Z, - ED_MANIPULATOR_CAGE3D_PART_SCALE_MIN_X_MAX_Y_MIN_Z, - ED_MANIPULATOR_CAGE3D_PART_SCALE_MIN_X_MAX_Y_MID_Z, - ED_MANIPULATOR_CAGE3D_PART_SCALE_MIN_X_MAX_Y_MAX_Z, - ED_MANIPULATOR_CAGE3D_PART_SCALE_MID_X_MIN_Y_MIN_Z, - ED_MANIPULATOR_CAGE3D_PART_SCALE_MID_X_MIN_Y_MID_Z, - ED_MANIPULATOR_CAGE3D_PART_SCALE_MID_X_MIN_Y_MAX_Z, - ED_MANIPULATOR_CAGE3D_PART_SCALE_MID_X_MID_Y_MIN_Z, - ED_MANIPULATOR_CAGE3D_PART_SCALE_MID_X_MID_Y_MID_Z, - ED_MANIPULATOR_CAGE3D_PART_SCALE_MID_X_MID_Y_MAX_Z, - ED_MANIPULATOR_CAGE3D_PART_SCALE_MID_X_MAX_Y_MIN_Z, - ED_MANIPULATOR_CAGE3D_PART_SCALE_MID_X_MAX_Y_MID_Z, - ED_MANIPULATOR_CAGE3D_PART_SCALE_MID_X_MAX_Y_MAX_Z, - ED_MANIPULATOR_CAGE3D_PART_SCALE_MAX_X_MIN_Y_MIN_Z, - ED_MANIPULATOR_CAGE3D_PART_SCALE_MAX_X_MIN_Y_MID_Z, - ED_MANIPULATOR_CAGE3D_PART_SCALE_MAX_X_MIN_Y_MAX_Z, - ED_MANIPULATOR_CAGE3D_PART_SCALE_MAX_X_MID_Y_MIN_Z, - ED_MANIPULATOR_CAGE3D_PART_SCALE_MAX_X_MID_Y_MID_Z, - ED_MANIPULATOR_CAGE3D_PART_SCALE_MAX_X_MID_Y_MAX_Z, - ED_MANIPULATOR_CAGE3D_PART_SCALE_MAX_X_MAX_Y_MIN_Z, - ED_MANIPULATOR_CAGE3D_PART_SCALE_MAX_X_MAX_Y_MID_Z, - ED_MANIPULATOR_CAGE3D_PART_SCALE_MAX_X_MAX_Y_MAX_Z, - - ED_MANIPULATOR_CAGE3D_PART_TRANSLATE, - - ED_MANIPULATOR_CAGE3D_PART_ROTATE, + ED_GIZMO_CAGE3D_PART_SCALE_MIN_X_MIN_Y_MIN_Z = 0, + ED_GIZMO_CAGE3D_PART_SCALE_MIN_X_MIN_Y_MID_Z, + ED_GIZMO_CAGE3D_PART_SCALE_MIN_X_MIN_Y_MAX_Z, + ED_GIZMO_CAGE3D_PART_SCALE_MIN_X_MID_Y_MIN_Z, + ED_GIZMO_CAGE3D_PART_SCALE_MIN_X_MID_Y_MID_Z, + ED_GIZMO_CAGE3D_PART_SCALE_MIN_X_MID_Y_MAX_Z, + ED_GIZMO_CAGE3D_PART_SCALE_MIN_X_MAX_Y_MIN_Z, + ED_GIZMO_CAGE3D_PART_SCALE_MIN_X_MAX_Y_MID_Z, + ED_GIZMO_CAGE3D_PART_SCALE_MIN_X_MAX_Y_MAX_Z, + ED_GIZMO_CAGE3D_PART_SCALE_MID_X_MIN_Y_MIN_Z, + ED_GIZMO_CAGE3D_PART_SCALE_MID_X_MIN_Y_MID_Z, + ED_GIZMO_CAGE3D_PART_SCALE_MID_X_MIN_Y_MAX_Z, + ED_GIZMO_CAGE3D_PART_SCALE_MID_X_MID_Y_MIN_Z, + ED_GIZMO_CAGE3D_PART_SCALE_MID_X_MID_Y_MID_Z, + ED_GIZMO_CAGE3D_PART_SCALE_MID_X_MID_Y_MAX_Z, + ED_GIZMO_CAGE3D_PART_SCALE_MID_X_MAX_Y_MIN_Z, + ED_GIZMO_CAGE3D_PART_SCALE_MID_X_MAX_Y_MID_Z, + ED_GIZMO_CAGE3D_PART_SCALE_MID_X_MAX_Y_MAX_Z, + ED_GIZMO_CAGE3D_PART_SCALE_MAX_X_MIN_Y_MIN_Z, + ED_GIZMO_CAGE3D_PART_SCALE_MAX_X_MIN_Y_MID_Z, + ED_GIZMO_CAGE3D_PART_SCALE_MAX_X_MIN_Y_MAX_Z, + ED_GIZMO_CAGE3D_PART_SCALE_MAX_X_MID_Y_MIN_Z, + ED_GIZMO_CAGE3D_PART_SCALE_MAX_X_MID_Y_MID_Z, + ED_GIZMO_CAGE3D_PART_SCALE_MAX_X_MID_Y_MAX_Z, + ED_GIZMO_CAGE3D_PART_SCALE_MAX_X_MAX_Y_MIN_Z, + ED_GIZMO_CAGE3D_PART_SCALE_MAX_X_MAX_Y_MID_Z, + ED_GIZMO_CAGE3D_PART_SCALE_MAX_X_MAX_Y_MAX_Z, + + ED_GIZMO_CAGE3D_PART_TRANSLATE, + + ED_GIZMO_CAGE3D_PART_ROTATE, }; /* -------------------------------------------------------------------- */ -/* Dial Manipulator */ +/* Dial Gizmo */ /* draw_options */ enum { - ED_MANIPULATOR_DIAL_DRAW_FLAG_NOP = 0, - ED_MANIPULATOR_DIAL_DRAW_FLAG_CLIP = (1 << 0), - ED_MANIPULATOR_DIAL_DRAW_FLAG_FILL = (1 << 1), - ED_MANIPULATOR_DIAL_DRAW_FLAG_ANGLE_MIRROR = (1 << 2), - ED_MANIPULATOR_DIAL_DRAW_FLAG_ANGLE_START_Y = (1 << 3), + ED_GIZMO_DIAL_DRAW_FLAG_NOP = 0, + ED_GIZMO_DIAL_DRAW_FLAG_CLIP = (1 << 0), + ED_GIZMO_DIAL_DRAW_FLAG_FILL = (1 << 1), + ED_GIZMO_DIAL_DRAW_FLAG_ANGLE_MIRROR = (1 << 2), + ED_GIZMO_DIAL_DRAW_FLAG_ANGLE_START_Y = (1 << 3), }; /* -------------------------------------------------------------------- */ -/* Grab Manipulator */ +/* Grab Gizmo */ /* draw_options */ enum { - ED_MANIPULATOR_GRAB_DRAW_FLAG_NOP = 0, + ED_GIZMO_GRAB_DRAW_FLAG_NOP = 0, /* only for solid shapes */ - ED_MANIPULATOR_GRAB_DRAW_FLAG_FILL = (1 << 0), - ED_MANIPULATOR_GRAB_DRAW_FLAG_ALIGN_VIEW = (1 << 1), + ED_GIZMO_GRAB_DRAW_FLAG_FILL = (1 << 0), + ED_GIZMO_GRAB_DRAW_FLAG_ALIGN_VIEW = (1 << 1), }; enum { - ED_MANIPULATOR_GRAB_STYLE_RING_2D = 0, - ED_MANIPULATOR_GRAB_STYLE_CROSS_2D = 1, + ED_GIZMO_GRAB_STYLE_RING_2D = 0, + ED_GIZMO_GRAB_STYLE_CROSS_2D = 1, }; /* -------------------------------------------------------------------- */ -/* Button Manipulator */ +/* Button Gizmo */ enum { - ED_MANIPULATOR_BUTTON_SHOW_OUTLINE = (1 << 0), + ED_GIZMO_BUTTON_SHOW_OUTLINE = (1 << 0), /** * Draw a line from the origin to the offset (similar to an arrow) * sometimes needed to show what the button edits. */ - ED_MANIPULATOR_BUTTON_SHOW_HELPLINE = (1 << 1), + ED_GIZMO_BUTTON_SHOW_HELPLINE = (1 << 1), }; /* -------------------------------------------------------------------- */ -/* Primitive Manipulator */ +/* Primitive Gizmo */ enum { - ED_MANIPULATOR_PRIMITIVE_STYLE_PLANE = 0, + ED_GIZMO_PRIMITIVE_STYLE_PLANE = 0, }; #endif /* __ED_GIZMO_LIBRARY_H__ */ diff --git a/source/blender/editors/include/ED_transform.h b/source/blender/editors/include/ED_transform.h index 1e3c8995314..80dea103f8c 100644 --- a/source/blender/editors/include/ED_transform.h +++ b/source/blender/editors/include/ED_transform.h @@ -113,8 +113,8 @@ bool calculateTransformCenter(struct bContext *C, int centerMode, float cent3d[3 struct TransInfo; struct Scene; struct Object; -struct wmManipulatorGroup; -struct wmManipulatorGroupType; +struct wmGizmoGroup; +struct wmGizmoGroupType; struct wmOperator; /* UNUSED */ @@ -157,15 +157,15 @@ int BIF_countTransformOrientation(const struct bContext *C); void Transform_Properties(struct wmOperatorType *ot, int flags); -/* transform manipulators */ +/* transform gizmos */ -void TRANSFORM_WGT_manipulator(struct wmManipulatorGroupType *wgt); -void VIEW3D_WGT_xform_cage(struct wmManipulatorGroupType *wgt); +void TRANSFORM_WGT_gizmo(struct wmGizmoGroupType *wgt); +void VIEW3D_WGT_xform_cage(struct wmGizmoGroupType *wgt); -bool ED_widgetgroup_manipulator2d_poll(const struct bContext *C, struct wmManipulatorGroupType *wgt); -void ED_widgetgroup_manipulator2d_setup(const struct bContext *C, struct wmManipulatorGroup *mgroup); -void ED_widgetgroup_manipulator2d_refresh(const struct bContext *C, struct wmManipulatorGroup *mgroup); -void ED_widgetgroup_manipulator2d_draw_prepare(const struct bContext *C, struct wmManipulatorGroup *mgroup); +bool ED_widgetgroup_gizmo2d_poll(const struct bContext *C, struct wmGizmoGroupType *wgt); +void ED_widgetgroup_gizmo2d_setup(const struct bContext *C, struct wmGizmoGroup *mgroup); +void ED_widgetgroup_gizmo2d_refresh(const struct bContext *C, struct wmGizmoGroup *mgroup); +void ED_widgetgroup_gizmo2d_draw_prepare(const struct bContext *C, struct wmGizmoGroup *mgroup); /* Snapping */ @@ -211,7 +211,7 @@ struct TransformCalcParams { /* Use 'Scene.orientation_type' when zero, otherwise subtract one and use. */ ushort orientation_type; }; -int ED_transform_calc_manipulator_stats( +int ED_transform_calc_gizmo_stats( const struct bContext *C, const struct TransformCalcParams *params, struct TransformBounds *tbounds); diff --git a/source/blender/editors/include/UI_interface.h b/source/blender/editors/include/UI_interface.h index 251f2b92acd..723dde640e4 100644 --- a/source/blender/editors/include/UI_interface.h +++ b/source/blender/editors/include/UI_interface.h @@ -73,7 +73,7 @@ struct bNodeSocket; struct wmDropBox; struct wmDrag; struct wmEvent; -struct wmManipulator; +struct wmGizmo; struct wmMsgBus; struct wmKeyMap; struct wmKeyMapItem; @@ -1265,7 +1265,7 @@ void UI_butstore_unregister(uiButStore *bs_handle, uiBut **but_p); /* ui_interface_region_tooltip.c */ struct ARegion *UI_tooltip_create_from_button(struct bContext *C, struct ARegion *butregion, uiBut *but); -struct ARegion *UI_tooltip_create_from_manipulator(struct bContext *C, struct wmManipulator *mpr); +struct ARegion *UI_tooltip_create_from_gizmo(struct bContext *C, struct wmGizmo *mpr); void UI_tooltip_free(struct bContext *C, struct bScreen *sc, struct ARegion *ar); /* How long before a tool-tip shows. */ diff --git a/source/blender/editors/include/UI_resources.h b/source/blender/editors/include/UI_resources.h index 5e6c346d9cf..d2fbb881a0a 100644 --- a/source/blender/editors/include/UI_resources.h +++ b/source/blender/editors/include/UI_resources.h @@ -280,11 +280,11 @@ typedef enum ThemeColorID { TH_AXIS_Y, TH_AXIS_Z, - TH_MANIPULATOR_HI, - TH_MANIPULATOR_PRIMARY, - TH_MANIPULATOR_SECONDARY, - TH_MANIPULATOR_A, - TH_MANIPULATOR_B, + TH_GIZMO_HI, + TH_GIZMO_PRIMARY, + TH_GIZMO_SECONDARY, + TH_GIZMO_A, + TH_GIZMO_B, TH_LOW_GRAD, TH_HIGH_GRAD, diff --git a/source/blender/editors/interface/interface_region_tooltip.c b/source/blender/editors/interface/interface_region_tooltip.c index ed83a715c7e..fae547d460c 100644 --- a/source/blender/editors/interface/interface_region_tooltip.c +++ b/source/blender/editors/interface/interface_region_tooltip.c @@ -615,11 +615,11 @@ static uiTooltipData *ui_tooltip_data_from_button(bContext *C, uiBut *but) } } -static uiTooltipData *ui_tooltip_data_from_manipulator(bContext *C, wmManipulator *mpr) +static uiTooltipData *ui_tooltip_data_from_gizmo(bContext *C, wmGizmo *mpr) { uiTooltipData *data = MEM_callocN(sizeof(uiTooltipData), "uiTooltipData"); - /* TODO(campbell): a way for manipulators to have their own descriptions (low priority). */ + /* TODO(campbell): a way for gizmos to have their own descriptions (low priority). */ /* Operator Actions */ { @@ -639,7 +639,7 @@ static uiTooltipData *ui_tooltip_data_from_manipulator(bContext *C, wmManipulato }; for (int i = 0; i < ARRAY_SIZE(mpop_actions); i++) { - wmManipulatorOpElem *mpop = (mpop_actions[i].part != -1) ? WM_manipulator_operator_get(mpr, mpop_actions[i].part) : NULL; + wmGizmoOpElem *mpop = (mpop_actions[i].part != -1) ? WM_gizmo_operator_get(mpr, mpop_actions[i].part) : NULL; if (mpop != NULL) { /* Description */ const char *info = RNA_struct_ui_description(mpop->type->srna); @@ -692,10 +692,10 @@ static uiTooltipData *ui_tooltip_data_from_manipulator(bContext *C, wmManipulato /* Property Actions */ if (mpr->type->target_property_defs_len) { - wmManipulatorProperty *mpr_prop_array = WM_manipulator_target_property_array(mpr); + wmGizmoProperty *mpr_prop_array = WM_gizmo_target_property_array(mpr); for (int i = 0; i < mpr->type->target_property_defs_len; i++) { /* TODO(campbell): function callback descriptions. */ - wmManipulatorProperty *mpr_prop = &mpr_prop_array[i]; + wmGizmoProperty *mpr_prop = &mpr_prop_array[i]; if (mpr_prop->prop != NULL) { const char *info = RNA_property_ui_description(mpr_prop->prop); if (info && info[0]) { @@ -934,13 +934,13 @@ ARegion *UI_tooltip_create_from_button(bContext *C, ARegion *butregion, uiBut *b return ui_tooltip_create_with_data(C, data, init_position, aspect); } -ARegion *UI_tooltip_create_from_manipulator(bContext *C, wmManipulator *mpr) +ARegion *UI_tooltip_create_from_gizmo(bContext *C, wmGizmo *mpr) { wmWindow *win = CTX_wm_window(C); const float aspect = 1.0f; float init_position[2]; - uiTooltipData *data = ui_tooltip_data_from_manipulator(C, mpr); + uiTooltipData *data = ui_tooltip_data_from_gizmo(C, mpr); if (data == NULL) { return NULL; } diff --git a/source/blender/editors/interface/resources.c b/source/blender/editors/interface/resources.c index a2b1aa1f251..47d664eaeb2 100644 --- a/source/blender/editors/interface/resources.c +++ b/source/blender/editors/interface/resources.c @@ -679,16 +679,16 @@ const unsigned char *UI_ThemeGetColorPtr(bTheme *btheme, int spacetype, int colo case TH_AXIS_Z: cp = btheme->tui.zaxis; break; - case TH_MANIPULATOR_HI: - cp = btheme->tui.manipulator_hi; break; - case TH_MANIPULATOR_PRIMARY: - cp = btheme->tui.manipulator_primary; break; - case TH_MANIPULATOR_SECONDARY: - cp = btheme->tui.manipulator_secondary; break; - case TH_MANIPULATOR_A: - cp = btheme->tui.manipulator_a; break; - case TH_MANIPULATOR_B: - cp = btheme->tui.manipulator_b; break; + case TH_GIZMO_HI: + cp = btheme->tui.gizmo_hi; break; + case TH_GIZMO_PRIMARY: + cp = btheme->tui.gizmo_primary; break; + case TH_GIZMO_SECONDARY: + cp = btheme->tui.gizmo_secondary; break; + case TH_GIZMO_A: + cp = btheme->tui.gizmo_a; break; + case TH_GIZMO_B: + cp = btheme->tui.gizmo_b; break; case TH_INFO_SELECTED: cp = ts->info_selected; @@ -1338,9 +1338,9 @@ void init_userdef_do_versions(Main *bmain) U.savetime = 1; // XXX error(STRINGIFY(BLENDER_STARTUP_FILE)" is buggy, please consider removing it.\n"); } - if (U.manipulator_size == 0) { - U.manipulator_size = 75; - U.manipulator_flag |= USER_MANIPULATOR_DRAW; + if (U.gizmo_size == 0) { + U.gizmo_size = 75; + U.gizmo_flag |= USER_GIZMO_DRAW; } if (U.pad_rot_angle == 0.0f) U.pad_rot_angle = 15.0f; @@ -1383,7 +1383,7 @@ void init_userdef_do_versions(Main *bmain) if (U.rvisize == 0) { U.rvisize = 15; U.rvibright = 8; - U.uiflag |= USER_SHOW_MANIPULATOR_AXIS; + U.uiflag |= USER_SHOW_GIZMO_AXIS; } } diff --git a/source/blender/editors/mesh/editmesh_add_gizmo.c b/source/blender/editors/mesh/editmesh_add_gizmo.c index 3918d8847a6..be5c01e08df 100644 --- a/source/blender/editors/mesh/editmesh_add_gizmo.c +++ b/source/blender/editors/mesh/editmesh_add_gizmo.c @@ -21,7 +21,7 @@ /** \file blender/editors/mesh/editmesh_add_gizmo.c * \ingroup edmesh * - * Creation manipulators. + * Creation gizmos. */ #include "MEM_guardedalloc.h" @@ -123,24 +123,24 @@ static void calc_initial_placement_point_from_view( /** \} */ /* -------------------------------------------------------------------- */ -/** \name Placement Manipulator +/** \name Placement Gizmo * \{ */ -typedef struct ManipulatorPlacementGroup { - struct wmManipulator *cage; +typedef struct GizmoPlacementGroup { + struct wmGizmo *cage; struct { bContext *context; wmOperator *op; PropertyRNA *prop_matrix; } data; -} ManipulatorPlacementGroup; +} GizmoPlacementGroup; /** * \warning Calling redo from property updates is not great. * This is needed because changing the RNA doesn't cause a redo * and we're not using operator UI which does just this. */ -static void manipulator_placement_exec(ManipulatorPlacementGroup *man) +static void gizmo_placement_exec(GizmoPlacementGroup *man) { wmOperator *op = man->data.op; if (op == WM_operator_last_redo((bContext *)man->data.context)) { @@ -148,7 +148,7 @@ static void manipulator_placement_exec(ManipulatorPlacementGroup *man) } } -static void manipulator_mesh_placement_update_from_op(ManipulatorPlacementGroup *man) +static void gizmo_mesh_placement_update_from_op(GizmoPlacementGroup *man) { wmOperator *op = man->data.op; UNUSED_VARS(op); @@ -159,11 +159,11 @@ static void manipulator_mesh_placement_update_from_op(ManipulatorPlacementGroup } /* translate callbacks */ -static void manipulator_placement_prop_matrix_get( - const wmManipulator *mpr, wmManipulatorProperty *mpr_prop, +static void gizmo_placement_prop_matrix_get( + const wmGizmo *mpr, wmGizmoProperty *mpr_prop, void *value_p) { - ManipulatorPlacementGroup *man = mpr->parent_mgroup->customdata; + GizmoPlacementGroup *man = mpr->parent_mgroup->customdata; wmOperator *op = man->data.op; float *value = value_p; BLI_assert(mpr_prop->type->array_length == 16); @@ -175,11 +175,11 @@ static void manipulator_placement_prop_matrix_get( } } -static void manipulator_placement_prop_matrix_set( - const wmManipulator *mpr, wmManipulatorProperty *mpr_prop, +static void gizmo_placement_prop_matrix_set( + const wmGizmo *mpr, wmGizmoProperty *mpr_prop, const void *value) { - ManipulatorPlacementGroup *man = mpr->parent_mgroup->customdata; + GizmoPlacementGroup *man = mpr->parent_mgroup->customdata; wmOperator *op = man->data.op; BLI_assert(mpr_prop->type->array_length == 16); @@ -194,30 +194,30 @@ static void manipulator_placement_prop_matrix_set( RNA_property_float_set_array(op->ptr, man->data.prop_matrix, &mat[0][0]); - manipulator_placement_exec(man); + gizmo_placement_exec(man); } -static bool manipulator_mesh_placement_poll(const bContext *C, wmManipulatorGroupType *wgt) +static bool gizmo_mesh_placement_poll(const bContext *C, wmGizmoGroupType *wgt) { wmOperator *op = WM_operator_last_redo(C); - if (op == NULL || !STREQ(op->type->idname, "MESH_OT_primitive_cube_add_manipulator")) { - WM_manipulator_group_type_unlink_delayed_ptr(wgt); + if (op == NULL || !STREQ(op->type->idname, "MESH_OT_primitive_cube_add_gizmo")) { + WM_gizmo_group_type_unlink_delayed_ptr(wgt); return false; } return true; } -static void manipulator_mesh_placement_modal_from_setup( - const bContext *C, wmManipulatorGroup *mgroup) +static void gizmo_mesh_placement_modal_from_setup( + const bContext *C, wmGizmoGroup *mgroup) { - ManipulatorPlacementGroup *man = mgroup->customdata; + GizmoPlacementGroup *man = mgroup->customdata; /* Initial size. */ { - wmManipulator *mpr = man->cage; + wmGizmo *mpr = man->cage; zero_m4(mpr->matrix_offset); - /* TODO: support zero scaled matrix in 'MANIPULATOR_WT_cage_3d'. */ + /* TODO: support zero scaled matrix in 'GIZMO_WT_cage_3d'. */ mpr->matrix_offset[0][0] = 0.01; mpr->matrix_offset[1][1] = 0.01; mpr->matrix_offset[2][2] = 0.01; @@ -228,7 +228,7 @@ static void manipulator_mesh_placement_modal_from_setup( { wmWindow *win = CTX_wm_window(C); ARegion *ar = CTX_wm_region(C); - wmManipulator *mpr = man->cage; + wmGizmo *mpr = man->cage; { float mat3[3][3]; @@ -244,87 +244,87 @@ static void manipulator_mesh_placement_modal_from_setup( } if (1) { - wmManipulatorMap *mmap = mgroup->parent_mmap; - WM_manipulator_modal_set_from_setup( - mmap, (bContext *)C, man->cage, ED_MANIPULATOR_CAGE3D_PART_SCALE_MAX_X_MAX_Y_MAX_Z, win->eventstate); + wmGizmoMap *mmap = mgroup->parent_mmap; + WM_gizmo_modal_set_from_setup( + mmap, (bContext *)C, man->cage, ED_GIZMO_CAGE3D_PART_SCALE_MAX_X_MAX_Y_MAX_Z, win->eventstate); } } } -static void manipulator_mesh_placement_setup(const bContext *C, wmManipulatorGroup *mgroup) +static void gizmo_mesh_placement_setup(const bContext *C, wmGizmoGroup *mgroup) { wmOperator *op = WM_operator_last_redo(C); - if (op == NULL || !STREQ(op->type->idname, "MESH_OT_primitive_cube_add_manipulator")) { + if (op == NULL || !STREQ(op->type->idname, "MESH_OT_primitive_cube_add_gizmo")) { return; } - struct ManipulatorPlacementGroup *man = MEM_callocN(sizeof(ManipulatorPlacementGroup), __func__); + struct GizmoPlacementGroup *man = MEM_callocN(sizeof(GizmoPlacementGroup), __func__); mgroup->customdata = man; - const wmManipulatorType *wt_cage = WM_manipulatortype_find("MANIPULATOR_WT_cage_3d", true); + const wmGizmoType *wt_cage = WM_gizmotype_find("GIZMO_WT_cage_3d", true); - man->cage = WM_manipulator_new_ptr(wt_cage, mgroup, NULL); + man->cage = WM_gizmo_new_ptr(wt_cage, mgroup, NULL); - UI_GetThemeColor3fv(TH_MANIPULATOR_PRIMARY, man->cage->color); + UI_GetThemeColor3fv(TH_GIZMO_PRIMARY, man->cage->color); RNA_enum_set(man->cage->ptr, "transform", - ED_MANIPULATOR_CAGE2D_XFORM_FLAG_SCALE | - ED_MANIPULATOR_CAGE2D_XFORM_FLAG_TRANSLATE | - ED_MANIPULATOR_CAGE2D_XFORM_FLAG_SCALE_SIGNED); + ED_GIZMO_CAGE2D_XFORM_FLAG_SCALE | + ED_GIZMO_CAGE2D_XFORM_FLAG_TRANSLATE | + ED_GIZMO_CAGE2D_XFORM_FLAG_SCALE_SIGNED); - WM_manipulator_set_flag(man->cage, WM_MANIPULATOR_DRAW_VALUE, true); + WM_gizmo_set_flag(man->cage, WM_GIZMO_DRAW_VALUE, true); man->data.context = (bContext *)C; man->data.op = op; man->data.prop_matrix = RNA_struct_find_property(op->ptr, "matrix"); - manipulator_mesh_placement_update_from_op(man); + gizmo_mesh_placement_update_from_op(man); /* Setup property callbacks */ { - WM_manipulator_target_property_def_func( + WM_gizmo_target_property_def_func( man->cage, "matrix", - &(const struct wmManipulatorPropertyFnParams) { - .value_get_fn = manipulator_placement_prop_matrix_get, - .value_set_fn = manipulator_placement_prop_matrix_set, + &(const struct wmGizmoPropertyFnParams) { + .value_get_fn = gizmo_placement_prop_matrix_get, + .value_set_fn = gizmo_placement_prop_matrix_set, .range_get_fn = NULL, .user_data = NULL, }); } - manipulator_mesh_placement_modal_from_setup(C, mgroup); + gizmo_mesh_placement_modal_from_setup(C, mgroup); } -static void manipulator_mesh_placement_draw_prepare( - const bContext *UNUSED(C), wmManipulatorGroup *mgroup) +static void gizmo_mesh_placement_draw_prepare( + const bContext *UNUSED(C), wmGizmoGroup *mgroup) { - ManipulatorPlacementGroup *man = mgroup->customdata; + GizmoPlacementGroup *man = mgroup->customdata; if (man->data.op->next) { man->data.op = WM_operator_last_redo((bContext *)man->data.context); } - manipulator_mesh_placement_update_from_op(man); + gizmo_mesh_placement_update_from_op(man); } -static void MESH_WGT_add_bounds(struct wmManipulatorGroupType *wgt) +static void MESH_WGT_add_bounds(struct wmGizmoGroupType *wgt) { wgt->name = "Mesh Add Bounds"; wgt->idname = "MESH_WGT_add_bounds"; - wgt->flag = WM_MANIPULATORGROUPTYPE_3D; + wgt->flag = WM_GIZMOGROUPTYPE_3D; wgt->mmap_params.spaceid = SPACE_VIEW3D; wgt->mmap_params.regionid = RGN_TYPE_WINDOW; - wgt->poll = manipulator_mesh_placement_poll; - wgt->setup = manipulator_mesh_placement_setup; - wgt->draw_prepare = manipulator_mesh_placement_draw_prepare; + wgt->poll = gizmo_mesh_placement_poll; + wgt->setup = gizmo_mesh_placement_setup; + wgt->draw_prepare = gizmo_mesh_placement_draw_prepare; } /** \} */ /* -------------------------------------------------------------------- */ -/** \name Add Cube Manipulator-Operator +/** \name Add Cube Gizmo-Operator * * For now we use a separate operator to add a cube, * we can try to merge then however they are invoked differently @@ -332,13 +332,13 @@ static void MESH_WGT_add_bounds(struct wmManipulatorGroupType *wgt) * \{ */ -static int add_primitive_cube_manipulator_exec(bContext *C, wmOperator *op) +static int add_primitive_cube_gizmo_exec(bContext *C, wmOperator *op) { Object *obedit = CTX_data_edit_object(C);; BMEditMesh *em = BKE_editmesh_from_object(obedit); float matrix[4][4]; - /* Get the matrix that defines the cube bounds (as set by the manipulator cage). */ + /* Get the matrix that defines the cube bounds (as set by the gizmo cage). */ { PropertyRNA *prop_matrix = RNA_struct_find_property(op->ptr, "matrix"); if (RNA_property_is_set(op->ptr, prop_matrix)) { @@ -372,25 +372,25 @@ static int add_primitive_cube_manipulator_exec(bContext *C, wmOperator *op) return OPERATOR_FINISHED; } -static int add_primitive_cube_manipulator_invoke(bContext *C, wmOperator *op, const wmEvent *UNUSED(event)) +static int add_primitive_cube_gizmo_invoke(bContext *C, wmOperator *op, const wmEvent *UNUSED(event)) { View3D *v3d = CTX_wm_view3d(C); - int ret = add_primitive_cube_manipulator_exec(C, op); + int ret = add_primitive_cube_gizmo_exec(C, op); if (ret & OPERATOR_FINISHED) { - /* Setup manipulators */ - if (v3d && ((v3d->mpr_flag & V3D_MANIPULATOR_HIDE) == 0)) { + /* Setup gizmos */ + if (v3d && ((v3d->mpr_flag & V3D_GIZMO_HIDE) == 0)) { ARegion *ar = CTX_wm_region(C); - wmManipulatorMap *mmap = ar->manipulator_map; - wmManipulatorGroupType *wgt = WM_manipulatorgrouptype_find("MESH_WGT_add_bounds", false); - wmManipulatorGroup *mgroup = WM_manipulatormap_group_find_ptr(mmap, wgt); + wmGizmoMap *mmap = ar->gizmo_map; + wmGizmoGroupType *wgt = WM_gizmogrouptype_find("MESH_WGT_add_bounds", false); + wmGizmoGroup *mgroup = WM_gizmomap_group_find_ptr(mmap, wgt); if (mgroup != NULL) { - ManipulatorPlacementGroup *man = mgroup->customdata; + GizmoPlacementGroup *man = mgroup->customdata; man->data.op = op; - manipulator_mesh_placement_modal_from_setup(C, mgroup); + gizmo_mesh_placement_modal_from_setup(C, mgroup); } else { - WM_manipulator_group_type_ensure_ptr(wgt); + WM_gizmo_group_type_ensure_ptr(wgt); } } } @@ -398,16 +398,16 @@ static int add_primitive_cube_manipulator_invoke(bContext *C, wmOperator *op, co return ret; } -void MESH_OT_primitive_cube_add_manipulator(wmOperatorType *ot) +void MESH_OT_primitive_cube_add_gizmo(wmOperatorType *ot) { /* identifiers */ ot->name = "Add Cube"; ot->description = "Construct a cube mesh"; - ot->idname = "MESH_OT_primitive_cube_add_manipulator"; + ot->idname = "MESH_OT_primitive_cube_add_gizmo"; /* api callbacks */ - ot->invoke = add_primitive_cube_manipulator_invoke; - ot->exec = add_primitive_cube_manipulator_exec; + ot->invoke = add_primitive_cube_gizmo_invoke; + ot->exec = add_primitive_cube_gizmo_exec; ot->poll = ED_operator_editmesh_view3d; /* flags */ @@ -420,7 +420,7 @@ void MESH_OT_primitive_cube_add_manipulator(wmOperatorType *ot) PropertyRNA *prop = RNA_def_float_matrix(ot->srna, "matrix", 4, 4, NULL, 0.0f, 0.0f, "Matrix", "", 0.0f, 0.0f); RNA_def_property_flag(prop, PROP_HIDDEN | PROP_SKIP_SAVE); - WM_manipulatorgrouptype_append(MESH_WGT_add_bounds); + WM_gizmogrouptype_append(MESH_WGT_add_bounds); } /** \} */ diff --git a/source/blender/editors/mesh/editmesh_bevel.c b/source/blender/editors/mesh/editmesh_bevel.c index 58246a60362..b73ce410626 100644 --- a/source/blender/editors/mesh/editmesh_bevel.c +++ b/source/blender/editors/mesh/editmesh_bevel.c @@ -202,7 +202,7 @@ static bool edbm_bevel_init(bContext *C, wmOperator *op, const bool is_modal) if (v3d) { opdata->mpr_flag = v3d->mpr_flag; - v3d->mpr_flag = V3D_MANIPULATOR_HIDE; + v3d->mpr_flag = V3D_GIZMO_HIDE; } } diff --git a/source/blender/editors/mesh/editmesh_bisect.c b/source/blender/editors/mesh/editmesh_bisect.c index 87a65924979..a9e11b7b411 100644 --- a/source/blender/editors/mesh/editmesh_bisect.c +++ b/source/blender/editors/mesh/editmesh_bisect.c @@ -54,9 +54,9 @@ #include "mesh_intern.h" /* own include */ -#define USE_MANIPULATOR +#define USE_GIZMO -#ifdef USE_MANIPULATOR +#ifdef USE_GIZMO #include "ED_gizmo_library.h" #include "ED_undo.h" #endif @@ -157,7 +157,7 @@ static int mesh_bisect_invoke(bContext *C, wmOperator *op, const wmEvent *event) /* misc other vars */ G.moving = G_TRANSFORM_EDIT; opdata->mpr_flag = v3d->mpr_flag; - v3d->mpr_flag = V3D_MANIPULATOR_HIDE; + v3d->mpr_flag = V3D_GIZMO_HIDE; /* initialize modal callout */ ED_workspace_status_text(C, IFACE_("LMB: Click and drag to draw cut line")); @@ -195,12 +195,12 @@ static int mesh_bisect_modal(bContext *C, wmOperator *op, const wmEvent *event) if (ret & (OPERATOR_FINISHED | OPERATOR_CANCELLED)) { edbm_bisect_exit(C, &opdata_back); -#ifdef USE_MANIPULATOR - /* Setup manipulators */ +#ifdef USE_GIZMO + /* Setup gizmos */ { View3D *v3d = CTX_wm_view3d(C); - if (v3d && (v3d->mpr_flag & V3D_MANIPULATOR_HIDE) == 0) { - WM_manipulator_group_type_ensure("MESH_WGT_bisect"); + if (v3d && (v3d->mpr_flag & V3D_GIZMO_HIDE) == 0) { + WM_gizmo_group_type_ensure("MESH_WGT_bisect"); } } #endif @@ -333,8 +333,8 @@ static int mesh_bisect_exec(bContext *C, wmOperator *op) } } -#ifdef USE_MANIPULATOR -static void MESH_WGT_bisect(struct wmManipulatorGroupType *wgt); +#ifdef USE_GIZMO +static void MESH_WGT_bisect(struct wmGizmoGroupType *wgt); #endif void MESH_OT_bisect(struct wmOperatorType *ot) @@ -373,26 +373,26 @@ void MESH_OT_bisect(struct wmOperatorType *ot) WM_operator_properties_gesture_straightline(ot, CURSOR_EDIT); -#ifdef USE_MANIPULATOR - WM_manipulatorgrouptype_append(MESH_WGT_bisect); +#ifdef USE_GIZMO + WM_gizmogrouptype_append(MESH_WGT_bisect); #endif } -#ifdef USE_MANIPULATOR +#ifdef USE_GIZMO /* -------------------------------------------------------------------- */ -/** \name Bisect Manipulator +/** \name Bisect Gizmo * \{ */ -typedef struct ManipulatorGroup { +typedef struct GizmoGroup { /* Arrow to change plane depth. */ - struct wmManipulator *translate_z; + struct wmGizmo *translate_z; /* Translate XYZ */ - struct wmManipulator *translate_c; - /* For grabbing the manipulator and moving freely. */ - struct wmManipulator *rotate_c; + struct wmGizmo *translate_c; + /* For grabbing the gizmo and moving freely. */ + struct wmGizmo *rotate_c; /* We could store more vars here! */ struct { @@ -404,14 +404,14 @@ typedef struct ManipulatorGroup { float rotate_axis[3]; float rotate_up[3]; } data; -} ManipulatorGroup; +} GizmoGroup; /** * XXX. calling redo from property updates is not great. * This is needed because changing the RNA doesn't cause a redo * and we're not using operator UI which does just this. */ -static void manipulator_bisect_exec(ManipulatorGroup *man) +static void gizmo_bisect_exec(GizmoGroup *man) { wmOperator *op = man->data.op; if (op == WM_operator_last_redo((bContext *)man->data.context)) { @@ -419,7 +419,7 @@ static void manipulator_bisect_exec(ManipulatorGroup *man) } } -static void manipulator_mesh_bisect_update_from_op(ManipulatorGroup *man) +static void gizmo_mesh_bisect_update_from_op(GizmoGroup *man) { wmOperator *op = man->data.op; @@ -428,13 +428,13 @@ static void manipulator_mesh_bisect_update_from_op(ManipulatorGroup *man) RNA_property_float_get_array(op->ptr, man->data.prop_plane_co, plane_co); RNA_property_float_get_array(op->ptr, man->data.prop_plane_no, plane_no); - WM_manipulator_set_matrix_location(man->translate_z, plane_co); - WM_manipulator_set_matrix_location(man->rotate_c, plane_co); + WM_gizmo_set_matrix_location(man->translate_z, plane_co); + WM_gizmo_set_matrix_location(man->rotate_c, plane_co); /* translate_c location comes from the property. */ - WM_manipulator_set_matrix_rotation_from_z_axis(man->translate_z, plane_no); + WM_gizmo_set_matrix_rotation_from_z_axis(man->translate_z, plane_no); - WM_manipulator_set_scale(man->translate_c, 0.2); + WM_gizmo_set_scale(man->translate_c, 0.2); RegionView3D *rv3d = ED_view3d_context_rv3d(man->data.context); if (rv3d) { @@ -445,24 +445,24 @@ static void manipulator_mesh_bisect_update_from_op(ManipulatorGroup *man) project_plane_normalized_v3_v3v3(man->data.rotate_up, man->data.rotate_up, man->data.rotate_axis); normalize_v3(man->data.rotate_up); - WM_manipulator_set_matrix_rotation_from_z_axis(man->translate_c, plane_no); + WM_gizmo_set_matrix_rotation_from_z_axis(man->translate_c, plane_no); float plane_no_cross[3]; cross_v3_v3v3(plane_no_cross, plane_no, man->data.rotate_axis); - WM_manipulator_set_matrix_offset_rotation_from_yz_axis(man->rotate_c, plane_no_cross, man->data.rotate_axis); + WM_gizmo_set_matrix_offset_rotation_from_yz_axis(man->rotate_c, plane_no_cross, man->data.rotate_axis); RNA_enum_set(man->rotate_c->ptr, "draw_options", - ED_MANIPULATOR_DIAL_DRAW_FLAG_ANGLE_MIRROR | - ED_MANIPULATOR_DIAL_DRAW_FLAG_ANGLE_START_Y); + ED_GIZMO_DIAL_DRAW_FLAG_ANGLE_MIRROR | + ED_GIZMO_DIAL_DRAW_FLAG_ANGLE_START_Y); } } /* depth callbacks */ -static void manipulator_bisect_prop_depth_get( - const wmManipulator *mpr, wmManipulatorProperty *mpr_prop, +static void gizmo_bisect_prop_depth_get( + const wmGizmo *mpr, wmGizmoProperty *mpr_prop, void *value_p) { - ManipulatorGroup *man = mpr->parent_mgroup->customdata; + GizmoGroup *man = mpr->parent_mgroup->customdata; wmOperator *op = man->data.op; float *value = value_p; @@ -476,11 +476,11 @@ static void manipulator_bisect_prop_depth_get( value[0] = dot_v3v3(plane_no, plane_co) - dot_v3v3(plane_no, mpr->matrix_basis[3]); } -static void manipulator_bisect_prop_depth_set( - const wmManipulator *mpr, wmManipulatorProperty *mpr_prop, +static void gizmo_bisect_prop_depth_set( + const wmGizmo *mpr, wmGizmoProperty *mpr_prop, const void *value_p) { - ManipulatorGroup *man = mpr->parent_mgroup->customdata; + GizmoGroup *man = mpr->parent_mgroup->customdata; wmOperator *op = man->data.op; const float *value = value_p; @@ -499,15 +499,15 @@ static void manipulator_bisect_prop_depth_set( RNA_property_float_set_array(op->ptr, man->data.prop_plane_co, plane_co); - manipulator_bisect_exec(man); + gizmo_bisect_exec(man); } /* translate callbacks */ -static void manipulator_bisect_prop_translate_get( - const wmManipulator *mpr, wmManipulatorProperty *mpr_prop, +static void gizmo_bisect_prop_translate_get( + const wmGizmo *mpr, wmGizmoProperty *mpr_prop, void *value_p) { - ManipulatorGroup *man = mpr->parent_mgroup->customdata; + GizmoGroup *man = mpr->parent_mgroup->customdata; wmOperator *op = man->data.op; BLI_assert(mpr_prop->type->array_length == 3); @@ -516,11 +516,11 @@ static void manipulator_bisect_prop_translate_get( RNA_property_float_get_array(op->ptr, man->data.prop_plane_co, value_p); } -static void manipulator_bisect_prop_translate_set( - const wmManipulator *mpr, wmManipulatorProperty *mpr_prop, +static void gizmo_bisect_prop_translate_set( + const wmGizmo *mpr, wmGizmoProperty *mpr_prop, const void *value_p) { - ManipulatorGroup *man = mpr->parent_mgroup->customdata; + GizmoGroup *man = mpr->parent_mgroup->customdata; wmOperator *op = man->data.op; BLI_assert(mpr_prop->type->array_length == 3); @@ -528,15 +528,15 @@ static void manipulator_bisect_prop_translate_set( RNA_property_float_set_array(op->ptr, man->data.prop_plane_co, value_p); - manipulator_bisect_exec(man); + gizmo_bisect_exec(man); } /* angle callbacks */ -static void manipulator_bisect_prop_angle_get( - const wmManipulator *mpr, wmManipulatorProperty *mpr_prop, +static void gizmo_bisect_prop_angle_get( + const wmGizmo *mpr, wmGizmoProperty *mpr_prop, void *value_p) { - ManipulatorGroup *man = mpr->parent_mgroup->customdata; + GizmoGroup *man = mpr->parent_mgroup->customdata; wmOperator *op = man->data.op; float *value = value_p; @@ -559,11 +559,11 @@ static void manipulator_bisect_prop_angle_get( } } -static void manipulator_bisect_prop_angle_set( - const wmManipulator *mpr, wmManipulatorProperty *mpr_prop, +static void gizmo_bisect_prop_angle_set( + const wmGizmo *mpr, wmGizmoProperty *mpr_prop, const void *value_p) { - ManipulatorGroup *man = mpr->parent_mgroup->customdata; + GizmoGroup *man = mpr->parent_mgroup->customdata; wmOperator *op = man->data.op; const float *value = value_p; @@ -588,22 +588,22 @@ static void manipulator_bisect_prop_angle_set( /* re-normalize - seems acceptable */ RNA_property_float_set_array(op->ptr, man->data.prop_plane_no, plane_no); - manipulator_bisect_exec(man); + gizmo_bisect_exec(man); } } } -static bool manipulator_mesh_bisect_poll(const bContext *C, wmManipulatorGroupType *wgt) +static bool gizmo_mesh_bisect_poll(const bContext *C, wmGizmoGroupType *wgt) { wmOperator *op = WM_operator_last_redo(C); if (op == NULL || !STREQ(op->type->idname, "MESH_OT_bisect")) { - WM_manipulator_group_type_unlink_delayed_ptr(wgt); + WM_gizmo_group_type_unlink_delayed_ptr(wgt); return false; } return true; } -static void manipulator_mesh_bisect_setup(const bContext *C, wmManipulatorGroup *mgroup) +static void gizmo_mesh_bisect_setup(const bContext *C, wmGizmoGroup *mgroup) { wmOperator *op = WM_operator_last_redo(C); @@ -611,26 +611,26 @@ static void manipulator_mesh_bisect_setup(const bContext *C, wmManipulatorGroup return; } - struct ManipulatorGroup *man = MEM_callocN(sizeof(ManipulatorGroup), __func__); + struct GizmoGroup *man = MEM_callocN(sizeof(GizmoGroup), __func__); mgroup->customdata = man; - const wmManipulatorType *wt_arrow = WM_manipulatortype_find("MANIPULATOR_WT_arrow_3d", true); - const wmManipulatorType *wt_grab = WM_manipulatortype_find("MANIPULATOR_WT_grab_3d", true); - const wmManipulatorType *wt_dial = WM_manipulatortype_find("MANIPULATOR_WT_dial_3d", true); + const wmGizmoType *wt_arrow = WM_gizmotype_find("GIZMO_WT_arrow_3d", true); + const wmGizmoType *wt_grab = WM_gizmotype_find("GIZMO_WT_grab_3d", true); + const wmGizmoType *wt_dial = WM_gizmotype_find("GIZMO_WT_dial_3d", true); - man->translate_z = WM_manipulator_new_ptr(wt_arrow, mgroup, NULL); - man->translate_c = WM_manipulator_new_ptr(wt_grab, mgroup, NULL); - man->rotate_c = WM_manipulator_new_ptr(wt_dial, mgroup, NULL); + man->translate_z = WM_gizmo_new_ptr(wt_arrow, mgroup, NULL); + man->translate_c = WM_gizmo_new_ptr(wt_grab, mgroup, NULL); + man->rotate_c = WM_gizmo_new_ptr(wt_dial, mgroup, NULL); - UI_GetThemeColor3fv(TH_MANIPULATOR_PRIMARY, man->translate_z->color); - UI_GetThemeColor3fv(TH_MANIPULATOR_PRIMARY, man->translate_c->color); - UI_GetThemeColor3fv(TH_MANIPULATOR_SECONDARY, man->rotate_c->color); + UI_GetThemeColor3fv(TH_GIZMO_PRIMARY, man->translate_z->color); + UI_GetThemeColor3fv(TH_GIZMO_PRIMARY, man->translate_c->color); + UI_GetThemeColor3fv(TH_GIZMO_SECONDARY, man->rotate_c->color); - RNA_enum_set(man->translate_z->ptr, "draw_style", ED_MANIPULATOR_ARROW_STYLE_NORMAL); - RNA_enum_set(man->translate_c->ptr, "draw_style", ED_MANIPULATOR_GRAB_STYLE_RING_2D); + RNA_enum_set(man->translate_z->ptr, "draw_style", ED_GIZMO_ARROW_STYLE_NORMAL); + RNA_enum_set(man->translate_c->ptr, "draw_style", ED_GIZMO_GRAB_STYLE_RING_2D); - WM_manipulator_set_flag(man->translate_c, WM_MANIPULATOR_DRAW_VALUE, true); - WM_manipulator_set_flag(man->rotate_c, WM_MANIPULATOR_DRAW_VALUE, true); + WM_gizmo_set_flag(man->translate_c, WM_GIZMO_DRAW_VALUE, true); + WM_gizmo_set_flag(man->rotate_c, WM_GIZMO_DRAW_VALUE, true); { man->data.context = (bContext *)C; @@ -639,64 +639,64 @@ static void manipulator_mesh_bisect_setup(const bContext *C, wmManipulatorGroup man->data.prop_plane_no = RNA_struct_find_property(op->ptr, "plane_no"); } - manipulator_mesh_bisect_update_from_op(man); + gizmo_mesh_bisect_update_from_op(man); /* Setup property callbacks */ { - WM_manipulator_target_property_def_func( + WM_gizmo_target_property_def_func( man->translate_z, "offset", - &(const struct wmManipulatorPropertyFnParams) { - .value_get_fn = manipulator_bisect_prop_depth_get, - .value_set_fn = manipulator_bisect_prop_depth_set, + &(const struct wmGizmoPropertyFnParams) { + .value_get_fn = gizmo_bisect_prop_depth_get, + .value_set_fn = gizmo_bisect_prop_depth_set, .range_get_fn = NULL, .user_data = NULL, }); - WM_manipulator_target_property_def_func( + WM_gizmo_target_property_def_func( man->translate_c, "offset", - &(const struct wmManipulatorPropertyFnParams) { - .value_get_fn = manipulator_bisect_prop_translate_get, - .value_set_fn = manipulator_bisect_prop_translate_set, + &(const struct wmGizmoPropertyFnParams) { + .value_get_fn = gizmo_bisect_prop_translate_get, + .value_set_fn = gizmo_bisect_prop_translate_set, .range_get_fn = NULL, .user_data = NULL, }); - WM_manipulator_target_property_def_func( + WM_gizmo_target_property_def_func( man->rotate_c, "offset", - &(const struct wmManipulatorPropertyFnParams) { - .value_get_fn = manipulator_bisect_prop_angle_get, - .value_set_fn = manipulator_bisect_prop_angle_set, + &(const struct wmGizmoPropertyFnParams) { + .value_get_fn = gizmo_bisect_prop_angle_get, + .value_set_fn = gizmo_bisect_prop_angle_set, .range_get_fn = NULL, .user_data = NULL, }); } } -static void manipulator_mesh_bisect_draw_prepare( - const bContext *UNUSED(C), wmManipulatorGroup *mgroup) +static void gizmo_mesh_bisect_draw_prepare( + const bContext *UNUSED(C), wmGizmoGroup *mgroup) { - ManipulatorGroup *man = mgroup->customdata; + GizmoGroup *man = mgroup->customdata; if (man->data.op->next) { man->data.op = WM_operator_last_redo((bContext *)man->data.context); } - manipulator_mesh_bisect_update_from_op(man); + gizmo_mesh_bisect_update_from_op(man); } -static void MESH_WGT_bisect(struct wmManipulatorGroupType *wgt) +static void MESH_WGT_bisect(struct wmGizmoGroupType *wgt) { wgt->name = "Mesh Bisect"; wgt->idname = "MESH_WGT_bisect"; - wgt->flag = WM_MANIPULATORGROUPTYPE_3D; + wgt->flag = WM_GIZMOGROUPTYPE_3D; wgt->mmap_params.spaceid = SPACE_VIEW3D; wgt->mmap_params.regionid = RGN_TYPE_WINDOW; - wgt->poll = manipulator_mesh_bisect_poll; - wgt->setup = manipulator_mesh_bisect_setup; - wgt->draw_prepare = manipulator_mesh_bisect_draw_prepare; + wgt->poll = gizmo_mesh_bisect_poll; + wgt->setup = gizmo_mesh_bisect_setup; + wgt->draw_prepare = gizmo_mesh_bisect_draw_prepare; } /** \} */ -#endif /* USE_MANIPULATOR */ +#endif /* USE_GIZMO */ diff --git a/source/blender/editors/mesh/editmesh_extrude.c b/source/blender/editors/mesh/editmesh_extrude.c index b007bcf04ba..dd167c1fc15 100644 --- a/source/blender/editors/mesh/editmesh_extrude.c +++ b/source/blender/editors/mesh/editmesh_extrude.c @@ -61,7 +61,7 @@ #include "mesh_intern.h" /* own include */ -#define USE_MANIPULATOR +#define USE_GIZMO /* -------------------------------------------------------------------- */ /** \name Extrude Internal Utilities @@ -360,10 +360,10 @@ void MESH_OT_extrude_repeat(wmOperatorType *ot) /* -------------------------------------------------------------------- */ -/** \name Extrude Manipulator +/** \name Extrude Gizmo * \{ */ -#ifdef USE_MANIPULATOR +#ifdef USE_GIZMO const float extrude_button_scale = 0.15f; const float extrude_button_offset_scale = 1.5f; @@ -380,11 +380,11 @@ static const uchar shape_plus[] = { 0x90, 0x6e, 0xd7, 0x80, 0xff, 0x5f, 0xfb, 0x5f, 0xfb, }; -typedef struct ManipulatorExtrudeGroup { +typedef struct GizmoExtrudeGroup { /* XYZ & normal. */ - struct wmManipulator *invoke_xyz_no[4]; - struct wmManipulator *adjust_xyz_no[5]; + struct wmGizmo *invoke_xyz_no[4]; + struct wmGizmo *adjust_xyz_no[5]; struct { float normal_mat3[3][3]; /* use Z axis for normal. */ @@ -392,10 +392,10 @@ typedef struct ManipulatorExtrudeGroup { } data; wmOperatorType *ot_extrude; -} ManipulatorExtrudeGroup; +} GizmoExtrudeGroup; -static void manipulator_mesh_extrude_orientation_matrix_set( - struct ManipulatorExtrudeGroup *man, const float mat[3][3]) +static void gizmo_mesh_extrude_orientation_matrix_set( + struct GizmoExtrudeGroup *man, const float mat[3][3]) { for (int i = 0; i < 3; i++) { /* Set orientation without location. */ @@ -417,32 +417,32 @@ static void manipulator_mesh_extrude_orientation_matrix_set( } } -static bool manipulator_mesh_extrude_poll(const bContext *C, wmManipulatorGroupType *wgt) +static bool gizmo_mesh_extrude_poll(const bContext *C, wmGizmoGroupType *wgt) { ScrArea *sa = CTX_wm_area(C); bToolRef_Runtime *tref_rt = sa->runtime.tool ? sa->runtime.tool->runtime : NULL; if ((tref_rt == NULL) || - !STREQ(wgt->idname, tref_rt->manipulator_group) || + !STREQ(wgt->idname, tref_rt->gizmo_group) || !ED_operator_editmesh_view3d((bContext *)C)) { - WM_manipulator_group_type_unlink_delayed_ptr(wgt); + WM_gizmo_group_type_unlink_delayed_ptr(wgt); return false; } return true; } -static void manipulator_mesh_extrude_setup(const bContext *UNUSED(C), wmManipulatorGroup *mgroup) +static void gizmo_mesh_extrude_setup(const bContext *UNUSED(C), wmGizmoGroup *mgroup) { - struct ManipulatorExtrudeGroup *man = MEM_callocN(sizeof(ManipulatorExtrudeGroup), __func__); + struct GizmoExtrudeGroup *man = MEM_callocN(sizeof(GizmoExtrudeGroup), __func__); mgroup->customdata = man; - const wmManipulatorType *wt_arrow = WM_manipulatortype_find("MANIPULATOR_WT_arrow_3d", true); - const wmManipulatorType *wt_grab = WM_manipulatortype_find("MANIPULATOR_WT_button_2d", true); + const wmGizmoType *wt_arrow = WM_gizmotype_find("GIZMO_WT_arrow_3d", true); + const wmGizmoType *wt_grab = WM_gizmotype_find("GIZMO_WT_button_2d", true); for (int i = 0; i < 4; i++) { - man->adjust_xyz_no[i] = WM_manipulator_new_ptr(wt_arrow, mgroup, NULL); - man->invoke_xyz_no[i] = WM_manipulator_new_ptr(wt_grab, mgroup, NULL); - man->invoke_xyz_no[i]->flag |= WM_MANIPULATOR_DRAW_OFFSET_SCALE; + man->adjust_xyz_no[i] = WM_gizmo_new_ptr(wt_arrow, mgroup, NULL); + man->invoke_xyz_no[i] = WM_gizmo_new_ptr(wt_grab, mgroup, NULL); + man->invoke_xyz_no[i]->flag |= WM_GIZMO_DRAW_OFFSET_SCALE; } { @@ -460,25 +460,25 @@ static void manipulator_mesh_extrude_setup(const bContext *UNUSED(C), wmManipula UI_GetThemeColor3fv(TH_AXIS_X + i, man->invoke_xyz_no[i]->color); UI_GetThemeColor3fv(TH_AXIS_X + i, man->adjust_xyz_no[i]->color); } - UI_GetThemeColor3fv(TH_MANIPULATOR_PRIMARY, man->invoke_xyz_no[3]->color); - UI_GetThemeColor3fv(TH_MANIPULATOR_PRIMARY, man->adjust_xyz_no[3]->color); + UI_GetThemeColor3fv(TH_GIZMO_PRIMARY, man->invoke_xyz_no[3]->color); + UI_GetThemeColor3fv(TH_GIZMO_PRIMARY, man->adjust_xyz_no[3]->color); for (int i = 0; i < 4; i++) { - WM_manipulator_set_scale(man->invoke_xyz_no[i], extrude_button_scale); - WM_manipulator_set_scale(man->adjust_xyz_no[i], extrude_arrow_scale); + WM_gizmo_set_scale(man->invoke_xyz_no[i], extrude_button_scale); + WM_gizmo_set_scale(man->adjust_xyz_no[i], extrude_arrow_scale); } - WM_manipulator_set_scale(man->adjust_xyz_no[3], extrude_arrow_normal_axis_scale); + WM_gizmo_set_scale(man->adjust_xyz_no[3], extrude_arrow_normal_axis_scale); for (int i = 0; i < 4; i++) { } for (int i = 0; i < 4; i++) { - WM_manipulator_set_flag(man->adjust_xyz_no[i], WM_MANIPULATOR_DRAW_VALUE, true); + WM_gizmo_set_flag(man->adjust_xyz_no[i], WM_GIZMO_DRAW_VALUE, true); } /* XYZ & normal axis extrude. */ for (int i = 0; i < 4; i++) { - PointerRNA *ptr = WM_manipulator_operator_set(man->invoke_xyz_no[i], 0, man->ot_extrude, NULL); + PointerRNA *ptr = WM_gizmo_operator_set(man->invoke_xyz_no[i], 0, man->ot_extrude, NULL); { bool constraint[3] = {0, 0, 0}; constraint[MIN2(i, 2)] = 1; @@ -490,7 +490,7 @@ static void manipulator_mesh_extrude_setup(const bContext *UNUSED(C), wmManipula /* Adjust extrude. */ for (int i = 0; i < 4; i++) { - PointerRNA *ptr = WM_manipulator_operator_set(man->adjust_xyz_no[i], 0, man->ot_extrude, NULL); + PointerRNA *ptr = WM_gizmo_operator_set(man->adjust_xyz_no[i], 0, man->ot_extrude, NULL); { bool constraint[3] = {0, 0, 0}; constraint[MIN2(i, 2)] = 1; @@ -498,18 +498,18 @@ static void manipulator_mesh_extrude_setup(const bContext *UNUSED(C), wmManipula RNA_boolean_set(¯optr, "release_confirm", true); RNA_boolean_set_array(¯optr, "constraint_axis", constraint); } - wmManipulatorOpElem *mpop = WM_manipulator_operator_get(man->adjust_xyz_no[i], 0); + wmGizmoOpElem *mpop = WM_gizmo_operator_get(man->adjust_xyz_no[i], 0); mpop->is_redo = true; } } -static void manipulator_mesh_extrude_refresh(const bContext *C, wmManipulatorGroup *mgroup) +static void gizmo_mesh_extrude_refresh(const bContext *C, wmGizmoGroup *mgroup) { - ManipulatorExtrudeGroup *man = mgroup->customdata; + GizmoExtrudeGroup *man = mgroup->customdata; for (int i = 0; i < 4; i++) { - WM_manipulator_set_flag(man->invoke_xyz_no[i], WM_MANIPULATOR_HIDDEN, true); - WM_manipulator_set_flag(man->adjust_xyz_no[i], WM_MANIPULATOR_HIDDEN, true); + WM_gizmo_set_flag(man->invoke_xyz_no[i], WM_GIZMO_HIDDEN, true); + WM_gizmo_set_flag(man->adjust_xyz_no[i], WM_GIZMO_HIDDEN, true); } if (G.moving) { @@ -525,7 +525,7 @@ static void manipulator_mesh_extrude_refresh(const bContext *C, wmManipulatorGro if (use_normal) { struct TransformBounds tbounds_normal; - if (!ED_transform_calc_manipulator_stats( + if (!ED_transform_calc_gizmo_stats( C, &(struct TransformCalcParams){ .orientation_type = V3D_MANIP_NORMAL + 1, }, &tbounds_normal)) @@ -536,7 +536,7 @@ static void manipulator_mesh_extrude_refresh(const bContext *C, wmManipulatorGro } /* TODO(campbell): run second since this modifies the 3D view, it should not. */ - if (!ED_transform_calc_manipulator_stats( + if (!ED_transform_calc_gizmo_stats( C, &(struct TransformCalcParams){ .orientation_type = man->data.orientation_type + 1, }, &tbounds)) @@ -556,15 +556,15 @@ static void manipulator_mesh_extrude_refresh(const bContext *C, wmManipulatorGro (extrude_arrow_normal_axis_scale * extrude_button_offset_scale) / extrude_button_scale); /* Needed for normal orientation. */ - manipulator_mesh_extrude_orientation_matrix_set(man, tbounds.axis); + gizmo_mesh_extrude_orientation_matrix_set(man, tbounds.axis); if (use_normal) { copy_m4_m3(man->adjust_xyz_no[3]->matrix_basis, man->data.normal_mat3); } /* Location. */ for (int i = 0; i < axis_len_used; i++) { - WM_manipulator_set_matrix_location(man->invoke_xyz_no[i], tbounds.center); - WM_manipulator_set_matrix_location(man->adjust_xyz_no[i], tbounds.center); + WM_gizmo_set_matrix_location(man->invoke_xyz_no[i], tbounds.center); + WM_gizmo_set_matrix_location(man->adjust_xyz_no[i], tbounds.center); } wmOperator *op = WM_operator_last_redo(C); @@ -572,13 +572,13 @@ static void manipulator_mesh_extrude_refresh(const bContext *C, wmManipulatorGro /* Un-hide. */ for (int i = 0; i < axis_len_used; i++) { - WM_manipulator_set_flag(man->invoke_xyz_no[i], WM_MANIPULATOR_HIDDEN, false); - WM_manipulator_set_flag(man->adjust_xyz_no[i], WM_MANIPULATOR_HIDDEN, !has_redo); + WM_gizmo_set_flag(man->invoke_xyz_no[i], WM_GIZMO_HIDDEN, false); + WM_gizmo_set_flag(man->adjust_xyz_no[i], WM_GIZMO_HIDDEN, !has_redo); } /* Operator properties. */ if (use_normal) { - wmManipulatorOpElem *mpop = WM_manipulator_operator_get(man->invoke_xyz_no[3], 0); + wmGizmoOpElem *mpop = WM_gizmo_operator_get(man->invoke_xyz_no[3], 0); PointerRNA macroptr = RNA_pointer_get(&mpop->ptr, "TRANSFORM_OT_translate"); RNA_enum_set(¯optr, "constraint_orientation", V3D_MANIP_NORMAL); } @@ -598,7 +598,7 @@ static void manipulator_mesh_extrude_refresh(const bContext *C, wmManipulatorGro (orientation_type == man->data.orientation_type && constraint_axis[i]) : (orientation_type == V3D_MANIP_NORMAL && constraint_axis[2])) { - wmManipulatorOpElem *mpop = WM_manipulator_operator_get(man->adjust_xyz_no[i], 0); + wmGizmoOpElem *mpop = WM_gizmo_operator_get(man->adjust_xyz_no[i], 0); PointerRNA macroptr = RNA_pointer_get(&mpop->ptr, "TRANSFORM_OT_translate"); @@ -609,7 +609,7 @@ static void manipulator_mesh_extrude_refresh(const bContext *C, wmManipulatorGro else { /* TODO(campbell): ideally we could adjust all, * this is complicated by how operator redo and the transform macro works. */ - WM_manipulator_set_flag(man->adjust_xyz_no[i], WM_MANIPULATOR_HIDDEN, true); + WM_gizmo_set_flag(man->adjust_xyz_no[i], WM_GIZMO_HIDDEN, true); } } } @@ -618,14 +618,14 @@ static void manipulator_mesh_extrude_refresh(const bContext *C, wmManipulatorGro RNA_enum_set( man->invoke_xyz_no[i]->ptr, "draw_options", - (man->adjust_xyz_no[i]->flag & WM_MANIPULATOR_HIDDEN) ? - ED_MANIPULATOR_BUTTON_SHOW_HELPLINE : 0); + (man->adjust_xyz_no[i]->flag & WM_GIZMO_HIDDEN) ? + ED_GIZMO_BUTTON_SHOW_HELPLINE : 0); } } -static void manipulator_mesh_extrude_draw_prepare(const bContext *C, wmManipulatorGroup *mgroup) +static void gizmo_mesh_extrude_draw_prepare(const bContext *C, wmGizmoGroup *mgroup) { - ManipulatorExtrudeGroup *man = mgroup->customdata; + GizmoExtrudeGroup *man = mgroup->customdata; switch (man->data.orientation_type) { case V3D_MANIP_VIEW: { @@ -633,14 +633,14 @@ static void manipulator_mesh_extrude_draw_prepare(const bContext *C, wmManipulat float mat[3][3]; copy_m3_m4(mat, rv3d->viewinv); normalize_m3(mat); - manipulator_mesh_extrude_orientation_matrix_set(man, mat); + gizmo_mesh_extrude_orientation_matrix_set(man, mat); break; } } } -static void manipulator_mesh_extrude_message_subscribe( - const bContext *C, wmManipulatorGroup *mgroup, struct wmMsgBus *mbus) +static void gizmo_mesh_extrude_message_subscribe( + const bContext *C, wmGizmoGroup *mgroup, struct wmMsgBus *mbus) { ARegion *ar = CTX_wm_region(C); @@ -648,7 +648,7 @@ static void manipulator_mesh_extrude_message_subscribe( wmMsgSubscribeValue msg_sub_value_mpr_tag_refresh = { .owner = ar, .user_data = mgroup->parent_mmap, - .notify = WM_manipulator_do_msg_notify_tag_refresh, + .notify = WM_gizmo_do_msg_notify_tag_refresh, }; { @@ -657,24 +657,24 @@ static void manipulator_mesh_extrude_message_subscribe( } -static void MESH_WGT_extrude(struct wmManipulatorGroupType *wgt) +static void MESH_WGT_extrude(struct wmGizmoGroupType *wgt) { wgt->name = "Mesh Extrude"; wgt->idname = "MESH_WGT_extrude"; - wgt->flag = WM_MANIPULATORGROUPTYPE_3D; + wgt->flag = WM_GIZMOGROUPTYPE_3D; wgt->mmap_params.spaceid = SPACE_VIEW3D; wgt->mmap_params.regionid = RGN_TYPE_WINDOW; - wgt->poll = manipulator_mesh_extrude_poll; - wgt->setup = manipulator_mesh_extrude_setup; - wgt->refresh = manipulator_mesh_extrude_refresh; - wgt->draw_prepare = manipulator_mesh_extrude_draw_prepare; - wgt->message_subscribe = manipulator_mesh_extrude_message_subscribe; + wgt->poll = gizmo_mesh_extrude_poll; + wgt->setup = gizmo_mesh_extrude_setup; + wgt->refresh = gizmo_mesh_extrude_refresh; + wgt->draw_prepare = gizmo_mesh_extrude_draw_prepare; + wgt->message_subscribe = gizmo_mesh_extrude_message_subscribe; } -#endif /* USE_MANIPULATOR */ +#endif /* USE_GIZMO */ /** \} */ @@ -825,8 +825,8 @@ void MESH_OT_extrude_context(wmOperatorType *ot) Transform_Properties(ot, P_NO_DEFAULTS | P_MIRROR_DUMMY); -#ifdef USE_MANIPULATOR - WM_manipulatorgrouptype_append(MESH_WGT_extrude); +#ifdef USE_GIZMO + WM_gizmogrouptype_append(MESH_WGT_extrude); #endif } diff --git a/source/blender/editors/mesh/editmesh_extrude_spin.c b/source/blender/editors/mesh/editmesh_extrude_spin.c index 74e2833b2d9..3864bd63036 100644 --- a/source/blender/editors/mesh/editmesh_extrude_spin.c +++ b/source/blender/editors/mesh/editmesh_extrude_spin.c @@ -54,27 +54,27 @@ #include "mesh_intern.h" /* own include */ -#define USE_MANIPULATOR +#define USE_GIZMO -#ifdef USE_MANIPULATOR +#ifdef USE_GIZMO #include "ED_gizmo_library.h" #include "ED_undo.h" #endif /* -------------------------------------------------------------------- */ -/** \name Spin Manipulator +/** \name Spin Gizmo * \{ */ -#ifdef USE_MANIPULATOR -typedef struct ManipulatorSpinGroup { +#ifdef USE_GIZMO +typedef struct GizmoSpinGroup { /* Arrow to change plane depth. */ - struct wmManipulator *translate_z; + struct wmGizmo *translate_z; /* Translate XYZ */ - struct wmManipulator *translate_c; - /* For grabbing the manipulator and moving freely. */ - struct wmManipulator *rotate_c; + struct wmGizmo *translate_c; + /* For grabbing the gizmo and moving freely. */ + struct wmGizmo *rotate_c; /* Spin angle */ - struct wmManipulator *angle_z; + struct wmGizmo *angle_z; /* We could store more vars here! */ struct { @@ -87,14 +87,14 @@ typedef struct ManipulatorSpinGroup { float rotate_axis[3]; float rotate_up[3]; } data; -} ManipulatorSpinGroup; +} GizmoSpinGroup; /** * XXX. calling redo from property updates is not great. * This is needed because changing the RNA doesn't cause a redo * and we're not using operator UI which does just this. */ -static void manipulator_spin_exec(ManipulatorSpinGroup *man) +static void gizmo_spin_exec(GizmoSpinGroup *man) { wmOperator *op = man->data.op; if (op == WM_operator_last_redo((bContext *)man->data.context)) { @@ -102,7 +102,7 @@ static void manipulator_spin_exec(ManipulatorSpinGroup *man) } } -static void manipulator_mesh_spin_update_from_op(ManipulatorSpinGroup *man) +static void gizmo_mesh_spin_update_from_op(GizmoSpinGroup *man) { wmOperator *op = man->data.op; @@ -111,15 +111,15 @@ static void manipulator_mesh_spin_update_from_op(ManipulatorSpinGroup *man) RNA_property_float_get_array(op->ptr, man->data.prop_axis_co, plane_co); RNA_property_float_get_array(op->ptr, man->data.prop_axis_no, plane_no); - WM_manipulator_set_matrix_location(man->translate_z, plane_co); - WM_manipulator_set_matrix_location(man->rotate_c, plane_co); - WM_manipulator_set_matrix_location(man->angle_z, plane_co); + WM_gizmo_set_matrix_location(man->translate_z, plane_co); + WM_gizmo_set_matrix_location(man->rotate_c, plane_co); + WM_gizmo_set_matrix_location(man->angle_z, plane_co); /* translate_c location comes from the property. */ - WM_manipulator_set_matrix_rotation_from_z_axis(man->translate_z, plane_no); - WM_manipulator_set_matrix_rotation_from_z_axis(man->angle_z, plane_no); + WM_gizmo_set_matrix_rotation_from_z_axis(man->translate_z, plane_no); + WM_gizmo_set_matrix_rotation_from_z_axis(man->angle_z, plane_no); - WM_manipulator_set_scale(man->translate_c, 0.2); + WM_gizmo_set_scale(man->translate_c, 0.2); RegionView3D *rv3d = ED_view3d_context_rv3d(man->data.context); if (rv3d) { @@ -130,23 +130,23 @@ static void manipulator_mesh_spin_update_from_op(ManipulatorSpinGroup *man) project_plane_normalized_v3_v3v3(man->data.rotate_up, man->data.rotate_up, man->data.rotate_axis); normalize_v3(man->data.rotate_up); - WM_manipulator_set_matrix_rotation_from_z_axis(man->translate_c, plane_no); - WM_manipulator_set_matrix_rotation_from_yz_axis(man->rotate_c, plane_no, man->data.rotate_axis); + WM_gizmo_set_matrix_rotation_from_z_axis(man->translate_c, plane_no); + WM_gizmo_set_matrix_rotation_from_yz_axis(man->rotate_c, plane_no, man->data.rotate_axis); /* show the axis instead of mouse cursor */ RNA_enum_set(man->rotate_c->ptr, "draw_options", - ED_MANIPULATOR_DIAL_DRAW_FLAG_ANGLE_MIRROR | - ED_MANIPULATOR_DIAL_DRAW_FLAG_ANGLE_START_Y); + ED_GIZMO_DIAL_DRAW_FLAG_ANGLE_MIRROR | + ED_GIZMO_DIAL_DRAW_FLAG_ANGLE_START_Y); } } /* depth callbacks */ -static void manipulator_spin_prop_depth_get( - const wmManipulator *mpr, wmManipulatorProperty *mpr_prop, +static void gizmo_spin_prop_depth_get( + const wmGizmo *mpr, wmGizmoProperty *mpr_prop, void *value_p) { - ManipulatorSpinGroup *man = mpr->parent_mgroup->customdata; + GizmoSpinGroup *man = mpr->parent_mgroup->customdata; wmOperator *op = man->data.op; float *value = value_p; @@ -160,11 +160,11 @@ static void manipulator_spin_prop_depth_get( value[0] = dot_v3v3(plane_no, plane_co) - dot_v3v3(plane_no, mpr->matrix_basis[3]); } -static void manipulator_spin_prop_depth_set( - const wmManipulator *mpr, wmManipulatorProperty *mpr_prop, +static void gizmo_spin_prop_depth_set( + const wmGizmo *mpr, wmGizmoProperty *mpr_prop, const void *value_p) { - ManipulatorSpinGroup *man = mpr->parent_mgroup->customdata; + GizmoSpinGroup *man = mpr->parent_mgroup->customdata; wmOperator *op = man->data.op; const float *value = value_p; @@ -183,15 +183,15 @@ static void manipulator_spin_prop_depth_set( RNA_property_float_set_array(op->ptr, man->data.prop_axis_co, plane_co); - manipulator_spin_exec(man); + gizmo_spin_exec(man); } /* translate callbacks */ -static void manipulator_spin_prop_translate_get( - const wmManipulator *mpr, wmManipulatorProperty *mpr_prop, +static void gizmo_spin_prop_translate_get( + const wmGizmo *mpr, wmGizmoProperty *mpr_prop, void *value_p) { - ManipulatorSpinGroup *man = mpr->parent_mgroup->customdata; + GizmoSpinGroup *man = mpr->parent_mgroup->customdata; wmOperator *op = man->data.op; float *value = value_p; @@ -201,11 +201,11 @@ static void manipulator_spin_prop_translate_get( RNA_property_float_get_array(op->ptr, man->data.prop_axis_co, value); } -static void manipulator_spin_prop_translate_set( - const wmManipulator *mpr, wmManipulatorProperty *mpr_prop, +static void gizmo_spin_prop_translate_set( + const wmGizmo *mpr, wmGizmoProperty *mpr_prop, const void *value) { - ManipulatorSpinGroup *man = mpr->parent_mgroup->customdata; + GizmoSpinGroup *man = mpr->parent_mgroup->customdata; wmOperator *op = man->data.op; BLI_assert(mpr_prop->type->array_length == 3); @@ -213,15 +213,15 @@ static void manipulator_spin_prop_translate_set( RNA_property_float_set_array(op->ptr, man->data.prop_axis_co, value); - manipulator_spin_exec(man); + gizmo_spin_exec(man); } /* angle callbacks */ -static void manipulator_spin_prop_axis_angle_get( - const wmManipulator *mpr, wmManipulatorProperty *mpr_prop, +static void gizmo_spin_prop_axis_angle_get( + const wmGizmo *mpr, wmGizmoProperty *mpr_prop, void *value_p) { - ManipulatorSpinGroup *man = mpr->parent_mgroup->customdata; + GizmoSpinGroup *man = mpr->parent_mgroup->customdata; wmOperator *op = man->data.op; float *value = value_p; @@ -244,11 +244,11 @@ static void manipulator_spin_prop_axis_angle_get( } } -static void manipulator_spin_prop_axis_angle_set( - const wmManipulator *mpr, wmManipulatorProperty *mpr_prop, +static void gizmo_spin_prop_axis_angle_set( + const wmGizmo *mpr, wmGizmoProperty *mpr_prop, const void *value_p) { - ManipulatorSpinGroup *man = mpr->parent_mgroup->customdata; + GizmoSpinGroup *man = mpr->parent_mgroup->customdata; wmOperator *op = man->data.op; const float *value = value_p; @@ -273,17 +273,17 @@ static void manipulator_spin_prop_axis_angle_set( /* re-normalize - seems acceptable */ RNA_property_float_set_array(op->ptr, man->data.prop_axis_no, plane_no); - manipulator_spin_exec(man); + gizmo_spin_exec(man); } } } /* angle callbacks */ -static void manipulator_spin_prop_angle_get( - const wmManipulator *mpr, wmManipulatorProperty *mpr_prop, +static void gizmo_spin_prop_angle_get( + const wmGizmo *mpr, wmGizmoProperty *mpr_prop, void *value_p) { - ManipulatorSpinGroup *man = mpr->parent_mgroup->customdata; + GizmoSpinGroup *man = mpr->parent_mgroup->customdata; wmOperator *op = man->data.op; float *value = value_p; @@ -292,31 +292,31 @@ static void manipulator_spin_prop_angle_get( value[0] = RNA_property_float_get(op->ptr, man->data.prop_angle); } -static void manipulator_spin_prop_angle_set( - const wmManipulator *mpr, wmManipulatorProperty *mpr_prop, +static void gizmo_spin_prop_angle_set( + const wmGizmo *mpr, wmGizmoProperty *mpr_prop, const void *value_p) { - ManipulatorSpinGroup *man = mpr->parent_mgroup->customdata; + GizmoSpinGroup *man = mpr->parent_mgroup->customdata; wmOperator *op = man->data.op; BLI_assert(mpr_prop->type->array_length == 1); UNUSED_VARS_NDEBUG(mpr_prop); const float *value = value_p; RNA_property_float_set(op->ptr, man->data.prop_angle, value[0]); - manipulator_spin_exec(man); + gizmo_spin_exec(man); } -static bool manipulator_mesh_spin_poll(const bContext *C, wmManipulatorGroupType *wgt) +static bool gizmo_mesh_spin_poll(const bContext *C, wmGizmoGroupType *wgt) { wmOperator *op = WM_operator_last_redo(C); if (op == NULL || !STREQ(op->type->idname, "MESH_OT_spin")) { - WM_manipulator_group_type_unlink_delayed_ptr(wgt); + WM_gizmo_group_type_unlink_delayed_ptr(wgt); return false; } return true; } -static void manipulator_mesh_spin_setup(const bContext *C, wmManipulatorGroup *mgroup) +static void gizmo_mesh_spin_setup(const bContext *C, wmGizmoGroup *mgroup) { wmOperator *op = WM_operator_last_redo(C); @@ -324,32 +324,32 @@ static void manipulator_mesh_spin_setup(const bContext *C, wmManipulatorGroup *m return; } - struct ManipulatorSpinGroup *man = MEM_callocN(sizeof(ManipulatorSpinGroup), __func__); + struct GizmoSpinGroup *man = MEM_callocN(sizeof(GizmoSpinGroup), __func__); mgroup->customdata = man; - const wmManipulatorType *wt_arrow = WM_manipulatortype_find("MANIPULATOR_WT_arrow_3d", true); - const wmManipulatorType *wt_grab = WM_manipulatortype_find("MANIPULATOR_WT_grab_3d", true); - const wmManipulatorType *wt_dial = WM_manipulatortype_find("MANIPULATOR_WT_dial_3d", true); + const wmGizmoType *wt_arrow = WM_gizmotype_find("GIZMO_WT_arrow_3d", true); + const wmGizmoType *wt_grab = WM_gizmotype_find("GIZMO_WT_grab_3d", true); + const wmGizmoType *wt_dial = WM_gizmotype_find("GIZMO_WT_dial_3d", true); - man->translate_z = WM_manipulator_new_ptr(wt_arrow, mgroup, NULL); - man->translate_c = WM_manipulator_new_ptr(wt_grab, mgroup, NULL); - man->rotate_c = WM_manipulator_new_ptr(wt_dial, mgroup, NULL); - man->angle_z = WM_manipulator_new_ptr(wt_dial, mgroup, NULL); + man->translate_z = WM_gizmo_new_ptr(wt_arrow, mgroup, NULL); + man->translate_c = WM_gizmo_new_ptr(wt_grab, mgroup, NULL); + man->rotate_c = WM_gizmo_new_ptr(wt_dial, mgroup, NULL); + man->angle_z = WM_gizmo_new_ptr(wt_dial, mgroup, NULL); - UI_GetThemeColor3fv(TH_MANIPULATOR_PRIMARY, man->translate_z->color); - UI_GetThemeColor3fv(TH_MANIPULATOR_PRIMARY, man->translate_c->color); - UI_GetThemeColor3fv(TH_MANIPULATOR_SECONDARY, man->rotate_c->color); + UI_GetThemeColor3fv(TH_GIZMO_PRIMARY, man->translate_z->color); + UI_GetThemeColor3fv(TH_GIZMO_PRIMARY, man->translate_c->color); + UI_GetThemeColor3fv(TH_GIZMO_SECONDARY, man->rotate_c->color); UI_GetThemeColor3fv(TH_AXIS_Z, man->angle_z->color); - RNA_enum_set(man->translate_z->ptr, "draw_style", ED_MANIPULATOR_ARROW_STYLE_NORMAL); - RNA_enum_set(man->translate_c->ptr, "draw_style", ED_MANIPULATOR_GRAB_STYLE_RING_2D); + RNA_enum_set(man->translate_z->ptr, "draw_style", ED_GIZMO_ARROW_STYLE_NORMAL); + RNA_enum_set(man->translate_c->ptr, "draw_style", ED_GIZMO_GRAB_STYLE_RING_2D); - WM_manipulator_set_flag(man->translate_c, WM_MANIPULATOR_DRAW_VALUE, true); - WM_manipulator_set_flag(man->rotate_c, WM_MANIPULATOR_DRAW_VALUE, true); - WM_manipulator_set_flag(man->angle_z, WM_MANIPULATOR_DRAW_VALUE, true); + WM_gizmo_set_flag(man->translate_c, WM_GIZMO_DRAW_VALUE, true); + WM_gizmo_set_flag(man->rotate_c, WM_GIZMO_DRAW_VALUE, true); + WM_gizmo_set_flag(man->angle_z, WM_GIZMO_DRAW_VALUE, true); - WM_manipulator_set_scale(man->angle_z, 0.5f); + WM_gizmo_set_scale(man->angle_z, 0.5f); { man->data.context = (bContext *)C; @@ -359,42 +359,42 @@ static void manipulator_mesh_spin_setup(const bContext *C, wmManipulatorGroup *m man->data.prop_angle = RNA_struct_find_property(op->ptr, "angle"); } - manipulator_mesh_spin_update_from_op(man); + gizmo_mesh_spin_update_from_op(man); /* Setup property callbacks */ { - WM_manipulator_target_property_def_func( + WM_gizmo_target_property_def_func( man->translate_z, "offset", - &(const struct wmManipulatorPropertyFnParams) { - .value_get_fn = manipulator_spin_prop_depth_get, - .value_set_fn = manipulator_spin_prop_depth_set, + &(const struct wmGizmoPropertyFnParams) { + .value_get_fn = gizmo_spin_prop_depth_get, + .value_set_fn = gizmo_spin_prop_depth_set, .range_get_fn = NULL, .user_data = NULL, }); - WM_manipulator_target_property_def_func( + WM_gizmo_target_property_def_func( man->translate_c, "offset", - &(const struct wmManipulatorPropertyFnParams) { - .value_get_fn = manipulator_spin_prop_translate_get, - .value_set_fn = manipulator_spin_prop_translate_set, + &(const struct wmGizmoPropertyFnParams) { + .value_get_fn = gizmo_spin_prop_translate_get, + .value_set_fn = gizmo_spin_prop_translate_set, .range_get_fn = NULL, .user_data = NULL, }); - WM_manipulator_target_property_def_func( + WM_gizmo_target_property_def_func( man->rotate_c, "offset", - &(const struct wmManipulatorPropertyFnParams) { - .value_get_fn = manipulator_spin_prop_axis_angle_get, - .value_set_fn = manipulator_spin_prop_axis_angle_set, + &(const struct wmGizmoPropertyFnParams) { + .value_get_fn = gizmo_spin_prop_axis_angle_get, + .value_set_fn = gizmo_spin_prop_axis_angle_set, .range_get_fn = NULL, .user_data = NULL, }); - WM_manipulator_target_property_def_func( + WM_gizmo_target_property_def_func( man->angle_z, "offset", - &(const struct wmManipulatorPropertyFnParams) { - .value_get_fn = manipulator_spin_prop_angle_get, - .value_set_fn = manipulator_spin_prop_angle_set, + &(const struct wmGizmoPropertyFnParams) { + .value_get_fn = gizmo_spin_prop_angle_get, + .value_set_fn = gizmo_spin_prop_angle_set, .range_get_fn = NULL, .user_data = NULL, }); @@ -402,34 +402,34 @@ static void manipulator_mesh_spin_setup(const bContext *C, wmManipulatorGroup *m } } -static void manipulator_mesh_spin_draw_prepare( - const bContext *UNUSED(C), wmManipulatorGroup *mgroup) +static void gizmo_mesh_spin_draw_prepare( + const bContext *UNUSED(C), wmGizmoGroup *mgroup) { - ManipulatorSpinGroup *man = mgroup->customdata; + GizmoSpinGroup *man = mgroup->customdata; if (man->data.op->next) { man->data.op = WM_operator_last_redo((bContext *)man->data.context); } - manipulator_mesh_spin_update_from_op(man); + gizmo_mesh_spin_update_from_op(man); } -static void MESH_WGT_spin(struct wmManipulatorGroupType *wgt) +static void MESH_WGT_spin(struct wmGizmoGroupType *wgt) { wgt->name = "Mesh Spin"; wgt->idname = "MESH_WGT_spin"; - wgt->flag = WM_MANIPULATORGROUPTYPE_3D; + wgt->flag = WM_GIZMOGROUPTYPE_3D; wgt->mmap_params.spaceid = SPACE_VIEW3D; wgt->mmap_params.regionid = RGN_TYPE_WINDOW; - wgt->poll = manipulator_mesh_spin_poll; - wgt->setup = manipulator_mesh_spin_setup; - wgt->draw_prepare = manipulator_mesh_spin_draw_prepare; + wgt->poll = gizmo_mesh_spin_poll; + wgt->setup = gizmo_mesh_spin_setup; + wgt->draw_prepare = gizmo_mesh_spin_draw_prepare; } /** \} */ -#endif /* USE_MANIPULATOR */ +#endif /* USE_GIZMO */ /* -------------------------------------------------------------------- */ /** \name Spin Operator @@ -508,11 +508,11 @@ static int edbm_spin_invoke(bContext *C, wmOperator *op, const wmEvent *UNUSED(e int ret = edbm_spin_exec(C, op); -#ifdef USE_MANIPULATOR +#ifdef USE_GIZMO if (ret & OPERATOR_FINISHED) { - /* Setup manipulators */ - if (v3d && ((v3d->mpr_flag & V3D_MANIPULATOR_HIDE) == 0)) { - WM_manipulator_group_type_ensure("MESH_WGT_spin"); + /* Setup gizmos */ + if (v3d && ((v3d->mpr_flag & V3D_GIZMO_HIDE) == 0)) { + WM_gizmo_group_type_ensure("MESH_WGT_spin"); } } #endif @@ -548,7 +548,7 @@ void MESH_OT_spin(wmOperatorType *ot) "Center", "Center in global view space", -1e4f, 1e4f); RNA_def_float_vector(ot->srna, "axis", 3, NULL, -1.0f, 1.0f, "Axis", "Axis in global view space", -1.0f, 1.0f); -#ifdef USE_MANIPULATOR - WM_manipulatorgrouptype_append(MESH_WGT_spin); +#ifdef USE_GIZMO + WM_gizmogrouptype_append(MESH_WGT_spin); #endif } diff --git a/source/blender/editors/mesh/editmesh_inset.c b/source/blender/editors/mesh/editmesh_inset.c index 1f1d2f5a2e1..1be180b852c 100644 --- a/source/blender/editors/mesh/editmesh_inset.c +++ b/source/blender/editors/mesh/editmesh_inset.c @@ -174,7 +174,7 @@ static bool edbm_inset_init(bContext *C, wmOperator *op, const bool is_modal) G.moving = G_TRANSFORM_EDIT; if (v3d) { opdata->mpr_flag = v3d->mpr_flag; - v3d->mpr_flag = V3D_MANIPULATOR_HIDE; + v3d->mpr_flag = V3D_GIZMO_HIDE; } } diff --git a/source/blender/editors/mesh/editmesh_polybuild.c b/source/blender/editors/mesh/editmesh_polybuild.c index e8bcfb5eb08..86c9fc0243b 100644 --- a/source/blender/editors/mesh/editmesh_polybuild.c +++ b/source/blender/editors/mesh/editmesh_polybuild.c @@ -390,7 +390,7 @@ void MESH_OT_polybuild_dissolve_at_cursor(wmOperatorType *ot) /** \} */ /* -------------------------------------------------------------------- */ -/** \name Cursor Manipulator +/** \name Cursor Gizmo * * \note This may need its own file, for now not. * \{ */ diff --git a/source/blender/editors/mesh/mesh_intern.h b/source/blender/editors/mesh/mesh_intern.h index 3800ab9dddd..cc9448e5e06 100644 --- a/source/blender/editors/mesh/mesh_intern.h +++ b/source/blender/editors/mesh/mesh_intern.h @@ -92,8 +92,8 @@ void MESH_OT_primitive_monkey_add(struct wmOperatorType *ot); void MESH_OT_primitive_uv_sphere_add(struct wmOperatorType *ot); void MESH_OT_primitive_ico_sphere_add(struct wmOperatorType *ot); -/* *** editmesh_add_manipulator.c *** */ -void MESH_OT_primitive_cube_add_manipulator(struct wmOperatorType *ot); +/* *** editmesh_add_gizmo.c *** */ +void MESH_OT_primitive_cube_add_gizmo(struct wmOperatorType *ot); /* *** editmesh_bevel.c *** */ void MESH_OT_bevel(struct wmOperatorType *ot); diff --git a/source/blender/editors/mesh/mesh_ops.c b/source/blender/editors/mesh/mesh_ops.c index 2bfc0634f1e..0fcc5ada854 100644 --- a/source/blender/editors/mesh/mesh_ops.c +++ b/source/blender/editors/mesh/mesh_ops.c @@ -78,7 +78,7 @@ void ED_operatortypes_mesh(void) WM_operatortype_append(MESH_OT_primitive_uv_sphere_add); WM_operatortype_append(MESH_OT_primitive_ico_sphere_add); - WM_operatortype_append(MESH_OT_primitive_cube_add_manipulator); + WM_operatortype_append(MESH_OT_primitive_cube_add_gizmo); WM_operatortype_append(MESH_OT_duplicate); WM_operatortype_append(MESH_OT_remove_doubles); diff --git a/source/blender/editors/screen/area.c b/source/blender/editors/screen/area.c index 137fd01a146..41c3209dbb1 100644 --- a/source/blender/editors/screen/area.c +++ b/source/blender/editors/screen/area.c @@ -2936,8 +2936,8 @@ void ED_region_message_subscribe( struct bScreen *screen, struct ScrArea *sa, struct ARegion *ar, struct wmMsgBus *mbus) { - if (ar->manipulator_map != NULL) { - WM_manipulatormap_message_subscribe(C, ar->manipulator_map, ar, mbus); + if (ar->gizmo_map != NULL) { + WM_gizmomap_message_subscribe(C, ar->gizmo_map, ar, mbus); } if (BLI_listbase_is_empty(&ar->uiblocks)) { diff --git a/source/blender/editors/screen/screen_edit.c b/source/blender/editors/screen/screen_edit.c index 8fbf74ed800..1d14940085b 100644 --- a/source/blender/editors/screen/screen_edit.c +++ b/source/blender/editors/screen/screen_edit.c @@ -381,8 +381,8 @@ static void region_cursor_set(wmWindow *win, bool swin_changed) for (ARegion *ar = sa->regionbase.first; ar; ar = ar->next) { if (ar == screen->active_region) { if (swin_changed || (ar->type && ar->type->event_cursor)) { - if (ar->manipulator_map != NULL) { - if (WM_manipulatormap_cursor_set(ar->manipulator_map, win)) { + if (ar->gizmo_map != NULL) { + if (WM_gizmomap_cursor_set(ar->gizmo_map, win)) { return; } } diff --git a/source/blender/editors/space_api/spacetypes.c b/source/blender/editors/space_api/spacetypes.c index 37f5ed642fe..7246812dc82 100644 --- a/source/blender/editors/space_api/spacetypes.c +++ b/source/blender/editors/space_api/spacetypes.c @@ -129,22 +129,22 @@ void ED_spacetypes_init(void) ED_screen_user_menu_register(); - /* manipulator types */ - ED_manipulatortypes_button_2d(); - ED_manipulatortypes_dial_3d(); - ED_manipulatortypes_grab_3d(); - ED_manipulatortypes_arrow_2d(); - ED_manipulatortypes_arrow_3d(); - ED_manipulatortypes_primitive_3d(); - ED_manipulatortypes_cage_2d(); - ED_manipulatortypes_cage_3d(); - - /* register types for operators and manipulators */ + /* gizmo types */ + ED_gizmotypes_button_2d(); + ED_gizmotypes_dial_3d(); + ED_gizmotypes_grab_3d(); + ED_gizmotypes_arrow_2d(); + ED_gizmotypes_arrow_3d(); + ED_gizmotypes_primitive_3d(); + ED_gizmotypes_cage_2d(); + ED_gizmotypes_cage_3d(); + + /* register types for operators and gizmos */ spacetypes = BKE_spacetypes_list(); for (type = spacetypes->first; type; type = type->next) { - /* init manipulator types first, operator-types need them */ - if (type->manipulators) { - type->manipulators(); + /* init gizmo types first, operator-types need them */ + if (type->gizmos) { + type->gizmos(); } if (type->operatortypes) { type->operatortypes(); diff --git a/source/blender/editors/space_image/space_image.c b/source/blender/editors/space_image/space_image.c index 650f377787a..68b0f42768a 100644 --- a/source/blender/editors/space_image/space_image.c +++ b/source/blender/editors/space_image/space_image.c @@ -581,25 +581,25 @@ static int image_context(const bContext *C, const char *member, bContextDataResu return 0; } -static void IMAGE_WGT_manipulator2d(wmManipulatorGroupType *wgt) +static void IMAGE_WGT_gizmo2d(wmGizmoGroupType *wgt) { - wgt->name = "UV Transform Manipulator"; - wgt->idname = "IMAGE_WGT_manipulator2d"; + wgt->name = "UV Transform Gizmo"; + wgt->idname = "IMAGE_WGT_gizmo2d"; - wgt->flag |= WM_MANIPULATORGROUPTYPE_PERSISTENT; + wgt->flag |= WM_GIZMOGROUPTYPE_PERSISTENT; - wgt->poll = ED_widgetgroup_manipulator2d_poll; - wgt->setup = ED_widgetgroup_manipulator2d_setup; - wgt->refresh = ED_widgetgroup_manipulator2d_refresh; - wgt->draw_prepare = ED_widgetgroup_manipulator2d_draw_prepare; + wgt->poll = ED_widgetgroup_gizmo2d_poll; + wgt->setup = ED_widgetgroup_gizmo2d_setup; + wgt->refresh = ED_widgetgroup_gizmo2d_refresh; + wgt->draw_prepare = ED_widgetgroup_gizmo2d_draw_prepare; } static void image_widgets(void) { - wmManipulatorMapType *mmap_type = WM_manipulatormaptype_ensure( - &(const struct wmManipulatorMapType_Params){SPACE_IMAGE, RGN_TYPE_WINDOW}); + wmGizmoMapType *mmap_type = WM_gizmomaptype_ensure( + &(const struct wmGizmoMapType_Params){SPACE_IMAGE, RGN_TYPE_WINDOW}); - WM_manipulatorgrouptype_append_and_link(mmap_type, IMAGE_WGT_manipulator2d); + WM_gizmogrouptype_append_and_link(mmap_type, IMAGE_WGT_gizmo2d); } /************************** main region ***************************/ @@ -665,15 +665,15 @@ static void image_main_region_init(wmWindowManager *wm, ARegion *ar) // image space manages own v2d // UI_view2d_region_reinit(&ar->v2d, V2D_COMMONVIEW_STANDARD, ar->winx, ar->winy); - /* manipulators */ - if (ar->manipulator_map == NULL) { - const struct wmManipulatorMapType_Params wmap_params = { + /* gizmos */ + if (ar->gizmo_map == NULL) { + const struct wmGizmoMapType_Params wmap_params = { .spaceid = SPACE_IMAGE, .regionid = RGN_TYPE_WINDOW, }; - ar->manipulator_map = WM_manipulatormap_new_from_type(&wmap_params); + ar->gizmo_map = WM_gizmomap_new_from_type(&wmap_params); } - WM_manipulatormap_add_handlers(ar, ar->manipulator_map); + WM_gizmomap_add_handlers(ar, ar->gizmo_map); /* mask polls mode */ keymap = WM_keymap_find(wm->defaultconf, "Mask Editing", 0, 0); @@ -807,7 +807,7 @@ static void image_main_region_draw(const bContext *C, ARegion *ar) UI_view2d_view_restore(C); } - WM_manipulatormap_draw(ar->manipulator_map, C, WM_MANIPULATORMAP_DRAWSTEP_2D); + WM_gizmomap_draw(ar->gizmo_map, C, WM_GIZMOMAP_DRAWSTEP_2D); draw_image_cache(C, ar); @@ -827,7 +827,7 @@ static void image_main_region_listener( switch (wmn->category) { case NC_GEOM: if (ELEM(wmn->data, ND_DATA, ND_SELECT)) - WM_manipulatormap_tag_refresh(ar->manipulator_map); + WM_gizmomap_tag_refresh(ar->gizmo_map); break; case NC_GPENCIL: if (ELEM(wmn->action, NA_EDITED, NA_SELECTED)) @@ -838,7 +838,7 @@ static void image_main_region_listener( case NC_IMAGE: if (wmn->action == NA_PAINTING) ED_region_tag_redraw(ar); - WM_manipulatormap_tag_refresh(ar->manipulator_map); + WM_gizmomap_tag_refresh(ar->gizmo_map); break; case NC_MATERIAL: if (wmn->data == ND_SHADING_LINKS) { @@ -1089,7 +1089,7 @@ void ED_spacetype_image(void) st->refresh = image_refresh; st->listener = image_listener; st->context = image_context; - st->manipulators = image_widgets; + st->gizmos = image_widgets; st->id_remap = image_id_remap; /* regions: main window */ diff --git a/source/blender/editors/space_node/node_draw.c b/source/blender/editors/space_node/node_draw.c index 5b91796d41c..c632b354440 100644 --- a/source/blender/editors/space_node/node_draw.c +++ b/source/blender/editors/space_node/node_draw.c @@ -1412,7 +1412,7 @@ void drawnodespace(const bContext *C, ARegion *ar) wmOrtho2_pixelspace(ar->winx, ar->winy); - WM_manipulatormap_draw(ar->manipulator_map, C, WM_MANIPULATORMAP_DRAWSTEP_2D); + WM_gizmomap_draw(ar->gizmo_map, C, WM_GIZMOMAP_DRAWSTEP_2D); gpuPopMatrix(); gpuLoadProjectionMatrix(original_proj); diff --git a/source/blender/editors/space_node/node_gizmo.c b/source/blender/editors/space_node/node_gizmo.c index 62b4a4b6583..37ea53aa710 100644 --- a/source/blender/editors/space_node/node_gizmo.c +++ b/source/blender/editors/space_node/node_gizmo.c @@ -53,7 +53,7 @@ /** \name Local Utilities * \{ */ -static void node_manipulator_calc_matrix_space( +static void node_gizmo_calc_matrix_space( const SpaceNode *snode, const ARegion *ar, float matrix_space[4][4]) { unit_m4(matrix_space); @@ -63,7 +63,7 @@ static void node_manipulator_calc_matrix_space( matrix_space[3][1] = (ar->winy / 2) + snode->yof; } -static void node_manipulator_calc_matrix_space_with_image_dims( +static void node_gizmo_calc_matrix_space_with_image_dims( const SpaceNode *snode, const ARegion *ar, const float image_dims[2], float matrix_space[4][4]) { unit_m4(matrix_space); @@ -79,11 +79,11 @@ static void node_manipulator_calc_matrix_space_with_image_dims( /* -------------------------------------------------------------------- */ -/** \name Backdrop Manipulator +/** \name Backdrop Gizmo * \{ */ -static void manipulator_node_backdrop_prop_matrix_get( - const wmManipulator *UNUSED(mpr), wmManipulatorProperty *mpr_prop, +static void gizmo_node_backdrop_prop_matrix_get( + const wmGizmo *UNUSED(mpr), wmGizmoProperty *mpr_prop, void *value_p) { float (*matrix)[4] = value_p; @@ -95,8 +95,8 @@ static void manipulator_node_backdrop_prop_matrix_get( matrix[3][1] = snode->yof; } -static void manipulator_node_backdrop_prop_matrix_set( - const wmManipulator *UNUSED(mpr), wmManipulatorProperty *mpr_prop, +static void gizmo_node_backdrop_prop_matrix_set( + const wmGizmo *UNUSED(mpr), wmGizmoProperty *mpr_prop, const void *value_p) { const float (*matrix)[4] = value_p; @@ -108,7 +108,7 @@ static void manipulator_node_backdrop_prop_matrix_set( snode->yof = matrix[3][1]; } -static bool WIDGETGROUP_node_transform_poll(const bContext *C, wmManipulatorGroupType *UNUSED(wgt)) +static bool WIDGETGROUP_node_transform_poll(const bContext *C, wmGizmoGroupType *UNUSED(wgt)) { SpaceNode *snode = CTX_wm_space_node(C); @@ -127,22 +127,22 @@ static bool WIDGETGROUP_node_transform_poll(const bContext *C, wmManipulatorGrou return false; } -static void WIDGETGROUP_node_transform_setup(const bContext *UNUSED(C), wmManipulatorGroup *mgroup) +static void WIDGETGROUP_node_transform_setup(const bContext *UNUSED(C), wmGizmoGroup *mgroup) { - wmManipulatorWrapper *wwrapper = MEM_mallocN(sizeof(wmManipulatorWrapper), __func__); + wmGizmoWrapper *wwrapper = MEM_mallocN(sizeof(wmGizmoWrapper), __func__); - wwrapper->manipulator = WM_manipulator_new("MANIPULATOR_WT_cage_2d", mgroup, NULL); + wwrapper->gizmo = WM_gizmo_new("GIZMO_WT_cage_2d", mgroup, NULL); - RNA_enum_set(wwrapper->manipulator->ptr, "transform", - ED_MANIPULATOR_CAGE2D_XFORM_FLAG_TRANSLATE | ED_MANIPULATOR_CAGE2D_XFORM_FLAG_SCALE_UNIFORM); + RNA_enum_set(wwrapper->gizmo->ptr, "transform", + ED_GIZMO_CAGE2D_XFORM_FLAG_TRANSLATE | ED_GIZMO_CAGE2D_XFORM_FLAG_SCALE_UNIFORM); mgroup->customdata = wwrapper; } -static void WIDGETGROUP_node_transform_refresh(const bContext *C, wmManipulatorGroup *mgroup) +static void WIDGETGROUP_node_transform_refresh(const bContext *C, wmGizmoGroup *mgroup) { Main *bmain = CTX_data_main(C); - wmManipulator *cage = ((wmManipulatorWrapper *)mgroup->customdata)->manipulator; + wmGizmo *cage = ((wmGizmoWrapper *)mgroup->customdata)->gizmo; const ARegion *ar = CTX_wm_region(C); /* center is always at the origin */ const float origin[3] = {ar->winx / 2, ar->winy / 2}; @@ -158,40 +158,40 @@ static void WIDGETGROUP_node_transform_refresh(const bContext *C, wmManipulatorG }; RNA_float_set_array(cage->ptr, "dimensions", dims); - WM_manipulator_set_matrix_location(cage, origin); - WM_manipulator_set_flag(cage, WM_MANIPULATOR_HIDDEN, false); + WM_gizmo_set_matrix_location(cage, origin); + WM_gizmo_set_flag(cage, WM_GIZMO_HIDDEN, false); /* need to set property here for undo. TODO would prefer to do this in _init */ SpaceNode *snode = CTX_wm_space_node(C); #if 0 PointerRNA nodeptr; RNA_pointer_create(snode->id, &RNA_SpaceNodeEditor, snode, &nodeptr); - WM_manipulator_target_property_def_rna(cage, "offset", &nodeptr, "backdrop_offset", -1); - WM_manipulator_target_property_def_rna(cage, "scale", &nodeptr, "backdrop_zoom", -1); + WM_gizmo_target_property_def_rna(cage, "offset", &nodeptr, "backdrop_offset", -1); + WM_gizmo_target_property_def_rna(cage, "scale", &nodeptr, "backdrop_zoom", -1); #endif - WM_manipulator_target_property_def_func( + WM_gizmo_target_property_def_func( cage, "matrix", - &(const struct wmManipulatorPropertyFnParams) { - .value_get_fn = manipulator_node_backdrop_prop_matrix_get, - .value_set_fn = manipulator_node_backdrop_prop_matrix_set, + &(const struct wmGizmoPropertyFnParams) { + .value_get_fn = gizmo_node_backdrop_prop_matrix_get, + .value_set_fn = gizmo_node_backdrop_prop_matrix_set, .range_get_fn = NULL, .user_data = snode, }); } else { - WM_manipulator_set_flag(cage, WM_MANIPULATOR_HIDDEN, true); + WM_gizmo_set_flag(cage, WM_GIZMO_HIDDEN, true); } BKE_image_release_ibuf(ima, ibuf, lock); } -void NODE_WGT_backdrop_transform(wmManipulatorGroupType *wgt) +void NODE_WGT_backdrop_transform(wmGizmoGroupType *wgt) { wgt->name = "Backdrop Transform Widget"; wgt->idname = "NODE_WGT_backdrop_transform"; - wgt->flag |= WM_MANIPULATORGROUPTYPE_PERSISTENT; + wgt->flag |= WM_GIZMOGROUPTYPE_PERSISTENT; wgt->poll = WIDGETGROUP_node_transform_poll; wgt->setup = WIDGETGROUP_node_transform_setup; @@ -202,11 +202,11 @@ void NODE_WGT_backdrop_transform(wmManipulatorGroupType *wgt) /* -------------------------------------------------------------------- */ -/** \name Crop Manipulator +/** \name Crop Gizmo * \{ */ struct NodeCropWidgetGroup { - wmManipulator *border; + wmGizmo *border; struct { float dims[2]; @@ -219,7 +219,7 @@ struct NodeCropWidgetGroup { } update_data; }; -static void manipulator_node_crop_update(struct NodeCropWidgetGroup *crop_group) +static void gizmo_node_crop_update(struct NodeCropWidgetGroup *crop_group) { RNA_property_update(crop_group->update_data.context, &crop_group->update_data.ptr, crop_group->update_data.prop); } @@ -257,8 +257,8 @@ static void two_xy_from_rect(NodeTwoXYs *nxy, const rctf *rect, const float dims } /* scale callbacks */ -static void manipulator_node_crop_prop_matrix_get( - const wmManipulator *mpr, wmManipulatorProperty *mpr_prop, +static void gizmo_node_crop_prop_matrix_get( + const wmGizmo *mpr, wmGizmoProperty *mpr_prop, void *value_p) { float (*matrix)[4] = value_p; @@ -276,8 +276,8 @@ static void manipulator_node_crop_prop_matrix_get( matrix[3][1] = (BLI_rctf_cent_y(&rct) - 0.5f) * dims[1]; } -static void manipulator_node_crop_prop_matrix_set( - const wmManipulator *mpr, wmManipulatorProperty *mpr_prop, +static void gizmo_node_crop_prop_matrix_set( + const wmGizmo *mpr, wmGizmoProperty *mpr_prop, const void *value_p) { const float (*matrix)[4] = value_p; @@ -293,10 +293,10 @@ static void manipulator_node_crop_prop_matrix_set( BLI_rctf_recenter(&rct, (matrix[3][0] / dims[0]) + 0.5f, (matrix[3][1] / dims[1]) + 0.5f); BLI_rctf_isect(&(rctf){.xmin = 0, .ymin = 0, .xmax = 1, .ymax = 1}, &rct, &rct); two_xy_from_rect(nxy, &rct, dims, is_relative); - manipulator_node_crop_update(crop_group); + gizmo_node_crop_update(crop_group); } -static bool WIDGETGROUP_node_crop_poll(const bContext *C, wmManipulatorGroupType *UNUSED(wgt)) +static bool WIDGETGROUP_node_crop_poll(const bContext *C, wmGizmoGroupType *UNUSED(wgt)) { SpaceNode *snode = CTX_wm_space_node(C); @@ -318,33 +318,33 @@ static bool WIDGETGROUP_node_crop_poll(const bContext *C, wmManipulatorGroupType return false; } -static void WIDGETGROUP_node_crop_setup(const bContext *UNUSED(C), wmManipulatorGroup *mgroup) +static void WIDGETGROUP_node_crop_setup(const bContext *UNUSED(C), wmGizmoGroup *mgroup) { struct NodeCropWidgetGroup *crop_group = MEM_mallocN(sizeof(struct NodeCropWidgetGroup), __func__); - crop_group->border = WM_manipulator_new("MANIPULATOR_WT_cage_2d", mgroup, NULL); + crop_group->border = WM_gizmo_new("GIZMO_WT_cage_2d", mgroup, NULL); RNA_enum_set(crop_group->border->ptr, "transform", - ED_MANIPULATOR_CAGE2D_XFORM_FLAG_TRANSLATE | ED_MANIPULATOR_CAGE2D_XFORM_FLAG_SCALE); + ED_GIZMO_CAGE2D_XFORM_FLAG_TRANSLATE | ED_GIZMO_CAGE2D_XFORM_FLAG_SCALE); mgroup->customdata = crop_group; } -static void WIDGETGROUP_node_crop_draw_prepare(const bContext *C, wmManipulatorGroup *mgroup) +static void WIDGETGROUP_node_crop_draw_prepare(const bContext *C, wmGizmoGroup *mgroup) { ARegion *ar = CTX_wm_region(C); - wmManipulator *mpr = mgroup->manipulators.first; + wmGizmo *mpr = mgroup->gizmos.first; SpaceNode *snode = CTX_wm_space_node(C); - node_manipulator_calc_matrix_space(snode, ar, mpr->matrix_space); + node_gizmo_calc_matrix_space(snode, ar, mpr->matrix_space); } -static void WIDGETGROUP_node_crop_refresh(const bContext *C, wmManipulatorGroup *mgroup) +static void WIDGETGROUP_node_crop_refresh(const bContext *C, wmGizmoGroup *mgroup) { Main *bmain = CTX_data_main(C); struct NodeCropWidgetGroup *crop_group = mgroup->customdata; - wmManipulator *mpr = crop_group->border; + wmGizmo *mpr = crop_group->border; void *lock; Image *ima = BKE_image_verify_viewer(bmain, IMA_TYPE_COMPOSITE, "Viewer Node"); @@ -355,7 +355,7 @@ static void WIDGETGROUP_node_crop_refresh(const bContext *C, wmManipulatorGroup crop_group->state.dims[1] = (ibuf->y > 0) ? ibuf->y : 64.0f; RNA_float_set_array(mpr->ptr, "dimensions", crop_group->state.dims); - WM_manipulator_set_flag(mpr, WM_MANIPULATOR_HIDDEN, false); + WM_gizmo_set_flag(mpr, WM_GIZMO_HIDDEN, false); SpaceNode *snode = CTX_wm_space_node(C); bNode *node = nodeGetActive(snode->edittree); @@ -364,28 +364,28 @@ static void WIDGETGROUP_node_crop_refresh(const bContext *C, wmManipulatorGroup RNA_pointer_create((ID *)snode->edittree, &RNA_CompositorNodeCrop, node, &crop_group->update_data.ptr); crop_group->update_data.prop = RNA_struct_find_property(&crop_group->update_data.ptr, "relative"); - WM_manipulator_target_property_def_func( + WM_gizmo_target_property_def_func( mpr, "matrix", - &(const struct wmManipulatorPropertyFnParams) { - .value_get_fn = manipulator_node_crop_prop_matrix_get, - .value_set_fn = manipulator_node_crop_prop_matrix_set, + &(const struct wmGizmoPropertyFnParams) { + .value_get_fn = gizmo_node_crop_prop_matrix_get, + .value_set_fn = gizmo_node_crop_prop_matrix_set, .range_get_fn = NULL, .user_data = node, }); } else { - WM_manipulator_set_flag(mpr, WM_MANIPULATOR_HIDDEN, true); + WM_gizmo_set_flag(mpr, WM_GIZMO_HIDDEN, true); } BKE_image_release_ibuf(ima, ibuf, lock); } -void NODE_WGT_backdrop_crop(wmManipulatorGroupType *wgt) +void NODE_WGT_backdrop_crop(wmGizmoGroupType *wgt) { wgt->name = "Backdrop Crop Widget"; wgt->idname = "NODE_WGT_backdrop_crop"; - wgt->flag |= WM_MANIPULATORGROUPTYPE_PERSISTENT; + wgt->flag |= WM_GIZMOGROUPTYPE_PERSISTENT; wgt->poll = WIDGETGROUP_node_crop_poll; wgt->setup = WIDGETGROUP_node_crop_setup; @@ -401,14 +401,14 @@ void NODE_WGT_backdrop_crop(wmManipulatorGroupType *wgt) * \{ */ struct NodeSunBeamsWidgetGroup { - wmManipulator *manipulator; + wmGizmo *gizmo; struct { float dims[2]; } state; }; -static bool WIDGETGROUP_node_sbeam_poll(const bContext *C, wmManipulatorGroupType *UNUSED(wgt)) +static bool WIDGETGROUP_node_sbeam_poll(const bContext *C, wmGizmoGroupType *UNUSED(wgt)) { SpaceNode *snode = CTX_wm_space_node(C); @@ -427,36 +427,36 @@ static bool WIDGETGROUP_node_sbeam_poll(const bContext *C, wmManipulatorGroupTyp return false; } -static void WIDGETGROUP_node_sbeam_setup(const bContext *UNUSED(C), wmManipulatorGroup *mgroup) +static void WIDGETGROUP_node_sbeam_setup(const bContext *UNUSED(C), wmGizmoGroup *mgroup) { struct NodeSunBeamsWidgetGroup *sbeam_group = MEM_mallocN(sizeof(struct NodeSunBeamsWidgetGroup), __func__); - sbeam_group->manipulator = WM_manipulator_new("MANIPULATOR_WT_grab_3d", mgroup, NULL); - wmManipulator *mpr = sbeam_group->manipulator; + sbeam_group->gizmo = WM_gizmo_new("GIZMO_WT_grab_3d", mgroup, NULL); + wmGizmo *mpr = sbeam_group->gizmo; - RNA_enum_set(mpr->ptr, "draw_style", ED_MANIPULATOR_GRAB_STYLE_CROSS_2D); + RNA_enum_set(mpr->ptr, "draw_style", ED_GIZMO_GRAB_STYLE_CROSS_2D); mpr->scale_basis = 0.05f; mgroup->customdata = sbeam_group; } -static void WIDGETGROUP_node_sbeam_draw_prepare(const bContext *C, wmManipulatorGroup *mgroup) +static void WIDGETGROUP_node_sbeam_draw_prepare(const bContext *C, wmGizmoGroup *mgroup) { struct NodeSunBeamsWidgetGroup *sbeam_group = mgroup->customdata; ARegion *ar = CTX_wm_region(C); - wmManipulator *mpr = mgroup->manipulators.first; + wmGizmo *mpr = mgroup->gizmos.first; SpaceNode *snode = CTX_wm_space_node(C); - node_manipulator_calc_matrix_space_with_image_dims(snode, ar, sbeam_group->state.dims, mpr->matrix_space); + node_gizmo_calc_matrix_space_with_image_dims(snode, ar, sbeam_group->state.dims, mpr->matrix_space); } -static void WIDGETGROUP_node_sbeam_refresh(const bContext *C, wmManipulatorGroup *mgroup) +static void WIDGETGROUP_node_sbeam_refresh(const bContext *C, wmGizmoGroup *mgroup) { Main *bmain = CTX_data_main(C); struct NodeSunBeamsWidgetGroup *sbeam_group = mgroup->customdata; - wmManipulator *mpr = sbeam_group->manipulator; + wmGizmo *mpr = sbeam_group->gizmo; void *lock; Image *ima = BKE_image_verify_viewer(bmain, IMA_TYPE_COMPOSITE, "Viewer Node"); @@ -472,23 +472,23 @@ static void WIDGETGROUP_node_sbeam_refresh(const bContext *C, wmManipulatorGroup /* need to set property here for undo. TODO would prefer to do this in _init */ PointerRNA nodeptr; RNA_pointer_create((ID *)snode->edittree, &RNA_CompositorNodeSunBeams, node, &nodeptr); - WM_manipulator_target_property_def_rna(mpr, "offset", &nodeptr, "source", -1); + WM_gizmo_target_property_def_rna(mpr, "offset", &nodeptr, "source", -1); - WM_manipulator_set_flag(mpr, WM_MANIPULATOR_DRAW_MODAL, true); + WM_gizmo_set_flag(mpr, WM_GIZMO_DRAW_MODAL, true); } else { - WM_manipulator_set_flag(mpr, WM_MANIPULATOR_HIDDEN, true); + WM_gizmo_set_flag(mpr, WM_GIZMO_HIDDEN, true); } BKE_image_release_ibuf(ima, ibuf, lock); } -void NODE_WGT_backdrop_sun_beams(wmManipulatorGroupType *wgt) +void NODE_WGT_backdrop_sun_beams(wmGizmoGroupType *wgt) { wgt->name = "Sun Beams Widget"; wgt->idname = "NODE_WGT_sbeam"; - wgt->flag |= WM_MANIPULATORGROUPTYPE_PERSISTENT; + wgt->flag |= WM_GIZMOGROUPTYPE_PERSISTENT; wgt->poll = WIDGETGROUP_node_sbeam_poll; wgt->setup = WIDGETGROUP_node_sbeam_setup; @@ -506,14 +506,14 @@ void NODE_WGT_backdrop_sun_beams(wmManipulatorGroupType *wgt) * \{ */ struct NodeCornerPinWidgetGroup { - wmManipulator *manipulators[4]; + wmGizmo *gizmos[4]; struct { float dims[2]; } state; }; -static bool WIDGETGROUP_node_corner_pin_poll(const bContext *C, wmManipulatorGroupType *UNUSED(wgt)) +static bool WIDGETGROUP_node_corner_pin_poll(const bContext *C, wmGizmoGroupType *UNUSED(wgt)) { SpaceNode *snode = CTX_wm_space_node(C); @@ -532,16 +532,16 @@ static bool WIDGETGROUP_node_corner_pin_poll(const bContext *C, wmManipulatorGro return false; } -static void WIDGETGROUP_node_corner_pin_setup(const bContext *UNUSED(C), wmManipulatorGroup *mgroup) +static void WIDGETGROUP_node_corner_pin_setup(const bContext *UNUSED(C), wmGizmoGroup *mgroup) { struct NodeCornerPinWidgetGroup *cpin_group = MEM_mallocN(sizeof(struct NodeCornerPinWidgetGroup), __func__); - const wmManipulatorType *wt_grab_3d = WM_manipulatortype_find("MANIPULATOR_WT_grab_3d", false); + const wmGizmoType *wt_grab_3d = WM_gizmotype_find("GIZMO_WT_grab_3d", false); for (int i = 0; i < 4; i++) { - cpin_group->manipulators[i] = WM_manipulator_new_ptr(wt_grab_3d, mgroup, NULL); - wmManipulator *mpr = cpin_group->manipulators[i]; + cpin_group->gizmos[i] = WM_gizmo_new_ptr(wt_grab_3d, mgroup, NULL); + wmGizmo *mpr = cpin_group->gizmos[i]; - RNA_enum_set(mpr->ptr, "draw_style", ED_MANIPULATOR_GRAB_STYLE_CROSS_2D); + RNA_enum_set(mpr->ptr, "draw_style", ED_GIZMO_GRAB_STYLE_CROSS_2D); mpr->scale_basis = 0.01f; } @@ -549,7 +549,7 @@ static void WIDGETGROUP_node_corner_pin_setup(const bContext *UNUSED(C), wmManip mgroup->customdata = cpin_group; } -static void WIDGETGROUP_node_corner_pin_draw_prepare(const bContext *C, wmManipulatorGroup *mgroup) +static void WIDGETGROUP_node_corner_pin_draw_prepare(const bContext *C, wmGizmoGroup *mgroup) { struct NodeCornerPinWidgetGroup *cpin_group = mgroup->customdata; ARegion *ar = CTX_wm_region(C); @@ -557,15 +557,15 @@ static void WIDGETGROUP_node_corner_pin_draw_prepare(const bContext *C, wmManipu SpaceNode *snode = CTX_wm_space_node(C); float matrix_space[4][4]; - node_manipulator_calc_matrix_space_with_image_dims(snode, ar, cpin_group->state.dims, matrix_space); + node_gizmo_calc_matrix_space_with_image_dims(snode, ar, cpin_group->state.dims, matrix_space); for (int i = 0; i < 4; i++) { - wmManipulator *mpr = cpin_group->manipulators[i]; + wmGizmo *mpr = cpin_group->gizmos[i]; copy_m4_m4(mpr->matrix_space, matrix_space); } } -static void WIDGETGROUP_node_corner_pin_refresh(const bContext *C, wmManipulatorGroup *mgroup) +static void WIDGETGROUP_node_corner_pin_refresh(const bContext *C, wmGizmoGroup *mgroup) { Main *bmain = CTX_data_main(C); struct NodeCornerPinWidgetGroup *cpin_group = mgroup->customdata; @@ -585,32 +585,32 @@ static void WIDGETGROUP_node_corner_pin_refresh(const bContext *C, wmManipulator int i = 0; for (bNodeSocket *sock = node->inputs.first; sock && i < 4; sock = sock->next) { if (sock->type == SOCK_VECTOR) { - wmManipulator *mpr = cpin_group->manipulators[i++]; + wmGizmo *mpr = cpin_group->gizmos[i++]; PointerRNA sockptr; RNA_pointer_create((ID *)snode->edittree, &RNA_NodeSocket, sock, &sockptr); - WM_manipulator_target_property_def_rna(mpr, "offset", &sockptr, "default_value", -1); + WM_gizmo_target_property_def_rna(mpr, "offset", &sockptr, "default_value", -1); - WM_manipulator_set_flag(mpr, WM_MANIPULATOR_DRAW_MODAL, true); + WM_gizmo_set_flag(mpr, WM_GIZMO_DRAW_MODAL, true); } } } else { for (int i = 0; i < 4; i++) { - wmManipulator *mpr = cpin_group->manipulators[i]; - WM_manipulator_set_flag(mpr, WM_MANIPULATOR_HIDDEN, true); + wmGizmo *mpr = cpin_group->gizmos[i]; + WM_gizmo_set_flag(mpr, WM_GIZMO_HIDDEN, true); } } BKE_image_release_ibuf(ima, ibuf, lock); } -void NODE_WGT_backdrop_corner_pin(wmManipulatorGroupType *wgt) +void NODE_WGT_backdrop_corner_pin(wmGizmoGroupType *wgt) { wgt->name = "Corner Pin Widget"; wgt->idname = "NODE_WGT_backdrop_corner_pin"; - wgt->flag |= WM_MANIPULATORGROUPTYPE_PERSISTENT; + wgt->flag |= WM_GIZMOGROUPTYPE_PERSISTENT; wgt->poll = WIDGETGROUP_node_corner_pin_poll; wgt->setup = WIDGETGROUP_node_corner_pin_setup; diff --git a/source/blender/editors/space_node/node_intern.h b/source/blender/editors/space_node/node_intern.h index d7a43bda461..742c3975c8d 100644 --- a/source/blender/editors/space_node/node_intern.h +++ b/source/blender/editors/space_node/node_intern.h @@ -224,10 +224,10 @@ void NODE_OT_viewer_border(struct wmOperatorType *ot); void NODE_OT_clear_viewer_border(struct wmOperatorType *ot); /* node_widgets.c */ -void NODE_WGT_backdrop_transform(struct wmManipulatorGroupType *wgt); -void NODE_WGT_backdrop_crop(struct wmManipulatorGroupType *wgt); -void NODE_WGT_backdrop_sun_beams(struct wmManipulatorGroupType *wgt); -void NODE_WGT_backdrop_corner_pin(struct wmManipulatorGroupType *wgt); +void NODE_WGT_backdrop_transform(struct wmGizmoGroupType *wgt); +void NODE_WGT_backdrop_crop(struct wmGizmoGroupType *wgt); +void NODE_WGT_backdrop_sun_beams(struct wmGizmoGroupType *wgt); +void NODE_WGT_backdrop_corner_pin(struct wmGizmoGroupType *wgt); extern const char *node_context_dir[]; diff --git a/source/blender/editors/space_node/space_node.c b/source/blender/editors/space_node/space_node.c index a87a68392c7..1149b910947 100644 --- a/source/blender/editors/space_node/space_node.c +++ b/source/blender/editors/space_node/space_node.c @@ -646,13 +646,13 @@ static void node_main_region_init(wmWindowManager *wm, ARegion *ar) UI_view2d_region_reinit(&ar->v2d, V2D_COMMONVIEW_CUSTOM, ar->winx, ar->winy); - /* manipulators stay in the background for now - quick patchjob to make sure nodes themselves work */ - if (ar->manipulator_map == NULL) { - ar->manipulator_map = WM_manipulatormap_new_from_type( - &(const struct wmManipulatorMapType_Params){SPACE_NODE, RGN_TYPE_WINDOW}); + /* gizmos stay in the background for now - quick patchjob to make sure nodes themselves work */ + if (ar->gizmo_map == NULL) { + ar->gizmo_map = WM_gizmomap_new_from_type( + &(const struct wmGizmoMapType_Params){SPACE_NODE, RGN_TYPE_WINDOW}); } - WM_manipulatormap_add_handlers(ar, ar->manipulator_map); + WM_gizmomap_add_handlers(ar, ar->gizmo_map); /* own keymaps */ keymap = WM_keymap_find(wm->defaultconf, "Node Generic", SPACE_NODE, 0); @@ -752,7 +752,7 @@ static void node_region_listener( wmWindow *UNUSED(win), ScrArea *UNUSED(sa), ARegion *ar, wmNotifier *wmn, const Scene *UNUSED(scene)) { - wmManipulatorMap *mmap = ar->manipulator_map; + wmGizmoMap *mmap = ar->gizmo_map; /* context changes */ switch (wmn->category) { @@ -762,13 +762,13 @@ static void node_region_listener( ED_region_tag_redraw(ar); break; case ND_SPACE_NODE_VIEW: - WM_manipulatormap_tag_refresh(mmap); + WM_gizmomap_tag_refresh(mmap); break; } break; case NC_SCREEN: if (wmn->data == ND_LAYOUTSET || wmn->action == NA_EDITED) { - WM_manipulatormap_tag_refresh(mmap); + WM_gizmomap_tag_refresh(mmap); } switch (wmn->data) { case ND_ANIMPLAY: @@ -784,13 +784,13 @@ static void node_region_listener( case NC_SCENE: ED_region_tag_redraw(ar); if (wmn->data == ND_RENDER_RESULT) { - WM_manipulatormap_tag_refresh(mmap); + WM_gizmomap_tag_refresh(mmap); } break; case NC_NODE: ED_region_tag_redraw(ar); if (ELEM(wmn->action, NA_EDITED, NA_SELECTED)) { - WM_manipulatormap_tag_refresh(mmap); + WM_gizmomap_tag_refresh(mmap); } break; case NC_MATERIAL: @@ -863,12 +863,12 @@ static int node_context(const bContext *C, const char *member, bContextDataResul static void node_widgets(void) { /* create the widgetmap for the area here */ - wmManipulatorMapType *mmap_type = WM_manipulatormaptype_ensure( - &(const struct wmManipulatorMapType_Params){SPACE_NODE, RGN_TYPE_WINDOW}); - WM_manipulatorgrouptype_append_and_link(mmap_type, NODE_WGT_backdrop_transform); - WM_manipulatorgrouptype_append_and_link(mmap_type, NODE_WGT_backdrop_crop); - WM_manipulatorgrouptype_append_and_link(mmap_type, NODE_WGT_backdrop_sun_beams); - WM_manipulatorgrouptype_append_and_link(mmap_type, NODE_WGT_backdrop_corner_pin); + wmGizmoMapType *mmap_type = WM_gizmomaptype_ensure( + &(const struct wmGizmoMapType_Params){SPACE_NODE, RGN_TYPE_WINDOW}); + WM_gizmogrouptype_append_and_link(mmap_type, NODE_WGT_backdrop_transform); + WM_gizmogrouptype_append_and_link(mmap_type, NODE_WGT_backdrop_crop); + WM_gizmogrouptype_append_and_link(mmap_type, NODE_WGT_backdrop_sun_beams); + WM_gizmogrouptype_append_and_link(mmap_type, NODE_WGT_backdrop_corner_pin); } static void node_id_remap(ScrArea *UNUSED(sa), SpaceLink *slink, ID *old_id, ID *new_id) @@ -987,7 +987,7 @@ void ED_spacetype_node(void) st->refresh = node_area_refresh; st->context = node_context; st->dropboxes = node_dropboxes; - st->manipulators = node_widgets; + st->gizmos = node_widgets; st->id_remap = node_id_remap; st->space_subtype_item_extend = node_space_subtype_item_extend; st->space_subtype_get = node_space_subtype_get; diff --git a/source/blender/editors/space_sequencer/sequencer_select.c b/source/blender/editors/space_sequencer/sequencer_select.c index 1ec9ea53e33..c440d12e444 100644 --- a/source/blender/editors/space_sequencer/sequencer_select.c +++ b/source/blender/editors/space_sequencer/sequencer_select.c @@ -829,7 +829,7 @@ void SEQUENCER_OT_select_handles(wmOperatorType *ot) /* identifiers */ ot->name = "Select Handles"; ot->idname = "SEQUENCER_OT_select_handles"; - ot->description = "Select manipulator handles on the sides of the selected strip"; + ot->description = "Select gizmo handles on the sides of the selected strip"; /* api callbacks */ ot->exec = sequencer_select_handles_exec; diff --git a/source/blender/editors/space_view3d/space_view3d.c b/source/blender/editors/space_view3d/space_view3d.c index 691baaf48f7..6d4009e9d2b 100644 --- a/source/blender/editors/space_view3d/space_view3d.c +++ b/source/blender/editors/space_view3d/space_view3d.c @@ -451,12 +451,12 @@ static void view3d_main_region_init(wmWindowManager *wm, ARegion *ar) ListBase *lb; wmKeyMap *keymap; - if (ar->manipulator_map == NULL) { - ar->manipulator_map = WM_manipulatormap_new_from_type( - &(const struct wmManipulatorMapType_Params) {SPACE_VIEW3D, RGN_TYPE_WINDOW}); + if (ar->gizmo_map == NULL) { + ar->gizmo_map = WM_gizmomap_new_from_type( + &(const struct wmGizmoMapType_Params) {SPACE_VIEW3D, RGN_TYPE_WINDOW}); } - WM_manipulatormap_add_handlers(ar, ar->manipulator_map); + WM_gizmomap_add_handlers(ar, ar->gizmo_map); /* object ops. */ @@ -716,26 +716,26 @@ static void view3d_dropboxes(void) static void view3d_widgets(void) { - wmManipulatorMapType *mmap_type = WM_manipulatormaptype_ensure( - &(const struct wmManipulatorMapType_Params){SPACE_VIEW3D, RGN_TYPE_WINDOW}); - - WM_manipulatorgrouptype_append_and_link(mmap_type, VIEW3D_WGT_lamp_spot); - WM_manipulatorgrouptype_append_and_link(mmap_type, VIEW3D_WGT_lamp_area); - WM_manipulatorgrouptype_append_and_link(mmap_type, VIEW3D_WGT_lamp_target); - WM_manipulatorgrouptype_append_and_link(mmap_type, VIEW3D_WGT_force_field); - WM_manipulatorgrouptype_append_and_link(mmap_type, VIEW3D_WGT_camera); - WM_manipulatorgrouptype_append_and_link(mmap_type, VIEW3D_WGT_camera_view); - WM_manipulatorgrouptype_append_and_link(mmap_type, VIEW3D_WGT_empty_image); - WM_manipulatorgrouptype_append_and_link(mmap_type, VIEW3D_WGT_armature_spline); - - WM_manipulatorgrouptype_append(TRANSFORM_WGT_manipulator); - WM_manipulatorgrouptype_append(VIEW3D_WGT_xform_cage); - - WM_manipulatorgrouptype_append(VIEW3D_WGT_ruler); - WM_manipulatortype_append(VIEW3D_WT_ruler_item); - - WM_manipulatorgrouptype_append_and_link(mmap_type, VIEW3D_WGT_navigate); - WM_manipulatortype_append(VIEW3D_WT_navigate_rotate); + wmGizmoMapType *mmap_type = WM_gizmomaptype_ensure( + &(const struct wmGizmoMapType_Params){SPACE_VIEW3D, RGN_TYPE_WINDOW}); + + WM_gizmogrouptype_append_and_link(mmap_type, VIEW3D_WGT_lamp_spot); + WM_gizmogrouptype_append_and_link(mmap_type, VIEW3D_WGT_lamp_area); + WM_gizmogrouptype_append_and_link(mmap_type, VIEW3D_WGT_lamp_target); + WM_gizmogrouptype_append_and_link(mmap_type, VIEW3D_WGT_force_field); + WM_gizmogrouptype_append_and_link(mmap_type, VIEW3D_WGT_camera); + WM_gizmogrouptype_append_and_link(mmap_type, VIEW3D_WGT_camera_view); + WM_gizmogrouptype_append_and_link(mmap_type, VIEW3D_WGT_empty_image); + WM_gizmogrouptype_append_and_link(mmap_type, VIEW3D_WGT_armature_spline); + + WM_gizmogrouptype_append(TRANSFORM_WGT_gizmo); + WM_gizmogrouptype_append(VIEW3D_WGT_xform_cage); + + WM_gizmogrouptype_append(VIEW3D_WGT_ruler); + WM_gizmotype_append(VIEW3D_WT_ruler_item); + + WM_gizmogrouptype_append_and_link(mmap_type, VIEW3D_WGT_navigate); + WM_gizmotype_append(VIEW3D_WT_navigate_rotate); } @@ -815,13 +815,13 @@ static void view3d_main_region_listener( { View3D *v3d = sa->spacedata.first; RegionView3D *rv3d = ar->regiondata; - wmManipulatorMap *mmap = ar->manipulator_map; + wmGizmoMap *mmap = ar->gizmo_map; /* context changes */ switch (wmn->category) { case NC_WM: if (ELEM(wmn->data, ND_UNDO)) { - WM_manipulatormap_tag_refresh(mmap); + WM_gizmomap_tag_refresh(mmap); } break; case NC_ANIMATION: @@ -848,14 +848,14 @@ static void view3d_main_region_listener( if (wmn->reference) view3d_recalc_used_layers(ar, wmn, wmn->reference); ED_region_tag_redraw(ar); - WM_manipulatormap_tag_refresh(mmap); + WM_gizmomap_tag_refresh(mmap); break; case ND_LAYER: if (wmn->reference) { BKE_screen_view3d_sync(v3d, wmn->reference); } ED_region_tag_redraw(ar); - WM_manipulatormap_tag_refresh(mmap); + WM_gizmomap_tag_refresh(mmap); break; case ND_OB_ACTIVE: case ND_OB_SELECT: @@ -867,7 +867,7 @@ static void view3d_main_region_listener( case ND_MARKERS: case ND_MODE: ED_region_tag_redraw(ar); - WM_manipulatormap_tag_refresh(mmap); + WM_gizmomap_tag_refresh(mmap); break; case ND_WORLD: /* handled by space_view3d_listener() for v3d access */ @@ -899,7 +899,7 @@ static void view3d_main_region_listener( case ND_POINTCACHE: case ND_LOD: ED_region_tag_redraw(ar); - WM_manipulatormap_tag_refresh(mmap); + WM_gizmomap_tag_refresh(mmap); break; } switch (wmn->action) { @@ -912,7 +912,7 @@ static void view3d_main_region_listener( switch (wmn->data) { case ND_SELECT: { - WM_manipulatormap_tag_refresh(mmap); + WM_gizmomap_tag_refresh(mmap); ATTR_FALLTHROUGH; } case ND_DATA: @@ -993,7 +993,7 @@ static void view3d_main_region_listener( break; case ND_LIGHTING_DRAW: ED_region_tag_redraw(ar); - WM_manipulatormap_tag_refresh(mmap); + WM_gizmomap_tag_refresh(mmap); break; } break; @@ -1019,7 +1019,7 @@ static void view3d_main_region_listener( rv3d->rflag |= RV3D_GPULIGHT_UPDATE; } ED_region_tag_redraw(ar); - WM_manipulatormap_tag_refresh(mmap); + WM_gizmomap_tag_refresh(mmap); } break; case NC_ID: @@ -1035,7 +1035,7 @@ static void view3d_main_region_listener( case ND_LAYOUTBROWSE: case ND_LAYOUTDELETE: case ND_LAYOUTSET: - WM_manipulatormap_tag_refresh(mmap); + WM_gizmomap_tag_refresh(mmap); ED_region_tag_redraw(ar); break; case ND_LAYER: @@ -1545,7 +1545,7 @@ void ED_spacetype_view3d(void) st->operatortypes = view3d_operatortypes; st->keymap = view3d_keymap; st->dropboxes = view3d_dropboxes; - st->manipulators = view3d_widgets; + st->gizmos = view3d_widgets; st->context = view3d_context; st->id_remap = view3d_id_remap; diff --git a/source/blender/editors/space_view3d/view3d_draw.c b/source/blender/editors/space_view3d/view3d_draw.c index 62e9d4ee3bf..3b86e574a1a 100644 --- a/source/blender/editors/space_view3d/view3d_draw.c +++ b/source/blender/editors/space_view3d/view3d_draw.c @@ -1203,10 +1203,10 @@ void view3d_draw_region_info(const bContext *C, ARegion *ar, const int UNUSED(of BLF_batch_draw_begin(); - if ((U.uiflag & USER_SHOW_MANIPULATOR_AXIS) || + if ((U.uiflag & USER_SHOW_GIZMO_AXIS) || (v3d->flag2 & V3D_RENDER_OVERRIDE) || - /* No need to display manipulator and this info. */ - (v3d->mpr_flag & (V3D_MANIPULATOR_HIDE | V3D_MANIPULATOR_HIDE_NAVIGATE))) + /* No need to display gizmo and this info. */ + (v3d->mpr_flag & (V3D_GIZMO_HIDE | V3D_GIZMO_HIDE_NAVIGATE))) { /* pass */ } diff --git a/source/blender/editors/space_view3d/view3d_edit.c b/source/blender/editors/space_view3d/view3d_edit.c index b6e20def432..792a341fba4 100644 --- a/source/blender/editors/space_view3d/view3d_edit.c +++ b/source/blender/editors/space_view3d/view3d_edit.c @@ -2812,8 +2812,8 @@ static int viewselected_exec(bContext *C, wmOperator *op) ViewLayer *view_layer_eval = DEG_get_evaluated_view_layer(depsgraph); bGPdata *gpd = CTX_data_gpencil_data(C); const bool is_gp_edit = ((gpd) && (gpd->flag & GP_DATA_STROKE_EDITMODE)); - const bool is_face_map = ((is_gp_edit == false) && ar->manipulator_map && - WM_manipulatormap_is_any_selected(ar->manipulator_map)); + const bool is_face_map = ((is_gp_edit == false) && ar->gizmo_map && + WM_gizmomap_is_any_selected(ar->gizmo_map)); Object *ob_eval = OBACT(view_layer_eval); Object *obedit = CTX_data_edit_object(C); float min[3], max[3]; @@ -2858,7 +2858,7 @@ static int viewselected_exec(bContext *C, wmOperator *op) CTX_DATA_END; } else if (is_face_map) { - ok = WM_manipulatormap_minmax(ar->manipulator_map, true, true, min, max); + ok = WM_gizmomap_minmax(ar->gizmo_map, true, true, min, max); } else if (obedit) { /* only selected */ @@ -3705,7 +3705,7 @@ static int view_axis_exec(bContext *C, wmOperator *op) Object *obact = CTX_data_active_object(C); if (obact != NULL) { float twmat[3][3]; - /* same as transform manipulator when normal is set */ + /* same as transform gizmo when normal is set */ ED_getTransformOrientationMatrix(C, twmat, V3D_AROUND_ACTIVE); align_quat = align_quat_buf; mat3_to_quat(align_quat, twmat); diff --git a/source/blender/editors/space_view3d/view3d_gizmo_armature.c b/source/blender/editors/space_view3d/view3d_gizmo_armature.c index 16c7d574873..c7b12529798 100644 --- a/source/blender/editors/space_view3d/view3d_gizmo_armature.c +++ b/source/blender/editors/space_view3d/view3d_gizmo_armature.c @@ -52,7 +52,7 @@ /* -------------------------------------------------------------------- */ -/** \name Armature Spline Manipulator +/** \name Armature Spline Gizmo * * \{ */ @@ -68,7 +68,7 @@ #define BBONE_SCALE_Y 3.0f struct BoneSplineHandle { - wmManipulator *manipulator; + wmGizmo *gizmo; bPoseChannel *pchan; /* We could remove, keep since at the moment for checking the conversion. */ float co[3]; @@ -79,8 +79,8 @@ struct BoneSplineWidgetGroup { struct BoneSplineHandle handles[2]; }; -static void manipulator_bbone_offset_get( - const wmManipulator *UNUSED(mpr), wmManipulatorProperty *mpr_prop, +static void gizmo_bbone_offset_get( + const wmGizmo *UNUSED(mpr), wmGizmoProperty *mpr_prop, void *value_p) { struct BoneSplineHandle *bh = mpr_prop->custom_func.user_data; @@ -102,8 +102,8 @@ static void manipulator_bbone_offset_get( copy_v3_v3(value, bh->co); } -static void manipulator_bbone_offset_set( - const wmManipulator *UNUSED(mpr), wmManipulatorProperty *mpr_prop, +static void gizmo_bbone_offset_set( + const wmGizmo *UNUSED(mpr), wmGizmoProperty *mpr_prop, const void *value_p) { struct BoneSplineHandle *bh = mpr_prop->custom_func.user_data; @@ -127,7 +127,7 @@ static void manipulator_bbone_offset_set( } -static bool WIDGETGROUP_armature_spline_poll(const bContext *C, wmManipulatorGroupType *UNUSED(wgt)) +static bool WIDGETGROUP_armature_spline_poll(const bContext *C, wmGizmoGroupType *UNUSED(wgt)) { Object *ob = BKE_object_pose_armature_get(CTX_data_active_object(C)); if (ob != NULL) { @@ -136,7 +136,7 @@ static bool WIDGETGROUP_armature_spline_poll(const bContext *C, wmManipulatorGro if (arm->act_bone && arm->act_bone->segments > 1) { View3D *v3d = CTX_wm_view3d(C); if ((v3d->flag2 & V3D_RENDER_OVERRIDE) || - (v3d->mpr_flag & (V3D_MANIPULATOR_HIDE | V3D_MANIPULATOR_HIDE_CONTEXT))) + (v3d->mpr_flag & (V3D_GIZMO_HIDE | V3D_GIZMO_HIDE_CONTEXT))) { /* pass */ } @@ -150,27 +150,27 @@ static bool WIDGETGROUP_armature_spline_poll(const bContext *C, wmManipulatorGro } -static void WIDGETGROUP_armature_spline_setup(const bContext *C, wmManipulatorGroup *mgroup) +static void WIDGETGROUP_armature_spline_setup(const bContext *C, wmGizmoGroup *mgroup) { Object *ob = BKE_object_pose_armature_get(CTX_data_active_object(C)); bPoseChannel *pchan = BKE_pose_channel_active(ob); - const wmManipulatorType *wt_grab = WM_manipulatortype_find("MANIPULATOR_WT_grab_3d", true); + const wmGizmoType *wt_grab = WM_gizmotype_find("GIZMO_WT_grab_3d", true); struct BoneSplineWidgetGroup *bspline_group = MEM_callocN(sizeof(struct BoneSplineWidgetGroup), __func__); mgroup->customdata = bspline_group; /* Handles */ for (int i = 0; i < ARRAY_SIZE(bspline_group->handles); i++) { - wmManipulator *mpr; - mpr = bspline_group->handles[i].manipulator = WM_manipulator_new_ptr(wt_grab, mgroup, NULL); - RNA_enum_set(mpr->ptr, "draw_style", ED_MANIPULATOR_GRAB_STYLE_RING_2D); + wmGizmo *mpr; + mpr = bspline_group->handles[i].gizmo = WM_gizmo_new_ptr(wt_grab, mgroup, NULL); + RNA_enum_set(mpr->ptr, "draw_style", ED_GIZMO_GRAB_STYLE_RING_2D); RNA_enum_set(mpr->ptr, "draw_options", - ED_MANIPULATOR_GRAB_DRAW_FLAG_FILL | ED_MANIPULATOR_GRAB_DRAW_FLAG_ALIGN_VIEW); - WM_manipulator_set_flag(mpr, WM_MANIPULATOR_DRAW_VALUE, true); + ED_GIZMO_GRAB_DRAW_FLAG_FILL | ED_GIZMO_GRAB_DRAW_FLAG_ALIGN_VIEW); + WM_gizmo_set_flag(mpr, WM_GIZMO_DRAW_VALUE, true); - UI_GetThemeColor3fv(TH_MANIPULATOR_PRIMARY, mpr->color); - UI_GetThemeColor3fv(TH_MANIPULATOR_HI, mpr->color_hi); + UI_GetThemeColor3fv(TH_GIZMO_PRIMARY, mpr->color); + UI_GetThemeColor3fv(TH_GIZMO_HI, mpr->color_hi); mpr->scale_basis = 0.06f; @@ -180,7 +180,7 @@ static void WIDGETGROUP_armature_spline_setup(const bContext *C, wmManipulatorGr } } -static void WIDGETGROUP_armature_spline_refresh(const bContext *C, wmManipulatorGroup *mgroup) +static void WIDGETGROUP_armature_spline_refresh(const bContext *C, wmGizmoGroup *mgroup) { Object *ob = BKE_object_pose_armature_get(CTX_data_active_object(C)); @@ -192,7 +192,7 @@ static void WIDGETGROUP_armature_spline_refresh(const bContext *C, wmManipulator /* Handles */ for (int i = 0; i < ARRAY_SIZE(bspline_group->handles); i++) { - wmManipulator *mpr = bspline_group->handles[i].manipulator; + wmGizmo *mpr = bspline_group->handles[i].gizmo; bspline_group->handles[i].pchan = pchan; bspline_group->handles[i].index = i; @@ -201,24 +201,24 @@ static void WIDGETGROUP_armature_spline_refresh(const bContext *C, wmManipulator copy_m4_m4(mpr->matrix_space, mat); /* need to set property here for undo. TODO would prefer to do this in _init */ - WM_manipulator_target_property_def_func( + WM_gizmo_target_property_def_func( mpr, "offset", - &(const struct wmManipulatorPropertyFnParams) { - .value_get_fn = manipulator_bbone_offset_get, - .value_set_fn = manipulator_bbone_offset_set, + &(const struct wmGizmoPropertyFnParams) { + .value_get_fn = gizmo_bbone_offset_get, + .value_set_fn = gizmo_bbone_offset_set, .range_get_fn = NULL, .user_data = &bspline_group->handles[i], }); } } -void VIEW3D_WGT_armature_spline(wmManipulatorGroupType *wgt) +void VIEW3D_WGT_armature_spline(wmGizmoGroupType *wgt) { wgt->name = "Armature Spline Widgets"; wgt->idname = "VIEW3D_WGT_armature_spline"; - wgt->flag = (WM_MANIPULATORGROUPTYPE_PERSISTENT | - WM_MANIPULATORGROUPTYPE_3D); + wgt->flag = (WM_GIZMOGROUPTYPE_PERSISTENT | + WM_GIZMOGROUPTYPE_3D); wgt->poll = WIDGETGROUP_armature_spline_poll; wgt->setup = WIDGETGROUP_armature_spline_setup; diff --git a/source/blender/editors/space_view3d/view3d_gizmo_camera.c b/source/blender/editors/space_view3d/view3d_gizmo_camera.c index 0c97669a9af..b011e6e2e21 100644 --- a/source/blender/editors/space_view3d/view3d_gizmo_camera.c +++ b/source/blender/editors/space_view3d/view3d_gizmo_camera.c @@ -52,20 +52,20 @@ /* -------------------------------------------------------------------- */ -/** \name Camera Manipulators +/** \name Camera Gizmos * \{ */ struct CameraWidgetGroup { - wmManipulator *dop_dist; - wmManipulator *focal_len; - wmManipulator *ortho_scale; + wmGizmo *dop_dist; + wmGizmo *focal_len; + wmGizmo *ortho_scale; }; -static bool WIDGETGROUP_camera_poll(const bContext *C, wmManipulatorGroupType *UNUSED(wgt)) +static bool WIDGETGROUP_camera_poll(const bContext *C, wmGizmoGroupType *UNUSED(wgt)) { View3D *v3d = CTX_wm_view3d(C); if ((v3d->flag2 & V3D_RENDER_OVERRIDE) || - (v3d->mpr_flag & (V3D_MANIPULATOR_HIDE | V3D_MANIPULATOR_HIDE_CONTEXT))) + (v3d->mpr_flag & (V3D_GIZMO_HIDE | V3D_GIZMO_HIDE_CONTEXT))) { return false; } @@ -81,12 +81,12 @@ static bool WIDGETGROUP_camera_poll(const bContext *C, wmManipulatorGroupType *U return false; } -static void WIDGETGROUP_camera_setup(const bContext *C, wmManipulatorGroup *mgroup) +static void WIDGETGROUP_camera_setup(const bContext *C, wmGizmoGroup *mgroup) { Object *ob = CTX_data_active_object(C); float dir[3]; - const wmManipulatorType *wt_arrow = WM_manipulatortype_find("MANIPULATOR_WT_arrow_3d", true); + const wmGizmoType *wt_arrow = WM_gizmotype_find("GIZMO_WT_arrow_3d", true); struct CameraWidgetGroup *camgroup = MEM_callocN(sizeof(struct CameraWidgetGroup), __func__); mgroup->customdata = camgroup; @@ -95,38 +95,38 @@ static void WIDGETGROUP_camera_setup(const bContext *C, wmManipulatorGroup *mgro /* dof distance */ { - wmManipulator *mpr; - mpr = camgroup->dop_dist = WM_manipulator_new_ptr(wt_arrow, mgroup, NULL); - RNA_enum_set(mpr->ptr, "draw_style", ED_MANIPULATOR_ARROW_STYLE_CROSS); - WM_manipulator_set_flag(mpr, WM_MANIPULATOR_DRAW_HOVER, true); + wmGizmo *mpr; + mpr = camgroup->dop_dist = WM_gizmo_new_ptr(wt_arrow, mgroup, NULL); + RNA_enum_set(mpr->ptr, "draw_style", ED_GIZMO_ARROW_STYLE_CROSS); + WM_gizmo_set_flag(mpr, WM_GIZMO_DRAW_HOVER, true); - UI_GetThemeColor3fv(TH_MANIPULATOR_A, mpr->color); - UI_GetThemeColor3fv(TH_MANIPULATOR_HI, mpr->color_hi); + UI_GetThemeColor3fv(TH_GIZMO_A, mpr->color); + UI_GetThemeColor3fv(TH_GIZMO_HI, mpr->color_hi); } /* focal length * - logic/calculations are similar to BKE_camera_view_frame_ex, better keep in sync */ { - wmManipulator *mpr; - mpr = camgroup->focal_len = WM_manipulator_new_ptr(wt_arrow, mgroup, NULL); - mpr->flag |= WM_MANIPULATOR_DRAW_NO_SCALE; - RNA_enum_set(mpr->ptr, "draw_style", ED_MANIPULATOR_ARROW_STYLE_CONE); - RNA_enum_set(mpr->ptr, "transform", ED_MANIPULATOR_ARROW_XFORM_FLAG_CONSTRAINED); - - UI_GetThemeColor3fv(TH_MANIPULATOR_PRIMARY, mpr->color); - UI_GetThemeColor3fv(TH_MANIPULATOR_HI, mpr->color_hi); - - mpr = camgroup->ortho_scale = WM_manipulator_new_ptr(wt_arrow, mgroup, NULL); - mpr->flag |= WM_MANIPULATOR_DRAW_NO_SCALE; - RNA_enum_set(mpr->ptr, "draw_style", ED_MANIPULATOR_ARROW_STYLE_CONE); - RNA_enum_set(mpr->ptr, "transform", ED_MANIPULATOR_ARROW_XFORM_FLAG_CONSTRAINED); - - UI_GetThemeColor3fv(TH_MANIPULATOR_PRIMARY, mpr->color); - UI_GetThemeColor3fv(TH_MANIPULATOR_HI, mpr->color_hi); + wmGizmo *mpr; + mpr = camgroup->focal_len = WM_gizmo_new_ptr(wt_arrow, mgroup, NULL); + mpr->flag |= WM_GIZMO_DRAW_NO_SCALE; + RNA_enum_set(mpr->ptr, "draw_style", ED_GIZMO_ARROW_STYLE_CONE); + RNA_enum_set(mpr->ptr, "transform", ED_GIZMO_ARROW_XFORM_FLAG_CONSTRAINED); + + UI_GetThemeColor3fv(TH_GIZMO_PRIMARY, mpr->color); + UI_GetThemeColor3fv(TH_GIZMO_HI, mpr->color_hi); + + mpr = camgroup->ortho_scale = WM_gizmo_new_ptr(wt_arrow, mgroup, NULL); + mpr->flag |= WM_GIZMO_DRAW_NO_SCALE; + RNA_enum_set(mpr->ptr, "draw_style", ED_GIZMO_ARROW_STYLE_CONE); + RNA_enum_set(mpr->ptr, "transform", ED_GIZMO_ARROW_XFORM_FLAG_CONSTRAINED); + + UI_GetThemeColor3fv(TH_GIZMO_PRIMARY, mpr->color); + UI_GetThemeColor3fv(TH_GIZMO_HI, mpr->color_hi); } } -static void WIDGETGROUP_camera_refresh(const bContext *C, wmManipulatorGroup *mgroup) +static void WIDGETGROUP_camera_refresh(const bContext *C, wmGizmoGroup *mgroup) { if (!mgroup->customdata) return; @@ -149,16 +149,16 @@ static void WIDGETGROUP_camera_refresh(const bContext *C, wmManipulatorGroup *mg negate_v3_v3(dir, ob->obmat[2]); if (ca->flag & CAM_SHOWLIMITS) { - WM_manipulator_set_matrix_location(camgroup->dop_dist, ob->obmat[3]); - WM_manipulator_set_matrix_rotation_from_yz_axis(camgroup->dop_dist, ob->obmat[1], dir); - WM_manipulator_set_scale(camgroup->dop_dist, ca->drawsize); - WM_manipulator_set_flag(camgroup->dop_dist, WM_MANIPULATOR_HIDDEN, false); + WM_gizmo_set_matrix_location(camgroup->dop_dist, ob->obmat[3]); + WM_gizmo_set_matrix_rotation_from_yz_axis(camgroup->dop_dist, ob->obmat[1], dir); + WM_gizmo_set_scale(camgroup->dop_dist, ca->drawsize); + WM_gizmo_set_flag(camgroup->dop_dist, WM_GIZMO_HIDDEN, false); /* need to set property here for undo. TODO would prefer to do this in _init */ - WM_manipulator_target_property_def_rna(camgroup->dop_dist, "offset", &camera_ptr, "dof_distance", -1); + WM_gizmo_target_property_def_rna(camgroup->dop_dist, "offset", &camera_ptr, "dof_distance", -1); } else { - WM_manipulator_set_flag(camgroup->dop_dist, WM_MANIPULATOR_HIDDEN, true); + WM_gizmo_set_flag(camgroup->dop_dist, WM_GIZMO_HIDDEN, true); } /* TODO - make focal length/ortho ob_scale_inv widget optional */ @@ -167,14 +167,14 @@ static void WIDGETGROUP_camera_refresh(const bContext *C, wmManipulatorGroup *mg const float aspy = (float)scene->r.ysch * scene->r.yasp; const bool is_ortho = (ca->type == CAM_ORTHO); const int sensor_fit = BKE_camera_sensor_fit(ca->sensor_fit, aspx, aspy); - wmManipulator *widget = is_ortho ? camgroup->ortho_scale : camgroup->focal_len; + wmGizmo *widget = is_ortho ? camgroup->ortho_scale : camgroup->focal_len; float scale_matrix; if (true) { float offset[3]; float aspect[2]; - WM_manipulator_set_flag(widget, WM_MANIPULATOR_HIDDEN, false); - WM_manipulator_set_flag(is_ortho ? camgroup->focal_len : camgroup->ortho_scale, WM_MANIPULATOR_HIDDEN, true); + WM_gizmo_set_flag(widget, WM_GIZMO_HIDDEN, false); + WM_gizmo_set_flag(is_ortho ? camgroup->focal_len : camgroup->ortho_scale, WM_GIZMO_HIDDEN, true); /* account for lens shifting */ @@ -187,8 +187,8 @@ static void WIDGETGROUP_camera_refresh(const bContext *C, wmManipulatorGroup *mg aspect[1] = (sensor_fit == CAMERA_SENSOR_FIT_HOR) ? aspy / aspx : 1.0f; unit_m4(widget->matrix_basis); - WM_manipulator_set_matrix_location(widget, ob->obmat[3]); - WM_manipulator_set_matrix_rotation_from_yz_axis(widget, ob->obmat[1], dir); + WM_gizmo_set_matrix_location(widget, ob->obmat[3]); + WM_gizmo_set_matrix_rotation_from_yz_axis(widget, ob->obmat[1], dir); if (is_ortho) { scale_matrix = ca->ortho_scale * 0.5f; @@ -201,16 +201,16 @@ static void WIDGETGROUP_camera_refresh(const bContext *C, wmManipulatorGroup *mg RNA_float_set_array(widget->ptr, "aspect", aspect); - WM_manipulator_set_matrix_offset_location(widget, offset); + WM_gizmo_set_matrix_offset_location(widget, offset); } /* define & update properties */ { const char *propname = is_ortho ? "ortho_scale" : "lens"; PropertyRNA *prop = RNA_struct_find_property(&camera_ptr, propname); - const wmManipulatorPropertyType *mpr_prop_type = WM_manipulatortype_target_property_find(widget->type, "offset"); + const wmGizmoPropertyType *mpr_prop_type = WM_gizmotype_target_property_find(widget->type, "offset"); - WM_manipulator_target_property_clear_rna_ptr(widget, mpr_prop_type); + WM_gizmo_target_property_clear_rna_ptr(widget, mpr_prop_type); float min, max, range; float step, precision; @@ -219,20 +219,20 @@ static void WIDGETGROUP_camera_refresh(const bContext *C, wmManipulatorGroup *mg RNA_property_float_ui_range(&camera_ptr, prop, &min, &max, &step, &precision); range = max - min; - ED_manipulator_arrow3d_set_range_fac( + ED_gizmo_arrow3d_set_range_fac( widget, is_ortho ? (ca->drawsize * range) : (scale_matrix * range / /* Half sensor, intentionally use sensor from camera and not calculated above. */ (0.5f * ((ca->sensor_fit == CAMERA_SENSOR_FIT_HOR) ? ca->sensor_x : ca->sensor_x)))); - WM_manipulator_target_property_def_rna_ptr(widget, mpr_prop_type, &camera_ptr, prop, -1); + WM_gizmo_target_property_def_rna_ptr(widget, mpr_prop_type, &camera_ptr, prop, -1); } } static void WIDGETGROUP_camera_message_subscribe( - const bContext *C, wmManipulatorGroup *mgroup, struct wmMsgBus *mbus) + const bContext *C, wmGizmoGroup *mgroup, struct wmMsgBus *mbus) { ARegion *ar = CTX_wm_region(C); Object *ob = CTX_data_active_object(C); @@ -241,7 +241,7 @@ static void WIDGETGROUP_camera_message_subscribe( wmMsgSubscribeValue msg_sub_value_mpr_tag_refresh = { .owner = ar, .user_data = mgroup->parent_mmap, - .notify = WM_manipulator_do_msg_notify_tag_refresh, + .notify = WM_gizmo_do_msg_notify_tag_refresh, }; { @@ -283,14 +283,14 @@ static void WIDGETGROUP_camera_message_subscribe( } } -void VIEW3D_WGT_camera(wmManipulatorGroupType *wgt) +void VIEW3D_WGT_camera(wmGizmoGroupType *wgt) { wgt->name = "Camera Widgets"; wgt->idname = "VIEW3D_WGT_camera"; - wgt->flag = (WM_MANIPULATORGROUPTYPE_PERSISTENT | - WM_MANIPULATORGROUPTYPE_3D | - WM_MANIPULATORGROUPTYPE_DEPTH_3D); + wgt->flag = (WM_GIZMOGROUPTYPE_PERSISTENT | + WM_GIZMOGROUPTYPE_3D | + WM_GIZMOGROUPTYPE_DEPTH_3D); wgt->poll = WIDGETGROUP_camera_poll; wgt->setup = WIDGETGROUP_camera_setup; @@ -302,11 +302,11 @@ void VIEW3D_WGT_camera(wmManipulatorGroupType *wgt) /* -------------------------------------------------------------------- */ -/** \name CameraView Manipulators +/** \name CameraView Gizmos * \{ */ struct CameraViewWidgetGroup { - wmManipulator *border; + wmGizmo *border; struct { rctf *edit_border; @@ -315,8 +315,8 @@ struct CameraViewWidgetGroup { }; /* scale callbacks */ -static void manipulator_render_border_prop_matrix_get( - const wmManipulator *UNUSED(mpr), wmManipulatorProperty *mpr_prop, +static void gizmo_render_border_prop_matrix_get( + const wmGizmo *UNUSED(mpr), wmGizmoProperty *mpr_prop, void *value_p) { float (*matrix)[4] = value_p; @@ -331,8 +331,8 @@ static void manipulator_render_border_prop_matrix_get( matrix[3][1] = BLI_rctf_cent_y(border); } -static void manipulator_render_border_prop_matrix_set( - const wmManipulator *UNUSED(mpr), wmManipulatorProperty *mpr_prop, +static void gizmo_render_border_prop_matrix_set( + const wmGizmo *UNUSED(mpr), wmGizmoProperty *mpr_prop, const void *value_p) { const float (*matrix)[4] = value_p; @@ -345,7 +345,7 @@ static void manipulator_render_border_prop_matrix_set( BLI_rctf_isect(&(rctf){.xmin = 0, .ymin = 0, .xmax = 1, .ymax = 1}, border, border); } -static bool WIDGETGROUP_camera_view_poll(const bContext *C, wmManipulatorGroupType *UNUSED(wgt)) +static bool WIDGETGROUP_camera_view_poll(const bContext *C, wmGizmoGroupType *UNUSED(wgt)) { Scene *scene = CTX_data_scene(C); @@ -361,7 +361,7 @@ static bool WIDGETGROUP_camera_view_poll(const bContext *C, wmManipulatorGroupTy View3D *v3d = CTX_wm_view3d(C); if ((v3d->flag2 & V3D_RENDER_OVERRIDE) || - (v3d->mpr_flag & (V3D_MANIPULATOR_HIDE | V3D_MANIPULATOR_HIDE_CONTEXT))) + (v3d->mpr_flag & (V3D_GIZMO_HIDE | V3D_GIZMO_HIDE_CONTEXT))) { return false; } @@ -382,22 +382,22 @@ static bool WIDGETGROUP_camera_view_poll(const bContext *C, wmManipulatorGroupTy return false; } -static void WIDGETGROUP_camera_view_setup(const bContext *UNUSED(C), wmManipulatorGroup *mgroup) +static void WIDGETGROUP_camera_view_setup(const bContext *UNUSED(C), wmGizmoGroup *mgroup) { struct CameraViewWidgetGroup *viewgroup = MEM_mallocN(sizeof(struct CameraViewWidgetGroup), __func__); - viewgroup->border = WM_manipulator_new("MANIPULATOR_WT_cage_2d", mgroup, NULL); + viewgroup->border = WM_gizmo_new("GIZMO_WT_cage_2d", mgroup, NULL); RNA_enum_set(viewgroup->border->ptr, "transform", - ED_MANIPULATOR_CAGE2D_XFORM_FLAG_TRANSLATE | ED_MANIPULATOR_CAGE2D_XFORM_FLAG_SCALE); + ED_GIZMO_CAGE2D_XFORM_FLAG_TRANSLATE | ED_GIZMO_CAGE2D_XFORM_FLAG_SCALE); /* Box style is more subtle in this case. */ - RNA_enum_set(viewgroup->border->ptr, "draw_style", ED_MANIPULATOR_CAGE2D_STYLE_BOX); + RNA_enum_set(viewgroup->border->ptr, "draw_style", ED_GIZMO_CAGE2D_STYLE_BOX); mgroup->customdata = viewgroup; } -static void WIDGETGROUP_camera_view_draw_prepare(const bContext *C, wmManipulatorGroup *mgroup) +static void WIDGETGROUP_camera_view_draw_prepare(const bContext *C, wmGizmoGroup *mgroup) { struct CameraViewWidgetGroup *viewgroup = mgroup->customdata; @@ -413,7 +413,7 @@ static void WIDGETGROUP_camera_view_draw_prepare(const bContext *C, wmManipulato viewgroup->state.view_border = (rctf){.xmin = 0, .ymin = 0, .xmax = ar->winx, .ymax = ar->winy}; } - wmManipulator *mpr = viewgroup->border; + wmGizmo *mpr = viewgroup->border; unit_m4(mpr->matrix_space); mul_v3_fl(mpr->matrix_space[0], BLI_rctf_size_x(&viewgroup->state.view_border)); mul_v3_fl(mpr->matrix_space[1], BLI_rctf_size_y(&viewgroup->state.view_border)); @@ -421,7 +421,7 @@ static void WIDGETGROUP_camera_view_draw_prepare(const bContext *C, wmManipulato mpr->matrix_space[3][1] = viewgroup->state.view_border.ymin; } -static void WIDGETGROUP_camera_view_refresh(const bContext *C, wmManipulatorGroup *mgroup) +static void WIDGETGROUP_camera_view_refresh(const bContext *C, wmGizmoGroup *mgroup) { struct CameraViewWidgetGroup *viewgroup = mgroup->customdata; @@ -431,11 +431,11 @@ static void WIDGETGROUP_camera_view_refresh(const bContext *C, wmManipulatorGrou Scene *scene = CTX_data_scene(C); { - wmManipulator *mpr = viewgroup->border; - WM_manipulator_set_flag(mpr, WM_MANIPULATOR_HIDDEN, false); + wmGizmo *mpr = viewgroup->border; + WM_gizmo_set_flag(mpr, WM_GIZMO_HIDDEN, false); RNA_enum_set(viewgroup->border->ptr, "transform", - ED_MANIPULATOR_CAGE2D_XFORM_FLAG_TRANSLATE | ED_MANIPULATOR_CAGE2D_XFORM_FLAG_SCALE); + ED_GIZMO_CAGE2D_XFORM_FLAG_TRANSLATE | ED_GIZMO_CAGE2D_XFORM_FLAG_SCALE); if (rv3d->persp == RV3D_CAMOB) { viewgroup->state.edit_border = &scene->r.border; @@ -444,11 +444,11 @@ static void WIDGETGROUP_camera_view_refresh(const bContext *C, wmManipulatorGrou viewgroup->state.edit_border = &v3d->render_border; } - WM_manipulator_target_property_def_func( + WM_gizmo_target_property_def_func( mpr, "matrix", - &(const struct wmManipulatorPropertyFnParams) { - .value_get_fn = manipulator_render_border_prop_matrix_get, - .value_set_fn = manipulator_render_border_prop_matrix_set, + &(const struct wmGizmoPropertyFnParams) { + .value_get_fn = gizmo_render_border_prop_matrix_get, + .value_set_fn = gizmo_render_border_prop_matrix_set, .range_get_fn = NULL, .user_data = viewgroup, }); @@ -456,13 +456,13 @@ static void WIDGETGROUP_camera_view_refresh(const bContext *C, wmManipulatorGrou } -void VIEW3D_WGT_camera_view(wmManipulatorGroupType *wgt) +void VIEW3D_WGT_camera_view(wmGizmoGroupType *wgt) { wgt->name = "Camera View Widgets"; wgt->idname = "VIEW3D_WGT_camera_view"; - wgt->flag = (WM_MANIPULATORGROUPTYPE_PERSISTENT | - WM_MANIPULATORGROUPTYPE_SCALE); + wgt->flag = (WM_GIZMOGROUPTYPE_PERSISTENT | + WM_GIZMOGROUPTYPE_SCALE); wgt->poll = WIDGETGROUP_camera_view_poll; wgt->setup = WIDGETGROUP_camera_view_setup; diff --git a/source/blender/editors/space_view3d/view3d_gizmo_empty.c b/source/blender/editors/space_view3d/view3d_gizmo_empty.c index 89f55bc1d9a..3b51af5ca15 100644 --- a/source/blender/editors/space_view3d/view3d_gizmo_empty.c +++ b/source/blender/editors/space_view3d/view3d_gizmo_empty.c @@ -50,11 +50,11 @@ /* -------------------------------------------------------------------- */ -/** \name Empty Image Manipulators +/** \name Empty Image Gizmos * \{ */ struct EmptyImageWidgetGroup { - wmManipulator *manipulator; + wmGizmo *gizmo; struct { Object *ob; float dims[2]; @@ -62,8 +62,8 @@ struct EmptyImageWidgetGroup { }; /* translate callbacks */ -static void manipulator_empty_image_prop_matrix_get( - const wmManipulator *mpr, wmManipulatorProperty *mpr_prop, +static void gizmo_empty_image_prop_matrix_get( + const wmGizmo *mpr, wmGizmoProperty *mpr_prop, void *value_p) { float (*matrix)[4] = value_p; @@ -84,8 +84,8 @@ static void manipulator_empty_image_prop_matrix_get( matrix[3][1] = (ob->ima_ofs[1] * dims[1]) + (0.5f * dims[1]); } -static void manipulator_empty_image_prop_matrix_set( - const wmManipulator *mpr, wmManipulatorProperty *mpr_prop, +static void gizmo_empty_image_prop_matrix_set( + const wmGizmo *mpr, wmGizmoProperty *mpr_prop, const void *value_p) { const float (*matrix)[4] = value_p; @@ -104,12 +104,12 @@ static void manipulator_empty_image_prop_matrix_set( ob->ima_ofs[1] = (matrix[3][1] - (0.5f * dims[1])) / dims[1]; } -static bool WIDGETGROUP_empty_image_poll(const bContext *C, wmManipulatorGroupType *UNUSED(wgt)) +static bool WIDGETGROUP_empty_image_poll(const bContext *C, wmGizmoGroupType *UNUSED(wgt)) { View3D *v3d = CTX_wm_view3d(C); if ((v3d->flag2 & V3D_RENDER_OVERRIDE) || - (v3d->mpr_flag & (V3D_MANIPULATOR_HIDE | V3D_MANIPULATOR_HIDE_CONTEXT))) + (v3d->mpr_flag & (V3D_GIZMO_HIDE | V3D_GIZMO_HIDE_CONTEXT))) { return false; } @@ -122,34 +122,34 @@ static bool WIDGETGROUP_empty_image_poll(const bContext *C, wmManipulatorGroupTy return false; } -static void WIDGETGROUP_empty_image_setup(const bContext *UNUSED(C), wmManipulatorGroup *mgroup) +static void WIDGETGROUP_empty_image_setup(const bContext *UNUSED(C), wmGizmoGroup *mgroup) { struct EmptyImageWidgetGroup *imgroup = MEM_mallocN(sizeof(struct EmptyImageWidgetGroup), __func__); - imgroup->manipulator = WM_manipulator_new("MANIPULATOR_WT_cage_2d", mgroup, NULL); - wmManipulator *mpr = imgroup->manipulator; + imgroup->gizmo = WM_gizmo_new("GIZMO_WT_cage_2d", mgroup, NULL); + wmGizmo *mpr = imgroup->gizmo; RNA_enum_set(mpr->ptr, "transform", - ED_MANIPULATOR_CAGE2D_XFORM_FLAG_SCALE); + ED_GIZMO_CAGE2D_XFORM_FLAG_SCALE); mgroup->customdata = imgroup; - WM_manipulator_set_flag(mpr, WM_MANIPULATOR_DRAW_HOVER, true); + WM_gizmo_set_flag(mpr, WM_GIZMO_DRAW_HOVER, true); - UI_GetThemeColor3fv(TH_MANIPULATOR_PRIMARY, mpr->color); - UI_GetThemeColor3fv(TH_MANIPULATOR_HI, mpr->color_hi); + UI_GetThemeColor3fv(TH_GIZMO_PRIMARY, mpr->color); + UI_GetThemeColor3fv(TH_GIZMO_HI, mpr->color_hi); } -static void WIDGETGROUP_empty_image_refresh(const bContext *C, wmManipulatorGroup *mgroup) +static void WIDGETGROUP_empty_image_refresh(const bContext *C, wmGizmoGroup *mgroup) { struct EmptyImageWidgetGroup *imgroup = mgroup->customdata; Object *ob = CTX_data_active_object(C); - wmManipulator *mpr = imgroup->manipulator; + wmGizmo *mpr = imgroup->gizmo; copy_m4_m4(mpr->matrix_basis, ob->obmat); RNA_enum_set(mpr->ptr, "transform", - ED_MANIPULATOR_CAGE2D_XFORM_FLAG_TRANSLATE | - ED_MANIPULATOR_CAGE2D_XFORM_FLAG_SCALE | - ED_MANIPULATOR_CAGE2D_XFORM_FLAG_SCALE_UNIFORM); + ED_GIZMO_CAGE2D_XFORM_FLAG_TRANSLATE | + ED_GIZMO_CAGE2D_XFORM_FLAG_SCALE | + ED_GIZMO_CAGE2D_XFORM_FLAG_SCALE_UNIFORM); imgroup->state.ob = ob; @@ -177,24 +177,24 @@ static void WIDGETGROUP_empty_image_refresh(const bContext *C, wmManipulatorGrou } RNA_float_set_array(mpr->ptr, "dimensions", imgroup->state.dims); - WM_manipulator_target_property_def_func( + WM_gizmo_target_property_def_func( mpr, "matrix", - &(const struct wmManipulatorPropertyFnParams) { - .value_get_fn = manipulator_empty_image_prop_matrix_get, - .value_set_fn = manipulator_empty_image_prop_matrix_set, + &(const struct wmGizmoPropertyFnParams) { + .value_get_fn = gizmo_empty_image_prop_matrix_get, + .value_set_fn = gizmo_empty_image_prop_matrix_set, .range_get_fn = NULL, .user_data = imgroup, }); } -void VIEW3D_WGT_empty_image(wmManipulatorGroupType *wgt) +void VIEW3D_WGT_empty_image(wmGizmoGroupType *wgt) { wgt->name = "Area Light Widgets"; wgt->idname = "VIEW3D_WGT_empty_image"; - wgt->flag |= (WM_MANIPULATORGROUPTYPE_PERSISTENT | - WM_MANIPULATORGROUPTYPE_3D | - WM_MANIPULATORGROUPTYPE_DEPTH_3D); + wgt->flag |= (WM_GIZMOGROUPTYPE_PERSISTENT | + WM_GIZMOGROUPTYPE_3D | + WM_GIZMOGROUPTYPE_DEPTH_3D); wgt->poll = WIDGETGROUP_empty_image_poll; wgt->setup = WIDGETGROUP_empty_image_setup; diff --git a/source/blender/editors/space_view3d/view3d_gizmo_forcefield.c b/source/blender/editors/space_view3d/view3d_gizmo_forcefield.c index db985c18c08..d4605bb0c7d 100644 --- a/source/blender/editors/space_view3d/view3d_gizmo_forcefield.c +++ b/source/blender/editors/space_view3d/view3d_gizmo_forcefield.c @@ -49,15 +49,15 @@ /* -------------------------------------------------------------------- */ -/** \name Force Field Manipulators +/** \name Force Field Gizmos * \{ */ -static bool WIDGETGROUP_forcefield_poll(const bContext *C, wmManipulatorGroupType *UNUSED(wgt)) +static bool WIDGETGROUP_forcefield_poll(const bContext *C, wmGizmoGroupType *UNUSED(wgt)) { View3D *v3d = CTX_wm_view3d(C); if ((v3d->flag2 & V3D_RENDER_OVERRIDE) || - (v3d->mpr_flag & (V3D_MANIPULATOR_HIDE | V3D_MANIPULATOR_HIDE_CONTEXT))) + (v3d->mpr_flag & (V3D_GIZMO_HIDE | V3D_GIZMO_HIDE_CONTEXT))) { return false; } @@ -67,26 +67,26 @@ static bool WIDGETGROUP_forcefield_poll(const bContext *C, wmManipulatorGroupTyp return (ob && ob->pd && ob->pd->forcefield); } -static void WIDGETGROUP_forcefield_setup(const bContext *UNUSED(C), wmManipulatorGroup *mgroup) +static void WIDGETGROUP_forcefield_setup(const bContext *UNUSED(C), wmGizmoGroup *mgroup) { /* only wind effector for now */ - wmManipulatorWrapper *wwrapper = MEM_mallocN(sizeof(wmManipulatorWrapper), __func__); + wmGizmoWrapper *wwrapper = MEM_mallocN(sizeof(wmGizmoWrapper), __func__); mgroup->customdata = wwrapper; - wwrapper->manipulator = WM_manipulator_new("MANIPULATOR_WT_arrow_3d", mgroup, NULL); - wmManipulator *mpr = wwrapper->manipulator; - RNA_enum_set(mpr->ptr, "transform", ED_MANIPULATOR_ARROW_XFORM_FLAG_CONSTRAINED); - ED_manipulator_arrow3d_set_ui_range(mpr, -200.0f, 200.0f); - ED_manipulator_arrow3d_set_range_fac(mpr, 6.0f); + wwrapper->gizmo = WM_gizmo_new("GIZMO_WT_arrow_3d", mgroup, NULL); + wmGizmo *mpr = wwrapper->gizmo; + RNA_enum_set(mpr->ptr, "transform", ED_GIZMO_ARROW_XFORM_FLAG_CONSTRAINED); + ED_gizmo_arrow3d_set_ui_range(mpr, -200.0f, 200.0f); + ED_gizmo_arrow3d_set_range_fac(mpr, 6.0f); - UI_GetThemeColor3fv(TH_MANIPULATOR_PRIMARY, mpr->color); - UI_GetThemeColor3fv(TH_MANIPULATOR_HI, mpr->color_hi); + UI_GetThemeColor3fv(TH_GIZMO_PRIMARY, mpr->color); + UI_GetThemeColor3fv(TH_GIZMO_HI, mpr->color_hi); } -static void WIDGETGROUP_forcefield_refresh(const bContext *C, wmManipulatorGroup *mgroup) +static void WIDGETGROUP_forcefield_refresh(const bContext *C, wmGizmoGroup *mgroup) { - wmManipulatorWrapper *wwrapper = mgroup->customdata; - wmManipulator *mpr = wwrapper->manipulator; + wmGizmoWrapper *wwrapper = mgroup->customdata; + wmGizmo *mpr = wwrapper->gizmo; Object *ob = CTX_data_active_object(C); PartDeflect *pd = ob->pd; @@ -96,26 +96,26 @@ static void WIDGETGROUP_forcefield_refresh(const bContext *C, wmManipulatorGroup PointerRNA field_ptr; RNA_pointer_create(&ob->id, &RNA_FieldSettings, pd, &field_ptr); - WM_manipulator_set_matrix_location(mpr, ob->obmat[3]); - WM_manipulator_set_matrix_rotation_from_z_axis(mpr, ob->obmat[2]); - WM_manipulator_set_matrix_offset_location(mpr, ofs); - WM_manipulator_set_flag(mpr, WM_MANIPULATOR_HIDDEN, false); - WM_manipulator_target_property_def_rna(mpr, "offset", &field_ptr, "strength", -1); + WM_gizmo_set_matrix_location(mpr, ob->obmat[3]); + WM_gizmo_set_matrix_rotation_from_z_axis(mpr, ob->obmat[2]); + WM_gizmo_set_matrix_offset_location(mpr, ofs); + WM_gizmo_set_flag(mpr, WM_GIZMO_HIDDEN, false); + WM_gizmo_target_property_def_rna(mpr, "offset", &field_ptr, "strength", -1); } else { - WM_manipulator_set_flag(mpr, WM_MANIPULATOR_HIDDEN, true); + WM_gizmo_set_flag(mpr, WM_GIZMO_HIDDEN, true); } } -void VIEW3D_WGT_force_field(wmManipulatorGroupType *wgt) +void VIEW3D_WGT_force_field(wmGizmoGroupType *wgt) { wgt->name = "Force Field Widgets"; wgt->idname = "VIEW3D_WGT_force_field"; - wgt->flag |= (WM_MANIPULATORGROUPTYPE_PERSISTENT | - WM_MANIPULATORGROUPTYPE_3D | - WM_MANIPULATORGROUPTYPE_SCALE | - WM_MANIPULATORGROUPTYPE_DEPTH_3D); + wgt->flag |= (WM_GIZMOGROUPTYPE_PERSISTENT | + WM_GIZMOGROUPTYPE_3D | + WM_GIZMOGROUPTYPE_SCALE | + WM_GIZMOGROUPTYPE_DEPTH_3D); wgt->poll = WIDGETGROUP_forcefield_poll; wgt->setup = WIDGETGROUP_forcefield_setup; diff --git a/source/blender/editors/space_view3d/view3d_gizmo_lamp.c b/source/blender/editors/space_view3d/view3d_gizmo_lamp.c index 8087fcbdddd..a872cc96172 100644 --- a/source/blender/editors/space_view3d/view3d_gizmo_lamp.c +++ b/source/blender/editors/space_view3d/view3d_gizmo_lamp.c @@ -49,14 +49,14 @@ /* -------------------------------------------------------------------- */ -/** \name Spot Lamp Manipulators +/** \name Spot Lamp Gizmos * \{ */ -static bool WIDGETGROUP_lamp_spot_poll(const bContext *C, wmManipulatorGroupType *UNUSED(wgt)) +static bool WIDGETGROUP_lamp_spot_poll(const bContext *C, wmGizmoGroupType *UNUSED(wgt)) { View3D *v3d = CTX_wm_view3d(C); if ((v3d->flag2 & V3D_RENDER_OVERRIDE) || - (v3d->mpr_flag & (V3D_MANIPULATOR_HIDE | V3D_MANIPULATOR_HIDE_CONTEXT))) + (v3d->mpr_flag & (V3D_GIZMO_HIDE | V3D_GIZMO_HIDE_CONTEXT))) { return false; } @@ -70,49 +70,49 @@ static bool WIDGETGROUP_lamp_spot_poll(const bContext *C, wmManipulatorGroupType return false; } -static void WIDGETGROUP_lamp_spot_setup(const bContext *UNUSED(C), wmManipulatorGroup *mgroup) +static void WIDGETGROUP_lamp_spot_setup(const bContext *UNUSED(C), wmGizmoGroup *mgroup) { - wmManipulatorWrapper *wwrapper = MEM_mallocN(sizeof(wmManipulatorWrapper), __func__); + wmGizmoWrapper *wwrapper = MEM_mallocN(sizeof(wmGizmoWrapper), __func__); - wwrapper->manipulator = WM_manipulator_new("MANIPULATOR_WT_arrow_3d", mgroup, NULL); - wmManipulator *mpr = wwrapper->manipulator; - RNA_enum_set(mpr->ptr, "transform", ED_MANIPULATOR_ARROW_XFORM_FLAG_INVERTED); + wwrapper->gizmo = WM_gizmo_new("GIZMO_WT_arrow_3d", mgroup, NULL); + wmGizmo *mpr = wwrapper->gizmo; + RNA_enum_set(mpr->ptr, "transform", ED_GIZMO_ARROW_XFORM_FLAG_INVERTED); mgroup->customdata = wwrapper; - ED_manipulator_arrow3d_set_range_fac(mpr, 4.0f); + ED_gizmo_arrow3d_set_range_fac(mpr, 4.0f); - UI_GetThemeColor3fv(TH_MANIPULATOR_SECONDARY, mpr->color); + UI_GetThemeColor3fv(TH_GIZMO_SECONDARY, mpr->color); } -static void WIDGETGROUP_lamp_spot_refresh(const bContext *C, wmManipulatorGroup *mgroup) +static void WIDGETGROUP_lamp_spot_refresh(const bContext *C, wmGizmoGroup *mgroup) { - wmManipulatorWrapper *wwrapper = mgroup->customdata; - wmManipulator *mpr = wwrapper->manipulator; + wmGizmoWrapper *wwrapper = mgroup->customdata; + wmGizmo *mpr = wwrapper->gizmo; Object *ob = CTX_data_active_object(C); Lamp *la = ob->data; float dir[3]; negate_v3_v3(dir, ob->obmat[2]); - WM_manipulator_set_matrix_rotation_from_z_axis(mpr, dir); - WM_manipulator_set_matrix_location(mpr, ob->obmat[3]); + WM_gizmo_set_matrix_rotation_from_z_axis(mpr, dir); + WM_gizmo_set_matrix_location(mpr, ob->obmat[3]); /* need to set property here for undo. TODO would prefer to do this in _init */ PointerRNA lamp_ptr; const char *propname = "spot_size"; RNA_pointer_create(&la->id, &RNA_Light, la, &lamp_ptr); - WM_manipulator_target_property_def_rna(mpr, "offset", &lamp_ptr, propname, -1); + WM_gizmo_target_property_def_rna(mpr, "offset", &lamp_ptr, propname, -1); } -void VIEW3D_WGT_lamp_spot(wmManipulatorGroupType *wgt) +void VIEW3D_WGT_lamp_spot(wmGizmoGroupType *wgt) { wgt->name = "Spot Light Widgets"; wgt->idname = "VIEW3D_WGT_lamp_spot"; - wgt->flag |= (WM_MANIPULATORGROUPTYPE_PERSISTENT | - WM_MANIPULATORGROUPTYPE_3D | - WM_MANIPULATORGROUPTYPE_DEPTH_3D); + wgt->flag |= (WM_GIZMOGROUPTYPE_PERSISTENT | + WM_GIZMOGROUPTYPE_3D | + WM_GIZMOGROUPTYPE_DEPTH_3D); wgt->poll = WIDGETGROUP_lamp_spot_poll; wgt->setup = WIDGETGROUP_lamp_spot_setup; @@ -123,12 +123,12 @@ void VIEW3D_WGT_lamp_spot(wmManipulatorGroupType *wgt) /* -------------------------------------------------------------------- */ -/** \name Area Lamp Manipulators +/** \name Area Lamp Gizmos * \{ */ /* scale callbacks */ -static void manipulator_area_lamp_prop_matrix_get( - const wmManipulator *UNUSED(mpr), wmManipulatorProperty *mpr_prop, +static void gizmo_area_lamp_prop_matrix_get( + const wmGizmo *UNUSED(mpr), wmGizmoProperty *mpr_prop, void *value_p) { BLI_assert(mpr_prop->type->array_length == 16); @@ -139,8 +139,8 @@ static void manipulator_area_lamp_prop_matrix_get( matrix[1][1] = ELEM(la->area_shape, LA_AREA_RECT, LA_AREA_ELLIPSE) ? la->area_sizey : la->area_size; } -static void manipulator_area_lamp_prop_matrix_set( - const wmManipulator *UNUSED(mpr), wmManipulatorProperty *mpr_prop, +static void gizmo_area_lamp_prop_matrix_set( + const wmGizmo *UNUSED(mpr), wmGizmoProperty *mpr_prop, const void *value_p) { const float (*matrix)[4] = value_p; @@ -156,7 +156,7 @@ static void manipulator_area_lamp_prop_matrix_set( } } -static bool WIDGETGROUP_lamp_area_poll(const bContext *C, wmManipulatorGroupType *UNUSED(wgt)) +static bool WIDGETGROUP_lamp_area_poll(const bContext *C, wmGizmoGroupType *UNUSED(wgt)) { View3D *v3d = CTX_wm_view3d(C); if (v3d->flag2 & V3D_RENDER_OVERRIDE) { @@ -171,56 +171,56 @@ static bool WIDGETGROUP_lamp_area_poll(const bContext *C, wmManipulatorGroupType return false; } -static void WIDGETGROUP_lamp_area_setup(const bContext *UNUSED(C), wmManipulatorGroup *mgroup) +static void WIDGETGROUP_lamp_area_setup(const bContext *UNUSED(C), wmGizmoGroup *mgroup) { - wmManipulatorWrapper *wwrapper = MEM_mallocN(sizeof(wmManipulatorWrapper), __func__); - wwrapper->manipulator = WM_manipulator_new("MANIPULATOR_WT_cage_2d", mgroup, NULL); - wmManipulator *mpr = wwrapper->manipulator; + wmGizmoWrapper *wwrapper = MEM_mallocN(sizeof(wmGizmoWrapper), __func__); + wwrapper->gizmo = WM_gizmo_new("GIZMO_WT_cage_2d", mgroup, NULL); + wmGizmo *mpr = wwrapper->gizmo; RNA_enum_set(mpr->ptr, "transform", - ED_MANIPULATOR_CAGE2D_XFORM_FLAG_SCALE); + ED_GIZMO_CAGE2D_XFORM_FLAG_SCALE); mgroup->customdata = wwrapper; - WM_manipulator_set_flag(mpr, WM_MANIPULATOR_DRAW_HOVER, true); + WM_gizmo_set_flag(mpr, WM_GIZMO_DRAW_HOVER, true); - UI_GetThemeColor3fv(TH_MANIPULATOR_PRIMARY, mpr->color); - UI_GetThemeColor3fv(TH_MANIPULATOR_HI, mpr->color_hi); + UI_GetThemeColor3fv(TH_GIZMO_PRIMARY, mpr->color); + UI_GetThemeColor3fv(TH_GIZMO_HI, mpr->color_hi); } -static void WIDGETGROUP_lamp_area_refresh(const bContext *C, wmManipulatorGroup *mgroup) +static void WIDGETGROUP_lamp_area_refresh(const bContext *C, wmGizmoGroup *mgroup) { - wmManipulatorWrapper *wwrapper = mgroup->customdata; + wmGizmoWrapper *wwrapper = mgroup->customdata; Object *ob = CTX_data_active_object(C); Lamp *la = ob->data; - wmManipulator *mpr = wwrapper->manipulator; + wmGizmo *mpr = wwrapper->gizmo; copy_m4_m4(mpr->matrix_basis, ob->obmat); - int flag = ED_MANIPULATOR_CAGE2D_XFORM_FLAG_SCALE; + int flag = ED_GIZMO_CAGE2D_XFORM_FLAG_SCALE; if (ELEM(la->area_shape, LA_AREA_SQUARE, LA_AREA_DISK)) { - flag |= ED_MANIPULATOR_CAGE2D_XFORM_FLAG_SCALE_UNIFORM; + flag |= ED_GIZMO_CAGE2D_XFORM_FLAG_SCALE_UNIFORM; } RNA_enum_set(mpr->ptr, "transform", flag); /* need to set property here for undo. TODO would prefer to do this in _init */ - WM_manipulator_target_property_def_func( + WM_gizmo_target_property_def_func( mpr, "matrix", - &(const struct wmManipulatorPropertyFnParams) { - .value_get_fn = manipulator_area_lamp_prop_matrix_get, - .value_set_fn = manipulator_area_lamp_prop_matrix_set, + &(const struct wmGizmoPropertyFnParams) { + .value_get_fn = gizmo_area_lamp_prop_matrix_get, + .value_set_fn = gizmo_area_lamp_prop_matrix_set, .range_get_fn = NULL, .user_data = la, }); } -void VIEW3D_WGT_lamp_area(wmManipulatorGroupType *wgt) +void VIEW3D_WGT_lamp_area(wmGizmoGroupType *wgt) { wgt->name = "Area Light Widgets"; wgt->idname = "VIEW3D_WGT_lamp_area"; - wgt->flag |= (WM_MANIPULATORGROUPTYPE_PERSISTENT | - WM_MANIPULATORGROUPTYPE_3D | - WM_MANIPULATORGROUPTYPE_DEPTH_3D); + wgt->flag |= (WM_GIZMOGROUPTYPE_PERSISTENT | + WM_GIZMOGROUPTYPE_3D | + WM_GIZMOGROUPTYPE_DEPTH_3D); wgt->poll = WIDGETGROUP_lamp_area_poll; wgt->setup = WIDGETGROUP_lamp_area_setup; @@ -232,10 +232,10 @@ void VIEW3D_WGT_lamp_area(wmManipulatorGroupType *wgt) /* -------------------------------------------------------------------- */ -/** \name Lamp Target Manipulator +/** \name Lamp Target Gizmo * \{ */ -static bool WIDGETGROUP_lamp_target_poll(const bContext *C, wmManipulatorGroupType *UNUSED(wgt)) +static bool WIDGETGROUP_lamp_target_poll(const bContext *C, wmGizmoGroupType *UNUSED(wgt)) { View3D *v3d = CTX_wm_view3d(C); if (v3d->flag2 & V3D_RENDER_OVERRIDE) { @@ -258,46 +258,46 @@ static bool WIDGETGROUP_lamp_target_poll(const bContext *C, wmManipulatorGroupTy return false; } -static void WIDGETGROUP_lamp_target_setup(const bContext *UNUSED(C), wmManipulatorGroup *mgroup) +static void WIDGETGROUP_lamp_target_setup(const bContext *UNUSED(C), wmGizmoGroup *mgroup) { - wmManipulatorWrapper *wwrapper = MEM_mallocN(sizeof(wmManipulatorWrapper), __func__); - wwrapper->manipulator = WM_manipulator_new("MANIPULATOR_WT_grab_3d", mgroup, NULL); - wmManipulator *mpr = wwrapper->manipulator; + wmGizmoWrapper *wwrapper = MEM_mallocN(sizeof(wmGizmoWrapper), __func__); + wwrapper->gizmo = WM_gizmo_new("GIZMO_WT_grab_3d", mgroup, NULL); + wmGizmo *mpr = wwrapper->gizmo; mgroup->customdata = wwrapper; - UI_GetThemeColor3fv(TH_MANIPULATOR_PRIMARY, mpr->color); - UI_GetThemeColor3fv(TH_MANIPULATOR_HI, mpr->color_hi); + UI_GetThemeColor3fv(TH_GIZMO_PRIMARY, mpr->color); + UI_GetThemeColor3fv(TH_GIZMO_HI, mpr->color_hi); mpr->scale_basis = 0.06f; wmOperatorType *ot = WM_operatortype_find("OBJECT_OT_transform_axis_target", true); RNA_enum_set(mpr->ptr, "draw_options", - ED_MANIPULATOR_GRAB_DRAW_FLAG_FILL | ED_MANIPULATOR_GRAB_DRAW_FLAG_ALIGN_VIEW); + ED_GIZMO_GRAB_DRAW_FLAG_FILL | ED_GIZMO_GRAB_DRAW_FLAG_ALIGN_VIEW); - WM_manipulator_operator_set(mpr, 0, ot, NULL); + WM_gizmo_operator_set(mpr, 0, ot, NULL); } -static void WIDGETGROUP_lamp_target_draw_prepare(const bContext *C, wmManipulatorGroup *mgroup) +static void WIDGETGROUP_lamp_target_draw_prepare(const bContext *C, wmGizmoGroup *mgroup) { - wmManipulatorWrapper *wwrapper = mgroup->customdata; + wmGizmoWrapper *wwrapper = mgroup->customdata; Object *ob = CTX_data_active_object(C); - wmManipulator *mpr = wwrapper->manipulator; + wmGizmo *mpr = wwrapper->gizmo; copy_m4_m4(mpr->matrix_basis, ob->obmat); unit_m4(mpr->matrix_offset); mpr->matrix_offset[3][2] = -2.4f / mpr->scale_basis; - WM_manipulator_set_flag(mpr, WM_MANIPULATOR_DRAW_OFFSET_SCALE, true); + WM_gizmo_set_flag(mpr, WM_GIZMO_DRAW_OFFSET_SCALE, true); } -void VIEW3D_WGT_lamp_target(wmManipulatorGroupType *wgt) +void VIEW3D_WGT_lamp_target(wmGizmoGroupType *wgt) { wgt->name = "Target Light Widgets"; wgt->idname = "VIEW3D_WGT_lamp_target"; - wgt->flag |= (WM_MANIPULATORGROUPTYPE_PERSISTENT | - WM_MANIPULATORGROUPTYPE_3D); + wgt->flag |= (WM_GIZMOGROUPTYPE_PERSISTENT | + WM_GIZMOGROUPTYPE_3D); wgt->poll = WIDGETGROUP_lamp_target_poll; wgt->setup = WIDGETGROUP_lamp_target_setup; diff --git a/source/blender/editors/space_view3d/view3d_gizmo_navigate.c b/source/blender/editors/space_view3d/view3d_gizmo_navigate.c index db4eeef18f7..98669739745 100644 --- a/source/blender/editors/space_view3d/view3d_gizmo_navigate.c +++ b/source/blender/editors/space_view3d/view3d_gizmo_navigate.c @@ -47,17 +47,17 @@ #include "view3d_intern.h" /* own include */ /* -------------------------------------------------------------------- */ -/** \name View3D Navigation Manipulator Group +/** \name View3D Navigation Gizmo Group * \{ */ /* Offset from screen edge. */ -#define MANIPULATOR_OFFSET_FAC 1.5f +#define GIZMO_OFFSET_FAC 1.5f /* Size of main icon. */ -#define MANIPULATOR_SIZE 64 +#define GIZMO_SIZE 64 /* Factor for size of smaller button. */ -#define MANIPULATOR_MINI_FAC 0.35f +#define GIZMO_MINI_FAC 0.35f /* How much mini buttons offset from the primary. */ -#define MANIPULATOR_MINI_OFFSET_FAC 0.42f +#define GIZMO_MINI_OFFSET_FAC 0.42f enum { @@ -122,40 +122,40 @@ static const uchar shape_zoom[] = { }; -struct NavigateManipulatorInfo { +struct NavigateGizmoInfo { const char *opname; - const char *manipulator; + const char *gizmo; const unsigned char *shape; uint shape_size; }; #define SHAPE_VARS(shape_id) shape = shape_id, .shape_size = ARRAY_SIZE(shape_id) -struct NavigateManipulatorInfo g_navigate_params[MPR_TOTAL] = { +struct NavigateGizmoInfo g_navigate_params[MPR_TOTAL] = { { .opname = "VIEW3D_OT_move", - .manipulator = "MANIPULATOR_WT_button_2d", + .gizmo = "GIZMO_WT_button_2d", .SHAPE_VARS(shape_pan), }, { .opname = "VIEW3D_OT_rotate", - .manipulator = "VIEW3D_WT_navigate_rotate", + .gizmo = "VIEW3D_WT_navigate_rotate", .shape = NULL, .shape_size = 0, }, { .opname = "VIEW3D_OT_zoom", - .manipulator = "MANIPULATOR_WT_button_2d", + .gizmo = "GIZMO_WT_button_2d", .SHAPE_VARS(shape_zoom), }, { .opname = "VIEW3D_OT_view_persportho", - .manipulator = "MANIPULATOR_WT_button_2d", + .gizmo = "GIZMO_WT_button_2d", .SHAPE_VARS(shape_persp), }, { .opname = "VIEW3D_OT_view_persportho", - .manipulator = "MANIPULATOR_WT_button_2d", + .gizmo = "GIZMO_WT_button_2d", .SHAPE_VARS(shape_ortho), }, { .opname = "VIEW3D_OT_view_camera", - .manipulator = "MANIPULATOR_WT_button_2d", + .gizmo = "GIZMO_WT_button_2d", .SHAPE_VARS(shape_camera), }, }; @@ -163,7 +163,7 @@ struct NavigateManipulatorInfo g_navigate_params[MPR_TOTAL] = { #undef SHAPE_VARS struct NavigateWidgetGroup { - wmManipulator *mpr_array[MPR_TOTAL]; + wmGizmo *mpr_array[MPR_TOTAL]; /* Store the view state to check for changes. */ struct { rcti rect_visible; @@ -176,12 +176,12 @@ struct NavigateWidgetGroup { int region_size[2]; }; -static bool WIDGETGROUP_navigate_poll(const bContext *C, wmManipulatorGroupType *UNUSED(wgt)) +static bool WIDGETGROUP_navigate_poll(const bContext *C, wmGizmoGroupType *UNUSED(wgt)) { View3D *v3d = CTX_wm_view3d(C); - if (((U.uiflag & USER_SHOW_MANIPULATOR_AXIS) == 0) || + if (((U.uiflag & USER_SHOW_GIZMO_AXIS) == 0) || (v3d->flag2 & V3D_RENDER_OVERRIDE) || - (v3d->mpr_flag & (V3D_MANIPULATOR_HIDE | V3D_MANIPULATOR_HIDE_NAVIGATE))) + (v3d->mpr_flag & (V3D_GIZMO_HIDE | V3D_GIZMO_HIDE_NAVIGATE))) { return false; } @@ -189,7 +189,7 @@ static bool WIDGETGROUP_navigate_poll(const bContext *C, wmManipulatorGroupType } -static void WIDGETGROUP_navigate_setup(const bContext *UNUSED(C), wmManipulatorGroup *mgroup) +static void WIDGETGROUP_navigate_setup(const bContext *UNUSED(C), wmGizmoGroup *mgroup) { struct NavigateWidgetGroup *navgroup = MEM_callocN(sizeof(struct NavigateWidgetGroup), __func__); @@ -200,37 +200,37 @@ static void WIDGETGROUP_navigate_setup(const bContext *UNUSED(C), wmManipulatorG wmOperatorType *ot_view_camera = WM_operatortype_find("VIEW3D_OT_view_camera", true); for (int i = 0; i < MPR_TOTAL; i++) { - const struct NavigateManipulatorInfo *info = &g_navigate_params[i]; - navgroup->mpr_array[i] = WM_manipulator_new(info->manipulator, mgroup, NULL); - wmManipulator *mpr = navgroup->mpr_array[i]; - mpr->flag |= WM_MANIPULATOR_GRAB_CURSOR | WM_MANIPULATOR_DRAW_MODAL; + const struct NavigateGizmoInfo *info = &g_navigate_params[i]; + navgroup->mpr_array[i] = WM_gizmo_new(info->gizmo, mgroup, NULL); + wmGizmo *mpr = navgroup->mpr_array[i]; + mpr->flag |= WM_GIZMO_GRAB_CURSOR | WM_GIZMO_DRAW_MODAL; mpr->color[3] = 0.2f; mpr->color_hi[3] = 0.4f; /* may be overwritten later */ - mpr->scale_basis = (MANIPULATOR_SIZE * MANIPULATOR_MINI_FAC) / 2; + mpr->scale_basis = (GIZMO_SIZE * GIZMO_MINI_FAC) / 2; if (info->shape != NULL) { PropertyRNA *prop = RNA_struct_find_property(mpr->ptr, "shape"); RNA_property_string_set_bytes( mpr->ptr, prop, (const char *)info->shape, info->shape_size); - RNA_enum_set(mpr->ptr, "draw_options", ED_MANIPULATOR_BUTTON_SHOW_OUTLINE); + RNA_enum_set(mpr->ptr, "draw_options", ED_GIZMO_BUTTON_SHOW_OUTLINE); } wmOperatorType *ot = WM_operatortype_find(info->opname, true); - WM_manipulator_operator_set(mpr, 0, ot, NULL); + WM_gizmo_operator_set(mpr, 0, ot, NULL); } { - wmManipulator *mpr = navgroup->mpr_array[MPR_CAMERA]; - WM_manipulator_operator_set(mpr, 0, ot_view_camera, NULL); + wmGizmo *mpr = navgroup->mpr_array[MPR_CAMERA]; + WM_gizmo_operator_set(mpr, 0, ot_view_camera, NULL); } /* Click only buttons (not modal). */ { int mpr_ids[] = {MPR_PERSP, MPR_ORTHO, MPR_CAMERA}; for (int i = 0; i < ARRAY_SIZE(mpr_ids); i++) { - wmManipulator *mpr = navgroup->mpr_array[mpr_ids[i]]; + wmGizmo *mpr = navgroup->mpr_array[mpr_ids[i]]; RNA_boolean_set(mpr->ptr, "show_drag", false); } } @@ -239,15 +239,15 @@ static void WIDGETGROUP_navigate_setup(const bContext *UNUSED(C), wmManipulatorG { int mpr_ids[] = {MPR_MOVE, MPR_ROTATE, MPR_ZOOM}; for (int i = 0; i < ARRAY_SIZE(mpr_ids); i++) { - wmManipulator *mpr = navgroup->mpr_array[mpr_ids[i]]; - wmManipulatorOpElem *mpop = WM_manipulator_operator_get(mpr, 0); + wmGizmo *mpr = navgroup->mpr_array[mpr_ids[i]]; + wmGizmoOpElem *mpop = WM_gizmo_operator_get(mpr, 0); RNA_boolean_set(&mpop->ptr, "use_mouse_init", false); } } { - wmManipulator *mpr = navgroup->mpr_array[MPR_ROTATE]; - mpr->scale_basis = MANIPULATOR_SIZE / 2; + wmGizmo *mpr = navgroup->mpr_array[MPR_ROTATE]; + mpr->scale_basis = GIZMO_SIZE / 2; char mapping[6] = { RV3D_VIEW_LEFT, RV3D_VIEW_RIGHT, @@ -258,7 +258,7 @@ static void WIDGETGROUP_navigate_setup(const bContext *UNUSED(C), wmManipulatorG }; for (int part_index = 0; part_index < 6; part_index += 1) { - PointerRNA *ptr = WM_manipulator_operator_set(mpr, part_index + 1, ot_view_axis, NULL); + PointerRNA *ptr = WM_gizmo_operator_set(mpr, part_index + 1, ot_view_axis, NULL); RNA_enum_set(ptr, "type", mapping[part_index]); } @@ -269,7 +269,7 @@ static void WIDGETGROUP_navigate_setup(const bContext *UNUSED(C), wmManipulatorG mgroup->customdata = navgroup; } -static void WIDGETGROUP_navigate_draw_prepare(const bContext *C, wmManipulatorGroup *mgroup) +static void WIDGETGROUP_navigate_draw_prepare(const bContext *C, wmGizmoGroup *mgroup) { struct NavigateWidgetGroup *navgroup = mgroup->customdata; ARegion *ar = CTX_wm_region(C); @@ -300,9 +300,9 @@ static void WIDGETGROUP_navigate_draw_prepare(const bContext *C, wmManipulatorGr ((rv3d->viewlock & RV3D_LOCKED) == 0) && (navgroup->state.rv3d.is_camera == false)); const bool show_fixed_offset = navgroup->state.rv3d.is_camera; - const float icon_size = MANIPULATOR_SIZE; - const float icon_offset = (icon_size * 0.52f) * MANIPULATOR_OFFSET_FAC * UI_DPI_FAC; - const float icon_offset_mini = icon_size * MANIPULATOR_MINI_OFFSET_FAC * UI_DPI_FAC; + const float icon_size = GIZMO_SIZE; + const float icon_offset = (icon_size * 0.52f) * GIZMO_OFFSET_FAC * UI_DPI_FAC; + const float icon_offset_mini = icon_size * GIZMO_MINI_OFFSET_FAC * UI_DPI_FAC; const float co_rotate[2] = { rect_visible.xmax - icon_offset, rect_visible.ymax - icon_offset, @@ -312,11 +312,11 @@ static void WIDGETGROUP_navigate_draw_prepare(const bContext *C, wmManipulatorGr rect_visible.ymax - icon_offset_mini * 0.75f, }; - wmManipulator *mpr; + wmGizmo *mpr; for (uint i = 0; i < ARRAY_SIZE(navgroup->mpr_array); i++) { mpr = navgroup->mpr_array[i]; - WM_manipulator_set_flag(mpr, WM_MANIPULATOR_HIDDEN, true); + WM_gizmo_set_flag(mpr, WM_GIZMO_HIDDEN, true); } /* RV3D_LOCKED or Camera: only show supported buttons. */ @@ -324,7 +324,7 @@ static void WIDGETGROUP_navigate_draw_prepare(const bContext *C, wmManipulatorGr mpr = navgroup->mpr_array[MPR_ROTATE]; mpr->matrix_basis[3][0] = co_rotate[0]; mpr->matrix_basis[3][1] = co_rotate[1]; - WM_manipulator_set_flag(mpr, WM_MANIPULATOR_HIDDEN, false); + WM_gizmo_set_flag(mpr, WM_GIZMO_HIDDEN, false); } int icon_mini_slot = 0; @@ -332,36 +332,36 @@ static void WIDGETGROUP_navigate_draw_prepare(const bContext *C, wmManipulatorGr mpr = navgroup->mpr_array[MPR_ZOOM]; mpr->matrix_basis[3][0] = co[0] - (icon_offset_mini * icon_mini_slot++); mpr->matrix_basis[3][1] = co[1]; - WM_manipulator_set_flag(mpr, WM_MANIPULATOR_HIDDEN, false); + WM_gizmo_set_flag(mpr, WM_GIZMO_HIDDEN, false); mpr = navgroup->mpr_array[MPR_MOVE]; mpr->matrix_basis[3][0] = co[0] - (icon_offset_mini * icon_mini_slot++); mpr->matrix_basis[3][1] = co[1]; - WM_manipulator_set_flag(mpr, WM_MANIPULATOR_HIDDEN, false); + WM_gizmo_set_flag(mpr, WM_GIZMO_HIDDEN, false); if ((rv3d->viewlock & RV3D_LOCKED) == 0) { mpr = navgroup->mpr_array[MPR_CAMERA]; mpr->matrix_basis[3][0] = co[0] - (icon_offset_mini * icon_mini_slot++); mpr->matrix_basis[3][1] = co[1]; - WM_manipulator_set_flag(mpr, WM_MANIPULATOR_HIDDEN, false); + WM_gizmo_set_flag(mpr, WM_GIZMO_HIDDEN, false); if (navgroup->state.rv3d.is_camera == false) { mpr = navgroup->mpr_array[rv3d->is_persp ? MPR_PERSP : MPR_ORTHO]; mpr->matrix_basis[3][0] = co[0] - (icon_offset_mini * icon_mini_slot++); mpr->matrix_basis[3][1] = co[1]; - WM_manipulator_set_flag(mpr, WM_MANIPULATOR_HIDDEN, false); + WM_gizmo_set_flag(mpr, WM_GIZMO_HIDDEN, false); } } } -void VIEW3D_WGT_navigate(wmManipulatorGroupType *wgt) +void VIEW3D_WGT_navigate(wmGizmoGroupType *wgt) { wgt->name = "View3D Navigate"; wgt->idname = "VIEW3D_WGT_navigate"; - wgt->flag |= (WM_MANIPULATORGROUPTYPE_PERSISTENT | - WM_MANIPULATORGROUPTYPE_SCALE | - WM_MANIPULATORGROUPTYPE_DRAW_MODAL_ALL); + wgt->flag |= (WM_GIZMOGROUPTYPE_PERSISTENT | + WM_GIZMOGROUPTYPE_SCALE | + WM_GIZMOGROUPTYPE_DRAW_MODAL_ALL); wgt->poll = WIDGETGROUP_navigate_poll; wgt->setup = WIDGETGROUP_navigate_setup; diff --git a/source/blender/editors/space_view3d/view3d_gizmo_navigate_type.c b/source/blender/editors/space_view3d/view3d_gizmo_navigate_type.c index 072f2ee4583..0136b235cc0 100644 --- a/source/blender/editors/space_view3d/view3d_gizmo_navigate_type.c +++ b/source/blender/editors/space_view3d/view3d_gizmo_navigate_type.c @@ -21,9 +21,9 @@ /** \file view3d_gizmo_navigate_type.c * \ingroup wm * - * \name Custom Orientation/Navigation Manipulator for the 3D View + * \name Custom Orientation/Navigation Gizmo for the 3D View * - * \brief Simple manipulator to axis and translate. + * \brief Simple gizmo to axis and translate. * * - scale_basis: used for the size. * - matrix_basis: used for the location. @@ -63,7 +63,7 @@ #define HANDLE_SIZE 0.33 static void axis_geom_draw( - const wmManipulator *mpr, const float color[4], const bool UNUSED(select)) + const wmGizmo *mpr, const float color[4], const bool UNUSED(select)) { GPU_line_width(mpr->line_width); @@ -199,7 +199,7 @@ static void axis_geom_draw( } static void axis3d_draw_intern( - const bContext *UNUSED(C), wmManipulator *mpr, + const bContext *UNUSED(C), wmGizmo *mpr, const bool select, const bool highlight) { const float *color = highlight ? mpr->color_hi : mpr->color; @@ -208,9 +208,9 @@ static void axis3d_draw_intern( unit_m4(matrix_unit); - WM_manipulator_calc_matrix_final_params( + WM_gizmo_calc_matrix_final_params( mpr, - &((struct WM_ManipulatorMatrixParams) { + &((struct WM_GizmoMatrixParams) { .matrix_offset = matrix_unit, }), matrix_final); @@ -223,10 +223,10 @@ static void axis3d_draw_intern( gpuPopMatrix(); } -static void manipulator_axis_draw(const bContext *C, wmManipulator *mpr) +static void gizmo_axis_draw(const bContext *C, wmGizmo *mpr) { - const bool is_modal = mpr->state & WM_MANIPULATOR_STATE_MODAL; - const bool is_highlight = (mpr->state & WM_MANIPULATOR_STATE_HIGHLIGHT) != 0; + const bool is_modal = mpr->state & WM_GIZMO_STATE_MODAL; + const bool is_highlight = (mpr->state & WM_GIZMO_STATE_HIGHLIGHT) != 0; (void)is_modal; @@ -235,8 +235,8 @@ static void manipulator_axis_draw(const bContext *C, wmManipulator *mpr) GPU_blend(false); } -static int manipulator_axis_test_select( - bContext *UNUSED(C), wmManipulator *mpr, const wmEvent *event) +static int gizmo_axis_test_select( + bContext *UNUSED(C), wmGizmo *mpr, const wmEvent *event) { float point_local[2] = {UNPACK2(event->mval)}; sub_v2_v2(point_local, mpr->matrix_basis[3]); @@ -288,7 +288,7 @@ static int manipulator_axis_test_select( return -1; } -static int manipulator_axis_cursor_get(wmManipulator *mpr) +static int gizmo_axis_cursor_get(wmGizmo *mpr) { if (mpr->highlight_part > 0) { return CURSOR_EDIT; @@ -296,15 +296,15 @@ static int manipulator_axis_cursor_get(wmManipulator *mpr) return BC_NSEW_SCROLLCURSOR; } -void VIEW3D_WT_navigate_rotate(wmManipulatorType *wt) +void VIEW3D_WT_navigate_rotate(wmGizmoType *wt) { /* identifiers */ wt->idname = "VIEW3D_WT_navigate_rotate"; /* api callbacks */ - wt->draw = manipulator_axis_draw; - wt->test_select = manipulator_axis_test_select; - wt->cursor_get = manipulator_axis_cursor_get; + wt->draw = gizmo_axis_draw; + wt->test_select = gizmo_axis_test_select; + wt->cursor_get = gizmo_axis_cursor_get; - wt->struct_size = sizeof(wmManipulator); + wt->struct_size = sizeof(wmGizmo); } diff --git a/source/blender/editors/space_view3d/view3d_gizmo_ruler.c b/source/blender/editors/space_view3d/view3d_gizmo_ruler.c index c29b07e4147..ac6a984bea5 100644 --- a/source/blender/editors/space_view3d/view3d_gizmo_ruler.c +++ b/source/blender/editors/space_view3d/view3d_gizmo_ruler.c @@ -93,7 +93,7 @@ enum { #define PART_LINE 0xff /* -------------------------------------------------------------------- */ -/* Ruler Info (wmManipulatorGroup customdata) */ +/* Ruler Info (wmGizmoGroup customdata) */ enum { RULER_STATE_NORMAL = 0, @@ -123,7 +123,7 @@ typedef struct RulerInfo { /* Ruler Item (two or three points) */ typedef struct RulerItem { - wmManipulator mpr; + wmGizmo mpr; /* worldspace coords, middle being optional */ float co[3][3]; @@ -143,18 +143,18 @@ typedef struct RulerInteraction { /** \name Internal Ruler Utilities * \{ */ -static RulerItem *ruler_item_add(wmManipulatorGroup *mgroup) +static RulerItem *ruler_item_add(wmGizmoGroup *mgroup) { /* could pass this as an arg */ - const wmManipulatorType *wt_ruler = WM_manipulatortype_find("VIEW3D_WT_ruler_item", true); - RulerItem *ruler_item = (RulerItem *)WM_manipulator_new_ptr(wt_ruler, mgroup, NULL); - WM_manipulator_set_flag(&ruler_item->mpr, WM_MANIPULATOR_DRAW_MODAL, true); + const wmGizmoType *wt_ruler = WM_gizmotype_find("VIEW3D_WT_ruler_item", true); + RulerItem *ruler_item = (RulerItem *)WM_gizmo_new_ptr(wt_ruler, mgroup, NULL); + WM_gizmo_set_flag(&ruler_item->mpr, WM_GIZMO_DRAW_MODAL, true); return ruler_item; } -static void ruler_item_remove(bContext *C, wmManipulatorGroup *mgroup, RulerItem *ruler_item) +static void ruler_item_remove(bContext *C, wmGizmoGroup *mgroup, RulerItem *ruler_item) { - WM_manipulator_unlink(&mgroup->manipulators, mgroup->parent_mmap, &ruler_item->mpr, C); + WM_gizmo_unlink(&mgroup->gizmos, mgroup->parent_mmap, &ruler_item->mpr, C); } static void ruler_item_as_string(RulerItem *ruler_item, UnitSettings *unit, @@ -192,7 +192,7 @@ static void ruler_item_as_string(RulerItem *ruler_item, UnitSettings *unit, } static bool view3d_ruler_pick( - wmManipulatorGroup *mgroup, RulerItem *ruler_item, const float mval[2], + wmGizmoGroup *mgroup, RulerItem *ruler_item, const float mval[2], int *r_co_index) { RulerInfo *ruler_info = mgroup->customdata; @@ -380,7 +380,7 @@ static bool view3d_ruler_item_mousemove( * \{ */ #define RULER_ID "RulerData3D" -static bool view3d_ruler_to_gpencil(bContext *C, wmManipulatorGroup *mgroup) +static bool view3d_ruler_to_gpencil(bContext *C, wmGizmoGroup *mgroup) { // RulerInfo *ruler_info = mgroup->customdata; Main *bmain = CTX_data_main(C); @@ -419,7 +419,7 @@ static bool view3d_ruler_to_gpencil(bContext *C, wmManipulatorGroup *mgroup) gpf = BKE_gpencil_layer_getframe(gpl, CFRA, true); BKE_gpencil_free_strokes(gpf); - for (ruler_item = mgroup->manipulators.first; ruler_item; ruler_item = (RulerItem *)ruler_item->mpr.next) { + for (ruler_item = mgroup->gizmos.first; ruler_item; ruler_item = (RulerItem *)ruler_item->mpr.next) { bGPDspoint *pt; int j; @@ -457,7 +457,7 @@ static bool view3d_ruler_to_gpencil(bContext *C, wmManipulatorGroup *mgroup) return changed; } -static bool view3d_ruler_from_gpencil(const bContext *C, wmManipulatorGroup *mgroup) +static bool view3d_ruler_from_gpencil(const bContext *C, wmGizmoGroup *mgroup) { Scene *scene = CTX_data_scene(C); bool changed = false; @@ -503,10 +503,10 @@ static bool view3d_ruler_from_gpencil(const bContext *C, wmManipulatorGroup *mgr /** \} */ /* -------------------------------------------------------------------- */ -/** \name Ruler Item Manipulator Type +/** \name Ruler Item Gizmo Type * \{ */ -static void manipulator_ruler_draw(const bContext *C, wmManipulator *mpr) +static void gizmo_ruler_draw(const bContext *C, wmGizmo *mpr) { Scene *scene = CTX_data_scene(C); UnitSettings *unit = &scene->unit; @@ -536,7 +536,7 @@ static void manipulator_ruler_draw(const bContext *C, wmManipulator *mpr) UI_GetThemeColor3ubv(TH_TEXT, color_text); UI_GetThemeColor3ubv(TH_WIRE, color_wire); - const bool is_act = (mpr->flag & WM_MANIPULATOR_DRAW_HOVER); + const bool is_act = (mpr->flag & WM_GIZMO_DRAW_HOVER); float dir_ruler[2]; float co_ss[3][2]; int j; @@ -804,8 +804,8 @@ static void manipulator_ruler_draw(const bContext *C, wmManipulator *mpr) } } -static int manipulator_ruler_test_select( - bContext *UNUSED(C), wmManipulator *mpr, const wmEvent *event) +static int gizmo_ruler_test_select( + bContext *UNUSED(C), wmGizmo *mpr, const wmEvent *event) { RulerItem *ruler_item_pick = (RulerItem *)mpr; float mval_fl[2] = {UNPACK2(event->mval)}; @@ -825,9 +825,9 @@ static int manipulator_ruler_test_select( return -1; } -static int manipulator_ruler_modal( - bContext *C, wmManipulator *mpr, const wmEvent *event, - eWM_ManipulatorTweak UNUSED(tweak_flag)) +static int gizmo_ruler_modal( + bContext *C, wmGizmo *mpr, const wmEvent *event, + eWM_GizmoFlagTweak UNUSED(tweak_flag)) { bool do_draw = false; int exit_code = OPERATOR_RUNNING_MODAL; @@ -859,10 +859,10 @@ static int manipulator_ruler_modal( return exit_code; } -static int manipulator_ruler_invoke( - bContext *C, wmManipulator *mpr, const wmEvent *event) +static int gizmo_ruler_invoke( + bContext *C, wmGizmo *mpr, const wmEvent *event) { - wmManipulatorGroup *mgroup = mpr->parent_mgroup; + wmGizmoGroup *mgroup = mpr->parent_mgroup; RulerInfo *ruler_info = mgroup->customdata; RulerItem *ruler_item_pick = (RulerItem *)mpr; RulerInteraction *inter = MEM_callocN(sizeof(RulerInteraction), __func__); @@ -913,9 +913,9 @@ static int manipulator_ruler_invoke( return OPERATOR_RUNNING_MODAL; } -static void manipulator_ruler_exit(bContext *C, wmManipulator *mpr, const bool cancel) +static void gizmo_ruler_exit(bContext *C, wmGizmo *mpr, const bool cancel) { - wmManipulatorGroup *mgroup = mpr->parent_mgroup; + wmGizmoGroup *mgroup = mpr->parent_mgroup; RulerInfo *ruler_info = mgroup->customdata; if (!cancel) { @@ -941,7 +941,7 @@ static void manipulator_ruler_exit(bContext *C, wmManipulator *mpr, const bool c } ruler_state_set(C, ruler_info, RULER_STATE_NORMAL); } - /* We could convert only the current manipulator, for now just re-generate. */ + /* We could convert only the current gizmo, for now just re-generate. */ view3d_ruler_to_gpencil(C, mgroup); } @@ -952,7 +952,7 @@ static void manipulator_ruler_exit(bContext *C, wmManipulator *mpr, const bool c ruler_state_set(C, ruler_info, RULER_STATE_NORMAL); } -static int manipulator_ruler_cursor_get(wmManipulator *mpr) +static int gizmo_ruler_cursor_get(wmGizmo *mpr) { if (mpr->highlight_part == PART_LINE) { return BC_CROSSCURSOR; @@ -960,18 +960,18 @@ static int manipulator_ruler_cursor_get(wmManipulator *mpr) return BC_NSEW_SCROLLCURSOR; } -void VIEW3D_WT_ruler_item(wmManipulatorType *wt) +void VIEW3D_WT_ruler_item(wmGizmoType *wt) { /* identifiers */ wt->idname = "VIEW3D_WT_ruler_item"; /* api callbacks */ - wt->draw = manipulator_ruler_draw; - wt->test_select = manipulator_ruler_test_select; - wt->modal = manipulator_ruler_modal; - wt->invoke = manipulator_ruler_invoke; - wt->exit = manipulator_ruler_exit; - wt->cursor_get = manipulator_ruler_cursor_get; + wt->draw = gizmo_ruler_draw; + wt->test_select = gizmo_ruler_test_select; + wt->modal = gizmo_ruler_modal; + wt->invoke = gizmo_ruler_invoke; + wt->exit = gizmo_ruler_exit; + wt->cursor_get = gizmo_ruler_cursor_get; wt->struct_size = sizeof(RulerItem); } @@ -979,22 +979,22 @@ void VIEW3D_WT_ruler_item(wmManipulatorType *wt) /** \} */ /* -------------------------------------------------------------------- */ -/** \name Ruler Manipulator Group +/** \name Ruler Gizmo Group * \{ */ -static bool WIDGETGROUP_ruler_poll(const bContext *C, wmManipulatorGroupType *wgt) +static bool WIDGETGROUP_ruler_poll(const bContext *C, wmGizmoGroupType *wgt) { bToolRef_Runtime *tref_rt = WM_toolsystem_runtime_from_context((bContext *)C); if ((tref_rt == NULL) || - !STREQ(wgt->idname, tref_rt->manipulator_group)) + !STREQ(wgt->idname, tref_rt->gizmo_group)) { - WM_manipulator_group_type_unlink_delayed_ptr(wgt); + WM_gizmo_group_type_unlink_delayed_ptr(wgt); return false; } return true; } -static void WIDGETGROUP_ruler_setup(const bContext *C, wmManipulatorGroup *mgroup) +static void WIDGETGROUP_ruler_setup(const bContext *C, wmGizmoGroup *mgroup) { RulerInfo *ruler_info = MEM_callocN(sizeof(RulerInfo), __func__); @@ -1012,12 +1012,12 @@ static void WIDGETGROUP_ruler_setup(const bContext *C, wmManipulatorGroup *mgrou mgroup->customdata = ruler_info; } -void VIEW3D_WGT_ruler(wmManipulatorGroupType *wgt) +void VIEW3D_WGT_ruler(wmGizmoGroupType *wgt) { wgt->name = "Ruler Widgets"; wgt->idname = view3d_wgt_ruler_id; - wgt->flag |= WM_MANIPULATORGROUPTYPE_SCALE | WM_MANIPULATORGROUPTYPE_DRAW_MODAL_ALL; + wgt->flag |= WM_GIZMOGROUPTYPE_SCALE | WM_GIZMOGROUPTYPE_DRAW_MODAL_ALL; wgt->mmap_params.spaceid = SPACE_VIEW3D; wgt->mmap_params.regionid = RGN_TYPE_WINDOW; @@ -1036,7 +1036,7 @@ static bool view3d_ruler_poll(bContext *C) { bToolRef_Runtime *tref_rt = WM_toolsystem_runtime_from_context((bContext *)C); if ((tref_rt == NULL) || - !STREQ(view3d_wgt_ruler_id, tref_rt->manipulator_group) || + !STREQ(view3d_wgt_ruler_id, tref_rt->gizmo_group) || CTX_wm_region_view3d(C) == NULL) { return false; @@ -1050,8 +1050,8 @@ static int view3d_ruler_add_invoke(bContext *C, wmOperator *UNUSED(op), const wm View3D *v3d = CTX_wm_view3d(C); RegionView3D *rv3d = ar->regiondata; - wmManipulatorMap *mmap = ar->manipulator_map; - wmManipulatorGroup *mgroup = WM_manipulatormap_group_find(mmap, view3d_wgt_ruler_id); + wmGizmoMap *mmap = ar->gizmo_map; + wmGizmoGroup *mgroup = WM_gizmomap_group_find(mmap, view3d_wgt_ruler_id); const bool use_depth = (v3d->drawtype >= OB_SOLID); /* Create new line */ @@ -1059,9 +1059,9 @@ static int view3d_ruler_add_invoke(bContext *C, wmOperator *UNUSED(op), const wm ruler_item = ruler_item_add(mgroup); /* This is a little weak, but there is no real good way to tweak directly. */ - WM_manipulator_highlight_set(mmap, &ruler_item->mpr); + WM_gizmo_highlight_set(mmap, &ruler_item->mpr); if (WM_operator_name_call( - C, "MANIPULATORGROUP_OT_manipulator_tweak", + C, "GIZMOGROUP_OT_gizmo_tweak", WM_OP_INVOKE_REGION_WIN, NULL) == OPERATOR_RUNNING_MODAL) { RulerInfo *ruler_info = mgroup->customdata; diff --git a/source/blender/editors/space_view3d/view3d_header.c b/source/blender/editors/space_view3d/view3d_header.c index a2dda8d6403..c9277235d50 100644 --- a/source/blender/editors/space_view3d/view3d_header.c +++ b/source/blender/editors/space_view3d/view3d_header.c @@ -308,7 +308,7 @@ static void uiTemplatePaintModeSelection(uiLayout *layout, struct bContext *C) ViewLayer *view_layer = CTX_data_view_layer(C); Object *ob = OBACT(view_layer); - /* Manipulators aren't used in paint modes */ + /* Gizmos aren't used in paint modes */ if (!ELEM(ob->mode, OB_MODE_SCULPT, OB_MODE_PARTICLE_EDIT)) { /* masks aren't used for sculpt and particle painting */ PointerRNA meshptr; @@ -391,9 +391,9 @@ void uiTemplateHeader3D(uiLayout *layout, struct bContext *C) else { /* Moved to popover and topbar. */ #if 0 - /* Transform widget / manipulators */ + /* Transform widget / gizmos */ row = uiLayoutRow(layout, true); - uiItemR(row, &v3dptr, "show_manipulator", UI_ITEM_R_ICON_ONLY, "", ICON_NONE); + uiItemR(row, &v3dptr, "show_gizmo", UI_ITEM_R_ICON_ONLY, "", ICON_NONE); uiItemR(row, &sceneptr, "transform_orientation", 0, "", ICON_NONE); #endif } diff --git a/source/blender/editors/space_view3d/view3d_intern.h b/source/blender/editors/space_view3d/view3d_intern.h index b74a40969a1..89dd254c130 100644 --- a/source/blender/editors/space_view3d/view3d_intern.h +++ b/source/blender/editors/space_view3d/view3d_intern.h @@ -51,8 +51,8 @@ struct Mesh; struct ViewLayer; struct wmOperatorType; struct wmKeyConfig; -struct wmManipulatorGroupType; -struct wmManipulatorType; +struct wmGizmoGroupType; +struct wmGizmoType; struct wmWindowManager; /* drawing flags: */ @@ -254,21 +254,21 @@ ARegion *view3d_has_tools_region(ScrArea *sa); extern const char *view3d_context_dir[]; /* doc access */ /* view3d_widgets.c */ -void VIEW3D_WGT_lamp_spot(struct wmManipulatorGroupType *wgt); -void VIEW3D_WGT_lamp_area(struct wmManipulatorGroupType *wgt); -void VIEW3D_WGT_lamp_target(struct wmManipulatorGroupType *wgt); -void VIEW3D_WGT_camera(struct wmManipulatorGroupType *wgt); -void VIEW3D_WGT_camera_view(struct wmManipulatorGroupType *wgt); -void VIEW3D_WGT_force_field(struct wmManipulatorGroupType *wgt); -void VIEW3D_WGT_empty_image(struct wmManipulatorGroupType *wgt); -void VIEW3D_WGT_armature_spline(struct wmManipulatorGroupType *wgt); -void VIEW3D_WGT_navigate(struct wmManipulatorGroupType *wgt); - -void VIEW3D_WGT_ruler(struct wmManipulatorGroupType *wgt); -void VIEW3D_WT_ruler_item(struct wmManipulatorType *wt); +void VIEW3D_WGT_lamp_spot(struct wmGizmoGroupType *wgt); +void VIEW3D_WGT_lamp_area(struct wmGizmoGroupType *wgt); +void VIEW3D_WGT_lamp_target(struct wmGizmoGroupType *wgt); +void VIEW3D_WGT_camera(struct wmGizmoGroupType *wgt); +void VIEW3D_WGT_camera_view(struct wmGizmoGroupType *wgt); +void VIEW3D_WGT_force_field(struct wmGizmoGroupType *wgt); +void VIEW3D_WGT_empty_image(struct wmGizmoGroupType *wgt); +void VIEW3D_WGT_armature_spline(struct wmGizmoGroupType *wgt); +void VIEW3D_WGT_navigate(struct wmGizmoGroupType *wgt); + +void VIEW3D_WGT_ruler(struct wmGizmoGroupType *wgt); +void VIEW3D_WT_ruler_item(struct wmGizmoType *wt); void VIEW3D_OT_ruler_add(struct wmOperatorType *ot); -void VIEW3D_WT_navigate_rotate(struct wmManipulatorType *wt); +void VIEW3D_WT_navigate_rotate(struct wmGizmoType *wt); /* draw_volume.c */ void draw_smoke_volume(struct SmokeDomainSettings *sds, struct Object *ob, diff --git a/source/blender/editors/space_view3d/view3d_ops.c b/source/blender/editors/space_view3d/view3d_ops.c index fb9cf917701..cf9b8afe8e5 100644 --- a/source/blender/editors/space_view3d/view3d_ops.c +++ b/source/blender/editors/space_view3d/view3d_ops.c @@ -541,7 +541,7 @@ void view3d_keymap(wmKeyConfig *keyconf) #else kmi = WM_keymap_add_item(keymap, "WM_OT_context_toggle", ACCENTGRAVEKEY, KM_PRESS, KM_CTRL, 0); #endif - RNA_string_set(kmi->ptr, "data_path", "space_data.show_manipulator_tool"); + RNA_string_set(kmi->ptr, "data_path", "space_data.show_gizmo_tool"); transform_keymap_for_space(keyconf, keymap, SPACE_VIEW3D); diff --git a/source/blender/editors/transform/transform.c b/source/blender/editors/transform/transform.c index 15c830e45d0..ad7b5d55ba5 100644 --- a/source/blender/editors/transform/transform.c +++ b/source/blender/editors/transform/transform.c @@ -2215,7 +2215,7 @@ bool initTransform(bContext *C, TransInfo *t, wmOperator *op, const wmEvent *eve t->launch_event = event ? WM_userdef_event_type_from_keymap_type(event->type) : -1; // XXX Remove this when wm_operator_call_internal doesn't use window->eventstate (which can have type = 0) - // For manipulator only, so assume LEFTMOUSE + // For gizmo only, so assume LEFTMOUSE if (t->launch_event == 0) { t->launch_event = LEFTMOUSE; } @@ -2267,10 +2267,10 @@ bool initTransform(bContext *C, TransInfo *t, wmOperator *op, const wmEvent *eve /* keymap for shortcut header prints */ t->keymap = WM_keymap_active(CTX_wm_manager(C), op->type->modalkeymap); - /* Stupid code to have Ctrl-Click on manipulator work ok + /* Stupid code to have Ctrl-Click on gizmo work ok * * do this only for translation/rotation/resize due to only this - * moded are available from manipulator and doing such check could + * moded are available from gizmo and doing such check could * lead to keymap conflicts for other modes (see #31584) */ if (ELEM(mode, TFM_TRANSLATION, TFM_ROTATION, TFM_RESIZE)) { @@ -3590,7 +3590,7 @@ static void applyResize(TransInfo *t, const int UNUSED(mval[2])) t->con.applySize(t, NULL, NULL, mat); } - copy_m3_m3(t->mat, mat); // used in manipulator + copy_m3_m3(t->mat, mat); // used in gizmo headerResize(t, t->values, str); @@ -4302,7 +4302,7 @@ static void applyTrackball(TransInfo *t, const int UNUSED(mval[2])) mul_m3_m3m3(mat, smat, totmat); // TRANSFORM_FIX_ME - //copy_m3_m3(t->mat, mat); // used in manipulator + //copy_m3_m3(t->mat, mat); // used in gizmo #endif applyTrackballValue(t, axis1, axis2, phi); @@ -5453,7 +5453,7 @@ static void applyBoneSize(TransInfo *t, const int UNUSED(mval[2])) t->con.applySize(t, NULL, NULL, mat); } - copy_m3_m3(t->mat, mat); // used in manipulator + copy_m3_m3(t->mat, mat); // used in gizmo headerBoneSize(t, size, str); diff --git a/source/blender/editors/transform/transform.h b/source/blender/editors/transform/transform.h index b022d5a3058..2006bd830b4 100644 --- a/source/blender/editors/transform/transform.h +++ b/source/blender/editors/transform/transform.h @@ -491,7 +491,7 @@ typedef struct TransInfo { short persp; short around; char spacetype; /* spacetype where transforming is */ - char helpline; /* Choice of custom cursor with or without a help line from the manipulator to the mouse position. */ + char helpline; /* Choice of custom cursor with or without a help line from the gizmo to the mouse position. */ short obedit_type; /* Avoid looking inside TransDataContainer obedit. */ float vec[3]; /* translation, to show for widget */ @@ -710,9 +710,9 @@ void flushTransMasking(TransInfo *t); void flushTransPaintCurve(TransInfo *t); void restoreBones(TransDataContainer *tc); -/*********************** transform_manipulator.c ********** */ +/*********************** transform_gizmo.c ********** */ -#define MANIPULATOR_AXIS_LINE_WIDTH 2.0f +#define GIZMO_AXIS_LINE_WIDTH 2.0f /* return 0 when no gimbal for selection */ bool gimbal_axis(struct Object *ob, float gmat[3][3]); diff --git a/source/blender/editors/transform/transform_conversions.c b/source/blender/editors/transform/transform_conversions.c index 83b568b494c..a5706f4a003 100644 --- a/source/blender/editors/transform/transform_conversions.c +++ b/source/blender/editors/transform/transform_conversions.c @@ -6684,7 +6684,7 @@ void special_aftertrans_update(bContext *C, TransInfo *t) BKE_pose_where_is(t->depsgraph, t->scene, pose_ob); } - /* set BONE_TRANSFORM flags for autokey, manipulator draw might have changed them */ + /* set BONE_TRANSFORM flags for autokey, gizmo draw might have changed them */ if (!canceled && (t->mode != TFM_DUMMY)) { count_set_pose_transflags(ob, t->mode, t->around, NULL); } diff --git a/source/blender/editors/transform/transform_generics.c b/source/blender/editors/transform/transform_generics.c index c79c28a99da..e32bef72cf6 100644 --- a/source/blender/editors/transform/transform_generics.c +++ b/source/blender/editors/transform/transform_generics.c @@ -1348,10 +1348,10 @@ void initTransInfo(bContext *C, TransInfo *t, wmOperator *op, const wmEvent *eve t->view = v3d; t->animtimer = (animscreen) ? animscreen->animtimer : NULL; - /* turn manipulator off during transform */ + /* turn gizmo off during transform */ if (t->flag & T_MODAL) { t->mpr_flag = v3d->mpr_flag; - v3d->mpr_flag = V3D_MANIPULATOR_HIDE; + v3d->mpr_flag = V3D_GIZMO_HIDE; } if (t->scene->toolsettings->transform_flag & SCE_XFORM_AXIS_ALIGN) { @@ -1688,7 +1688,7 @@ void postTrans(bContext *C, TransInfo *t) } else if (t->spacetype == SPACE_VIEW3D) { View3D *v3d = t->sa->spacedata.first; - /* restore manipulator */ + /* restore gizmo */ if (t->flag & T_MODAL) { v3d->mpr_flag = t->mpr_flag; } diff --git a/source/blender/editors/transform/transform_gizmo_2d.c b/source/blender/editors/transform/transform_gizmo_2d.c index 5d5d55de848..995faae8333 100644 --- a/source/blender/editors/transform/transform_gizmo_2d.c +++ b/source/blender/editors/transform/transform_gizmo_2d.c @@ -21,7 +21,7 @@ /** \file blender/editors/transform/transform_gizmo_2d.c * \ingroup edtransform * - * \name 2D Transform Manipulator + * \name 2D Transform Gizmo * * Used for UV/Image Editor */ @@ -64,18 +64,18 @@ enum { MAN2D_AXIS_LAST, }; -typedef struct ManipulatorGroup2D { - wmManipulator *translate_x, +typedef struct GizmoGroup2D { + wmGizmo *translate_x, *translate_y; - wmManipulator *cage; + wmGizmo *cage; /* Current origin in view space, used to update widget origin for possible view changes */ float origin[2]; float min[2]; float max[2]; -} ManipulatorGroup2D; +} GizmoGroup2D; /* **************** Utilities **************** */ @@ -83,16 +83,16 @@ typedef struct ManipulatorGroup2D { /* loop over axes */ #define MAN2D_ITER_AXES_BEGIN(axis, axis_idx) \ { \ - wmManipulator *axis; \ + wmGizmo *axis; \ int axis_idx; \ for (axis_idx = 0; axis_idx < MAN2D_AXIS_LAST; axis_idx++) { \ - axis = manipulator2d_get_axis_from_index(man, axis_idx); + axis = gizmo2d_get_axis_from_index(man, axis_idx); #define MAN2D_ITER_AXES_END \ } \ } ((void)0) -static wmManipulator *manipulator2d_get_axis_from_index(const ManipulatorGroup2D *man, const short axis_idx) +static wmGizmo *gizmo2d_get_axis_from_index(const GizmoGroup2D *man, const short axis_idx) { BLI_assert(IN_RANGE_INCL(axis_idx, (float)MAN2D_AXIS_TRANS_X, (float)MAN2D_AXIS_TRANS_Y)); @@ -106,7 +106,7 @@ static wmManipulator *manipulator2d_get_axis_from_index(const ManipulatorGroup2D return NULL; } -static void manipulator2d_get_axis_color(const int axis_idx, float *r_col, float *r_col_hi) +static void gizmo2d_get_axis_color(const int axis_idx, float *r_col, float *r_col_hi) { const float alpha = 0.6f; const float alpha_hi = 1.0f; @@ -128,29 +128,29 @@ static void manipulator2d_get_axis_color(const int axis_idx, float *r_col, float r_col_hi[3] *= alpha_hi; } -static ManipulatorGroup2D *manipulatorgroup2d_init(wmManipulatorGroup *mgroup) +static GizmoGroup2D *gizmogroup2d_init(wmGizmoGroup *mgroup) { - const wmManipulatorType *wt_arrow = WM_manipulatortype_find("MANIPULATOR_WT_arrow_2d", true); - const wmManipulatorType *wt_cage = WM_manipulatortype_find("MANIPULATOR_WT_cage_2d", true); + const wmGizmoType *wt_arrow = WM_gizmotype_find("GIZMO_WT_arrow_2d", true); + const wmGizmoType *wt_cage = WM_gizmotype_find("GIZMO_WT_cage_2d", true); - ManipulatorGroup2D *man = MEM_callocN(sizeof(ManipulatorGroup2D), __func__); + GizmoGroup2D *man = MEM_callocN(sizeof(GizmoGroup2D), __func__); - man->translate_x = WM_manipulator_new_ptr(wt_arrow, mgroup, NULL); - man->translate_y = WM_manipulator_new_ptr(wt_arrow, mgroup, NULL); - man->cage = WM_manipulator_new_ptr(wt_cage, mgroup, NULL); + man->translate_x = WM_gizmo_new_ptr(wt_arrow, mgroup, NULL); + man->translate_y = WM_gizmo_new_ptr(wt_arrow, mgroup, NULL); + man->cage = WM_gizmo_new_ptr(wt_cage, mgroup, NULL); RNA_enum_set(man->cage->ptr, "transform", - ED_MANIPULATOR_CAGE2D_XFORM_FLAG_TRANSLATE | - ED_MANIPULATOR_CAGE2D_XFORM_FLAG_SCALE | - ED_MANIPULATOR_CAGE2D_XFORM_FLAG_ROTATE); + ED_GIZMO_CAGE2D_XFORM_FLAG_TRANSLATE | + ED_GIZMO_CAGE2D_XFORM_FLAG_SCALE | + ED_GIZMO_CAGE2D_XFORM_FLAG_ROTATE); return man; } /** - * Calculates origin in view space, use with #manipulator2d_origin_to_region. + * Calculates origin in view space, use with #gizmo2d_origin_to_region. */ -static void manipulator2d_calc_bounds(const bContext *C, float *r_center, float *r_min, float *r_max) +static void gizmo2d_calc_bounds(const bContext *C, float *r_center, float *r_min, float *r_max) { SpaceImage *sima = CTX_wm_space_image(C); Image *ima = ED_space_image(sima); @@ -173,34 +173,34 @@ static void manipulator2d_calc_bounds(const bContext *C, float *r_center, float /** * Convert origin (or any other point) from view to region space. */ -BLI_INLINE void manipulator2d_origin_to_region(ARegion *ar, float *r_origin) +BLI_INLINE void gizmo2d_origin_to_region(ARegion *ar, float *r_origin) { UI_view2d_view_to_region_fl(&ar->v2d, r_origin[0], r_origin[1], &r_origin[0], &r_origin[1]); } /** - * Custom handler for manipulator widgets + * Custom handler for gizmo widgets */ -static int manipulator2d_modal( - bContext *C, wmManipulator *widget, const wmEvent *UNUSED(event), - eWM_ManipulatorTweak UNUSED(tweak_flag)) +static int gizmo2d_modal( + bContext *C, wmGizmo *widget, const wmEvent *UNUSED(event), + eWM_GizmoFlagTweak UNUSED(tweak_flag)) { ARegion *ar = CTX_wm_region(C); float origin[3]; - manipulator2d_calc_bounds(C, origin, NULL, NULL); - manipulator2d_origin_to_region(ar, origin); - WM_manipulator_set_matrix_location(widget, origin); + gizmo2d_calc_bounds(C, origin, NULL, NULL); + gizmo2d_origin_to_region(ar, origin); + WM_gizmo_set_matrix_location(widget, origin); ED_region_tag_redraw(ar); return OPERATOR_RUNNING_MODAL; } -void ED_widgetgroup_manipulator2d_setup(const bContext *UNUSED(C), wmManipulatorGroup *mgroup) +void ED_widgetgroup_gizmo2d_setup(const bContext *UNUSED(C), wmGizmoGroup *mgroup) { wmOperatorType *ot_translate = WM_operatortype_find("TRANSFORM_OT_translate", true); - ManipulatorGroup2D *man = manipulatorgroup2d_init(mgroup); + GizmoGroup2D *man = gizmogroup2d_init(mgroup); mgroup->customdata = man; MAN2D_ITER_AXES_BEGIN(axis, axis_idx) @@ -208,21 +208,21 @@ void ED_widgetgroup_manipulator2d_setup(const bContext *UNUSED(C), wmManipulator const float offset[3] = {0.0f, 0.2f}; float color[4], color_hi[4]; - manipulator2d_get_axis_color(axis_idx, color, color_hi); + gizmo2d_get_axis_color(axis_idx, color, color_hi); /* custom handler! */ - WM_manipulator_set_fn_custom_modal(axis, manipulator2d_modal); + WM_gizmo_set_fn_custom_modal(axis, gizmo2d_modal); /* set up widget data */ RNA_float_set(axis->ptr, "angle", -M_PI_2 * axis_idx); RNA_float_set(axis->ptr, "length", 0.8f); - WM_manipulator_set_matrix_offset_location(axis, offset); - WM_manipulator_set_line_width(axis, MANIPULATOR_AXIS_LINE_WIDTH); - WM_manipulator_set_scale(axis, U.manipulator_size); - WM_manipulator_set_color(axis, color); - WM_manipulator_set_color_highlight(axis, color_hi); + WM_gizmo_set_matrix_offset_location(axis, offset); + WM_gizmo_set_line_width(axis, GIZMO_AXIS_LINE_WIDTH); + WM_gizmo_set_scale(axis, U.gizmo_size); + WM_gizmo_set_color(axis, color); + WM_gizmo_set_color_highlight(axis, color_hi); /* assign operator */ - PointerRNA *ptr = WM_manipulator_operator_set(axis, 0, ot_translate, NULL); + PointerRNA *ptr = WM_gizmo_operator_set(axis, 0, ot_translate, NULL); bool constraint[3] = {0}; constraint[(axis_idx + 1) % 2] = 1; if (RNA_struct_find_property(ptr, "constraint_axis")) @@ -237,107 +237,107 @@ void ED_widgetgroup_manipulator2d_setup(const bContext *UNUSED(C), wmManipulator PointerRNA *ptr; /* assign operator */ - ptr = WM_manipulator_operator_set(man->cage, 0, ot_translate, NULL); + ptr = WM_gizmo_operator_set(man->cage, 0, ot_translate, NULL); RNA_boolean_set(ptr, "release_confirm", 1); bool constraint_x[3] = {1, 0, 0}; bool constraint_y[3] = {0, 1, 0}; - ptr = WM_manipulator_operator_set(man->cage, ED_MANIPULATOR_CAGE2D_PART_SCALE_MIN_X, ot_resize, NULL); + ptr = WM_gizmo_operator_set(man->cage, ED_GIZMO_CAGE2D_PART_SCALE_MIN_X, ot_resize, NULL); PropertyRNA *prop_release_confirm = RNA_struct_find_property(ptr, "release_confirm"); PropertyRNA *prop_constraint_axis = RNA_struct_find_property(ptr, "constraint_axis"); RNA_property_boolean_set_array(ptr, prop_constraint_axis, constraint_x); RNA_property_boolean_set(ptr, prop_release_confirm, true); - ptr = WM_manipulator_operator_set(man->cage, ED_MANIPULATOR_CAGE2D_PART_SCALE_MAX_X, ot_resize, NULL); + ptr = WM_gizmo_operator_set(man->cage, ED_GIZMO_CAGE2D_PART_SCALE_MAX_X, ot_resize, NULL); RNA_property_boolean_set_array(ptr, prop_constraint_axis, constraint_x); RNA_property_boolean_set(ptr, prop_release_confirm, true); - ptr = WM_manipulator_operator_set(man->cage, ED_MANIPULATOR_CAGE2D_PART_SCALE_MIN_Y, ot_resize, NULL); + ptr = WM_gizmo_operator_set(man->cage, ED_GIZMO_CAGE2D_PART_SCALE_MIN_Y, ot_resize, NULL); RNA_property_boolean_set_array(ptr, prop_constraint_axis, constraint_y); RNA_property_boolean_set(ptr, prop_release_confirm, true); - ptr = WM_manipulator_operator_set(man->cage, ED_MANIPULATOR_CAGE2D_PART_SCALE_MAX_Y, ot_resize, NULL); + ptr = WM_gizmo_operator_set(man->cage, ED_GIZMO_CAGE2D_PART_SCALE_MAX_Y, ot_resize, NULL); RNA_property_boolean_set_array(ptr, prop_constraint_axis, constraint_y); RNA_property_boolean_set(ptr, prop_release_confirm, true); - ptr = WM_manipulator_operator_set(man->cage, ED_MANIPULATOR_CAGE2D_PART_SCALE_MIN_X_MIN_Y, ot_resize, NULL); + ptr = WM_gizmo_operator_set(man->cage, ED_GIZMO_CAGE2D_PART_SCALE_MIN_X_MIN_Y, ot_resize, NULL); RNA_property_boolean_set(ptr, prop_release_confirm, true); - ptr = WM_manipulator_operator_set(man->cage, ED_MANIPULATOR_CAGE2D_PART_SCALE_MIN_X_MAX_Y, ot_resize, NULL); + ptr = WM_gizmo_operator_set(man->cage, ED_GIZMO_CAGE2D_PART_SCALE_MIN_X_MAX_Y, ot_resize, NULL); RNA_property_boolean_set(ptr, prop_release_confirm, true); - ptr = WM_manipulator_operator_set(man->cage, ED_MANIPULATOR_CAGE2D_PART_SCALE_MAX_X_MIN_Y, ot_resize, NULL); + ptr = WM_gizmo_operator_set(man->cage, ED_GIZMO_CAGE2D_PART_SCALE_MAX_X_MIN_Y, ot_resize, NULL); RNA_property_boolean_set(ptr, prop_release_confirm, true); - ptr = WM_manipulator_operator_set(man->cage, ED_MANIPULATOR_CAGE2D_PART_SCALE_MAX_X_MAX_Y, ot_resize, NULL); + ptr = WM_gizmo_operator_set(man->cage, ED_GIZMO_CAGE2D_PART_SCALE_MAX_X_MAX_Y, ot_resize, NULL); RNA_property_boolean_set(ptr, prop_release_confirm, true); - ptr = WM_manipulator_operator_set(man->cage, ED_MANIPULATOR_CAGE2D_PART_ROTATE, ot_rotate, NULL); + ptr = WM_gizmo_operator_set(man->cage, ED_GIZMO_CAGE2D_PART_ROTATE, ot_rotate, NULL); RNA_property_boolean_set(ptr, prop_release_confirm, true); } } -void ED_widgetgroup_manipulator2d_refresh(const bContext *C, wmManipulatorGroup *mgroup) +void ED_widgetgroup_gizmo2d_refresh(const bContext *C, wmGizmoGroup *mgroup) { - ManipulatorGroup2D *man = mgroup->customdata; + GizmoGroup2D *man = mgroup->customdata; float origin[3]; - manipulator2d_calc_bounds(C, origin, man->min, man->max); + gizmo2d_calc_bounds(C, origin, man->min, man->max); copy_v2_v2(man->origin, origin); bool show_cage = !equals_v2v2(man->min, man->max); if (show_cage) { - man->cage->flag &= ~WM_MANIPULATOR_HIDDEN; - man->translate_x->flag |= WM_MANIPULATOR_HIDDEN; - man->translate_y->flag |= WM_MANIPULATOR_HIDDEN; + man->cage->flag &= ~WM_GIZMO_HIDDEN; + man->translate_x->flag |= WM_GIZMO_HIDDEN; + man->translate_y->flag |= WM_GIZMO_HIDDEN; } else { - man->cage->flag |= WM_MANIPULATOR_HIDDEN; - man->translate_x->flag &= ~WM_MANIPULATOR_HIDDEN; - man->translate_y->flag &= ~WM_MANIPULATOR_HIDDEN; + man->cage->flag |= WM_GIZMO_HIDDEN; + man->translate_x->flag &= ~WM_GIZMO_HIDDEN; + man->translate_y->flag &= ~WM_GIZMO_HIDDEN; } if (show_cage) { - wmManipulatorOpElem *mpop; + wmGizmoOpElem *mpop; float mid[2]; const float *min = man->min; const float *max = man->max; mid_v2_v2v2(mid, min, max); - mpop = WM_manipulator_operator_get(man->cage, ED_MANIPULATOR_CAGE2D_PART_SCALE_MIN_X); + mpop = WM_gizmo_operator_get(man->cage, ED_GIZMO_CAGE2D_PART_SCALE_MIN_X); PropertyRNA *prop_center_override = RNA_struct_find_property(&mpop->ptr, "center_override"); RNA_property_float_set_array(&mpop->ptr, prop_center_override, (float[3]){max[0], mid[1], 0.0f}); - mpop = WM_manipulator_operator_get(man->cage, ED_MANIPULATOR_CAGE2D_PART_SCALE_MAX_X); + mpop = WM_gizmo_operator_get(man->cage, ED_GIZMO_CAGE2D_PART_SCALE_MAX_X); RNA_property_float_set_array(&mpop->ptr, prop_center_override, (float[3]){min[0], mid[1], 0.0f}); - mpop = WM_manipulator_operator_get(man->cage, ED_MANIPULATOR_CAGE2D_PART_SCALE_MIN_Y); + mpop = WM_gizmo_operator_get(man->cage, ED_GIZMO_CAGE2D_PART_SCALE_MIN_Y); RNA_property_float_set_array(&mpop->ptr, prop_center_override, (float[3]){mid[0], max[1], 0.0f}); - mpop = WM_manipulator_operator_get(man->cage, ED_MANIPULATOR_CAGE2D_PART_SCALE_MAX_Y); + mpop = WM_gizmo_operator_get(man->cage, ED_GIZMO_CAGE2D_PART_SCALE_MAX_Y); RNA_property_float_set_array(&mpop->ptr, prop_center_override, (float[3]){mid[0], min[1], 0.0f}); - mpop = WM_manipulator_operator_get(man->cage, ED_MANIPULATOR_CAGE2D_PART_SCALE_MIN_X_MIN_Y); + mpop = WM_gizmo_operator_get(man->cage, ED_GIZMO_CAGE2D_PART_SCALE_MIN_X_MIN_Y); RNA_property_float_set_array(&mpop->ptr, prop_center_override, (float[3]){max[0], max[1], 0.0f}); - mpop = WM_manipulator_operator_get(man->cage, ED_MANIPULATOR_CAGE2D_PART_SCALE_MIN_X_MAX_Y); + mpop = WM_gizmo_operator_get(man->cage, ED_GIZMO_CAGE2D_PART_SCALE_MIN_X_MAX_Y); RNA_property_float_set_array(&mpop->ptr, prop_center_override, (float[3]){max[0], min[1], 0.0f}); - mpop = WM_manipulator_operator_get(man->cage, ED_MANIPULATOR_CAGE2D_PART_SCALE_MAX_X_MIN_Y); + mpop = WM_gizmo_operator_get(man->cage, ED_GIZMO_CAGE2D_PART_SCALE_MAX_X_MIN_Y); RNA_property_float_set_array(&mpop->ptr, prop_center_override, (float[3]){min[0], max[1], 0.0f}); - mpop = WM_manipulator_operator_get(man->cage, ED_MANIPULATOR_CAGE2D_PART_SCALE_MAX_X_MAX_Y); + mpop = WM_gizmo_operator_get(man->cage, ED_GIZMO_CAGE2D_PART_SCALE_MAX_X_MAX_Y); RNA_property_float_set_array(&mpop->ptr, prop_center_override, (float[3]){min[0], min[1], 0.0f}); - mpop = WM_manipulator_operator_get(man->cage, ED_MANIPULATOR_CAGE2D_PART_ROTATE); + mpop = WM_gizmo_operator_get(man->cage, ED_GIZMO_CAGE2D_PART_ROTATE); RNA_property_float_set_array(&mpop->ptr, prop_center_override, (float[3]){mid[0], mid[1], 0.0f}); } } -void ED_widgetgroup_manipulator2d_draw_prepare(const bContext *C, wmManipulatorGroup *mgroup) +void ED_widgetgroup_gizmo2d_draw_prepare(const bContext *C, wmGizmoGroup *mgroup) { ARegion *ar = CTX_wm_region(C); - ManipulatorGroup2D *man = mgroup->customdata; + GizmoGroup2D *man = mgroup->customdata; float origin[3] = {UNPACK2(man->origin), 0.0f}; float origin_aa[3] = {UNPACK2(man->origin), 0.0f}; - manipulator2d_origin_to_region(ar, origin); + gizmo2d_origin_to_region(ar, origin); MAN2D_ITER_AXES_BEGIN(axis, axis_idx) { - WM_manipulator_set_matrix_location(axis, origin); + WM_gizmo_set_matrix_location(axis, origin); } MAN2D_ITER_AXES_END; UI_view2d_view_to_region_m4(&ar->v2d, man->cage->matrix_space); - WM_manipulator_set_matrix_offset_location(man->cage, origin_aa); + WM_gizmo_set_matrix_offset_location(man->cage, origin_aa); man->cage->matrix_offset[0][0] = (man->max[0] - man->min[0]); man->cage->matrix_offset[1][1] = (man->max[1] - man->min[1]); } @@ -346,9 +346,9 @@ void ED_widgetgroup_manipulator2d_draw_prepare(const bContext *C, wmManipulatorG * - Called on every redraw, better to do a more simple poll and check for selection in _refresh * - UV editing only, could be expanded for other things. */ -bool ED_widgetgroup_manipulator2d_poll(const bContext *C, wmManipulatorGroupType *UNUSED(wgt)) +bool ED_widgetgroup_gizmo2d_poll(const bContext *C, wmGizmoGroupType *UNUSED(wgt)) { - if ((U.manipulator_flag & USER_MANIPULATOR_DRAW) == 0) { + if ((U.gizmo_flag & USER_GIZMO_DRAW) == 0) { return false; } diff --git a/source/blender/editors/transform/transform_gizmo_3d.c b/source/blender/editors/transform/transform_gizmo_3d.c index 1a30bd1cdcb..7d608c433c3 100644 --- a/source/blender/editors/transform/transform_gizmo_3d.c +++ b/source/blender/editors/transform/transform_gizmo_3d.c @@ -21,7 +21,7 @@ /** \file blender/editors/transform/transform_gizmo_3d.c * \ingroup edtransform * - * \name 3D Transform Manipulator + * \name 3D Transform Gizmo * * Used for 3D View */ @@ -106,7 +106,7 @@ #define MAN_SCALE_Z (1 << 10) #define MAN_SCALE_C (MAN_SCALE_X | MAN_SCALE_Y | MAN_SCALE_Z) -/* threshold for testing view aligned manipulator axis */ +/* threshold for testing view aligned gizmo axis */ struct { float min, max; } g_tw_axis_range[2] = { @@ -159,17 +159,17 @@ enum { MAN_AXES_SCALE, }; -typedef struct ManipulatorGroup { +typedef struct GizmoGroup { bool all_hidden; int twtype; - /* Users may change the twtype, detect changes to re-setup manipulator options. */ + /* Users may change the twtype, detect changes to re-setup gizmo options. */ int twtype_init; int twtype_prev; int use_twtype_refresh; - struct wmManipulator *manipulators[MAN_AXIS_LAST]; -} ManipulatorGroup; + struct wmGizmo *gizmos[MAN_AXIS_LAST]; +} GizmoGroup; /* -------------------------------------------------------------------- */ /** \name Utilities @@ -178,22 +178,22 @@ typedef struct ManipulatorGroup { /* loop over axes */ #define MAN_ITER_AXES_BEGIN(axis, axis_idx) \ { \ - wmManipulator *axis; \ + wmGizmo *axis; \ int axis_idx; \ for (axis_idx = 0; axis_idx < MAN_AXIS_LAST; axis_idx++) { \ - axis = manipulator_get_axis_from_index(man, axis_idx); + axis = gizmo_get_axis_from_index(man, axis_idx); #define MAN_ITER_AXES_END \ } \ } ((void)0) -static wmManipulator *manipulator_get_axis_from_index(const ManipulatorGroup *man, const short axis_idx) +static wmGizmo *gizmo_get_axis_from_index(const GizmoGroup *man, const short axis_idx) { BLI_assert(IN_RANGE_INCL(axis_idx, (float)MAN_AXIS_TRANS_X, (float)MAN_AXIS_LAST)); - return man->manipulators[axis_idx]; + return man->gizmos[axis_idx]; } -static short manipulator_get_axis_type(const int axis_idx) +static short gizmo_get_axis_type(const int axis_idx) { if (axis_idx >= MAN_AXIS_RANGE_TRANS_START && axis_idx < MAN_AXIS_RANGE_TRANS_END) { return MAN_AXES_TRANSLATE; @@ -208,7 +208,7 @@ static short manipulator_get_axis_type(const int axis_idx) return -1; } -static uint manipulator_orientation_axis(const int axis_idx, bool *r_is_plane) +static uint gizmo_orientation_axis(const int axis_idx, bool *r_is_plane) { switch (axis_idx) { case MAN_AXIS_TRANS_YZ: @@ -247,13 +247,13 @@ static uint manipulator_orientation_axis(const int axis_idx, bool *r_is_plane) return 3; } -static bool manipulator_is_axis_visible( +static bool gizmo_is_axis_visible( const RegionView3D *rv3d, const int twtype, const float idot[3], const int axis_type, const int axis_idx) { if ((axis_idx >= MAN_AXIS_RANGE_ROT_START && axis_idx < MAN_AXIS_RANGE_ROT_END) == 0) { bool is_plane = false; - const uint aidx_norm = manipulator_orientation_axis(axis_idx, &is_plane); + const uint aidx_norm = gizmo_orientation_axis(axis_idx, &is_plane); /* don't draw axis perpendicular to the view */ if (aidx_norm < 3) { float idot_axis = idot[aidx_norm]; @@ -330,7 +330,7 @@ static bool manipulator_is_axis_visible( return false; } -static void manipulator_get_axis_color( +static void gizmo_get_axis_color( const int axis_idx, const float idot[3], float r_col[4], float r_col_hi[4]) { @@ -346,7 +346,7 @@ static void manipulator_get_axis_color( } else { bool is_plane = false; - const int axis_idx_norm = manipulator_orientation_axis(axis_idx, &is_plane); + const int axis_idx_norm = gizmo_orientation_axis(axis_idx, &is_plane); /* get alpha fac based on axis angle, to fade axis out when hiding it because it points towards view */ if (axis_idx_norm < 3) { const float idot_min = g_tw_axis_range[is_plane].min; @@ -401,7 +401,7 @@ static void manipulator_get_axis_color( r_col_hi[3] = alpha_hi * alpha_fac; } -static void manipulator_get_axis_constraint(const int axis_idx, bool r_axis[3]) +static void gizmo_get_axis_constraint(const int axis_idx, bool r_axis[3]) { ARRAY_SET_ITEMS(r_axis, 0, 0, 0); @@ -596,7 +596,7 @@ bool gimbal_axis(Object *ob, float gmat[3][3]) /* centroid, boundbox, of selection */ /* returns total items selected */ -int ED_transform_calc_manipulator_stats( +int ED_transform_calc_gizmo_stats( const bContext *C, const struct TransformCalcParams *params, struct TransformBounds *tbounds) @@ -952,7 +952,7 @@ int ED_transform_calc_manipulator_stats( } else if (ob && (ob->mode & OB_MODE_POSE)) { bPoseChannel *pchan; - int mode = TFM_ROTATION; // mislead counting bones... bah. We don't know the manipulator mode, could be mixed + int mode = TFM_ROTATION; // mislead counting bones... bah. We don't know the gizmo mode, could be mixed bool ok = false; if ((pivot_point == V3D_AROUND_ACTIVE) && (pchan = BKE_pose_channel_active(ob))) { @@ -1061,7 +1061,7 @@ int ED_transform_calc_manipulator_stats( return totsel; } -static void manipulator_get_idot(RegionView3D *rv3d, float r_idot[3]) +static void gizmo_get_idot(RegionView3D *rv3d, float r_idot[3]) { float view_vec[3], axis_vec[3]; ED_view3d_global_to_vector(rv3d, rv3d->twmat[3], view_vec); @@ -1071,7 +1071,7 @@ static void manipulator_get_idot(RegionView3D *rv3d, float r_idot[3]) } } -static void manipulator_prepare_mat( +static void gizmo_prepare_mat( const bContext *C, View3D *v3d, RegionView3D *rv3d, const struct TransformBounds *tbounds) { Scene *scene = CTX_data_scene(C); @@ -1108,9 +1108,9 @@ static void manipulator_prepare_mat( /** * Sets up \a r_start and \a r_len to define arrow line range. - * Needed to adjust line drawing for combined manipulator axis types. + * Needed to adjust line drawing for combined gizmo axis types. */ -static void manipulator_line_range(const int twtype, const short axis_type, float *r_start, float *r_len) +static void gizmo_line_range(const int twtype, const short axis_type, float *r_start, float *r_len) { const float ofs = 0.2f; @@ -1136,15 +1136,15 @@ static void manipulator_line_range(const int twtype, const short axis_type, floa *r_len -= *r_start; } -static void manipulator_xform_message_subscribe( - wmManipulatorGroup *mgroup, struct wmMsgBus *mbus, +static void gizmo_xform_message_subscribe( + wmGizmoGroup *mgroup, struct wmMsgBus *mbus, Scene *scene, bScreen *UNUSED(screen), ScrArea *UNUSED(sa), ARegion *ar, const void *type_fn) { /* Subscribe to view properties */ wmMsgSubscribeValue msg_sub_value_mpr_tag_refresh = { .owner = ar, .user_data = mgroup->parent_mmap, - .notify = WM_manipulator_do_msg_notify_tag_refresh, + .notify = WM_gizmo_do_msg_notify_tag_refresh, }; PointerRNA scene_ptr; @@ -1167,12 +1167,12 @@ static void manipulator_xform_message_subscribe( PointerRNA toolsettings_ptr; RNA_pointer_create(&scene->id, &RNA_ToolSettings, scene->toolsettings, &toolsettings_ptr); - if (type_fn == TRANSFORM_WGT_manipulator) { + if (type_fn == TRANSFORM_WGT_gizmo) { extern PropertyRNA rna_ToolSettings_transform_pivot_point; - extern PropertyRNA rna_ToolSettings_use_manipulator_mode; + extern PropertyRNA rna_ToolSettings_use_gizmo_mode; const PropertyRNA *props[] = { &rna_ToolSettings_transform_pivot_point, - &rna_ToolSettings_use_manipulator_mode, + &rna_ToolSettings_use_gizmo_mode, }; for (int i = 0; i < ARRAY_SIZE(props); i++) { WM_msg_subscribe_rna(mbus, &toolsettings_ptr, props[i], &msg_sub_value_mpr_tag_refresh, __func__); @@ -1192,73 +1192,73 @@ static void manipulator_xform_message_subscribe( /* -------------------------------------------------------------------- */ -/** \name Transform Manipulator +/** \name Transform Gizmo * \{ */ -static ManipulatorGroup *manipulatorgroup_init(wmManipulatorGroup *mgroup) +static GizmoGroup *gizmogroup_init(wmGizmoGroup *mgroup) { - ManipulatorGroup *man; + GizmoGroup *man; - man = MEM_callocN(sizeof(ManipulatorGroup), "manipulator_data"); + man = MEM_callocN(sizeof(GizmoGroup), "gizmo_data"); - const wmManipulatorType *wt_arrow = WM_manipulatortype_find("MANIPULATOR_WT_arrow_3d", true); - const wmManipulatorType *wt_dial = WM_manipulatortype_find("MANIPULATOR_WT_dial_3d", true); - const wmManipulatorType *wt_prim = WM_manipulatortype_find("MANIPULATOR_WT_primitive_3d", true); + const wmGizmoType *wt_arrow = WM_gizmotype_find("GIZMO_WT_arrow_3d", true); + const wmGizmoType *wt_dial = WM_gizmotype_find("GIZMO_WT_dial_3d", true); + const wmGizmoType *wt_prim = WM_gizmotype_find("GIZMO_WT_primitive_3d", true); -#define MANIPULATOR_NEW_ARROW(v, draw_style) { \ - man->manipulators[v] = WM_manipulator_new_ptr(wt_arrow, mgroup, NULL); \ - RNA_enum_set(man->manipulators[v]->ptr, "draw_style", draw_style); \ +#define GIZMO_NEW_ARROW(v, draw_style) { \ + man->gizmos[v] = WM_gizmo_new_ptr(wt_arrow, mgroup, NULL); \ + RNA_enum_set(man->gizmos[v]->ptr, "draw_style", draw_style); \ } ((void)0) -#define MANIPULATOR_NEW_DIAL(v, draw_options) { \ - man->manipulators[v] = WM_manipulator_new_ptr(wt_dial, mgroup, NULL); \ - RNA_enum_set(man->manipulators[v]->ptr, "draw_options", draw_options); \ +#define GIZMO_NEW_DIAL(v, draw_options) { \ + man->gizmos[v] = WM_gizmo_new_ptr(wt_dial, mgroup, NULL); \ + RNA_enum_set(man->gizmos[v]->ptr, "draw_options", draw_options); \ } ((void)0) -#define MANIPULATOR_NEW_PRIM(v, draw_style) { \ - man->manipulators[v] = WM_manipulator_new_ptr(wt_prim, mgroup, NULL); \ - RNA_enum_set(man->manipulators[v]->ptr, "draw_style", draw_style); \ +#define GIZMO_NEW_PRIM(v, draw_style) { \ + man->gizmos[v] = WM_gizmo_new_ptr(wt_prim, mgroup, NULL); \ + RNA_enum_set(man->gizmos[v]->ptr, "draw_style", draw_style); \ } ((void)0) /* add/init widgets - order matters! */ - MANIPULATOR_NEW_DIAL(MAN_AXIS_ROT_T, ED_MANIPULATOR_DIAL_DRAW_FLAG_FILL); + GIZMO_NEW_DIAL(MAN_AXIS_ROT_T, ED_GIZMO_DIAL_DRAW_FLAG_FILL); - MANIPULATOR_NEW_DIAL(MAN_AXIS_SCALE_C, ED_MANIPULATOR_DIAL_DRAW_FLAG_NOP); + GIZMO_NEW_DIAL(MAN_AXIS_SCALE_C, ED_GIZMO_DIAL_DRAW_FLAG_NOP); - MANIPULATOR_NEW_ARROW(MAN_AXIS_SCALE_X, ED_MANIPULATOR_ARROW_STYLE_BOX); - MANIPULATOR_NEW_ARROW(MAN_AXIS_SCALE_Y, ED_MANIPULATOR_ARROW_STYLE_BOX); - MANIPULATOR_NEW_ARROW(MAN_AXIS_SCALE_Z, ED_MANIPULATOR_ARROW_STYLE_BOX); + GIZMO_NEW_ARROW(MAN_AXIS_SCALE_X, ED_GIZMO_ARROW_STYLE_BOX); + GIZMO_NEW_ARROW(MAN_AXIS_SCALE_Y, ED_GIZMO_ARROW_STYLE_BOX); + GIZMO_NEW_ARROW(MAN_AXIS_SCALE_Z, ED_GIZMO_ARROW_STYLE_BOX); - MANIPULATOR_NEW_PRIM(MAN_AXIS_SCALE_XY, ED_MANIPULATOR_PRIMITIVE_STYLE_PLANE); - MANIPULATOR_NEW_PRIM(MAN_AXIS_SCALE_YZ, ED_MANIPULATOR_PRIMITIVE_STYLE_PLANE); - MANIPULATOR_NEW_PRIM(MAN_AXIS_SCALE_ZX, ED_MANIPULATOR_PRIMITIVE_STYLE_PLANE); + GIZMO_NEW_PRIM(MAN_AXIS_SCALE_XY, ED_GIZMO_PRIMITIVE_STYLE_PLANE); + GIZMO_NEW_PRIM(MAN_AXIS_SCALE_YZ, ED_GIZMO_PRIMITIVE_STYLE_PLANE); + GIZMO_NEW_PRIM(MAN_AXIS_SCALE_ZX, ED_GIZMO_PRIMITIVE_STYLE_PLANE); - MANIPULATOR_NEW_DIAL(MAN_AXIS_ROT_X, ED_MANIPULATOR_DIAL_DRAW_FLAG_CLIP); - MANIPULATOR_NEW_DIAL(MAN_AXIS_ROT_Y, ED_MANIPULATOR_DIAL_DRAW_FLAG_CLIP); - MANIPULATOR_NEW_DIAL(MAN_AXIS_ROT_Z, ED_MANIPULATOR_DIAL_DRAW_FLAG_CLIP); + GIZMO_NEW_DIAL(MAN_AXIS_ROT_X, ED_GIZMO_DIAL_DRAW_FLAG_CLIP); + GIZMO_NEW_DIAL(MAN_AXIS_ROT_Y, ED_GIZMO_DIAL_DRAW_FLAG_CLIP); + GIZMO_NEW_DIAL(MAN_AXIS_ROT_Z, ED_GIZMO_DIAL_DRAW_FLAG_CLIP); /* init screen aligned widget last here, looks better, behaves better */ - MANIPULATOR_NEW_DIAL(MAN_AXIS_ROT_C, ED_MANIPULATOR_DIAL_DRAW_FLAG_NOP); + GIZMO_NEW_DIAL(MAN_AXIS_ROT_C, ED_GIZMO_DIAL_DRAW_FLAG_NOP); - MANIPULATOR_NEW_DIAL(MAN_AXIS_TRANS_C, ED_MANIPULATOR_DIAL_DRAW_FLAG_NOP); + GIZMO_NEW_DIAL(MAN_AXIS_TRANS_C, ED_GIZMO_DIAL_DRAW_FLAG_NOP); - MANIPULATOR_NEW_ARROW(MAN_AXIS_TRANS_X, ED_MANIPULATOR_ARROW_STYLE_NORMAL); - MANIPULATOR_NEW_ARROW(MAN_AXIS_TRANS_Y, ED_MANIPULATOR_ARROW_STYLE_NORMAL); - MANIPULATOR_NEW_ARROW(MAN_AXIS_TRANS_Z, ED_MANIPULATOR_ARROW_STYLE_NORMAL); + GIZMO_NEW_ARROW(MAN_AXIS_TRANS_X, ED_GIZMO_ARROW_STYLE_NORMAL); + GIZMO_NEW_ARROW(MAN_AXIS_TRANS_Y, ED_GIZMO_ARROW_STYLE_NORMAL); + GIZMO_NEW_ARROW(MAN_AXIS_TRANS_Z, ED_GIZMO_ARROW_STYLE_NORMAL); - MANIPULATOR_NEW_PRIM(MAN_AXIS_TRANS_XY, ED_MANIPULATOR_PRIMITIVE_STYLE_PLANE); - MANIPULATOR_NEW_PRIM(MAN_AXIS_TRANS_YZ, ED_MANIPULATOR_PRIMITIVE_STYLE_PLANE); - MANIPULATOR_NEW_PRIM(MAN_AXIS_TRANS_ZX, ED_MANIPULATOR_PRIMITIVE_STYLE_PLANE); + GIZMO_NEW_PRIM(MAN_AXIS_TRANS_XY, ED_GIZMO_PRIMITIVE_STYLE_PLANE); + GIZMO_NEW_PRIM(MAN_AXIS_TRANS_YZ, ED_GIZMO_PRIMITIVE_STYLE_PLANE); + GIZMO_NEW_PRIM(MAN_AXIS_TRANS_ZX, ED_GIZMO_PRIMITIVE_STYLE_PLANE); - man->manipulators[MAN_AXIS_ROT_T]->flag |= WM_MANIPULATOR_SELECT_BACKGROUND; + man->gizmos[MAN_AXIS_ROT_T]->flag |= WM_GIZMO_SELECT_BACKGROUND; return man; } /** - * Custom handler for manipulator widgets + * Custom handler for gizmo widgets */ -static int manipulator_modal( - bContext *C, wmManipulator *widget, const wmEvent *event, - eWM_ManipulatorTweak UNUSED(tweak_flag)) +static int gizmo_modal( + bContext *C, wmGizmo *widget, const wmEvent *event, + eWM_GizmoFlagTweak UNUSED(tweak_flag)) { /* Avoid unnecessary updates, partially address: T55458. */ if (ELEM(event->type, TIMER, INBETWEEN_MOUSEMOVE)) { @@ -1272,13 +1272,13 @@ static int manipulator_modal( struct TransformBounds tbounds; - if (ED_transform_calc_manipulator_stats( + if (ED_transform_calc_gizmo_stats( C, &(struct TransformCalcParams){ .use_only_center = true, }, &tbounds)) { - manipulator_prepare_mat(C, v3d, rv3d, &tbounds); - WM_manipulator_set_matrix_location(widget, rv3d->twmat[3]); + gizmo_prepare_mat(C, v3d, rv3d, &tbounds); + WM_gizmo_set_matrix_location(widget, rv3d->twmat[3]); } ED_region_tag_redraw(ar); @@ -1286,22 +1286,22 @@ static int manipulator_modal( return OPERATOR_RUNNING_MODAL; } -static void manipulatorgroup_init_properties_from_twtype(wmManipulatorGroup *mgroup) +static void gizmogroup_init_properties_from_twtype(wmGizmoGroup *mgroup) { struct { wmOperatorType *translate, *rotate, *trackball, *resize; } ot_store = {NULL}; - ManipulatorGroup *man = mgroup->customdata; + GizmoGroup *man = mgroup->customdata; MAN_ITER_AXES_BEGIN(axis, axis_idx) { - const short axis_type = manipulator_get_axis_type(axis_idx); + const short axis_type = gizmo_get_axis_type(axis_idx); bool constraint_axis[3] = {1, 0, 0}; PointerRNA *ptr; - manipulator_get_axis_constraint(axis_idx, constraint_axis); + gizmo_get_axis_constraint(axis_idx, constraint_axis); /* custom handler! */ - WM_manipulator_set_fn_custom_modal(axis, manipulator_modal); + WM_gizmo_set_fn_custom_modal(axis, gizmo_modal); switch (axis_idx) { case MAN_AXIS_TRANS_X: @@ -1313,19 +1313,19 @@ static void manipulatorgroup_init_properties_from_twtype(wmManipulatorGroup *mgr if (axis_idx >= MAN_AXIS_RANGE_TRANS_START && axis_idx < MAN_AXIS_RANGE_TRANS_END) { int draw_options = 0; if ((man->twtype & (SCE_MANIP_ROTATE | SCE_MANIP_SCALE)) == 0) { - draw_options |= ED_MANIPULATOR_ARROW_DRAW_FLAG_STEM; + draw_options |= ED_GIZMO_ARROW_DRAW_FLAG_STEM; } RNA_enum_set(axis->ptr, "draw_options", draw_options); } - WM_manipulator_set_line_width(axis, MANIPULATOR_AXIS_LINE_WIDTH); + WM_gizmo_set_line_width(axis, GIZMO_AXIS_LINE_WIDTH); break; case MAN_AXIS_ROT_X: case MAN_AXIS_ROT_Y: case MAN_AXIS_ROT_Z: /* increased line width for better display */ - WM_manipulator_set_line_width(axis, MANIPULATOR_AXIS_LINE_WIDTH + 1.0f); - WM_manipulator_set_flag(axis, WM_MANIPULATOR_DRAW_VALUE, true); + WM_gizmo_set_line_width(axis, GIZMO_AXIS_LINE_WIDTH + 1.0f); + WM_gizmo_set_flag(axis, WM_GIZMO_DRAW_VALUE, true); break; case MAN_AXIS_TRANS_XY: case MAN_AXIS_TRANS_YZ: @@ -1336,25 +1336,25 @@ static void manipulatorgroup_init_properties_from_twtype(wmManipulatorGroup *mgr { const float ofs_ax = 7.0f; const float ofs[3] = {ofs_ax, ofs_ax, 0.0f}; - WM_manipulator_set_scale(axis, 0.07f); - WM_manipulator_set_matrix_offset_location(axis, ofs); - WM_manipulator_set_flag(axis, WM_MANIPULATOR_DRAW_OFFSET_SCALE, true); + WM_gizmo_set_scale(axis, 0.07f); + WM_gizmo_set_matrix_offset_location(axis, ofs); + WM_gizmo_set_flag(axis, WM_GIZMO_DRAW_OFFSET_SCALE, true); break; } case MAN_AXIS_TRANS_C: case MAN_AXIS_ROT_C: case MAN_AXIS_SCALE_C: case MAN_AXIS_ROT_T: - WM_manipulator_set_line_width(axis, MANIPULATOR_AXIS_LINE_WIDTH); + WM_gizmo_set_line_width(axis, GIZMO_AXIS_LINE_WIDTH); if (axis_idx == MAN_AXIS_ROT_T) { - WM_manipulator_set_flag(axis, WM_MANIPULATOR_DRAW_HOVER, true); + WM_gizmo_set_flag(axis, WM_GIZMO_DRAW_HOVER, true); } else if (axis_idx == MAN_AXIS_ROT_C) { - WM_manipulator_set_flag(axis, WM_MANIPULATOR_DRAW_VALUE, true); - WM_manipulator_set_scale(axis, 1.2f); + WM_gizmo_set_flag(axis, WM_GIZMO_DRAW_VALUE, true); + WM_gizmo_set_scale(axis, 1.2f); } else { - WM_manipulator_set_scale(axis, 0.2f); + WM_gizmo_set_scale(axis, 0.2f); } break; } @@ -1364,7 +1364,7 @@ static void manipulatorgroup_init_properties_from_twtype(wmManipulatorGroup *mgr if (ot_store.translate == NULL) { ot_store.translate = WM_operatortype_find("TRANSFORM_OT_translate", true); } - ptr = WM_manipulator_operator_set(axis, 0, ot_store.translate, NULL); + ptr = WM_gizmo_operator_set(axis, 0, ot_store.translate, NULL); break; case MAN_AXES_ROTATE: { @@ -1381,7 +1381,7 @@ static void manipulatorgroup_init_properties_from_twtype(wmManipulatorGroup *mgr } ot_rotate = ot_store.rotate; } - ptr = WM_manipulator_operator_set(axis, 0, ot_rotate, NULL); + ptr = WM_gizmo_operator_set(axis, 0, ot_rotate, NULL); break; } case MAN_AXES_SCALE: @@ -1389,7 +1389,7 @@ static void manipulatorgroup_init_properties_from_twtype(wmManipulatorGroup *mgr if (ot_store.resize == NULL) { ot_store.resize = WM_operatortype_find("TRANSFORM_OT_resize", true); } - ptr = WM_manipulator_operator_set(axis, 0, ot_store.resize, NULL); + ptr = WM_gizmo_operator_set(axis, 0, ot_store.resize, NULL); break; } } @@ -1406,9 +1406,9 @@ static void manipulatorgroup_init_properties_from_twtype(wmManipulatorGroup *mgr MAN_ITER_AXES_END; } -static void WIDGETGROUP_manipulator_setup(const bContext *C, wmManipulatorGroup *mgroup) +static void WIDGETGROUP_gizmo_setup(const bContext *C, wmGizmoGroup *mgroup) { - ManipulatorGroup *man = manipulatorgroup_init(mgroup); + GizmoGroup *man = gizmogroup_init(mgroup); mgroup->customdata = man; @@ -1418,7 +1418,7 @@ static void WIDGETGROUP_manipulator_setup(const bContext *C, wmManipulatorGroup const bToolRef *tref = sa->runtime.tool; if (tref == NULL || STREQ(tref->idname, "Transform")) { - /* Setup all manipulators, they can be toggled via 'ToolSettings.manipulator_flag' */ + /* Setup all gizmos, they can be toggled via 'ToolSettings.gizmo_flag' */ man->twtype = SCE_MANIP_TRANSLATE | SCE_MANIP_ROTATE | SCE_MANIP_SCALE; man->use_twtype_refresh = true; } @@ -1436,12 +1436,12 @@ static void WIDGETGROUP_manipulator_setup(const bContext *C, wmManipulatorGroup } /* *** set properties for axes *** */ - manipulatorgroup_init_properties_from_twtype(mgroup); + gizmogroup_init_properties_from_twtype(mgroup); } -static void WIDGETGROUP_manipulator_refresh(const bContext *C, wmManipulatorGroup *mgroup) +static void WIDGETGROUP_gizmo_refresh(const bContext *C, wmGizmoGroup *mgroup) { - ManipulatorGroup *man = mgroup->customdata; + GizmoGroup *man = mgroup->customdata; ScrArea *sa = CTX_wm_area(C); ARegion *ar = CTX_wm_region(C); View3D *v3d = sa->spacedata.first; @@ -1450,16 +1450,16 @@ static void WIDGETGROUP_manipulator_refresh(const bContext *C, wmManipulatorGrou if (man->use_twtype_refresh) { Scene *scene = CTX_data_scene(C); - man->twtype = scene->toolsettings->manipulator_flag & man->twtype_init; + man->twtype = scene->toolsettings->gizmo_flag & man->twtype_init; if (man->twtype != man->twtype_prev) { man->twtype_prev = man->twtype; - manipulatorgroup_init_properties_from_twtype(mgroup); + gizmogroup_init_properties_from_twtype(mgroup); } } /* skip, we don't draw anything anyway */ if ((man->all_hidden = - (ED_transform_calc_manipulator_stats( + (ED_transform_calc_gizmo_stats( C, &(struct TransformCalcParams){ .use_only_center = true, }, &tbounds) == 0))) @@ -1467,16 +1467,16 @@ static void WIDGETGROUP_manipulator_refresh(const bContext *C, wmManipulatorGrou return; } - manipulator_prepare_mat(C, v3d, rv3d, &tbounds); + gizmo_prepare_mat(C, v3d, rv3d, &tbounds); /* *** set properties for axes *** */ MAN_ITER_AXES_BEGIN(axis, axis_idx) { - const short axis_type = manipulator_get_axis_type(axis_idx); - const int aidx_norm = manipulator_orientation_axis(axis_idx, NULL); + const short axis_type = gizmo_get_axis_type(axis_idx); + const int aidx_norm = gizmo_orientation_axis(axis_idx, NULL); - WM_manipulator_set_matrix_location(axis, rv3d->twmat[3]); + WM_gizmo_set_matrix_location(axis, rv3d->twmat[3]); switch (axis_idx) { case MAN_AXIS_TRANS_X: @@ -1489,9 +1489,9 @@ static void WIDGETGROUP_manipulator_refresh(const bContext *C, wmManipulatorGrou float start_co[3] = {0.0f, 0.0f, 0.0f}; float len; - manipulator_line_range(man->twtype, axis_type, &start_co[2], &len); + gizmo_line_range(man->twtype, axis_type, &start_co[2], &len); - WM_manipulator_set_matrix_rotation_from_z_axis(axis, rv3d->twmat[aidx_norm]); + WM_gizmo_set_matrix_rotation_from_z_axis(axis, rv3d->twmat[aidx_norm]); RNA_float_set(axis->ptr, "length", len); if (axis_idx >= MAN_AXIS_RANGE_TRANS_START && axis_idx < MAN_AXIS_RANGE_TRANS_END) { @@ -1500,14 +1500,14 @@ static void WIDGETGROUP_manipulator_refresh(const bContext *C, wmManipulatorGrou start_co[2] += 0.215f; } } - WM_manipulator_set_matrix_offset_location(axis, start_co); - WM_manipulator_set_flag(axis, WM_MANIPULATOR_DRAW_OFFSET_SCALE, true); + WM_gizmo_set_matrix_offset_location(axis, start_co); + WM_gizmo_set_flag(axis, WM_GIZMO_DRAW_OFFSET_SCALE, true); break; } case MAN_AXIS_ROT_X: case MAN_AXIS_ROT_Y: case MAN_AXIS_ROT_Z: - WM_manipulator_set_matrix_rotation_from_z_axis(axis, rv3d->twmat[aidx_norm]); + WM_gizmo_set_matrix_rotation_from_z_axis(axis, rv3d->twmat[aidx_norm]); break; case MAN_AXIS_TRANS_XY: case MAN_AXIS_TRANS_YZ: @@ -1518,7 +1518,7 @@ static void WIDGETGROUP_manipulator_refresh(const bContext *C, wmManipulatorGrou { const float *y_axis = rv3d->twmat[aidx_norm - 1 < 0 ? 2 : aidx_norm - 1]; const float *z_axis = rv3d->twmat[aidx_norm]; - WM_manipulator_set_matrix_rotation_from_yz_axis(axis, y_axis, z_axis); + WM_gizmo_set_matrix_rotation_from_yz_axis(axis, y_axis, z_axis); break; } } @@ -1526,134 +1526,134 @@ static void WIDGETGROUP_manipulator_refresh(const bContext *C, wmManipulatorGrou MAN_ITER_AXES_END; } -static void WIDGETGROUP_manipulator_message_subscribe( - const bContext *C, wmManipulatorGroup *mgroup, struct wmMsgBus *mbus) +static void WIDGETGROUP_gizmo_message_subscribe( + const bContext *C, wmGizmoGroup *mgroup, struct wmMsgBus *mbus) { Scene *scene = CTX_data_scene(C); bScreen *screen = CTX_wm_screen(C); ScrArea *sa = CTX_wm_area(C); ARegion *ar = CTX_wm_region(C); - manipulator_xform_message_subscribe(mgroup, mbus, scene, screen, sa, ar, TRANSFORM_WGT_manipulator); + gizmo_xform_message_subscribe(mgroup, mbus, scene, screen, sa, ar, TRANSFORM_WGT_gizmo); } -static void WIDGETGROUP_manipulator_draw_prepare(const bContext *C, wmManipulatorGroup *mgroup) +static void WIDGETGROUP_gizmo_draw_prepare(const bContext *C, wmGizmoGroup *mgroup) { - ManipulatorGroup *man = mgroup->customdata; + GizmoGroup *man = mgroup->customdata; // ScrArea *sa = CTX_wm_area(C); ARegion *ar = CTX_wm_region(C); // View3D *v3d = sa->spacedata.first; RegionView3D *rv3d = ar->regiondata; float idot[3]; - /* when looking through a selected camera, the manipulator can be at the + /* when looking through a selected camera, the gizmo can be at the * exact same position as the view, skip so we don't break selection */ if (man->all_hidden || fabsf(ED_view3d_pixel_size(rv3d, rv3d->twmat[3])) < 1e-6f) { MAN_ITER_AXES_BEGIN(axis, axis_idx) { - WM_manipulator_set_flag(axis, WM_MANIPULATOR_HIDDEN, true); + WM_gizmo_set_flag(axis, WM_GIZMO_HIDDEN, true); } MAN_ITER_AXES_END; return; } - manipulator_get_idot(rv3d, idot); + gizmo_get_idot(rv3d, idot); /* *** set properties for axes *** */ MAN_ITER_AXES_BEGIN(axis, axis_idx) { - const short axis_type = manipulator_get_axis_type(axis_idx); + const short axis_type = gizmo_get_axis_type(axis_idx); /* XXX maybe unset _HIDDEN flag on redraw? */ - if (manipulator_is_axis_visible(rv3d, man->twtype, idot, axis_type, axis_idx)) { - WM_manipulator_set_flag(axis, WM_MANIPULATOR_HIDDEN, false); + if (gizmo_is_axis_visible(rv3d, man->twtype, idot, axis_type, axis_idx)) { + WM_gizmo_set_flag(axis, WM_GIZMO_HIDDEN, false); } else { - WM_manipulator_set_flag(axis, WM_MANIPULATOR_HIDDEN, true); + WM_gizmo_set_flag(axis, WM_GIZMO_HIDDEN, true); continue; } float color[4], color_hi[4]; - manipulator_get_axis_color(axis_idx, idot, color, color_hi); - WM_manipulator_set_color(axis, color); - WM_manipulator_set_color_highlight(axis, color_hi); + gizmo_get_axis_color(axis_idx, idot, color, color_hi); + WM_gizmo_set_color(axis, color); + WM_gizmo_set_color_highlight(axis, color_hi); switch (axis_idx) { case MAN_AXIS_TRANS_C: case MAN_AXIS_ROT_C: case MAN_AXIS_SCALE_C: case MAN_AXIS_ROT_T: - WM_manipulator_set_matrix_rotation_from_z_axis(axis, rv3d->viewinv[2]); + WM_gizmo_set_matrix_rotation_from_z_axis(axis, rv3d->viewinv[2]); break; } } MAN_ITER_AXES_END; } -static bool WIDGETGROUP_manipulator_poll(const struct bContext *C, struct wmManipulatorGroupType *wgt) +static bool WIDGETGROUP_gizmo_poll(const struct bContext *C, struct wmGizmoGroupType *wgt) { /* it's a given we only use this in 3D view */ bToolRef_Runtime *tref_rt = WM_toolsystem_runtime_from_context((bContext *)C); if ((tref_rt == NULL) || - !STREQ(wgt->idname, tref_rt->manipulator_group)) + !STREQ(wgt->idname, tref_rt->gizmo_group)) { - WM_manipulator_group_type_unlink_delayed_ptr(wgt); + WM_gizmo_group_type_unlink_delayed_ptr(wgt); return false; } View3D *v3d = CTX_wm_view3d(C); - if (v3d->mpr_flag & (V3D_MANIPULATOR_HIDE | V3D_MANIPULATOR_HIDE_TOOL)) { + if (v3d->mpr_flag & (V3D_GIZMO_HIDE | V3D_GIZMO_HIDE_TOOL)) { return false; } return true; } -void TRANSFORM_WGT_manipulator(wmManipulatorGroupType *wgt) +void TRANSFORM_WGT_gizmo(wmGizmoGroupType *wgt) { - wgt->name = "Transform Manipulator"; - wgt->idname = "TRANSFORM_WGT_manipulator"; + wgt->name = "Transform Gizmo"; + wgt->idname = "TRANSFORM_WGT_gizmo"; - wgt->flag |= WM_MANIPULATORGROUPTYPE_3D; + wgt->flag |= WM_GIZMOGROUPTYPE_3D; wgt->mmap_params.spaceid = SPACE_VIEW3D; wgt->mmap_params.regionid = RGN_TYPE_WINDOW; - wgt->poll = WIDGETGROUP_manipulator_poll; - wgt->setup = WIDGETGROUP_manipulator_setup; - wgt->refresh = WIDGETGROUP_manipulator_refresh; - wgt->message_subscribe = WIDGETGROUP_manipulator_message_subscribe; - wgt->draw_prepare = WIDGETGROUP_manipulator_draw_prepare; + wgt->poll = WIDGETGROUP_gizmo_poll; + wgt->setup = WIDGETGROUP_gizmo_setup; + wgt->refresh = WIDGETGROUP_gizmo_refresh; + wgt->message_subscribe = WIDGETGROUP_gizmo_message_subscribe; + wgt->draw_prepare = WIDGETGROUP_gizmo_draw_prepare; } /** \} */ /* -------------------------------------------------------------------- */ -/** \name Scale Cage Manipulator +/** \name Scale Cage Gizmo * \{ */ struct XFormCageWidgetGroup { - wmManipulator *manipulator; + wmGizmo *gizmo; }; -static bool WIDGETGROUP_xform_cage_poll(const bContext *C, wmManipulatorGroupType *wgt) +static bool WIDGETGROUP_xform_cage_poll(const bContext *C, wmGizmoGroupType *wgt) { bToolRef_Runtime *tref_rt = WM_toolsystem_runtime_from_context((bContext *)C); - if (!STREQ(wgt->idname, tref_rt->manipulator_group)) { - WM_manipulator_group_type_unlink_delayed_ptr(wgt); + if (!STREQ(wgt->idname, tref_rt->gizmo_group)) { + WM_gizmo_group_type_unlink_delayed_ptr(wgt); return false; } return true; } -static void WIDGETGROUP_xform_cage_setup(const bContext *UNUSED(C), wmManipulatorGroup *mgroup) +static void WIDGETGROUP_xform_cage_setup(const bContext *UNUSED(C), wmGizmoGroup *mgroup) { struct XFormCageWidgetGroup *xmgroup = MEM_mallocN(sizeof(struct XFormCageWidgetGroup), __func__); - const wmManipulatorType *wt_cage = WM_manipulatortype_find("MANIPULATOR_WT_cage_3d", true); - xmgroup->manipulator = WM_manipulator_new_ptr(wt_cage, mgroup, NULL); - wmManipulator *mpr = xmgroup->manipulator; + const wmGizmoType *wt_cage = WM_gizmotype_find("GIZMO_WT_cage_3d", true); + xmgroup->gizmo = WM_gizmo_new_ptr(wt_cage, mgroup, NULL); + wmGizmo *mpr = xmgroup->gizmo; RNA_enum_set(mpr->ptr, "transform", - ED_MANIPULATOR_CAGE2D_XFORM_FLAG_SCALE | - ED_MANIPULATOR_CAGE2D_XFORM_FLAG_TRANSLATE); + ED_GIZMO_CAGE2D_XFORM_FLAG_SCALE | + ED_GIZMO_CAGE2D_XFORM_FLAG_TRANSLATE); mpr->color[0] = 1; mpr->color_hi[0] = 1; @@ -1668,12 +1668,12 @@ static void WIDGETGROUP_xform_cage_setup(const bContext *UNUSED(C), wmManipulato PropertyRNA *prop_release_confirm = NULL; PropertyRNA *prop_constraint_axis = NULL; - int i = ED_MANIPULATOR_CAGE3D_PART_SCALE_MIN_X_MIN_Y_MIN_Z; + int i = ED_GIZMO_CAGE3D_PART_SCALE_MIN_X_MIN_Y_MIN_Z; for (int x = 0; x < 3; x++) { for (int y = 0; y < 3; y++) { for (int z = 0; z < 3; z++) { bool constraint[3] = {x != 1, y != 1, z != 1}; - ptr = WM_manipulator_operator_set(mpr, i, ot_resize, NULL); + ptr = WM_gizmo_operator_set(mpr, i, ot_resize, NULL); if (prop_release_confirm == NULL) { prop_release_confirm = RNA_struct_find_property(ptr, "release_confirm"); prop_constraint_axis = RNA_struct_find_property(ptr, "constraint_axis"); @@ -1687,7 +1687,7 @@ static void WIDGETGROUP_xform_cage_setup(const bContext *UNUSED(C), wmManipulato } } -static void WIDGETGROUP_xform_cage_refresh(const bContext *C, wmManipulatorGroup *mgroup) +static void WIDGETGROUP_xform_cage_refresh(const bContext *C, wmGizmoGroup *mgroup) { ScrArea *sa = CTX_wm_area(C); View3D *v3d = sa->spacedata.first; @@ -1695,23 +1695,23 @@ static void WIDGETGROUP_xform_cage_refresh(const bContext *C, wmManipulatorGroup RegionView3D *rv3d = ar->regiondata; struct XFormCageWidgetGroup *xmgroup = mgroup->customdata; - wmManipulator *mpr = xmgroup->manipulator; + wmGizmo *mpr = xmgroup->gizmo; struct TransformBounds tbounds; - if ((ED_transform_calc_manipulator_stats( + if ((ED_transform_calc_gizmo_stats( C, &(struct TransformCalcParams) { .use_local_axis = true, }, &tbounds) == 0) || equals_v3v3(rv3d->tw_axis_min, rv3d->tw_axis_max)) { - WM_manipulator_set_flag(mpr, WM_MANIPULATOR_HIDDEN, true); + WM_gizmo_set_flag(mpr, WM_GIZMO_HIDDEN, true); } else { - manipulator_prepare_mat(C, v3d, rv3d, &tbounds); + gizmo_prepare_mat(C, v3d, rv3d, &tbounds); - WM_manipulator_set_flag(mpr, WM_MANIPULATOR_HIDDEN, false); - WM_manipulator_set_flag(mpr, WM_MANIPULATOR_GRAB_CURSOR, true); + WM_gizmo_set_flag(mpr, WM_GIZMO_HIDDEN, false); + WM_gizmo_set_flag(mpr, WM_GIZMO_GRAB_CURSOR, true); float dims[3]; sub_v3_v3v3(dims, rv3d->tw_axis_max, rv3d->tw_axis_min); @@ -1725,14 +1725,14 @@ static void WIDGETGROUP_xform_cage_refresh(const bContext *C, wmManipulatorGroup PropertyRNA *prop_center_override = NULL; float center[3]; float center_global[3]; - int i = ED_MANIPULATOR_CAGE3D_PART_SCALE_MIN_X_MIN_Y_MIN_Z; + int i = ED_GIZMO_CAGE3D_PART_SCALE_MIN_X_MIN_Y_MIN_Z; for (int x = 0; x < 3; x++) { center[0] = (float)(1 - x) * dims[0]; for (int y = 0; y < 3; y++) { center[1] = (float)(1 - y) * dims[1]; for (int z = 0; z < 3; z++) { center[2] = (float)(1 - z) * dims[2]; - struct wmManipulatorOpElem *mpop = WM_manipulator_operator_get(mpr, i); + struct wmGizmoOpElem *mpop = WM_gizmo_operator_get(mpr, i); if (prop_center_override == NULL) { prop_center_override = RNA_struct_find_property(&mpop->ptr, "center_override"); } @@ -1746,19 +1746,19 @@ static void WIDGETGROUP_xform_cage_refresh(const bContext *C, wmManipulatorGroup } static void WIDGETGROUP_xform_cage_message_subscribe( - const bContext *C, wmManipulatorGroup *mgroup, struct wmMsgBus *mbus) + const bContext *C, wmGizmoGroup *mgroup, struct wmMsgBus *mbus) { Scene *scene = CTX_data_scene(C); bScreen *screen = CTX_wm_screen(C); ScrArea *sa = CTX_wm_area(C); ARegion *ar = CTX_wm_region(C); - manipulator_xform_message_subscribe(mgroup, mbus, scene, screen, sa, ar, VIEW3D_WGT_xform_cage); + gizmo_xform_message_subscribe(mgroup, mbus, scene, screen, sa, ar, VIEW3D_WGT_xform_cage); } -static void WIDGETGROUP_xform_cage_draw_prepare(const bContext *C, wmManipulatorGroup *mgroup) +static void WIDGETGROUP_xform_cage_draw_prepare(const bContext *C, wmGizmoGroup *mgroup) { struct XFormCageWidgetGroup *xmgroup = mgroup->customdata; - wmManipulator *mpr = xmgroup->manipulator; + wmGizmo *mpr = xmgroup->gizmo; ViewLayer *view_layer = CTX_data_view_layer(C); Object *ob = OBACT(view_layer); @@ -1770,12 +1770,12 @@ static void WIDGETGROUP_xform_cage_draw_prepare(const bContext *C, wmManipulator } } -void VIEW3D_WGT_xform_cage(wmManipulatorGroupType *wgt) +void VIEW3D_WGT_xform_cage(wmGizmoGroupType *wgt) { wgt->name = "Transform Cage"; wgt->idname = "VIEW3D_WGT_xform_cage"; - wgt->flag |= WM_MANIPULATORGROUPTYPE_3D; + wgt->flag |= WM_GIZMOGROUPTYPE_3D; wgt->mmap_params.spaceid = SPACE_VIEW3D; wgt->mmap_params.regionid = RGN_TYPE_WINDOW; diff --git a/source/blender/editors/transform/transform_ops.c b/source/blender/editors/transform/transform_ops.c index eedf6f50a1f..c9a97c8530c 100644 --- a/source/blender/editors/transform/transform_ops.c +++ b/source/blender/editors/transform/transform_ops.c @@ -493,7 +493,7 @@ static int transform_invoke(bContext *C, wmOperator *op, const wmEvent *event) /* add temp handler */ WM_event_add_modal_handler(C, op); - op->flag |= OP_IS_MODAL_GRAB_CURSOR; // XXX maybe we want this with the manipulator only? + op->flag |= OP_IS_MODAL_GRAB_CURSOR; // XXX maybe we want this with the gizmo only? /* Use when modal input has some transformation to begin with. */ { @@ -585,7 +585,7 @@ void Transform_Properties(struct wmOperatorType *ot, int flags) } if (flags & P_CENTER) { - /* For manipulators that define their own center. */ + /* For gizmos that define their own center. */ prop = RNA_def_property(ot->srna, "center_override", PROP_FLOAT, PROP_XYZ); RNA_def_property_array(prop, 3); RNA_def_property_flag(prop, PROP_HIDDEN | PROP_SKIP_SAVE); -- cgit v1.2.3