Blender  V2.93
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

int transform_mode_really_used (struct bContext *C, int mode)
 
bool transdata_check_local_center (TransInfo *t, short around)
 
bool transform_mode_is_changeable (const int mode)
 
void protectedTransBits (short protectflag, float vec[3])
 
void protectedSizeBits (short protectflag, float size[3])
 
void constraintTransLim (TransInfo *t, TransData *td)
 
void constraintSizeLim (TransInfo *t, TransData *td)
 
void headerRotation (TransInfo *t, char *str, float final)
 
void ElementRotation_ex (TransInfo *t, TransDataContainer *tc, TransData *td, const float mat[3][3], const float *center)
 
void ElementRotation (TransInfo *t, TransDataContainer *tc, TransData *td, float mat[3][3], const short around)
 
void headerResize (TransInfo *t, const float vec[3], char *str)
 
void ElementResize (TransInfo *t, TransDataContainer *tc, TransData *td, float mat[3][3])
 
short getAnimEdit_SnapMode (TransInfo *t)
 
void doAnimEdit_SnapFrame (TransInfo *t, TransData *td, TransData2D *td2d, struct AnimData *adt, short autosnap)
 
void transform_mode_init (TransInfo *t, struct wmOperator *op, const 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 initCrease (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 initGPOpacity (TransInfo *t)
 
void initGPShrinkFatten (TransInfo *t)
 
void initMaskShrinkFatten (TransInfo *t)
 
void initMirror (TransInfo *t)
 
void initPushPull (TransInfo *t)
 
void initResize (TransInfo *t)
 
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)
 

Detailed Description

transform modes used by different operators.

Definition in file transform_mode.h.

Typedef Documentation

◆ TransDataGenericSlideVert

Function Documentation

◆ constraintSizeLim()

void constraintSizeLim ( TransInfo t,
TransData td 
)

◆ constraintTransLim()

void constraintTransLim ( TransInfo t,
TransData td 
)

◆ doAnimEdit_SnapFrame()

void doAnimEdit_SnapFrame ( TransInfo t,
TransData td,
TransData2D td2d,
struct AnimData adt,
short  autosnap 
)

◆ drawEdgeSlide()

void drawEdgeSlide ( TransInfo t)

◆ drawVertSlide()

void drawVertSlide ( TransInfo t)

◆ ElementResize()

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

◆ ElementRotation()

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

◆ ElementRotation_ex()

void ElementRotation_ex ( TransInfo t,
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 564 of file transform_mode.c.

References add_v3_v3(), add_v3_v3v3(), axis_angle_to_quat(), center, constraintRotLim(), constraintTransLim(), copy_v3_v3(), CTX_GPENCIL_STROKES, CTX_POSE_BONE, TransDataExtension::drot, eulO_to_mat3(), TransData::ext, TransDataContainer::imat3, TransDataExtension::iquat, TransDataExtension::irot, TransDataExtension::irotAngle, TransDataExtension::irotAxis, TransDataExtension::l_smtx, TransDataContainer::mat3, mat3_to_compatible_eulO(), mat3_to_quat(), TransData::mtx, mul_m3_fl(), 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(), 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_v3_v3(), sub_v3_v3v3(), t, T_POINTS, T_V3D_ALIGN, TD_NO_LOC, TD_PBONE_LOCAL_MTX_C, TD_PBONE_LOCAL_MTX_P, and TD_USEQUAT.

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

◆ getAnimEdit_SnapMode()

short getAnimEdit_SnapMode ( TransInfo t)

This function returns the snapping 'mode' for Animation Editors only. We cannot use the standard snapping due to NLA-strip scaling complexities.

TODO: these modifier checks should be key-mappable.

Definition at line 1049 of file transform_mode.c.

References SpaceAction::autosnap, SpaceGraph::autosnap, SpaceNla::autosnap, if(), MOD_SNAP_INVERT, SACTSNAP_FRAME, SACTSNAP_OFF, SPACE_ACTION, SPACE_GRAPH, SPACE_NLA, and t.

Referenced by applyTimeScaleValue(), applyTimeTranslateValue(), and headerTimeTranslate().

◆ headerResize()

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

◆ headerRotation()

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

◆ initAlign()

void initAlign ( TransInfo t)

Definition at line 82 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)

◆ initCrease()

void initCrease ( TransInfo t)

◆ initCurveShrinkFatten()

void initCurveShrinkFatten ( TransInfo t)

◆ initEdgeSlide()

void initEdgeSlide ( TransInfo t)

Definition at line 1566 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 
)

◆ initGPOpacity()

void initGPOpacity ( TransInfo t)

◆ initGPShrinkFatten()

void initGPShrinkFatten ( TransInfo t)

◆ initMaskShrinkFatten()

void initMaskShrinkFatten ( TransInfo t)

◆ initMirror()

void initMirror ( TransInfo t)

◆ initNormalRotation()

void initNormalRotation ( TransInfo t)

◆ initPushPull()

void initPushPull ( TransInfo t)

◆ initResize()

void initResize ( TransInfo t)

◆ 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)

◆ initVertSlide()

void initVertSlide ( TransInfo t)

Definition at line 686 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 232 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 ( TransInfo t,
short  around 
)

◆ transform_mode_default_modal_orientation_set()

void transform_mode_default_modal_orientation_set ( TransInfo t,
int  type 
)

◆ transform_mode_init()

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

◆ transform_mode_is_changeable()

bool transform_mode_is_changeable ( const int  mode)

◆ transform_mode_really_used()

int transform_mode_really_used ( struct bContext C,
int  mode 
)