Blender V4.3
transform_mode.hh File Reference

transform modes used by different operators. More...

Go to the source code of this file.

Classes

struct  TransModeInfo
 
struct  TransDataGenericSlideVert
 

Functions

eTfmMode transform_mode_really_used (bContext *C, eTfmMode mode)
 
bool transdata_check_local_center (const TransInfo *t, short around)
 
bool transform_mode_is_changeable (int mode)
 
void protectedTransBits (short protectflag, float vec[3])
 
void protectedSizeBits (short protectflag, float size[3])
 
void constraintTransLim (const TransInfo *t, const TransDataContainer *tc, TransData *td)
 
void constraintSizeLim (const TransInfo *t, const TransDataContainer *tc, TransData *td)
 
void headerRotation (TransInfo *t, char *str, int str_size, float final)
 
void ElementRotation_ex (const TransInfo *t, const TransDataContainer *tc, TransData *td, const float mat[3][3], const float *center)
 
void ElementRotation (const TransInfo *t, const TransDataContainer *tc, TransData *td, const float mat[3][3], short around)
 
void headerResize (TransInfo *t, const float vec[3], char *str, int str_size)
 
void ElementResize (const TransInfo *t, const TransDataContainer *tc, TransData *td, const float mat[3][3])
 
void transform_mode_init (TransInfo *t, wmOperator *op, int mode)
 
void transform_mode_default_modal_orientation_set (TransInfo *t, int type)
 
bool transform_mode_edge_seq_slide_use_restore_handle_selection (const TransInfo *t)
 
void transform_mode_edge_slide_reproject_input (TransInfo *t)
 
void transform_mode_snap_source_init (TransInfo *t, wmOperator *op)
 
void transform_mode_vert_slide_reproject_input (TransInfo *t)
 

Variables

TransModeInfo TransMode_align
 
TransModeInfo TransMode_baketime
 
TransModeInfo TransMode_bboneresize
 
TransModeInfo TransMode_bend
 
TransModeInfo TransMode_boneenvelope
 
TransModeInfo TransMode_boneroll
 
TransModeInfo TransMode_curveshrinkfatten
 
TransModeInfo TransMode_edgecrease
 
TransModeInfo TransMode_vertcrease
 
TransModeInfo TransMode_bevelweight
 
TransModeInfo TransMode_rotatenormal
 
TransModeInfo TransMode_seqslide
 
TransModeInfo TransMode_edgeslide
 
TransModeInfo TransMode_gpopacity
 
TransModeInfo TransMode_gpshrinkfatten
 
TransModeInfo TransMode_maskshrinkfatten
 
TransModeInfo TransMode_mirror
 
TransModeInfo TransMode_pushpull
 
TransModeInfo TransMode_resize
 
TransModeInfo TransMode_rotate
 
TransModeInfo TransMode_shear
 
TransModeInfo TransMode_shrinkfatten
 
TransModeInfo TransMode_skinresize
 
TransModeInfo TransMode_snapsource
 
TransModeInfo TransMode_tilt
 
TransModeInfo TransMode_timescale
 
TransModeInfo TransMode_timeslide
 
TransModeInfo TransMode_timetranslate
 
TransModeInfo TransMode_tosphere
 
TransModeInfo TransMode_trackball
 
TransModeInfo TransMode_translate
 
TransModeInfo TransMode_vertslide
 

Detailed Description

transform modes used by different operators.

Definition in file transform_mode.hh.

Function Documentation

◆ constraintSizeLim()

◆ constraintTransLim()

◆ ElementResize()

◆ ElementRotation()

void ElementRotation ( const TransInfo * t,
const TransDataContainer * tc,
TransData * td,
const float mat[3][3],
short around )

◆ ElementRotation_ex()

void ElementRotation_ex ( const TransInfo * t,
const TransDataContainer * tc,
TransData * td,
const float mat[3][3],
const float * center )

Applies values of rotation to td->loc and td->ext->quat based on a rotation matrix (mat) and a pivot (center).

