Changeset View
Changeset View
Standalone View
Standalone View
source/blender/editors/transform/transform_generics.c
| Show First 20 Lines • Show All 1,368 Lines • ▼ Show 20 Lines | void initTransInfo(bContext *C, TransInfo *t, wmOperator *op, const wmEvent *event) | ||||
| const eObjectMode object_mode = obact ? obact->mode : OB_MODE_OBJECT; | const eObjectMode object_mode = obact ? obact->mode : OB_MODE_OBJECT; | ||||
| ToolSettings *ts = CTX_data_tool_settings(C); | ToolSettings *ts = CTX_data_tool_settings(C); | ||||
| ARegion *ar = CTX_wm_region(C); | ARegion *ar = CTX_wm_region(C); | ||||
| ScrArea *sa = CTX_wm_area(C); | ScrArea *sa = CTX_wm_area(C); | ||||
| bGPdata *gpd = CTX_data_gpencil_data(C); | bGPdata *gpd = CTX_data_gpencil_data(C); | ||||
| PropertyRNA *prop; | PropertyRNA *prop; | ||||
| if (op && (prop = RNA_struct_find_property(op->ptr, "center_override")) && | |||||
| RNA_property_is_set(op->ptr, prop)) { | |||||
| RNA_property_float_get_array(op->ptr, prop, t->center_global); | |||||
| mul_v3_v3(t->center_global, t->aspect); | |||||
| t->flag |= T_OVERRIDE_CENTER; | |||||
| } | |||||
| if (op && (prop = RNA_struct_find_property(op->ptr, "mouse_override")) && | |||||
| RNA_property_is_set(op->ptr, prop)) { | |||||
| RNA_property_int_get_array(op->ptr, prop, t->mval); | |||||
| } | |||||
| else if (event) { | |||||
| copy_v2_v2_int(t->mval, event->mval); | |||||
| } | |||||
| else { | |||||
| zero_v2_int(t->mval); | |||||
| } | |||||
| t->depsgraph = CTX_data_depsgraph_pointer(C); | t->depsgraph = CTX_data_depsgraph_pointer(C); | ||||
| t->scene = sce; | t->scene = sce; | ||||
| t->view_layer = view_layer; | t->view_layer = view_layer; | ||||
| t->sa = sa; | t->sa = sa; | ||||
| t->ar = ar; | t->ar = ar; | ||||
| t->settings = ts; | t->settings = ts; | ||||
| t->reports = op ? op->reports : NULL; | t->reports = op ? op->reports : NULL; | ||||
| Show All 12 Lines | void initTransInfo(bContext *C, TransInfo *t, wmOperator *op, const wmEvent *event) | ||||
| /* Many kinds of transform only use a single handle. */ | /* Many kinds of transform only use a single handle. */ | ||||
| if (t->data_container == NULL) { | if (t->data_container == NULL) { | ||||
| t->data_container = MEM_callocN(sizeof(*t->data_container), __func__); | t->data_container = MEM_callocN(sizeof(*t->data_container), __func__); | ||||
| t->data_container_len = 1; | t->data_container_len = 1; | ||||
| } | } | ||||
| t->redraw = TREDRAW_HARD; /* redraw first time */ | t->redraw = TREDRAW_HARD; /* redraw first time */ | ||||
| if (event) { | t->mouse.imval[0] = t->mval[0]; | ||||
| t->mouse.imval[0] = event->mval[0]; | t->mouse.imval[1] = t->mval[1]; | ||||
| t->mouse.imval[1] = event->mval[1]; | |||||
| } | |||||
| else { | |||||
| t->mouse.imval[0] = 0; | |||||
| t->mouse.imval[1] = 0; | |||||
| } | |||||
| t->con.imval[0] = t->mouse.imval[0]; | t->con.imval[0] = t->mouse.imval[0]; | ||||
| t->con.imval[1] = t->mouse.imval[1]; | t->con.imval[1] = t->mouse.imval[1]; | ||||
| t->mval[0] = t->mouse.imval[0]; | |||||
| t->mval[1] = t->mouse.imval[1]; | |||||
| t->transform = NULL; | t->transform = NULL; | ||||
| t->handleEvent = NULL; | t->handleEvent = NULL; | ||||
| t->data_len_all = 0; | t->data_len_all = 0; | ||||
| t->val = 0.0f; | t->val = 0.0f; | ||||
| zero_v3(t->vec); | zero_v3(t->vec); | ||||
| ▲ Show 20 Lines • Show All 196 Lines • ▼ Show 20 Lines | void initTransInfo(bContext *C, TransInfo *t, wmOperator *op, const wmEvent *event) | ||||
| if (op && | if (op && | ||||
| ((prop = RNA_struct_find_property(op->ptr, "orient_matrix")) && | ((prop = RNA_struct_find_property(op->ptr, "orient_matrix")) && | ||||
| RNA_property_is_set(op->ptr, prop)) && | RNA_property_is_set(op->ptr, prop)) && | ||||
| ((t->flag & T_MODAL) || | ((t->flag & T_MODAL) || | ||||
| /* When using redo, don't use the custom constraint matrix | /* When using redo, don't use the custom constraint matrix | ||||
| * if the user selects a different orientation. */ | * if the user selects a different orientation. */ | ||||
| (RNA_enum_get(op->ptr, "orient_type") == RNA_enum_get(op->ptr, "orient_matrix_type")))) { | (RNA_enum_get(op->ptr, "orient_type") == RNA_enum_get(op->ptr, "orient_matrix_type")))) { | ||||
| RNA_property_float_get_array(op->ptr, prop, &t->spacemtx[0][0]); | RNA_property_float_get_array(op->ptr, prop, &t->orient_matrix[0][0]); | ||||
| copy_m3_m3(t->spacemtx, t->orient_matrix); | |||||
| negate_m3(t->spacemtx); | |||||
| /* Some transform modes use this to operate on an axis. */ | /* Some transform modes use this to operate on an axis. */ | ||||
| t->orient_matrix_is_set = true; | t->orient_matrix_is_set = true; | ||||
| copy_m3_m3(t->orient_matrix, t->spacemtx); | |||||
| t->orient_matrix_is_set = true; | |||||
| t->orientation.user = V3D_ORIENT_CUSTOM_MATRIX; | t->orientation.user = V3D_ORIENT_CUSTOM_MATRIX; | ||||
| t->orientation.custom = 0; | t->orientation.custom = 0; | ||||
| if (t->flag & T_MODAL) { | if (t->flag & T_MODAL) { | ||||
| RNA_enum_set(op->ptr, "orient_matrix_type", RNA_enum_get(op->ptr, "orient_type")); | RNA_enum_set(op->ptr, "orient_matrix_type", RNA_enum_get(op->ptr, "orient_type")); | ||||
| } | } | ||||
| } | } | ||||
| else if (op && ((prop = RNA_struct_find_property(op->ptr, "orient_type")) && | else if (op && ((prop = RNA_struct_find_property(op->ptr, "orient_type")) && | ||||
| RNA_property_is_set(op->ptr, prop))) { | RNA_property_is_set(op->ptr, prop))) { | ||||
| ▲ Show 20 Lines • Show All 121 Lines • ▼ Show 20 Lines | |||||
| #if 0 | #if 0 | ||||
| if (t->flag & T_PROP_EDIT) { | if (t->flag & T_PROP_EDIT) { | ||||
| t->flag &= ~T_MIRROR; | t->flag &= ~T_MIRROR; | ||||
| } | } | ||||
| #endif | #endif | ||||
| setTransformViewAspect(t, t->aspect); | setTransformViewAspect(t, t->aspect); | ||||
| if (op && (prop = RNA_struct_find_property(op->ptr, "center_override")) && | |||||
| RNA_property_is_set(op->ptr, prop)) { | |||||
| RNA_property_float_get_array(op->ptr, prop, t->center_global); | |||||
| mul_v3_v3(t->center_global, t->aspect); | |||||
| t->flag |= T_OVERRIDE_CENTER; | |||||
| } | |||||
| setTransformViewMatrices(t); | setTransformViewMatrices(t); | ||||
| initNumInput(&t->num); | initNumInput(&t->num); | ||||
| } | } | ||||
| static void freeTransCustomData(TransInfo *t, TransDataContainer *tc, TransCustomData *custom_data) | static void freeTransCustomData(TransInfo *t, TransDataContainer *tc, TransCustomData *custom_data) | ||||
| { | { | ||||
| if (custom_data->free_cb) { | if (custom_data->free_cb) { | ||||
| /* Can take over freeing t->data and data_2d etc... */ | /* Can take over freeing t->data and data_2d etc... */ | ||||
| ▲ Show 20 Lines • Show All 739 Lines • Show Last 20 Lines | |||||