Blender
V3.3
|
#include "MEM_guardedalloc.h"
#include "BLI_math.h"
#include "BKE_context.h"
#include "GPU_immediate.h"
#include "GPU_immediate_util.h"
#include "GPU_matrix.h"
#include "GPU_select.h"
#include "GPU_shader.h"
#include "GPU_state.h"
#include "RNA_access.h"
#include "RNA_define.h"
#include "WM_api.h"
#include "WM_types.h"
#include "ED_gizmo_library.h"
#include "ED_screen.h"
#include "ED_view3d.h"
#include "../gizmo_library_intern.h"
Go to the source code of this file.
Classes | |
struct | RectTransformInteraction |
Typedefs | |
typedef struct RectTransformInteraction | RectTransformInteraction |
Functions | |
static void | gizmo_cage3d_draw_intern (RegionView3D *rv3d, wmGizmo *gz, const bool select, const bool highlight, const int select_id) |
static void | gizmo_cage3d_draw_select (const bContext *C, wmGizmo *gz, int select_id) |
static void | gizmo_cage3d_draw (const bContext *C, wmGizmo *gz) |
static int | gizmo_cage3d_get_cursor (wmGizmo *gz) |
static void | gizmo_cage3d_setup (wmGizmo *gz) |
static int | gizmo_cage3d_invoke (bContext *C, wmGizmo *gz, const wmEvent *event) |
static int | gizmo_cage3d_modal (bContext *C, wmGizmo *gz, const wmEvent *event, eWM_GizmoFlagTweak UNUSED(tweak_flag)) |
static void | gizmo_cage3d_property_update (wmGizmo *gz, wmGizmoProperty *gz_prop) |
static void | gizmo_cage3d_exit (bContext *C, wmGizmo *gz, const bool cancel) |
Box Draw Style | |
Useful for 3D views, see: ED_GIZMO_CAGE2D_STYLE_BOX | |
static void | cage3d_draw_box_corners (const float r[3], const float margin[3], const float color[3], const float line_width) |
static void | cage3d_draw_box_interaction (const RegionView3D *rv3d, const float matrix_final[4][4], const float color[4], const int highlighted, const float size[3], const float margin[3]) |
Circle Draw Style | |
Useful for 2D views, see: ED_GIZMO_CAGE2D_STYLE_CIRCLE | |
static void | imm_draw_point_aspect_3d (uint pos, const float co[3], const float rad[3], bool solid) |
static void | cage3d_draw_circle_wire (const float r[3], const float margin[3], const float color[3], const int transform_flag, const int draw_options, const float line_width) |
static void | cage3d_draw_circle_handles (const RegionView3D *rv3d, const float matrix_final[4][4], const float r[3], const float margin[3], const float color[3], bool solid, const float handle_scale) |
Cage Gizmo API | |
static void | GIZMO_GT_cage_3d (wmGizmoType *gzt) |
void | ED_gizmotypes_cage_3d (void) |
Cage Gizmo | |
Rectangular gizmo acting as a 'cage' around its content. Interacting scales or translates the gizmo. 2D Gizmo | |
#define | GIZMO_RESIZER_SIZE 10.0f |
#define | GIZMO_MARGIN_OFFSET_SCALE 1.5f |
static void | gizmo_calc_matrix_final_no_offset (const wmGizmo *gz, float orig_matrix_final_no_offset[4][4], bool use_space) |
static void | gizmo_calc_rect_view_scale (const wmGizmo *gz, const float dims[3], float scale[3]) |
static void | gizmo_calc_rect_view_margin (const wmGizmo *gz, const float dims[3], float margin[3]) |
static void | gizmo_rect_pivot_from_scale_part (int part, float r_pt[3], bool r_constrain_axis[3]) |
#define GIZMO_MARGIN_OFFSET_SCALE 1.5f |
Definition at line 42 of file cage3d_gizmo.c.
#define GIZMO_RESIZER_SIZE 10.0f |
Definition at line 41 of file cage3d_gizmo.c.
typedef struct RectTransformInteraction RectTransformInteraction |
|
static |
Definition at line 117 of file cage3d_gizmo.c.
References color, GPU_COMP_F32, GPU_FETCH_FLOAT, GPU_SHADER_3D_POLYLINE_UNIFORM_COLOR, GPU_vertformat_attr_add(), GPU_viewport_size_get_f(), imm_draw_cube_wire_3d(), immBindBuiltinProgram(), immUnbindProgram(), immUniform1f(), immUniform2fv(), immUniformColor3fv(), immVertexFormat(), pos, r, and UNUSED_VARS.
Referenced by gizmo_cage3d_draw_intern().
|
static |
Definition at line 138 of file cage3d_gizmo.c.
References color, ED_GIZMO_CAGE3D_PART_SCALE_MAX_X_MAX_Y_MAX_Z, ED_GIZMO_CAGE3D_PART_SCALE_MIN_X_MIN_Y_MIN_Z, ED_view3d_pixel_size(), GPU_COMP_F32, GPU_FETCH_FLOAT, GPU_SHADER_3D_UNIFORM_COLOR, GPU_vertformat_attr_add(), imm_draw_cube_fill_3d(), immBindBuiltinProgram(), immUnbindProgram(), immUniformColor3fv(), immVertexFormat(), mul_v3_m4v3(), mul_v3_v3fl(), pos, KDL::sign(), and size().
Referenced by gizmo_cage3d_draw_intern().
|
static |
Definition at line 236 of file cage3d_gizmo.c.
References color, ED_view3d_pixel_size(), GPU_COMP_F32, GPU_FETCH_FLOAT, GPU_SHADER_3D_UNIFORM_COLOR, GPU_vertformat_attr_add(), imm_draw_point_aspect_3d(), immBindBuiltinProgram(), immUnbindProgram(), immUniformColor3fv(), immVertexFormat(), mul_v3_m4v3(), mul_v3_v3fl(), pos, r, KDL::sign(), x, y, and z.
Referenced by gizmo_cage3d_draw_intern().
|
static |
Definition at line 196 of file cage3d_gizmo.c.
References center, color, ED_GIZMO_CAGE2D_DRAW_FLAG_XFORM_CENTER_HANDLE, ED_GIZMO_CAGE2D_XFORM_FLAG_TRANSLATE, GPU_COMP_F32, GPU_FETCH_FLOAT, GPU_PRIM_LINES, GPU_SHADER_3D_POLYLINE_UNIFORM_COLOR, GPU_vertformat_attr_add(), GPU_viewport_size_get_f(), imm_draw_cube_wire_3d(), immBegin(), immBindBuiltinProgram(), immEnd(), immUnbindProgram(), immUniform1f(), immUniform2fv(), immUniformColor3fv(), immVertex2f(), immVertexFormat(), pos, r, and UNUSED_VARS.
Referenced by gizmo_cage3d_draw_intern().
Definition at line 688 of file cage3d_gizmo.c.
References GIZMO_GT_cage_3d(), and WM_gizmotype_append().
Referenced by ED_spacetypes_init().
Definition at line 409 of file cage3d_gizmo.c.
References C, CTX_wm_region(), gizmo_cage3d_draw_intern(), ARegion::regiondata, wmGizmo::state, and WM_GIZMO_STATE_HIGHLIGHT.
Referenced by GIZMO_GT_cage_3d().
|
static |
Definition at line 272 of file cage3d_gizmo.c.
References BLI_assert, cage3d_draw_box_corners(), cage3d_draw_box_interaction(), cage3d_draw_circle_handles(), cage3d_draw_circle_wire(), color, wmGizmo::color, ED_GIZMO_CAGE2D_DRAW_FLAG_XFORM_CENTER_HANDLE, ED_GIZMO_CAGE2D_STYLE_BOX, ED_GIZMO_CAGE2D_STYLE_CIRCLE, ED_GIZMO_CAGE2D_XFORM_FLAG_SCALE, ED_GIZMO_CAGE2D_XFORM_FLAG_TRANSLATE, ED_GIZMO_CAGE3D_PART_SCALE_MAX_X_MAX_Y_MAX_Z, ED_GIZMO_CAGE3D_PART_SCALE_MID_X_MID_Y_MID_Z, ED_GIZMO_CAGE3D_PART_SCALE_MIN_X_MIN_Y_MIN_Z, ED_GIZMO_CAGE3D_PART_TRANSLATE, gizmo_calc_rect_view_margin(), gizmo_color_get(), GPU_blend(), GPU_BLEND_ALPHA, GPU_BLEND_NONE, GPU_COMP_F32, GPU_FETCH_FLOAT, GPU_matrix_mul, GPU_matrix_pop(), GPU_matrix_push(), GPU_polygon_smooth(), GPU_select_load_id(), GPU_SHADER_3D_UNIFORM_COLOR, GPU_vertformat_attr_add(), wmGizmo::highlight_part, immBindBuiltinProgram(), immRectf(), immUnbindProgram(), immUniformColor4fv(), immVertexFormat(), wmGizmo::line_width, pos, wmGizmo::ptr, RNA_enum_get(), RNA_float_get_array(), select(), size(), UNPACK3, WM_gizmo_calc_matrix_final(), and rctf::xmin.
Referenced by gizmo_cage3d_draw(), and gizmo_cage3d_draw_select().
For when we want to draw 3d cage in 3d views.
Definition at line 402 of file cage3d_gizmo.c.
References C, CTX_wm_region(), gizmo_cage3d_draw_intern(), and ARegion::regiondata.
Referenced by GIZMO_GT_cage_3d().
Definition at line 608 of file cage3d_gizmo.c.
References C, copy_m4_m4(), data, wmGizmo::interaction_data, wmGizmo::matrix_offset, NULL, wmGizmoProperty::type, WM_gizmo_target_property_find(), and WM_gizmo_target_property_float_set_array().
Referenced by GIZMO_GT_cage_3d().
|
static |
Definition at line 417 of file cage3d_gizmo.c.
References wmGizmoGroupType::flag, wmGizmo::parent_gzgroup, wmGizmoGroup::type, WM_CURSOR_DEFAULT, WM_CURSOR_NSEW_SCROLL, and WM_GIZMOGROUPTYPE_3D.
Referenced by GIZMO_GT_cage_3d().
Definition at line 438 of file cage3d_gizmo.c.
References C, copy_m4_m4(), data, gizmo_calc_matrix_final_no_offset(), gizmo_window_project_3d(), wmGizmo::interaction_data, wmGizmo::matrix_offset, MEM_callocN, wmEvent::mval, OPERATOR_RUNNING_MODAL, UNPACK2, and zero_v3().
Referenced by GIZMO_GT_cage_3d().
|
static |
Definition at line 456 of file cage3d_gizmo.c.
References BLI_assert, C, copy_m4_m4(), CTX_wm_region(), CTX_wm_window(), data, ED_GIZMO_CAGE2D_XFORM_FLAG_SCALE_SIGNED, ED_GIZMO_CAGE2D_XFORM_FLAG_SCALE_UNIFORM, ED_GIZMO_CAGE2D_XFORM_FLAG_TRANSLATE, ED_GIZMO_CAGE3D_PART_ROTATE, ED_GIZMO_CAGE3D_PART_TRANSLATE, ED_region_tag_redraw_editor_overlays(), gizmo_rect_pivot_from_scale_part(), gizmo_window_project_3d(), wmGizmo::highlight_part, wmGizmo::interaction_data, len_v3(), wmGizmo::matrix_offset, MOUSEMOVE, mul_m4_m4m4(), mul_v3_fl(), wmEvent::mval, NULL, OPERATOR_RUNNING_MODAL, wmGizmo::ptr, RNA_enum_get(), RNA_float_get_array(), KDL::sign(), signum_i(), transform_pivot_set_m4(), wmGizmoProperty::type, wmEvent::type, unit_m4(), UNPACK2, WM_event_add_mousemove(), WM_gizmo_target_property_find(), WM_gizmo_target_property_float_get_array(), WM_gizmo_target_property_float_set_array(), and zero_v3().
Referenced by GIZMO_GT_cage_3d().
|
static |
Definition at line 593 of file cage3d_gizmo.c.
References BLI_assert, wmGizmoPropertyType::idname, wmGizmo::matrix_offset, STREQ, wmGizmoProperty::type, WM_gizmo_target_property_array_length(), and WM_gizmo_target_property_float_get_array().
Referenced by GIZMO_GT_cage_3d().
Definition at line 432 of file cage3d_gizmo.c.
References wmGizmo::flag, and WM_GIZMO_DRAW_NO_SCALE.
Referenced by GIZMO_GT_cage_3d().
|
static |
Definition at line 44 of file cage3d_gizmo.c.
References NULL, params, unit_m4(), and WM_gizmo_calc_matrix_final_params().
Referenced by gizmo_cage3d_invoke(), and gizmo_calc_rect_view_scale().
|
static |
Definition at line 76 of file cage3d_gizmo.c.
References gizmo_calc_rect_view_scale().
Referenced by gizmo_cage3d_draw_intern().
|
static |
Definition at line 58 of file cage3d_gizmo.c.
References gizmo_calc_matrix_final_no_offset(), len_v3(), wmGizmo::matrix_offset, mul_v3_mat3_m4v3(), and UNUSED_VARS.
Referenced by gizmo_calc_rect_view_margin().
|
static |
Definition at line 631 of file cage3d_gizmo.c.
References wmGizmoType::cursor_get, wmGizmoType::draw, wmGizmoType::draw_select, ED_GIZMO_CAGE2D_DRAW_FLAG_XFORM_CENTER_HANDLE, ED_GIZMO_CAGE2D_STYLE_BOX, ED_GIZMO_CAGE2D_STYLE_CIRCLE, ED_GIZMO_CAGE2D_XFORM_FLAG_SCALE, ED_GIZMO_CAGE2D_XFORM_FLAG_SCALE_UNIFORM, ED_GIZMO_CAGE2D_XFORM_FLAG_TRANSLATE, wmGizmoType::exit, gizmo_cage3d_draw(), gizmo_cage3d_draw_select(), gizmo_cage3d_exit(), gizmo_cage3d_get_cursor(), gizmo_cage3d_invoke(), gizmo_cage3d_modal(), gizmo_cage3d_property_update(), gizmo_cage3d_setup(), wmGizmoType::idname, wmGizmoType::invoke, wmGizmoType::modal, NULL, PROP_FLOAT, wmGizmoType::property_update, RNA_def_enum(), RNA_def_enum_flag(), RNA_def_float_vector(), wmGizmoType::setup, wmGizmoType::srna, wmGizmoType::struct_size, and WM_gizmotype_target_property_def().
Referenced by ED_gizmotypes_cage_3d().
|
static |
Definition at line 91 of file cage3d_gizmo.c.
References ED_GIZMO_CAGE3D_PART_SCALE_MAX_X_MAX_Y_MAX_Z, ED_GIZMO_CAGE3D_PART_SCALE_MIN_X_MIN_Y_MIN_Z, and KDL::sign().
Referenced by gizmo_cage3d_modal().
|
static |
Definition at line 186 of file cage3d_gizmo.c.
References imm_draw_cube_fill_3d(), imm_draw_cube_wire_3d(), and pos.
Referenced by cage3d_draw_circle_handles().