Protected axis and other transform settings are taken into account.

HACK WARNING

This is some VERY ugly special case to deal with pose mode.

The problem is that mtx and smtx include each bone orientation.

That is needed to rotate each bone properly, HOWEVER, to calculate the translation component, we only need the actual armature object's matrix (and inverse). That is not all though. Once the proper translation has been computed, it has to be converted back into the bone's space.

Definition at line 559 of file transform_mode.cc.

References add_eul_euleul(), add_v3_v3(), add_v3_v3v3(), axis_angle_to_quat(), constraintRotLim(), constraintTransLim(), copy_v3_v3(), CTX_GPENCIL_STROKES, CTX_POSE_BONE, TransDataExtension::dquat, TransDataExtension::drot, eulO_to_mat3(), TransData::ext, TransInfo::flag, TransDataContainer::imat3, interp_m3_m3m3(), invert_qt_qt_normalized(), TransDataExtension::iquat, TransDataExtension::irot, TransDataExtension::irotAngle, TransDataExtension::irotAxis, is_zero_v3(), is_zero_v4(), TransDataExtension::l_smtx, TransDataContainer::mat3, mat3_to_compatible_eulO(), mat3_to_quat(), TransData::mtx, mul_m3_m3m3(), mul_m3_series, mul_m3_v3(), mul_qt_qtqt(), bGPDstroke_Runtime::multi_frame_falloff, OB_GPENCIL_LEGACY, OB_GREASE_PENCIL, TransInfo::obedit_type, TransInfo::options, protectedAxisAngleBits(), protectedQuaternionBits(), protectedRotateBits(), protectedTransBits(), TransData::protectflag, TransDataExtension::quat, quat_to_axis_angle(), quat_to_mat3(), TransDataExtension::r_mtx, TransDataExtension::r_smtx, TransDataExtension::rot, ROT_MODE_AXISANGLE, ROT_MODE_QUAT, TransDataExtension::rotAngle, TransDataExtension::rotAxis, TransDataExtension::rotOrder, bGPDstroke::runtime, TransData::smtx, sub_eul_euleul(), sub_v3_v3(), sub_v3_v3v3(), T_POINTS, T_V3D_ALIGN, TD_NO_LOC, TD_PBONE_LOCAL_MTX_C, TD_PBONE_LOCAL_MTX_P, TD_USEQUAT, and unit_m3().

Referenced by ElementMirror(), ElementRotation(), and transdata_elem_translate().

◆ headerResize()

◆ headerRotation()

◆ protectedSizeBits()

void protectedSizeBits ( short protectflag,
float size[3] )

Definition at line 219 of file transform_mode.cc.

References OB_LOCK_SCALEX, OB_LOCK_SCALEY, and OB_LOCK_SCALEZ.

Referenced by ElementMirror(), and ElementResize().

◆ protectedTransBits()

void protectedTransBits ( short protectflag,
float vec[3] )

◆ transdata_check_local_center()

◆ transform_mode_default_modal_orientation_set()

◆ transform_mode_edge_seq_slide_use_restore_handle_selection()

◆ transform_mode_edge_slide_reproject_input()

◆ transform_mode_init()

◆ transform_mode_is_changeable()

bool transform_mode_is_changeable ( int mode)

Informs if the mode can be switched during modal.

Definition at line 66 of file transform_mode.cc.

References ELEM, TFM_EDGE_SLIDE, TFM_NORMAL_ROTATION, TFM_RESIZE, TFM_ROTATION, TFM_TRACKBALL, TFM_TRANSLATION, and TFM_VERT_SLIDE.

Referenced by transform_modal_item_poll(), and transformEvent().

◆ transform_mode_really_used()

◆ transform_mode_snap_source_init()

void transform_mode_snap_source_init ( TransInfo * t,
wmOperator * op )

Definition at line 161 of file transform_mode_snapsource.cc.

