Changeset View
Changeset View
Standalone View
Standalone View
source/blender/editors/transform/transform.c
| Show First 20 Lines • Show All 209 Lines • ▼ Show 20 Lines | |||||
| } | } | ||||
| bool transdata_check_local_islands(TransInfo *t, short around) | bool transdata_check_local_islands(TransInfo *t, short around) | ||||
| { | { | ||||
| return ((around == V3D_LOCAL) && ( | return ((around == V3D_LOCAL) && ( | ||||
| (t->obedit && ELEM(t->obedit->type, OB_MESH)))); | (t->obedit && ELEM(t->obedit->type, OB_MESH)))); | ||||
| } | } | ||||
| /** | |||||
| * Appends TransInfo->custom_text to \a str and prints it to header | |||||
| */ | |||||
| static void transform_headerprint_begin(TransInfo *t, const char *str) | |||||
| { | |||||
| char print[MAX_INFO_LEN]; | |||||
| if (t->custom_text[0]) { | |||||
| char str_clean[MAX_INFO_LEN]; | |||||
| BLI_str_remove_whitespace_trailing(str_clean, str); | |||||
| BLI_snprintf(print, sizeof(print), "%s | %s", str_clean, t->custom_text); | |||||
| } | |||||
| else { | |||||
| BLI_strncpy(print, str, sizeof(print)); | |||||
| } | |||||
| ED_area_headerprint(t->sa, print); | |||||
| } | |||||
| static void transform_headerprint_end(TransInfo *t) | |||||
| { | |||||
| ED_area_headerprint(t->sa, NULL); | |||||
| } | |||||
| /* ************************** SPACE DEPENDANT CODE **************************** */ | /* ************************** SPACE DEPENDANT CODE **************************** */ | ||||
| void setTransformViewMatrices(TransInfo *t) | void setTransformViewMatrices(TransInfo *t) | ||||
| { | { | ||||
| if (t->spacetype == SPACE_VIEW3D && t->ar && t->ar->regiontype == RGN_TYPE_WINDOW) { | if (t->spacetype == SPACE_VIEW3D && t->ar && t->ar->regiontype == RGN_TYPE_WINDOW) { | ||||
| RegionView3D *rv3d = t->ar->regiondata; | RegionView3D *rv3d = t->ar->regiondata; | ||||
| copy_m4_m4(t->viewmat, rv3d->viewmat); | copy_m4_m4(t->viewmat, rv3d->viewmat); | ||||
| ▲ Show 20 Lines • Show All 410 Lines • ▼ Show 20 Lines | else if (ED_space_clip_check_show_maskedit(sc)) { | ||||
| WM_event_add_notifier(C, NC_MASK | NA_EDITED, mask); | WM_event_add_notifier(C, NC_MASK | NA_EDITED, mask); | ||||
| } | } | ||||
| } | } | ||||
| } | } | ||||
| static void viewRedrawPost(bContext *C, TransInfo *t) | static void viewRedrawPost(bContext *C, TransInfo *t) | ||||
| { | { | ||||
| ED_area_headerprint(t->sa, NULL); | transform_headerprint_end(t); | ||||
| if (t->spacetype == SPACE_VIEW3D) { | if (t->spacetype == SPACE_VIEW3D) { | ||||
| /* if autokeying is enabled, send notifiers that keyframes were added */ | /* if autokeying is enabled, send notifiers that keyframes were added */ | ||||
| if (IS_AUTOKEY_ON(t->scene)) | if (IS_AUTOKEY_ON(t->scene)) | ||||
| WM_main_add_notifier(NC_ANIMATION | ND_KEYFRAME | NA_EDITED, NULL); | WM_main_add_notifier(NC_ANIMATION | ND_KEYFRAME | NA_EDITED, NULL); | ||||
| /* redraw UV editor */ | /* redraw UV editor */ | ||||
| if (ELEM(t->mode, TFM_VERT_SLIDE, TFM_EDGE_SLIDE) && | if (ELEM(t->mode, TFM_VERT_SLIDE, TFM_EDGE_SLIDE) && | ||||
| (t->settings->uvcalc_flag & UVCALC_TRANSFORM_CORRECT)) | (t->settings->uvcalc_flag & UVCALC_TRANSFORM_CORRECT)) | ||||
| ▲ Show 20 Lines • Show All 2,324 Lines • ▼ Show 20 Lines | if ((t->flag & T_POINTS) == 0) { | ||||
| ElementRotation(t, td, mat, V3D_LOCAL); | ElementRotation(t, td, mat, V3D_LOCAL); | ||||
| } | } | ||||
| /* location */ | /* location */ | ||||
| copy_v3_v3(td->loc, vec); | copy_v3_v3(td->loc, vec); | ||||
| } | } | ||||
| recalcData(t); | recalcData(t); | ||||
| ED_area_headerprint(t->sa, str); | transform_headerprint_begin(t, str); | ||||
| } | } | ||||
| /** \} */ | /** \} */ | ||||
| /* -------------------------------------------------------------------- */ | /* -------------------------------------------------------------------- */ | ||||
| /* Transform (Shear) */ | /* Transform (Shear) */ | ||||
| /** \name Transform Shear | /** \name Transform Shear | ||||
| ▲ Show 20 Lines • Show All 127 Lines • ▼ Show 20 Lines | for (i = 0; i < t->total; i++, td++) { | ||||
| sub_v3_v3(vec, td->center); | sub_v3_v3(vec, td->center); | ||||
| mul_v3_fl(vec, td->factor); | mul_v3_fl(vec, td->factor); | ||||
| add_v3_v3v3(td->loc, td->iloc, vec); | add_v3_v3v3(td->loc, td->iloc, vec); | ||||
| } | } | ||||
| recalcData(t); | recalcData(t); | ||||
| ED_area_headerprint(t->sa, str); | transform_headerprint_begin(t, str); | ||||
| } | } | ||||
| /** \} */ | /** \} */ | ||||
| /* -------------------------------------------------------------------- */ | /* -------------------------------------------------------------------- */ | ||||
| /* Transform (Resize) */ | /* Transform (Resize) */ | ||||
| /** \name Transform Resize | /** \name Transform Resize | ||||
| ▲ Show 20 Lines • Show All 261 Lines • ▼ Show 20 Lines | if (t->flag & T_CLIP_UV && clipUVTransform(t, size, 1)) { | ||||
| /* outside the clipping area */ | /* outside the clipping area */ | ||||
| /* XXX HACK - dg */ | /* XXX HACK - dg */ | ||||
| if (t->flag & T_PROP_EDIT_ALL) { | if (t->flag & T_PROP_EDIT_ALL) { | ||||
| clipUVData(t); | clipUVData(t); | ||||
| } | } | ||||
| } | } | ||||
| recalcData(t); | recalcData(t); | ||||
| ED_area_headerprint(t->sa, str); | transform_headerprint_begin(t, str); | ||||
| } | } | ||||
| /** \} */ | /** \} */ | ||||
| /* -------------------------------------------------------------------- */ | /* -------------------------------------------------------------------- */ | ||||
| /* Transform (Skin) */ | /* Transform (Skin) */ | ||||
| /** \name Transform Skin | /** \name Transform Skin | ||||
| ▲ Show 20 Lines • Show All 83 Lines • ▼ Show 20 Lines | for (i = 0, td = t->data; i < t->total; i++, td++) { | ||||
| } | } | ||||
| mat3_to_size(fsize, tmat); | mat3_to_size(fsize, tmat); | ||||
| td->val[0] = td->ext->isize[0] * (1 + (fsize[0] - 1) * td->factor); | td->val[0] = td->ext->isize[0] * (1 + (fsize[0] - 1) * td->factor); | ||||
| td->val[1] = td->ext->isize[1] * (1 + (fsize[1] - 1) * td->factor); | td->val[1] = td->ext->isize[1] * (1 + (fsize[1] - 1) * td->factor); | ||||
| } | } | ||||
| recalcData(t); | recalcData(t); | ||||
| ED_area_headerprint(t->sa, str); | transform_headerprint_begin(t, str); | ||||
| } | } | ||||
| /** \} */ | /** \} */ | ||||
| /* -------------------------------------------------------------------- */ | /* -------------------------------------------------------------------- */ | ||||
| /* Transform (ToSphere) */ | /* Transform (ToSphere) */ | ||||
| /** \name Transform ToSphere | /** \name Transform ToSphere | ||||
| ▲ Show 20 Lines • Show All 78 Lines • ▼ Show 20 Lines | for (i = 0; i < t->total; i++, td++) { | ||||
| mul_v3_fl(vec, radius * (1.0f - tratio) + t->val * tratio); | mul_v3_fl(vec, radius * (1.0f - tratio) + t->val * tratio); | ||||
| add_v3_v3v3(td->loc, t->center, vec); | add_v3_v3v3(td->loc, t->center, vec); | ||||
| } | } | ||||
| recalcData(t); | recalcData(t); | ||||
| ED_area_headerprint(t->sa, str); | transform_headerprint_begin(t, str); | ||||
| } | } | ||||
| /** \} */ | /** \} */ | ||||
| /* -------------------------------------------------------------------- */ | /* -------------------------------------------------------------------- */ | ||||
| /* Transform (Rotation) */ | /* Transform (Rotation) */ | ||||
| /** \name Transform Rotation | /** \name Transform Rotation | ||||
| ▲ Show 20 Lines • Show All 333 Lines • ▼ Show 20 Lines | static void applyRotation(TransInfo *t, const int UNUSED(mval[2])) | ||||
| if (t->flag & T_PROP_EDIT_ALL) { | if (t->flag & T_PROP_EDIT_ALL) { | ||||
| ofs += BLI_snprintf(str + ofs, MAX_INFO_LEN - ofs, IFACE_(" Proportional size: %.2f"), t->prop_size); | ofs += BLI_snprintf(str + ofs, MAX_INFO_LEN - ofs, IFACE_(" Proportional size: %.2f"), t->prop_size); | ||||
| } | } | ||||
| applyRotationValue(t, final, t->axis); | applyRotationValue(t, final, t->axis); | ||||
| recalcData(t); | recalcData(t); | ||||
| ED_area_headerprint(t->sa, str); | transform_headerprint_begin(t, str); | ||||
| } | } | ||||
| /** \} */ | /** \} */ | ||||
| /* -------------------------------------------------------------------- */ | /* -------------------------------------------------------------------- */ | ||||
| /* Transform (Rotation - Trackball) */ | /* Transform (Rotation - Trackball) */ | ||||
| /** \name Transform Rotation - Trackball | /** \name Transform Rotation - Trackball | ||||
| ▲ Show 20 Lines • Show All 99 Lines • ▼ Show 20 Lines | #if 0 /* UNUSED */ | ||||
| // TRANSFORM_FIX_ME | // TRANSFORM_FIX_ME | ||||
| //copy_m3_m3(t->mat, mat); // used in manipulator | //copy_m3_m3(t->mat, mat); // used in manipulator | ||||
| #endif | #endif | ||||
| applyTrackballValue(t, axis1, axis2, phi); | applyTrackballValue(t, axis1, axis2, phi); | ||||
| recalcData(t); | recalcData(t); | ||||
| ED_area_headerprint(t->sa, str); | transform_headerprint_begin(t, str); | ||||
| } | } | ||||
| /** \} */ | /** \} */ | ||||
| /* -------------------------------------------------------------------- */ | /* -------------------------------------------------------------------- */ | ||||
| /* Transform (Translation) */ | /* Transform (Translation) */ | ||||
| /** \name Transform Translation | /** \name Transform Translation | ||||
| Show All 21 Lines | static void initTranslation(TransInfo *t) | ||||
| if (t->spacetype == SPACE_VIEW3D) { | if (t->spacetype == SPACE_VIEW3D) { | ||||
| RegionView3D *rv3d = t->ar->regiondata; | RegionView3D *rv3d = t->ar->regiondata; | ||||
| if (rv3d) { | if (rv3d) { | ||||
| t->snap[0] = 0.0f; | t->snap[0] = 0.0f; | ||||
| t->snap[1] = rv3d->gridview * 1.0f; | t->snap[1] = rv3d->gridview * 1.0f; | ||||
| t->snap[2] = t->snap[1] * 0.1f; | t->snap[2] = t->snap[1] * 0.1f; | ||||
| } | } | ||||
| BLI_strncpy(t->custom_text, "Foo (Fighters)", sizeof(t->custom_text)); /* for testing */ | |||||
| } | } | ||||
| else if (ELEM(t->spacetype, SPACE_IMAGE, SPACE_CLIP)) { | else if (ELEM(t->spacetype, SPACE_IMAGE, SPACE_CLIP)) { | ||||
| t->snap[0] = 0.0f; | t->snap[0] = 0.0f; | ||||
| t->snap[1] = 0.125f; | t->snap[1] = 0.125f; | ||||
| t->snap[2] = 0.0625f; | t->snap[2] = 0.0625f; | ||||
| } | } | ||||
| else if (t->spacetype == SPACE_NODE) { | else if (t->spacetype == SPACE_NODE) { | ||||
| t->snap[0] = 0.0f; | t->snap[0] = 0.0f; | ||||
| t->snap[1] = ED_node_grid_size(); | t->snap[1] = ED_node_grid_size(); | ||||
| t->snap[2] = ED_node_grid_size(); | t->snap[2] = ED_node_grid_size(); | ||||
| BLI_strncpy(t->custom_text, "Foo (Fighters)", sizeof(t->custom_text)); /* for testing */ | |||||
| } | } | ||||
| else if (t->spacetype == SPACE_IPO) { | else if (t->spacetype == SPACE_IPO) { | ||||
| t->snap[0] = 0.0f; | t->snap[0] = 0.0f; | ||||
| t->snap[1] = 1.0; | t->snap[1] = 1.0; | ||||
| t->snap[2] = 0.1f; | t->snap[2] = 0.1f; | ||||
| } | } | ||||
| else { | else { | ||||
| t->snap[0] = 0.0f; | t->snap[0] = 0.0f; | ||||
| ▲ Show 20 Lines • Show All 204 Lines • ▼ Show 20 Lines | if (t->flag & T_CLIP_UV && clipUVTransform(t, t->values, 0)) { | ||||
| /* XXX HACK - dg */ | /* XXX HACK - dg */ | ||||
| if (t->flag & T_PROP_EDIT_ALL) { | if (t->flag & T_PROP_EDIT_ALL) { | ||||
| clipUVData(t); | clipUVData(t); | ||||
| } | } | ||||
| } | } | ||||
| recalcData(t); | recalcData(t); | ||||
| ED_area_headerprint(t->sa, str); | transform_headerprint_begin(t, str); | ||||
| } | } | ||||
| /** \} */ | /** \} */ | ||||
| /* -------------------------------------------------------------------- */ | /* -------------------------------------------------------------------- */ | ||||
| /* Transform (Shrink-Fatten) */ | /* Transform (Shrink-Fatten) */ | ||||
| /** \name Transform Shrink-Fatten | /** \name Transform Shrink-Fatten | ||||
| ▲ Show 20 Lines • Show All 83 Lines • ▼ Show 20 Lines | if (td->ext && (t->flag & T_ALT_TRANSFORM)) { | ||||
| tdistance *= td->ext->isize[0]; /* shell factor */ | tdistance *= td->ext->isize[0]; /* shell factor */ | ||||
| } | } | ||||
| madd_v3_v3v3fl(td->loc, td->iloc, td->axismtx[2], tdistance); | madd_v3_v3v3fl(td->loc, td->iloc, td->axismtx[2], tdistance); | ||||
| } | } | ||||
| recalcData(t); | recalcData(t); | ||||
| ED_area_headerprint(t->sa, str); | transform_headerprint_begin(t, str); | ||||
| } | } | ||||
| /** \} */ | /** \} */ | ||||
| /* -------------------------------------------------------------------- */ | /* -------------------------------------------------------------------- */ | ||||
| /* Transform (Tilt) */ | /* Transform (Tilt) */ | ||||
| /** \name Transform Tilt | /** \name Transform Tilt | ||||
| ▲ Show 20 Lines • Show All 60 Lines • ▼ Show 20 Lines | for (i = 0; i < t->total; i++, td++) { | ||||
| if (td->val) { | if (td->val) { | ||||
| *td->val = td->ival + final * td->factor; | *td->val = td->ival + final * td->factor; | ||||
| } | } | ||||
| } | } | ||||
| recalcData(t); | recalcData(t); | ||||
| ED_area_headerprint(t->sa, str); | transform_headerprint_begin(t, str); | ||||
| } | } | ||||
| /** \} */ | /** \} */ | ||||
| /* -------------------------------------------------------------------- */ | /* -------------------------------------------------------------------- */ | ||||
| /* Transform (Curve Shrink/Fatten) */ | /* Transform (Curve Shrink/Fatten) */ | ||||
| /** \name Transform Curve Shrink/Fatten | /** \name Transform Curve Shrink/Fatten | ||||
| ▲ Show 20 Lines • Show All 62 Lines • ▼ Show 20 Lines | if (td->val) { | ||||
| /* apply PET */ | /* apply PET */ | ||||
| *td->val = (*td->val * td->factor) + ((1.0f - td->factor) * td->ival); | *td->val = (*td->val * td->factor) + ((1.0f - td->factor) * td->ival); | ||||
| if (*td->val <= 0.0f) *td->val = 0.001f; | if (*td->val <= 0.0f) *td->val = 0.001f; | ||||
| } | } | ||||
| } | } | ||||
| recalcData(t); | recalcData(t); | ||||
| ED_area_headerprint(t->sa, str); | transform_headerprint_begin(t, str); | ||||
| } | } | ||||
| /** \} */ | /** \} */ | ||||
| /* -------------------------------------------------------------------- */ | /* -------------------------------------------------------------------- */ | ||||
| /* Transform (Mask Shrink/Fatten) */ | /* Transform (Mask Shrink/Fatten) */ | ||||
| /** \name Transform Mask Shrink/Fatten | /** \name Transform Mask Shrink/Fatten | ||||
| ▲ Show 20 Lines • Show All 84 Lines • ▼ Show 20 Lines | if (td->val) { | ||||
| /* apply PET */ | /* apply PET */ | ||||
| *td->val = (*td->val * td->factor) + ((1.0f - td->factor) * td->ival); | *td->val = (*td->val * td->factor) + ((1.0f - td->factor) * td->ival); | ||||
| if (*td->val <= 0.0f) *td->val = 0.001f; | if (*td->val <= 0.0f) *td->val = 0.001f; | ||||
| } | } | ||||
| } | } | ||||
| recalcData(t); | recalcData(t); | ||||
| ED_area_headerprint(t->sa, str); | transform_headerprint_begin(t, str); | ||||
| } | } | ||||
| /** \} */ | /** \} */ | ||||
| /* -------------------------------------------------------------------- */ | /* -------------------------------------------------------------------- */ | ||||
| /* Transform (GPencil Shrink/Fatten) */ | /* Transform (GPencil Shrink/Fatten) */ | ||||
| /** \name Transform GPencil Strokes Shrink/Fatten | /** \name Transform GPencil Strokes Shrink/Fatten | ||||
| ▲ Show 20 Lines • Show All 62 Lines • ▼ Show 20 Lines | if (td->val) { | ||||
| /* apply PET */ | /* apply PET */ | ||||
| *td->val = (*td->val * td->factor) + ((1.0f - td->factor) * td->ival); | *td->val = (*td->val * td->factor) + ((1.0f - td->factor) * td->ival); | ||||
| if (*td->val <= 0.0f) *td->val = 0.001f; | if (*td->val <= 0.0f) *td->val = 0.001f; | ||||
| } | } | ||||
| } | } | ||||
| recalcData(t); | recalcData(t); | ||||
| ED_area_headerprint(t->sa, str); | transform_headerprint_begin(t, str); | ||||
| } | } | ||||
| /** \} */ | /** \} */ | ||||
| /* -------------------------------------------------------------------- */ | /* -------------------------------------------------------------------- */ | ||||
| /* Transform (Push/Pull) */ | /* Transform (Push/Pull) */ | ||||
| /** \name Transform Push/Pull | /** \name Transform Push/Pull | ||||
| ▲ Show 20 Lines • Show All 74 Lines • ▼ Show 20 Lines | for (i = 0; i < t->total; i++, td++) { | ||||
| mul_v3_fl(vec, distance); | mul_v3_fl(vec, distance); | ||||
| mul_v3_fl(vec, td->factor); | mul_v3_fl(vec, td->factor); | ||||
| add_v3_v3v3(td->loc, td->iloc, vec); | add_v3_v3v3(td->loc, td->iloc, vec); | ||||
| } | } | ||||
| recalcData(t); | recalcData(t); | ||||
| ED_area_headerprint(t->sa, str); | transform_headerprint_begin(t, str); | ||||
| } | } | ||||
| /** \} */ | /** \} */ | ||||
| /* -------------------------------------------------------------------- */ | /* -------------------------------------------------------------------- */ | ||||
| /* Transform (Bevel Weight) */ | /* Transform (Bevel Weight) */ | ||||
| /** \name Transform Bevel Weight | /** \name Transform Bevel Weight | ||||
| ▲ Show 20 Lines • Show All 63 Lines • ▼ Show 20 Lines | if (td->val) { | ||||
| *td->val = td->ival + weight * td->factor; | *td->val = td->ival + weight * td->factor; | ||||
| if (*td->val < 0.0f) *td->val = 0.0f; | if (*td->val < 0.0f) *td->val = 0.0f; | ||||
| if (*td->val > 1.0f) *td->val = 1.0f; | if (*td->val > 1.0f) *td->val = 1.0f; | ||||
| } | } | ||||
| } | } | ||||
| recalcData(t); | recalcData(t); | ||||
| ED_area_headerprint(t->sa, str); | transform_headerprint_begin(t, str); | ||||
| } | } | ||||
| /** \} */ | /** \} */ | ||||
| /* -------------------------------------------------------------------- */ | /* -------------------------------------------------------------------- */ | ||||
| /* Transform (Crease) */ | /* Transform (Crease) */ | ||||
| /** \name Transform Crease | /** \name Transform Crease | ||||
| ▲ Show 20 Lines • Show All 66 Lines • ▼ Show 20 Lines | if (td->val) { | ||||
| *td->val = td->ival + crease * td->factor; | *td->val = td->ival + crease * td->factor; | ||||
| if (*td->val < 0.0f) *td->val = 0.0f; | if (*td->val < 0.0f) *td->val = 0.0f; | ||||
| if (*td->val > 1.0f) *td->val = 1.0f; | if (*td->val > 1.0f) *td->val = 1.0f; | ||||
| } | } | ||||
| } | } | ||||
| recalcData(t); | recalcData(t); | ||||
| ED_area_headerprint(t->sa, str); | transform_headerprint_begin(t, str); | ||||
| } | } | ||||
| /** \} */ | /** \} */ | ||||
| /* -------------------------------------------------------------------- */ | /* -------------------------------------------------------------------- */ | ||||
| /* Transform (EditBone (B-bone) width scaling) */ | /* Transform (EditBone (B-bone) width scaling) */ | ||||
| /** \name Transform B-bone width scaling | /** \name Transform B-bone width scaling | ||||
| ▲ Show 20 Lines • Show All 113 Lines • ▼ Show 20 Lines | for (i = 0; i < t->total; i++, td++) { | ||||
| if (td->flag & TD_SKIP) | if (td->flag & TD_SKIP) | ||||
| continue; | continue; | ||||
| ElementBoneSize(t, td, mat); | ElementBoneSize(t, td, mat); | ||||
| } | } | ||||
| recalcData(t); | recalcData(t); | ||||
| ED_area_headerprint(t->sa, str); | transform_headerprint_begin(t, str); | ||||
| } | } | ||||
| /** \} */ | /** \} */ | ||||
| /* -------------------------------------------------------------------- */ | /* -------------------------------------------------------------------- */ | ||||
| /* Transform (Bone Envelope) */ | /* Transform (Bone Envelope) */ | ||||
| /** \name Transform Bone Envelope | /** \name Transform Bone Envelope | ||||
| ▲ Show 20 Lines • Show All 58 Lines • ▼ Show 20 Lines | if (td->val) { | ||||
| *td->val = td->ival * ratio; | *td->val = td->ival * ratio; | ||||
| else | else | ||||
| *td->val = ratio; | *td->val = ratio; | ||||
| } | } | ||||
| } | } | ||||
| recalcData(t); | recalcData(t); | ||||
| ED_area_headerprint(t->sa, str); | transform_headerprint_begin(t, str); | ||||
| } | } | ||||
| /** \} */ | /** \} */ | ||||
| /* -------------------------------------------------------------------- */ | /* -------------------------------------------------------------------- */ | ||||
| /* Original Data Store */ | /* Original Data Store */ | ||||
| /** \name Orig-Data Store Utility Functions | /** \name Orig-Data Store Utility Functions | ||||
| * \{ */ | * \{ */ | ||||
| ▲ Show 20 Lines • Show All 1,575 Lines • ▼ Show 20 Lines | static void applyEdgeSlide(TransInfo *t, const int UNUSED(mval[2])) | ||||
| ofs += BLI_snprintf(str + ofs, MAX_INFO_LEN - ofs, IFACE_("Alt or (C)lamp: %s"), WM_bool_as_string(is_clamp)); | ofs += BLI_snprintf(str + ofs, MAX_INFO_LEN - ofs, IFACE_("Alt or (C)lamp: %s"), WM_bool_as_string(is_clamp)); | ||||
| /* done with header string */ | /* done with header string */ | ||||
| /* do stuff here */ | /* do stuff here */ | ||||
| doEdgeSlide(t, final); | doEdgeSlide(t, final); | ||||
| recalcData(t); | recalcData(t); | ||||
| ED_area_headerprint(t->sa, str); | transform_headerprint_begin(t, str); | ||||
| } | } | ||||
| /** \} */ | /** \} */ | ||||
| /* -------------------------------------------------------------------- */ | /* -------------------------------------------------------------------- */ | ||||
| /* Transform (Vert Slide) */ | /* Transform (Vert Slide) */ | ||||
| /** \name Transform Vert Slide | /** \name Transform Vert Slide | ||||
| ▲ Show 20 Lines • Show All 543 Lines • ▼ Show 20 Lines | static void applyVertSlide(TransInfo *t, const int UNUSED(mval[2])) | ||||
| ofs += BLI_snprintf(str + ofs, MAX_INFO_LEN - ofs, IFACE_("Alt or (C)lamp: %s"), WM_bool_as_string(is_clamp)); | ofs += BLI_snprintf(str + ofs, MAX_INFO_LEN - ofs, IFACE_("Alt or (C)lamp: %s"), WM_bool_as_string(is_clamp)); | ||||
| /* done with header string */ | /* done with header string */ | ||||
| /* do stuff here */ | /* do stuff here */ | ||||
| doVertSlide(t, final); | doVertSlide(t, final); | ||||
| recalcData(t); | recalcData(t); | ||||
| ED_area_headerprint(t->sa, str); | transform_headerprint_begin(t, str); | ||||
| } | } | ||||
| /** \} */ | /** \} */ | ||||
| /* -------------------------------------------------------------------- */ | /* -------------------------------------------------------------------- */ | ||||
| /* Transform (EditBone Roll) */ | /* Transform (EditBone Roll) */ | ||||
| /** \name Transform EditBone Roll | /** \name Transform EditBone Roll | ||||
| ▲ Show 20 Lines • Show All 55 Lines • ▼ Show 20 Lines | for (i = 0; i < t->total; i++, td++) { | ||||
| if (td->flag & TD_SKIP) | if (td->flag & TD_SKIP) | ||||
| continue; | continue; | ||||
| *(td->val) = td->ival - final; | *(td->val) = td->ival - final; | ||||
| } | } | ||||
| recalcData(t); | recalcData(t); | ||||
| ED_area_headerprint(t->sa, str); | transform_headerprint_begin(t, str); | ||||
| } | } | ||||
| /** \} */ | /** \} */ | ||||
| /* -------------------------------------------------------------------- */ | /* -------------------------------------------------------------------- */ | ||||
| /* Transform (Bake-Time) */ | /* Transform (Bake-Time) */ | ||||
| /** \name Transform Bake-Time | /** \name Transform Bake-Time | ||||
| ▲ Show 20 Lines • Show All 67 Lines • ▼ Show 20 Lines | if (td->val) { | ||||
| *td->val = td->ival + time * td->factor; | *td->val = td->ival + time * td->factor; | ||||
| if (td->ext->size && *td->val < *td->ext->size) *td->val = *td->ext->size; | if (td->ext->size && *td->val < *td->ext->size) *td->val = *td->ext->size; | ||||
| if (td->ext->quat && *td->val > *td->ext->quat) *td->val = *td->ext->quat; | if (td->ext->quat && *td->val > *td->ext->quat) *td->val = *td->ext->quat; | ||||
| } | } | ||||
| } | } | ||||
| recalcData(t); | recalcData(t); | ||||
| ED_area_headerprint(t->sa, str); | transform_headerprint_begin(t, str); | ||||
| } | } | ||||
| /** \} */ | /** \} */ | ||||
| /* -------------------------------------------------------------------- */ | /* -------------------------------------------------------------------- */ | ||||
| /* Transform (Mirror) */ | /* Transform (Mirror) */ | ||||
| /** \name Transform Mirror | /** \name Transform Mirror | ||||
| ▲ Show 20 Lines • Show All 42 Lines • ▼ Show 20 Lines | for (i = 0, td = t->data; i < t->total; i++, td++) { | ||||
| if (td->flag & TD_SKIP) | if (td->flag & TD_SKIP) | ||||
| continue; | continue; | ||||
| ElementResize(t, td, mat); | ElementResize(t, td, mat); | ||||
| } | } | ||||
| recalcData(t); | recalcData(t); | ||||
| ED_area_headerprint(t->sa, str); | transform_headerprint_begin(t, str); | ||||
| } | } | ||||
| else { | else { | ||||
| size[0] = size[1] = size[2] = 1; | size[0] = size[1] = size[2] = 1; | ||||
| size_to_mat3(mat, size); | size_to_mat3(mat, size); | ||||
| for (i = 0, td = t->data; i < t->total; i++, td++) { | for (i = 0, td = t->data; i < t->total; i++, td++) { | ||||
| if (td->flag & TD_NOACTION) | if (td->flag & TD_NOACTION) | ||||
| ▲ Show 20 Lines • Show All 163 Lines • ▼ Show 20 Lines | static void applySeqSlide(TransInfo *t, const int mval[2]) | ||||
| t->values[0] = floorf(t->values[0] + 0.5f); | t->values[0] = floorf(t->values[0] + 0.5f); | ||||
| t->values[1] = floorf(t->values[1] + 0.5f); | t->values[1] = floorf(t->values[1] + 0.5f); | ||||
| headerSeqSlide(t, t->values, str); | headerSeqSlide(t, t->values, str); | ||||
| applySeqSlideValue(t, t->values); | applySeqSlideValue(t, t->values); | ||||
| recalcData(t); | recalcData(t); | ||||
| ED_area_headerprint(t->sa, str); | transform_headerprint_begin(t, str); | ||||
| } | } | ||||
| /** \} */ | /** \} */ | ||||
| /* -------------------------------------------------------------------- */ | /* -------------------------------------------------------------------- */ | ||||
| /* Animation Editors - Transform Utils | /* Animation Editors - Transform Utils | ||||
| * | * | ||||
| * Special Helpers for Various Settings | * Special Helpers for Various Settings | ||||
| ▲ Show 20 Lines • Show All 265 Lines • ▼ Show 20 Lines | static void applyTimeTranslate(TransInfo *t, const int mval[2]) | ||||
| applyNumInput(&t->num, &t->vec[0]); | applyNumInput(&t->num, &t->vec[0]); | ||||
| t->values[0] = t->vec[0]; | t->values[0] = t->vec[0]; | ||||
| headerTimeTranslate(t, str); | headerTimeTranslate(t, str); | ||||
| applyTimeTranslateValue(t); | applyTimeTranslateValue(t); | ||||
| recalcData(t); | recalcData(t); | ||||
| ED_area_headerprint(t->sa, str); | transform_headerprint_begin(t, str); | ||||
| } | } | ||||
| /** \} */ | /** \} */ | ||||
| /* -------------------------------------------------------------------- */ | /* -------------------------------------------------------------------- */ | ||||
| /* Transform (Animation Time Slide) */ | /* Transform (Animation Time Slide) */ | ||||
| /** \name Transform Animation Time Slide | /** \name Transform Animation Time Slide | ||||
| ▲ Show 20 Lines • Show All 124 Lines • ▼ Show 20 Lines | static void applyTimeSlide(TransInfo *t, const int mval[2]) | ||||
| applyNumInput(&t->num, &t->vec[0]); | applyNumInput(&t->num, &t->vec[0]); | ||||
| t->values[0] = (maxx - minx) * t->vec[0] / 2.0f + sval[0]; | t->values[0] = (maxx - minx) * t->vec[0] / 2.0f + sval[0]; | ||||
| headerTimeSlide(t, sval[0], str); | headerTimeSlide(t, sval[0], str); | ||||
| applyTimeSlideValue(t, sval[0]); | applyTimeSlideValue(t, sval[0]); | ||||
| recalcData(t); | recalcData(t); | ||||
| ED_area_headerprint(t->sa, str); | transform_headerprint_begin(t, str); | ||||
| } | } | ||||
| /** \} */ | /** \} */ | ||||
| /* -------------------------------------------------------------------- */ | /* -------------------------------------------------------------------- */ | ||||
| /* Transform (Animation Time Scale) */ | /* Transform (Animation Time Scale) */ | ||||
| /** \name Transform Animation Time Scale | /** \name Transform Animation Time Scale | ||||
| ▲ Show 20 Lines • Show All 101 Lines • ▼ Show 20 Lines | static void applyTimeScale(TransInfo *t, const int UNUSED(mval[2])) | ||||
| applyNumInput(&t->num, &t->vec[0]); | applyNumInput(&t->num, &t->vec[0]); | ||||
| t->values[0] = t->vec[0]; | t->values[0] = t->vec[0]; | ||||
| headerTimeScale(t, str); | headerTimeScale(t, str); | ||||
| applyTimeScaleValue(t); | applyTimeScaleValue(t); | ||||
| recalcData(t); | recalcData(t); | ||||
| ED_area_headerprint(t->sa, str); | transform_headerprint_begin(t, str); | ||||
| } | } | ||||
| /** \} */ | /** \} */ | ||||
| /* TODO, move to: transform_queries.c */ | /* TODO, move to: transform_queries.c */ | ||||
| bool checkUseAxisMatrix(TransInfo *t) | bool checkUseAxisMatrix(TransInfo *t) | ||||
| { | { | ||||
| /* currently only checks for editmode */ | /* currently only checks for editmode */ | ||||
| Show All 11 Lines | |||||