Blender  V3.3
Classes | Typedefs | Functions
transform_mode.h File Reference

transform modes used by different operators. More...

Go to the source code of this file.

Classes

struct  TransDataGenericSlideVert
 

Typedefs

typedef struct TransDataGenericSlideVert TransDataGenericSlideVert
 

Functions

eTfmMode transform_mode_really_used (struct 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, TransData *td)
 
void constraintSizeLim (const TransInfo *t, 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, struct wmOperator *op, int mode)
 
void transform_mode_default_modal_orientation_set (TransInfo *t, int type)
 
void initAlign (TransInfo *t)
 
void initBakeTime (TransInfo *t)
 
void initBoneSize (TransInfo *t)
 
void initBend (TransInfo *t)
 
void initBoneEnvelope (TransInfo *t)
 
void initBoneRoll (TransInfo *t)
 
void initCurveShrinkFatten (TransInfo *t)
 
void initBevelWeight (TransInfo *t)
 
void initEgdeCrease (TransInfo *t)
 
void initVertCrease (TransInfo *t)
 
void initNormalRotation (TransInfo *t)
 
void initSeqSlide (TransInfo *t)
 
void drawEdgeSlide (TransInfo *t)
 
void initEdgeSlide_ex (TransInfo *t, bool use_double_side, bool use_even, bool flipped, bool use_clamp)
 
void initEdgeSlide (TransInfo *t)
 
void transform_mode_edge_slide_reproject_input (TransInfo *t)
 
void initGPOpacity (TransInfo *t)
 
void initGPShrinkFatten (TransInfo *t)
 
void initMaskShrinkFatten (TransInfo *t)
 
void initMirror (TransInfo *t)
 
void initPushPull (TransInfo *t)
 
void initResize (TransInfo *t, float mouse_dir_constraint[3])
 
void initRotation (TransInfo *t)
 
void initShear (TransInfo *t)
 
void initShrinkFatten (TransInfo *t)
 
void initSkinResize (TransInfo *t)
 
void initTilt (TransInfo *t)
 
void initTimeScale (TransInfo *t)
 
void initTimeSlide (TransInfo *t)
 
void initTimeTranslate (TransInfo *t)
 
void initToSphere (TransInfo *t)
 
void initTrackball (TransInfo *t)
 
void initTranslation (TransInfo *t)
 
void drawVertSlide (TransInfo *t)
 
void initVertSlide_ex (TransInfo *t, bool use_even, bool flipped, bool use_clamp)
 
void initVertSlide (TransInfo *t)
 
void transform_mode_vert_slide_reproject_input (TransInfo *t)
 

Detailed Description

transform modes used by different operators.

Definition in file transform_mode.h.

Typedef Documentation

◆ TransDataGenericSlideVert

Function Documentation

◆ constraintSizeLim()

void constraintSizeLim ( const TransInfo t,
TransData td 
)

◆ constraintTransLim()

void constraintTransLim ( const TransInfo t,
TransData td 
)

◆ drawEdgeSlide()

void drawEdgeSlide ( TransInfo t)

◆ drawVertSlide()

void drawVertSlide ( TransInfo t)

◆ ElementResize()

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

◆ 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 542 of file transform_mode.c.

References add_eul_euleul(), add_v3_v3(), add_v3_v3v3(), axis_angle_to_quat(), center, constraintRotLim(), constraintTransLim(), copy_v3_v3(), CTX_GPENCIL_STROKES, CTX_POSE_BONE, TransDataExtension::dquat, TransDataExtension::drot, eulO_to_mat3(), TransData::ext, if(), 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, 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, 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()

void headerResize ( TransInfo t,
const float  vec[3],
char *  str,
int  str_size 
)

◆ headerRotation()

void headerRotation ( TransInfo t,
char *  str,
int  str_size,
float  final 
)

◆ initAlign()

void initAlign ( TransInfo t)

Definition at line 68 of file transform_mode_align.c.

References applyAlign(), initMouseInputMode(), INPUT_NONE, t, and T_NO_CONSTRAINT.

Referenced by transform_mode_init().

◆ initBakeTime()

void initBakeTime ( TransInfo t)

◆ initBend()

void initBend ( TransInfo t)

◆ initBevelWeight()

void initBevelWeight ( TransInfo t)

◆ initBoneEnvelope()

void initBoneEnvelope ( TransInfo t)

◆ initBoneRoll()