References MouseInput::apply, SnapSouceCustomData::apply, applyMouseInput(), TransInfo::context, CTX_wm_window(), TransInfo::custom, wmGizmo::custom_modal, SnapSouceCustomData::customdata_mode_prev, TransCustomData::data, TransInfo::data_type, ED_transform_snap_object_context_set_editmesh_callbacks(), ELEM, wmWindow::eventstate, TransInfo::flag, TransSnap::flag, ARegion::gizmo_map, MouseInput::imval, MEM_callocN, MOD_SNAP, MOD_SNAP_FORCED, wmGizmoType::modal, TransCustomDataContainer::mode, TransInfo::mode, TransSnap::mode, TransInfo::mode_info, SnapSouceCustomData::mode_info_prev, TransInfo::modifiers, TransInfo::mouse, SnapSouceCustomData::mouse_prev, TransSnap::object_context, MouseInput::post, SnapSouceCustomData::post, TransInfo::region, restoreTransObjects(), SCE_SNAP_INDIVIDUAL_NEAREST, SCE_SNAP_INDIVIDUAL_PROJECT, SCE_SNAP_TARGET_ALL, SCE_SNAP_TO_EDGE_PERPENDICULAR, SCE_SNAP_TO_GEOM, SCE_SNAP_TO_INCREMENT, SnapSouceCustomData::snap_mode_confirm, TransSnap::snap_target_fn, SPACE_VIEW3D, TransInfo::spacetype, TransSnap::status, T_DRAW_SNAP_SOURCE, TransSnap::target_operation, SnapSouceCustomData::target_operation_prev, TFM_DUMMY, TFM_INIT, TFM_TRANSLATION, TransConvertType_Mesh, transform_mode_init(), transform_snap_flag_from_modifiers_set(), transformModeUseSnap(), TransMode_snapsource, TransInfo::tsnap, wmGizmo::type, MouseInput::use_virtual_mval, SnapSouceCustomData::use_virtual_mval, TransInfo::values_final, WM_gizmo_modal_set_while_modal(), and WM_gizmomap_get_modal().

Referenced by transformEvent().

◆ transform_mode_vert_slide_reproject_input()

void transform_mode_vert_slide_reproject_input ( TransInfo * t)

Variable Documentation

◆ TransMode_align

TransModeInfo TransMode_align
extern

Definition at line 75 of file transform_mode_align.cc.

Referenced by mode_info_get().

◆ TransMode_baketime

TransModeInfo TransMode_baketime
extern

Definition at line 129 of file transform_mode_baketime.cc.

Referenced by mode_info_get().

◆ TransMode_bboneresize

TransModeInfo TransMode_bboneresize
extern

Definition at line 175 of file transform_mode_bbone_resize.cc.

Referenced by mode_info_get().

◆ TransMode_bend

TransModeInfo TransMode_bend
extern

Definition at line 377 of file transform_mode_bend.cc.

Referenced by mode_info_get().

◆ TransMode_bevelweight

TransModeInfo TransMode_bevelweight
extern

Definition at line 204 of file transform_mode_customdata.cc.

Referenced by mode_info_get().

◆ TransMode_boneenvelope

TransModeInfo TransMode_boneenvelope
extern

Definition at line 97 of file transform_mode_boneenvelope.cc.

Referenced by mode_info_get().

◆ TransMode_boneroll

TransModeInfo TransMode_boneroll
extern

Definition at line 94 of file transform_mode_boneroll.cc.

Referenced by mode_info_get().

◆ TransMode_curveshrinkfatten

TransModeInfo TransMode_curveshrinkfatten
extern

Definition at line 117 of file transform_mode_curveshrinkfatten.cc.

Referenced by mode_info_get().

◆ TransMode_edgecrease

TransModeInfo TransMode_edgecrease
extern

Definition at line 182 of file transform_mode_customdata.cc.

Referenced by mode_info_get().

◆ TransMode_edgeslide

TransModeInfo TransMode_edgeslide
extern

Definition at line 973 of file transform_mode_edge_slide.cc.

