66 float axis_color[3][3];
67 for (
int i = 0; i < 3; i++) {
71 for (
int i = 0; i < 3; i++) {
72 for (
int j = 0; j < 2; j++) {
75 const int i_ortho_a = (i + j + 1) % 3;
76 const int i_ortho_b = (i + (1 - j) + 1) % 3;
81 xgzgroup->
gizmo[i][j] = gz;
85 for (
int i = 0; i < 4; i++) {
125 calc_params.orientation_index = orient_index + 1;
127 for (
int i = 0; i < 3; i++) {
128 for (
int j = 0; j < 2; j++) {
134 for (
int i = 0; i < 4; i++) {
141 for (
int i = 0; i < 3; i++) {
142 for (
int j = 0; j < 2; j++) {
148 const int i_ortho_a = (i + j + 1) % 3;
149 const int i_ortho_b = (i + (1 - j) + 1) % 3;
164 for (
int i = 0; i < 4; i++) {
192 switch (orient_slot->
type) {
194 float viewinv_m3[3][3];
206 for (
int i = 0; i < 4; i++) {
207 const float outer_thin = 0.3f;
208 const float outer_offset = 1.0f / 0.3f;
232 float axis_order[3], axis_bias[3];
247 gzgt->
name =
"Transform Shear";
248 gzgt->
idname =
"VIEW3D_GGT_xform_shear";
bScreen * CTX_wm_screen(const bContext *C)
ScrArea * CTX_wm_area(const bContext *C)
Scene * CTX_data_scene(const bContext *C)
RegionView3D * CTX_wm_region_view3d(const bContext *C)
ARegion * CTX_wm_region(const bContext *C)
View3D * CTX_wm_view3d(const bContext *C)
TransformOrientationSlot * BKE_scene_orientation_slot_get(Scene *scene, int slot_index)
TransformOrientationSlot * BKE_scene_orientation_slot_get_from_flag(Scene *scene, int flag)
int BKE_scene_orientation_slot_get_index(const TransformOrientationSlot *orient_slot)
#define LISTBASE_FOREACH(type, var, list)
void void BLI_listbase_sort(struct ListBase *listbase, int(*cmp)(const void *, const void *)) ATTR_NONNULL(1
void copy_m3_m4(float m1[3][3], const float m2[4][4])
bool equals_m3m3(const float mat1[3][3], const float mat2[3][3])
MINLINE void madd_v3_v3fl(float r[3], const float a[3], float f)
MINLINE void mul_v3_fl(float r[3], float f)
MINLINE void copy_v3_v3(float r[3], const float a[3])
MINLINE float dot_v3v3(const float a[3], const float b[3]) ATTR_WARN_UNUSED_RESULT
void interp_v3_v3v3(float r[3], const float a[3], const float b[3], float t)
MINLINE void negate_v3(float r[3])
MINLINE void copy_v3_fl(float r[3], float f)
@ ED_GIZMO_ARROW_STYLE_BOX
bool ED_gizmo_poll_or_unlink_delayed_from_tool(const bContext *C, wmGizmoGroupType *gzgt)
void UI_GetThemeColor3fv(int colorid, float col[3])
@ WM_GIZMO_DRAW_OFFSET_SCALE
@ WM_GIZMOGROUPTYPE_DRAW_MODAL_EXCLUDE
@ WM_GIZMOGROUPTYPE_TOOL_FALLBACK_KEYMAP
@ WM_GIZMOGROUPTYPE_DELAY_REFRESH_FOR_TWEAK
void *(* MEM_mallocN)(size_t len, const char *str)
void RNA_boolean_set(PointerRNA *ptr, const char *name, bool value)
void RNA_enum_set(PointerRNA *ptr, const char *name, int value)
void RNA_float_set_array(PointerRNA *ptr, const char *name, const float *values)
wmGizmoGroupFnSetupKeymap setup_keymap
wmGizmoGroupFnMsgBusSubscribe message_subscribe
wmGizmoGroupFnRefresh refresh
wmGizmoMapType_Params gzmap_params
eWM_GizmoFlagGroupTypeFlag flag
wmGizmoGroupFnDrawPrepare draw_prepare
float matrix_offset[4][4]
wmGizmoOpElem * WM_gizmo_operator_get(wmGizmo *gz, int part_index)
void WM_gizmo_set_matrix_rotation_from_yz_axis(wmGizmo *gz, const float y_axis[3], const float z_axis[3])
wmGizmo * WM_gizmo_new_ptr(const wmGizmoType *gzt, wmGizmoGroup *gzgroup, PointerRNA *properties)
void WM_gizmo_set_matrix_location(wmGizmo *gz, const float origin[3])
void WM_gizmo_set_flag(wmGizmo *gz, const int flag, const bool enable)
PointerRNA * WM_gizmo_operator_set(wmGizmo *gz, int part_index, wmOperatorType *ot, IDProperty *properties)
int WM_gizmo_cmp_temp_fl_reverse(const void *gz_a_ptr, const void *gz_b_ptr)
wmKeyMap * WM_gizmogroup_setup_keymap_generic_maybe_drag(const wmGizmoGroupType *, wmKeyConfig *kc)
const wmGizmoType * WM_gizmotype_find(const char *idname, bool quiet)
wmOperatorType * WM_operatortype_find(const char *idname, bool quiet)