void initBoneRoll ( TransInfo t)

◆ initBoneSize()

void initBoneSize ( TransInfo t)

◆ initCurveShrinkFatten()

void initCurveShrinkFatten ( TransInfo t)

◆ initEdgeSlide()

void initEdgeSlide ( TransInfo t)

Definition at line 1565 of file transform_mode_edge_slide.c.

References initEdgeSlide_ex(), and t.

◆ initEdgeSlide_ex()

void initEdgeSlide_ex ( TransInfo t,
bool  use_double_side,
bool  use_even,
bool  flipped,
bool  use_clamp 
)

◆ initEgdeCrease()

void initEgdeCrease ( TransInfo t)

Definition at line 158 of file transform_mode_edge_crease.c.

References initCrease_ex(), t, and TFM_EDGE_CREASE.

Referenced by transform_mode_init().

◆ initGPOpacity()

void initGPOpacity ( TransInfo t)

◆ initGPShrinkFatten()

void initGPShrinkFatten ( TransInfo t)

◆ initMaskShrinkFatten()

void initMaskShrinkFatten ( TransInfo t)

◆ initMirror()

void initMirror ( TransInfo t)

Definition at line 218 of file transform_mode_mirror.c.

References applyMirror(), initMouseInputMode(), INPUT_NONE, t, and T_NULL_ONE.

Referenced by transform_mode_init().

◆ initNormalRotation()

void initNormalRotation ( TransInfo t)

◆ initPushPull()

void initPushPull ( TransInfo t)

◆ initResize()

void initResize ( TransInfo t,
float  mouse_dir_constraint[3] 
)

◆ initRotation()

void initRotation ( TransInfo t)

◆ initSeqSlide()

void initSeqSlide ( TransInfo t)

◆ initShear()

void initShear ( TransInfo t)

◆ initShrinkFatten()

void initShrinkFatten ( TransInfo t)

◆ initSkinResize()

void initSkinResize ( TransInfo t)

◆ initTilt()

void initTilt ( TransInfo t)

◆ initTimeScale()

void initTimeScale ( TransInfo t)

◆ initTimeSlide()

void initTimeSlide ( TransInfo t)

◆ initTimeTranslate()

void initTimeTranslate ( TransInfo t)

◆ initToSphere()

void initToSphere ( TransInfo t)

◆ initTrackball()

void initTrackball ( TransInfo t)

◆ initTranslation()

void initTranslation ( TransInfo t)

Definition at line 577 of file transform_mode_translate.c.

Referenced by transform_mode_init().

◆ initVertCrease()

void initVertCrease ( TransInfo t)

Definition at line 163 of file transform_mode_edge_crease.c.

References initCrease_ex(), t, and TFM_VERT_CREASE.

Referenced by transform_mode_init().

◆ initVertSlide()

void initVertSlide ( TransInfo t)

Definition at line 675 of file transform_mode_vert_slide.c.

References initVertSlide_ex(), and t.

◆ initVertSlide_ex()

void initVertSlide_ex ( TransInfo t,
bool  use_even,
bool  flipped,
bool  use_clamp 
)

◆ protectedSizeBits()

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

Definition at line 215 of file transform_mode.c.

References OB_LOCK_SCALEX, OB_LOCK_SCALEY, OB_LOCK_SCALEZ, and size().

Referenced by ElementMirror(), and ElementResize().

◆ protectedTransBits()

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

◆ transdata_check_local_center()

bool transdata_check_local_center ( const TransInfo t,
short  around 
)

◆ transform_mode_default_modal_orientation_set()

void transform_mode_default_modal_orientation_set ( TransInfo t,
int  type 
)

◆ transform_mode_edge_slide_reproject_input()

void transform_mode_edge_slide_reproject_input ( TransInfo t)

◆ transform_mode_init()

void transform_mode_init ( TransInfo t,
struct wmOperator op,
int  mode 
)

◆ transform_mode_is_changeable()

bool transform_mode_is_changeable ( int  mode)

Informs if the mode can be switched during modal.

Definition at line 65 of file transform_mode.c.

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

Referenced by transform_modal_item_poll(), and transformEvent().

◆ transform_mode_really_used()

eTfmMode transform_mode_really_used ( struct bContext C,
eTfmMode  mode 
)

◆ transform_mode_vert_slide_reproject_input()

void transform_mode_vert_slide_reproject_input ( TransInfo t)