Referenced by mode_info_get().

◆ TransMode_gpopacity

TransModeInfo TransMode_gpopacity
extern

Definition at line 118 of file transform_mode_gpopacity.cc.

Referenced by mode_info_get().

◆ TransMode_gpshrinkfatten

TransModeInfo TransMode_gpshrinkfatten
extern

Definition at line 114 of file transform_mode_gpshrinkfatten.cc.

Referenced by mode_info_get().

◆ TransMode_maskshrinkfatten

TransModeInfo TransMode_maskshrinkfatten
extern

Definition at line 128 of file transform_mode_maskshrinkfatten.cc.

Referenced by mode_info_get().

◆ TransMode_mirror

TransModeInfo TransMode_mirror
extern

Definition at line 224 of file transform_mode_mirror.cc.

Referenced by mode_info_get().

◆ TransMode_pushpull

TransModeInfo TransMode_pushpull
extern

Definition at line 188 of file transform_mode_push_pull.cc.

Referenced by mode_info_get().

◆ TransMode_resize

TransModeInfo TransMode_resize
extern

Definition at line 374 of file transform_mode_resize.cc.

Referenced by mode_info_get().

◆ TransMode_rotate

TransModeInfo TransMode_rotate
extern

Definition at line 431 of file transform_mode_rotate.cc.

Referenced by mode_info_get().

◆ TransMode_rotatenormal

TransModeInfo TransMode_rotatenormal
extern

Definition at line 143 of file transform_mode_edge_rotate_normal.cc.

Referenced by mode_info_get().

◆ TransMode_seqslide

TransModeInfo TransMode_seqslide
extern

Definition at line 152 of file transform_mode_edge_seq_slide.cc.

Referenced by mode_info_get().

◆ TransMode_shear

TransModeInfo TransMode_shear
extern

Definition at line 352 of file transform_mode_shear.cc.

Referenced by mode_info_get().

◆ TransMode_shrinkfatten

TransModeInfo TransMode_shrinkfatten
extern

Definition at line 192 of file transform_mode_shrink_fatten.cc.

Referenced by mode_info_get().

◆ TransMode_skinresize

TransModeInfo TransMode_skinresize
extern

Definition at line 169 of file transform_mode_skin_resize.cc.

Referenced by mode_info_get().

◆ TransMode_snapsource

TransModeInfo TransMode_snapsource
extern

Definition at line 259 of file transform_mode_snapsource.cc.

Referenced by transform_mode_snap_source_init().

◆ TransMode_tilt

TransModeInfo TransMode_tilt
extern

Definition at line 102 of file transform_mode_tilt.cc.

Referenced by mode_info_get().

◆ TransMode_timescale

TransModeInfo TransMode_timescale
extern

Definition at line 156 of file transform_mode_timescale.cc.

Referenced by mode_info_get().

◆ TransMode_timeslide

TransModeInfo TransMode_timeslide
extern

Definition at line 231 of file transform_mode_timeslide.cc.

Referenced by mode_info_get().

◆ TransMode_timetranslate

TransModeInfo TransMode_timetranslate
extern

Definition at line 150 of file transform_mode_timetranslate.cc.

Referenced by mode_info_get().

◆ TransMode_tosphere

TransModeInfo TransMode_tosphere
extern

Definition at line 266 of file transform_mode_tosphere.cc.

Referenced by mode_info_get().

◆ TransMode_trackball

TransModeInfo TransMode_trackball
extern

Definition at line 210 of file transform_mode_trackball.cc.

Referenced by mode_info_get().

◆ TransMode_translate

TransModeInfo TransMode_translate
extern

◆ TransMode_vertcrease

TransModeInfo TransMode_vertcrease
extern

Definition at line 193 of file transform_mode_customdata.cc.

Referenced by mode_info_get().

◆ TransMode_vertslide

TransModeInfo TransMode_vertslide
extern

Definition at line 643 of file transform_mode_vert_slide.cc.

Referenced by mode_info_get().