Blender V4.3
transform.hh File Reference
#include "BLI_math_vector_types.hh"
#include "ED_numinput.hh"
#include "ED_transform.hh"
#include "ED_view3d.hh"
#include "DNA_listBase.h"
#include "DNA_object_enums.h"
#include "DNA_scene_types.h"
#include "DEG_depsgraph.hh"
#include "transform_data.hh"

Go to the source code of this file.

Classes

struct  TransSnapPoint
 
struct  TransSnap
 
struct  TransCon
 
struct  MouseInput
 
struct  TransCustomData
 
struct  TransCustomDataContainer
 
struct  TransDataContainer
 
struct  TransInfo
 

Macros

Transform Types
#define TRANS_CUSTOM_DATA_ELEM_MAX   (sizeof(TransCustomDataContainer) / sizeof(TransCustomData))
 

Enumerations

Keymap Modal Items
Note
these values are saved in key-map files, do not change then but just add new ones.
enum  {
  TFM_MODAL_CANCEL = 1 , TFM_MODAL_CONFIRM = 2 , TFM_MODAL_TRANSLATE = 3 , TFM_MODAL_ROTATE = 4 ,
  TFM_MODAL_RESIZE = 5 , TFM_MODAL_SNAP_INV_ON = 6 , TFM_MODAL_SNAP_INV_OFF = 7 , TFM_MODAL_SNAP_TOGGLE = 8 ,
  TFM_MODAL_AXIS_X = 9 , TFM_MODAL_AXIS_Y = 10 , TFM_MODAL_AXIS_Z = 11 , TFM_MODAL_PLANE_X = 12 ,
  TFM_MODAL_PLANE_Y = 13 , TFM_MODAL_PLANE_Z = 14 , TFM_MODAL_CONS_OFF = 15 , TFM_MODAL_ADD_SNAP = 16 ,
  TFM_MODAL_REMOVE_SNAP = 17 , TFM_MODAL_PROPSIZE_UP = 20 , TFM_MODAL_PROPSIZE_DOWN = 21 , TFM_MODAL_AUTOIK_LEN_INC = 22 ,
  TFM_MODAL_AUTOIK_LEN_DEC = 23 , TFM_MODAL_NODE_ATTACH_ON = 24 , TFM_MODAL_NODE_ATTACH_OFF = 25 , TFM_MODAL_PROPSIZE = 26 ,
  TFM_MODAL_INSERTOFS_TOGGLE_DIR = 27 , TFM_MODAL_AUTOCONSTRAINT = 28 , TFM_MODAL_AUTOCONSTRAINTPLANE = 29 , TFM_MODAL_PRECISION = 30 ,
  TFM_MODAL_VERT_EDGE_SLIDE = 31 , TFM_MODAL_TRACKBALL = 32 , TFM_MODAL_ROTATE_NORMALS = 33 , TFM_MODAL_EDIT_SNAP_SOURCE_ON = 34 ,
  TFM_MODAL_EDIT_SNAP_SOURCE_OFF = 35 , TFM_MODAL_PASSTHROUGH_NAVIGATE = 36
}
 

Functions

Public Transform API
bool initTransform (bContext *C, TransInfo *t, wmOperator *op, const wmEvent *event, int mode)
 
void saveTransform (bContext *C, TransInfo *t, wmOperator *op)
 
int transformEvent (TransInfo *t, wmOperator *op, const wmEvent *event)
 
void transformApply (bContext *C, TransInfo *t)
 
int transformEnd (bContext *C, TransInfo *t)
 
void setTransformViewMatrices (TransInfo *t)
 
void setTransformViewAspect (TransInfo *t, float r_aspect[3])
 
void convertViewVec (TransInfo *t, float r_vec[3], double dx, double dy)
 
void projectIntViewEx (TransInfo *t, const float vec[3], int adr[2], eV3DProjTest flag)
 
void projectIntView (TransInfo *t, const float vec[3], int adr[2])
 
void projectFloatViewEx (TransInfo *t, const float vec[3], float adr[2], eV3DProjTest flag)
 
void projectFloatView (TransInfo *t, const float vec[3], float adr[2])
 
void applyAspectRatio (TransInfo *t, float vec[2])
 
void removeAspectRatio (TransInfo *t, float vec[2])
 
wmKeyMaptransform_modal_keymap (wmKeyConfig *keyconf)
 
bool transform_apply_matrix (TransInfo *t, float mat[4][4])
 
void transform_final_value_get (const TransInfo *t, float *value, int value_num)
 
General Utils
void transform_view_vector_calc (const TransInfo *t, const float focus[3], float r_vec[3])
 
bool transdata_check_local_islands (TransInfo *t, short around)
 

Enums and Flags

#define T_ALL_RESTRICTIONS   (T_NO_CONSTRAINT | T_NULL_ONE)
 
#define T_PROP_EDIT_ALL   (T_PROP_EDIT | T_PROP_CONNECTED | T_PROP_PROJECTED)
 
enum  eTContext {
  CTX_NONE = 0 , CTX_CAMERA = (1 << 0) , CTX_CURSOR = (1 << 1) , CTX_EDGE_DATA = (1 << 2) ,
  CTX_GPENCIL_STROKES = (1 << 3) , CTX_MASK = (1 << 4) , CTX_MOVIECLIP = (1 << 5) , CTX_OBJECT = (1 << 6) ,
  CTX_PAINT_CURVE = (1 << 7) , CTX_POSE_BONE = (1 << 8) , CTX_TEXTURE_SPACE = (1 << 9) , CTX_SEQUENCER_IMAGE = (1 << 10) ,
  CTX_NO_PET = (1 << 11) , CTX_AUTOCONFIRM = (1 << 12) , CTX_OBMODE_XFORM_OBDATA = (1 << 13) , CTX_OBMODE_XFORM_SKIP_CHILDREN = (1 << 14) ,
  CTX_VIEW2D_EDGE_PAN = (1 << 15)
}
 
enum  eTFlag {
  T_EDIT = 1 << 0 , T_POINTS = 1 << 1 , T_NO_CONSTRAINT = 1 << 2 , T_NULL_ONE = 1 << 3 ,
  T_PROP_EDIT = 1 << 4 , T_PROP_CONNECTED = 1 << 5 , T_PROP_PROJECTED = 1 << 6 , T_V3D_ALIGN = 1 << 7 ,
  T_2D_EDIT = 1 << 8 , T_CLIP_UV = 1 << 9 , T_AUTOIK = 1 << 10 , T_NO_MIRROR = 1 << 11 ,
  T_INPUT_IS_VALUES_FINAL = 1 << 12 , T_MODAL = 1 << 13 , T_NO_PROJECT = 1 << 14 , T_RELEASE_CONFIRM = 1 << 15 ,
  T_ALT_TRANSFORM = 1 << 16 , T_OVERRIDE_CENTER = 1 << 17 , T_MODAL_CURSOR_SET = 1 << 18 , T_CLNOR_REBUILD = 1 << 19 ,
  T_AUTOMERGE = 1 << 20 , T_AUTOSPLIT = 1 << 21 , T_EVENT_DRAG_START = 1 << 22 , T_NO_CURSOR_WRAP = 1 << 23 ,
  T_NO_GIZMO = 1 << 24 , T_DRAW_SNAP_SOURCE = 1 << 25 , T_DUPLICATED_KEYFRAMES = 1 << 26
}
 
enum  eTModifier {
  MOD_CONSTRAINT_SELECT_AXIS = 1 << 0 , MOD_PRECISION = 1 << 1 , MOD_SNAP = 1 << 2 , MOD_SNAP_INVERT = 1 << 3 ,
  MOD_CONSTRAINT_SELECT_PLANE = 1 << 4 , MOD_NODE_ATTACH = 1 << 5 , MOD_SNAP_FORCED = 1 << 6 , MOD_EDIT_SNAP_SOURCE = 1 << 7
}
 
enum  eTSnap { SNAP_RESETTED = 0 , SNAP_SOURCE_FOUND = 1 << 0 , SNAP_TARGET_FOUND = 1 << 1 , SNAP_MULTI_POINTS = 1 << 2 }
 
enum  eSnapDir { DIR_GLOBAL_X = (1 << 0) , DIR_GLOBAL_Y = (1 << 1) , DIR_GLOBAL_Z = (1 << 2) }
 
enum  eTConstraint {
  CON_APPLY = 1 << 0 , CON_AXIS0 = 1 << 1 , CON_AXIS1 = 1 << 2 , CON_AXIS2 = 1 << 3 ,
  CON_SELECT = 1 << 4 , CON_NOFLIP = 1 << 5 , CON_USER = 1 << 6
}
 
enum  eTState { TRANS_STARTING = 0 , TRANS_RUNNING = 1 , TRANS_CONFIRM = 2 , TRANS_CANCEL = 3 }
 
enum  eRedrawFlag { TREDRAW_NOTHING = 0 , TREDRAW_SOFT = (1 << 0) , TREDRAW_HARD = (1 << 1) | TREDRAW_SOFT }
 
enum  eTHelpline {
  HLP_NONE = 0 , HLP_SPRING = 1 , HLP_ANGLE = 2 , HLP_HARROW = 3 ,
  HLP_VARROW = 4 , HLP_CARROW = 5 , HLP_TRACKBALL = 6
}
 
enum  eTOType { O_DEFAULT = 0 , O_SCENE , O_SET }
 
 ENUM_OPERATORS (eTFlag, T_DUPLICATED_KEYFRAMES)
 

Generics

#define DRAWLIGHT   1
 
#define TRANSFORM_SNAP_MAX_PX   100.0f
 
#define TRANSFORM_DIST_INVALID   -FLT_MAX
 
#define TRANS_DATA_CONTAINER_FIRST_OK(t)   (&(t)->data_container[0])
 
#define TRANS_DATA_CONTAINER_FIRST_SINGLE(t)    (BLI_assert((t)->data_container_len == 1), (&(t)->data_container[0]))
 
#define FOREACH_TRANS_DATA_CONTAINER(t, th)
 
#define FOREACH_TRANS_DATA_CONTAINER_INDEX(t, th, i)
 
void initTransInfo (bContext *C, TransInfo *t, wmOperator *op, const wmEvent *event)
 
void freeTransCustomDataForMode (TransInfo *t)
 
void postTrans (bContext *C, TransInfo *t)
 
void resetTransModal (TransInfo *t)
 
void resetTransRestrictions (TransInfo *t)
 
void applyTransObjects (TransInfo *t)
 
void restoreTransObjects (TransInfo *t)
 
void calculateCenter2D (TransInfo *t)
 
void calculateCenterLocal (TransInfo *t, const float center_global[3])
 
void calculateCenter (TransInfo *t)
 
void transformViewUpdate (TransInfo *t)
 
void calculateCenterBound (TransInfo *t, float r_center[3])
 
void calculateCenterMedian (TransInfo *t, float r_center[3])
 
void calculateCenterCursor (TransInfo *t, float r_center[3])
 
void calculateCenterCursor2D (TransInfo *t, float r_center[2])
 
void calculateCenterCursorGraph2D (TransInfo *t, float r_center[2])
 
bool calculateCenterActive (TransInfo *t, bool select_only, float r_center[3])
 
void calculatePropRatio (TransInfo *t)
 
void transform_data_ext_rotate (TransData *td, float mat[3][3], bool use_drot)
 
Objecttransform_object_deform_pose_armature_get (const TransInfo *t, Object *ob)
 
void freeCustomNormalArray (TransInfo *t, TransDataContainer *tc, TransCustomData *custom_data)
 
bool checkUseAxisMatrix (TransInfo *t)
 

Mouse Input

enum  MouseInputMode {
  INPUT_NONE , INPUT_VECTOR , INPUT_SPRING , INPUT_SPRING_FLIP ,
  INPUT_SPRING_DELTA , INPUT_ANGLE , INPUT_ANGLE_SPRING , INPUT_TRACKBALL ,
  INPUT_HORIZONTAL_RATIO , INPUT_HORIZONTAL_ABSOLUTE , INPUT_VERTICAL_RATIO , INPUT_VERTICAL_ABSOLUTE ,
  INPUT_CUSTOM_RATIO , INPUT_CUSTOM_RATIO_FLIP
}
 
void initMouseInput (TransInfo *t, MouseInput *mi, const blender::float2 &center, const blender::float2 &mval, bool precision)
 
void initMouseInputMode (TransInfo *t, MouseInput *mi, MouseInputMode mode)
 
void applyMouseInput (TransInfo *t, MouseInput *mi, const blender::float2 &mval, float output[3])
 
void transform_input_update (TransInfo *t, const float fac)
 
void transform_input_virtual_mval_reset (TransInfo *t)
 
void transform_input_reset (TransInfo *t, const blender::float2 &mval)
 
void setCustomPoints (TransInfo *t, MouseInput *mi, const int mval_start[2], const int mval_end[2])
 
void setCustomPointsFromDirection (TransInfo *t, MouseInput *mi, const blender::float2 &dir)
 
void setInputPostFct (MouseInput *mi, void(*post)(TransInfo *t, float values[3]))
 

Macro Definition Documentation

◆ DRAWLIGHT

#define DRAWLIGHT   1

Definition at line 802 of file transform.hh.

Referenced by drawConstraint(), drawLine(), and drawObjectConstraint().

◆ FOREACH_TRANS_DATA_CONTAINER

#define FOREACH_TRANS_DATA_CONTAINER ( t,
th )
Value:
for (TransDataContainer *tc = (t)->data_container, \
*tc_end = (t)->data_container + (t)->data_container_len; \
th != tc_end; \
th++)

Definition at line 854 of file transform.hh.

Referenced by apply_shear_value(), apply_value_impl(), applyAlign(), applyBakeTime(), applyBoneEnvelope(), applyBoneRoll(), applyBoneSize(), applyCurveShrinkFatten(), applyGPOpacity(), applyGPShrinkFatten(), applyMaskShrinkFatten(), applyMirror(), applyNormalRotation(), applyPushPull(), applyResize(), applyRotationValue(), applySeqSlideValue(), applyShrinkFatten(), applySkinResize(), applyTilt(), applyTimeScaleValue(), applyTimeSlideValue(), applyTimeTranslateValue(), applyToSphere(), applyTrackballValue(), applyTranslationValue(), Bend(), calculateCenterBound(), calculateCenterLocal(), calculateCenterMedian(), calculatePropRatio(), clip_uv_transform_resize(), clip_uv_transform_translation(), clipUVData(), createTransArmatureVerts(), createTransCurveVerts(), createTransEdge(), createTransEditVerts(), createTransLatticeVerts(), createTransMBallVerts(), createTransMeshSkin(), createTransMeshVertCData(), createTransParticleVerts(), createTransPose(), createTransUVs(), doEdgeSlide(), doVertSlide(), drawObjectConstraint(), edge_slide_container_first_ok(), blender::ed::transform::flushTransNodes(), flushTransParticles(), flushTransUVs(), freeTransCustomDataForMode(), initEdgeSlide_ex(), initNormalRotation(), initTimeSlide(), initTransform(), initVertSlide_ex(), mesh_customdatacorrect_restore(), mesh_skin_apply_to_mirror(), blender::ed::transform::node_snap_grid_apply(), postTrans(), recalcData_curve(), recalcData_edit_armature(), recalcData_lattice(), recalcData_mball(), recalcData_mesh(), recalcData_mesh_cdata(), recalcData_mesh_edge(), recalcData_mesh_skin(), recalcData_objects(), recalcData_pose(), recalcData_texspace(), recalcData_uv(), restoreTransObjects(), set_prop_dist(), snap_source_closest_fn(), sort_trans_data_dist(), sort_trans_data_selected_first(), special_aftertrans_update__mesh(), special_aftertrans_update__pose(), to_sphere_radius_update(), tranform_snap_target_median_calc(), transform_autoik_update(), transform_convert_mesh_customdatacorrect_init(), transform_mode_edge_slide_reproject_input(), transform_mode_vert_slide_reproject_input(), transform_snap_project_individual_apply(), transformEnd(), uv_rotation_in_clip_bounds_test(), and uv_shear_in_clip_bounds_test().

◆ FOREACH_TRANS_DATA_CONTAINER_INDEX

#define FOREACH_TRANS_DATA_CONTAINER_INDEX ( t,
th,
i )
Value:
for (TransDataContainer *tc = ((i = 0), (t)->data_container), \
*tc_end = (t)->data_container + (t)->data_container_len; \
th != tc_end; \
th++, i++)

Definition at line 860 of file transform.hh.

◆ T_ALL_RESTRICTIONS

#define T_ALL_RESTRICTIONS   (T_NO_CONSTRAINT | T_NULL_ONE)

Definition at line 156 of file transform.hh.

◆ T_PROP_EDIT_ALL

◆ TRANS_CUSTOM_DATA_ELEM_MAX

#define TRANS_CUSTOM_DATA_ELEM_MAX   (sizeof(TransCustomDataContainer) / sizeof(TransCustomData))

Definition at line 427 of file transform.hh.

Referenced by freeTransCustomDataContainer().

◆ TRANS_DATA_CONTAINER_FIRST_OK

◆ TRANS_DATA_CONTAINER_FIRST_SINGLE

◆ TRANSFORM_DIST_INVALID

#define TRANSFORM_DIST_INVALID   -FLT_MAX

Definition at line 845 of file transform.hh.

Referenced by ApplySnapResize(), ResizeBetween(), and snap_source_closest_fn().

◆ TRANSFORM_SNAP_MAX_PX

#define TRANSFORM_SNAP_MAX_PX   100.0f

Definition at line 844 of file transform.hh.

Referenced by updateSelectedSnapPoint().

Enumeration Type Documentation

◆ anonymous enum

anonymous enum
Enumerator
TFM_MODAL_CANCEL 
TFM_MODAL_CONFIRM 
TFM_MODAL_TRANSLATE 
TFM_MODAL_ROTATE 
TFM_MODAL_RESIZE 
TFM_MODAL_SNAP_INV_ON 
TFM_MODAL_SNAP_INV_OFF 
TFM_MODAL_SNAP_TOGGLE 
TFM_MODAL_AXIS_X 
TFM_MODAL_AXIS_Y 
TFM_MODAL_AXIS_Z 
TFM_MODAL_PLANE_X 
TFM_MODAL_PLANE_Y 
TFM_MODAL_PLANE_Z 
TFM_MODAL_CONS_OFF 
TFM_MODAL_ADD_SNAP 
TFM_MODAL_REMOVE_SNAP 
TFM_MODAL_PROPSIZE_UP 
TFM_MODAL_PROPSIZE_DOWN 
TFM_MODAL_AUTOIK_LEN_INC 
TFM_MODAL_AUTOIK_LEN_DEC 
TFM_MODAL_NODE_ATTACH_ON 
TFM_MODAL_NODE_ATTACH_OFF 
TFM_MODAL_PROPSIZE 

For analog input, like trackpad.

TFM_MODAL_INSERTOFS_TOGGLE_DIR 

Node editor insert offset (also called auto-offset) direction toggle.

TFM_MODAL_AUTOCONSTRAINT 
TFM_MODAL_AUTOCONSTRAINTPLANE 
TFM_MODAL_PRECISION 
TFM_MODAL_VERT_EDGE_SLIDE 
TFM_MODAL_TRACKBALL 
TFM_MODAL_ROTATE_NORMALS 
TFM_MODAL_EDIT_SNAP_SOURCE_ON 
TFM_MODAL_EDIT_SNAP_SOURCE_OFF 
TFM_MODAL_PASSTHROUGH_NAVIGATE 

Definition at line 246 of file transform.hh.

◆ eRedrawFlag

TransInfo.redraw

Enumerator
TREDRAW_NOTHING 
TREDRAW_SOFT 
TREDRAW_HARD 

Definition at line 214 of file transform.hh.

◆ eSnapDir

enum eSnapDir

TransSnap.direction

Enumerator
DIR_GLOBAL_X 
DIR_GLOBAL_Y 
DIR_GLOBAL_Z 

Definition at line 183 of file transform.hh.

◆ eTConstraint

TransCon.mode, #TransInfo.con.mode

Enumerator
CON_APPLY 

When set constraints are in use.

CON_AXIS0 

These are only used for modal execution.

CON_AXIS1 
CON_AXIS2 
CON_SELECT 
CON_NOFLIP 

Does not reorient vector to face viewport when on.

CON_USER 

Definition at line 191 of file transform.hh.

◆ eTContext

enum eTContext

TransInfo.options

Enumerator
CTX_NONE 
CTX_CAMERA 
CTX_CURSOR 
CTX_EDGE_DATA 
CTX_GPENCIL_STROKES 
CTX_MASK 
CTX_MOVIECLIP 
CTX_OBJECT 
CTX_PAINT_CURVE 
CTX_POSE_BONE 
CTX_TEXTURE_SPACE 
CTX_SEQUENCER_IMAGE 
CTX_NO_PET 
CTX_AUTOCONFIRM 
CTX_OBMODE_XFORM_OBDATA 

When transforming object's, adjust the object data so it stays in the same place.

CTX_OBMODE_XFORM_SKIP_CHILDREN 

Transform object parents without moving their children.

CTX_VIEW2D_EDGE_PAN 

Enable edge scrolling in 2D views.

Definition at line 61 of file transform.hh.

◆ eTFlag

enum eTFlag

TransInfo.flag

Enumerator
T_EDIT 
Note
We could remove 'T_EDIT' and use 'obedit_type', for now ensure they're in sync.
T_POINTS 

Transform points, having no rotation/scale.

T_NO_CONSTRAINT 

Restrictions flags.

T_NULL_ONE 
T_PROP_EDIT 
T_PROP_CONNECTED 
T_PROP_PROJECTED 
T_V3D_ALIGN 
T_2D_EDIT 

For 2D views such as UV or f-curve.

T_CLIP_UV 
T_AUTOIK 

Auto-IK is on.

T_NO_MIRROR 

Don't use mirror even if the data-block option is set.

T_INPUT_IS_VALUES_FINAL 

To indicate that the value set in the value parameter is the final value of the transformation, modified only by the constrain.

T_MODAL 

To specify if we save back settings at the end.

T_NO_PROJECT 

No re-topology (projection).

T_RELEASE_CONFIRM 
T_ALT_TRANSFORM 

Alternative transformation. used to add offset to tracking markers.

T_OVERRIDE_CENTER 

#TransInfo.center has been set, don't change it.

T_MODAL_CURSOR_SET 
T_CLNOR_REBUILD 
T_AUTOMERGE 

Merges unselected into selected after transforming (runs after transforming).

T_AUTOSPLIT 

Runs auto-merge & splits.

T_EVENT_DRAG_START 

Use drag-start position of the event, otherwise use the cursor coordinates (unmodified).

T_NO_CURSOR_WRAP 

No cursor wrapping on region bounds.

T_NO_GIZMO 

Do not display Xform gizmo even though it is available.

T_DRAW_SNAP_SOURCE 
T_DUPLICATED_KEYFRAMES 

Special flag for when the transform code is called after keys have been duplicated.

Definition at line 89 of file transform.hh.

◆ eTHelpline

enum eTHelpline

TransInfo.helpline

Enumerator
HLP_NONE 
HLP_SPRING 
HLP_ANGLE 
HLP_HARROW 
HLP_VARROW 
HLP_CARROW 
HLP_TRACKBALL 

Definition at line 222 of file transform.hh.

◆ eTModifier

enum eTModifier

TransInfo.modifiers

Enumerator
MOD_CONSTRAINT_SELECT_AXIS 
MOD_PRECISION 
MOD_SNAP 
MOD_SNAP_INVERT 
MOD_CONSTRAINT_SELECT_PLANE 
MOD_NODE_ATTACH 
MOD_SNAP_FORCED 
MOD_EDIT_SNAP_SOURCE 

Definition at line 160 of file transform.hh.

◆ eTOType

enum eTOType
Enumerator
O_DEFAULT 
O_SCENE 
O_SET 

Definition at line 232 of file transform.hh.

◆ eTSnap

enum eTSnap

TransSnap.status

Enumerator
SNAP_RESETTED 
SNAP_SOURCE_FOUND 
SNAP_TARGET_FOUND 
SNAP_MULTI_POINTS 

Definition at line 173 of file transform.hh.

◆ eTState

enum eTState

TransInfo.state

Enumerator
TRANS_STARTING 
TRANS_RUNNING 
TRANS_CONFIRM 
TRANS_CANCEL 

Definition at line 206 of file transform.hh.

◆ MouseInputMode

Enumerator
INPUT_NONE 
INPUT_VECTOR 
INPUT_SPRING 
INPUT_SPRING_FLIP 
INPUT_SPRING_DELTA 
INPUT_ANGLE 
INPUT_ANGLE_SPRING 
INPUT_TRACKBALL 
INPUT_HORIZONTAL_RATIO 
INPUT_HORIZONTAL_ABSOLUTE 
INPUT_VERTICAL_RATIO 
INPUT_VERTICAL_ABSOLUTE 
INPUT_CUSTOM_RATIO 
INPUT_CUSTOM_RATIO_FLIP 

Definition at line 740 of file transform.hh.

Function Documentation

◆ applyAspectRatio()

◆ applyMouseInput()

◆ applyTransObjects()

◆ calculateCenter()

◆ calculateCenter2D()

◆ calculateCenterActive()

◆ calculateCenterBound()

void calculateCenterBound ( TransInfo * t,
float r_center[3] )

◆ calculateCenterCursor()

◆ calculateCenterCursor2D()

◆ calculateCenterCursorGraph2D()

◆ calculateCenterLocal()

void calculateCenterLocal ( TransInfo * t,
const float center_global[3] )

◆ calculateCenterMedian()

void calculateCenterMedian ( TransInfo * t,
float r_center[3] )

◆ calculatePropRatio()

◆ checkUseAxisMatrix()

◆ convertViewVec()

◆ ENUM_OPERATORS()

ENUM_OPERATORS ( eTFlag ,
T_DUPLICATED_KEYFRAMES  )

◆ freeCustomNormalArray()

◆ freeTransCustomDataForMode()

void freeTransCustomDataForMode ( TransInfo * t)

Needed for mode switching.

Definition at line 731 of file transform_generics.cc.

References TransInfo::custom, FOREACH_TRANS_DATA_CONTAINER, freeTransCustomData(), and TransCustomDataContainer::mode.

Referenced by resetTransModal().

◆ initMouseInput()

void initMouseInput ( TransInfo * t,
MouseInput * mi,
const blender::float2 & center,
const blender::float2 & mval,
bool precision )

Referenced by initTimeScale(), and initTransform().

◆ initMouseInputMode()

void initMouseInputMode ( TransInfo * t,
MouseInput * mi,
MouseInputMode mode )

Definition at line 351 of file transform_input.cc.

References MouseInput::apply, calcSpringFactor(), TransInfo::context, CTX_wm_space_seq(), CTX_wm_window(), data, MouseInput::data, MouseInput::factor, SpaceSeq::flag, TransInfo::flag, TransInfo::helpline, HLP_ANGLE, HLP_CARROW, HLP_HARROW, HLP_NONE, HLP_SPRING, HLP_TRACKBALL, HLP_VARROW, MouseInput::imval, INPUT_ANGLE, INPUT_ANGLE_SPRING, INPUT_CUSTOM_RATIO, INPUT_CUSTOM_RATIO_FLIP, INPUT_HORIZONTAL_ABSOLUTE, INPUT_HORIZONTAL_RATIO, INPUT_NONE, INPUT_SPRING, INPUT_SPRING_DELTA, INPUT_SPRING_FLIP, INPUT_TRACKBALL, INPUT_VECTOR, INPUT_VERTICAL_ABSOLUTE, INPUT_VERTICAL_RATIO, InputAngle(), InputAngleSpring(), InputCustomRatio(), InputCustomRatioFlip(), InputHorizontalAbsolute(), InputHorizontalRatio(), InputSpring(), InputSpringDelta(), InputSpringFlip(), InputTrackBall(), InputVector(), InputVerticalAbsolute(), InputVerticalRatio(), MEM_callocN, MEM_freeN(), TransInfo::mode, InputAngle_Data::mval_prev, MouseInput::precision_factor, T_MODAL, T_MODAL_CURSOR_SET, TFM_SEQ_SLIDE, transform_mode_edge_seq_slide_use_restore_handle_selection(), transform_seq_slide_cursor_get(), MouseInput::use_virtual_mval, WM_cursor_modal_set(), WM_CURSOR_NONE, and WM_CURSOR_NSEW_SCROLL.

Referenced by init_mode_impl(), initAlign(), initBakeTime(), initBend(), initBoneEnvelope(), initBoneRoll(), initBoneSize(), initCurveShrinkFatten(), initEdgeSlide_ex(), initGPOpacity(), initGPShrinkFatten(), initMaskShrinkFatten(), initMirror(), initNormalRotation(), initPushPull(), initResize(), initRotation(), initSeqSlide(), initShear_mouseInputMode(), initShrinkFatten(), initSkinResize(), initTilt(), initTimeScale(), initTimeSlide(), initTimeTranslate(), initToSphere(), initTrackball(), initTranslation(), and initVertSlide_ex().

◆ initTransform()

bool initTransform ( bContext * C,
TransInfo * t,
wmOperator * op,
const wmEvent * event,
int mode )
Note
Caller needs to free t on a 0 return.
Warning
event might be NULL (when tweaking from redo panel)
See also
saveTransform which writes these values back.

Definition at line 1873 of file editors/transform/transform.cc.

References applyMouseInput(), BKE_editmesh_lnorspace_update(), BMEditMesh::bm, BM_lnorspace_invalidate(), C, calculateCenter(), calculatePropRatio(), TransInfo::center2d, TransInfo::con, CON_APPLY, TransInfo::context, create_trans_data(), CTX_CURSOR, CTX_GPENCIL_STROKES, CTX_TEXTURE_SPACE, CTX_VIEW2D_EDGE_PAN, CTX_wm_manager(), TransInfo::data_len_all, TransInfo::data_type, TransInfo::draw_handle_cursor, TransInfo::draw_handle_pixel, TransInfo::draw_handle_view, drawTransformPixel(), drawTransformView(), ED_region_draw_cb_activate(), ELEM, EVT_LEFTALTKEY, EVT_LEFTCTRLKEY, EVT_LEFTSHIFTKEY, EVT_OSKEY, EVT_RIGHTALTKEY, EVT_RIGHTCTRLKEY, EVT_RIGHTSHIFTKEY, TransInfo::flag, FOREACH_TRANS_DATA_CONTAINER, MouseInput::imval, initMouseInput(), initSnapping(), initTransInfo(), TransInfo::is_launch_event_drag, wmKeyMap::items, TransInfo::keymap, KM_ALT, KM_CLICK_DRAG, KM_CTRL, KM_OSKEY, KM_PRESS, KM_SHIFT, KMI_INACTIVE, TransInfo::launch_event, LISTBASE_FOREACH, MOD_NODE_ATTACH, MOD_SNAP_INVERT, wmOperatorType::modalkeymap, TransCon::mode, TransInfo::mode, wmEvent::modifier, TransInfo::modifiers, TransInfo::mouse, TransInfo::mval, OB_MESH, TransInfo::obedit_type, options, TransInfo::options, TransInfo::orient_axis, TransInfo::orient_axis_ortho, postTrans(), wmOperator::ptr, TransInfo::region, REGION_DRAW_POST_PIXEL, REGION_DRAW_POST_VIEW, RGN_TYPE_ANY, RNA_property_boolean_get(), RNA_property_boolean_set(), RNA_property_enum_get(), RNA_property_is_set(), RNA_struct_find_property(), setUserConstraint(), SPACE_ACTION, SPACE_CLIP, SPACE_GRAPH, SPACE_IMAGE, SPACE_NODE, SPACE_SEQ, SPACE_TYPE_ANY, SPACE_VIEW3D, TransInfo::spacemtx, TransInfo::spacetype, TransInfo::state, T_CLNOR_REBUILD, T_EDIT, T_MODAL, T_PROP_EDIT, TD_SELECTED, TFM_MODAL_NODE_ATTACH_OFF, TFM_MODAL_SNAP_INV_ON, TFM_RESIZE, TFM_ROTATION, TFM_TRANSLATION, BMesh::totvert, BMesh::totvertsel, TRANS_CANCEL, TRANS_STARTING, TransConvertType_Node, transform_draw_cursor_draw(), transform_draw_cursor_poll(), transform_mode_init(), transform_mode_really_used(), ARegion::type, wmEvent::type, wmOperator::type, unit_m3(), TransInfo::values, WM_keymap_active(), WM_paint_cursor_activate(), and WM_userdef_event_type_from_keymap_type().

Referenced by transformops_data().

◆ initTransInfo()

void initTransInfo ( bContext * C,
TransInfo * t,
wmOperator * op,
const wmEvent * event )

Setup internal data, mouse, vectors

Note
op and event can be NULL
See also
saveTransform does the reverse.

Definition at line 116 of file transform_generics.cc.

References bScreen::animtimer, TransInfo::animtimer, TransInfo::area, TransInfo::around, TransInfo::aspect, AUTO_MERGE, AUTO_MERGE_AND_SPLIT, ToolSettings::automerge, BIF_countTransformOrientation(), BKE_paint_brush(), BKE_paint_get_active_from_context(), BKE_view_layer_active_object_get(), BKE_view_layer_synced_ensure(), BLI_assert, BRUSH_CURVE, calculateCenter2D(), calculateCenterLocal(), TransInfo::center_global, TransInfo::con, CON_APPLY, CON_AXIS0, CON_AXIS1, CON_AXIS2, copy_v4_v4(), CTX_CURSOR, CTX_data_depsgraph_pointer(), CTX_data_scene(), CTX_data_tool_settings(), CTX_data_view_layer(), CTX_EDGE_DATA, CTX_GPENCIL_STROKES, CTX_MASK, CTX_MOVIECLIP, CTX_NO_PET, CTX_PAINT_CURVE, CTX_SEQUENCER_IMAGE, CTX_TEXTURE_SPACE, CTX_VIEW2D_EDGE_PAN, CTX_wm_area(), CTX_wm_manager(), CTX_wm_message_bus(), CTX_wm_region(), TransInfo::data_container, TransInfo::data_container_len, TransInfo::data_len_all, TransInfo::depsgraph, ED_screen_animation_playing(), ED_space_clip_check_show_maskedit(), ED_space_clip_check_show_trackedit(), ED_space_image_show_uvedit(), ED_view3d_navigation_init(), ELEM, Brush::flag, TransInfo::flag, wmOperator::flag, TransInfo::helpline, HLP_NONE, ToolSettings::imapaint, MouseInput::imval, TransformOrientationSlot::index_custom, initNumInput(), TransInfo::is_orient_default_overwrite, ISMOUSE_BUTTON, wmKeyMap::items, KMI_INACTIVE, TransInfo::launch_event, LISTBASE_FOREACH, TransInfo::mat, TransInfo::matrix, TransInfo::mbus, MEM_callocN, wmOperatorType::modalkeymap, Object::mode, SpaceImage::mode, TransCon::mode, TransInfo::mode, TransInfo::mode_info, TransInfo::mouse, mul_v3_v3(), TransInfo::mval, wmEvent::mval, TransInfo::num, O_DEFAULT, O_SCENE, O_SET, OB_GREASE_PENCIL, OB_MESH, OB_MODE_ALL_PAINT, OB_MODE_EDIT, OB_MODE_EDIT_GPENCIL_LEGACY, OB_MODE_OBJECT, OB_MODE_SCULPT_CURVES, TransInfo::obedit_type, OP_IS_REPEAT_LAST, TransInfo::options, TransInfo::orient, TransInfo::orient_axis, TransInfo::orient_axis_ortho, TransInfo::orient_type_mask, Scene::orientation_slots, ImagePaintSettings::paint, printf, PROP_EDIT_CONNECTED, PROP_EDIT_PROJECTED, PROP_EDIT_USE, TransInfo::prop_mode, TransInfo::prop_size, wmOperator::ptr, TransInfo::redraw, TransInfo::region, ARegion::regiontype, TransInfo::remove_on_cancel, TransInfo::reports, wmOperator::reports, RGN_TYPE_PREVIEW, RGN_TYPE_WINDOW, RNA_boolean_get(), RNA_property_array_check(), RNA_property_boolean_get(), RNA_property_boolean_get_array(), RNA_property_boolean_set(), RNA_property_enum_get(), RNA_property_float_get(), RNA_property_float_get_array(), RNA_property_is_set(), RNA_struct_find_property(), SCE_ORIENT_DEFAULT, SCE_XFORM_AXIS_ALIGN, TransInfo::scene, SET_FLAG_FROM_TEST, TransInfo::settings, setTransformViewAspect(), setTransformViewMatrices(), SI_MODE_MASK, SI_MODE_PAINT, SPACE_ACTION, SPACE_CLIP, SPACE_EMPTY, SPACE_GRAPH, SPACE_IMAGE, SPACE_NODE, SPACE_SEQ, SPACE_VIEW3D, TransInfo::spacetype, T_ALT_TRANSFORM, t_around_get(), T_AUTOMERGE, T_AUTOSPLIT, T_DUPLICATED_KEYFRAMES, T_EVENT_DRAG_START, T_INPUT_IS_VALUES_FINAL, T_MODAL, T_NO_CURSOR_WRAP, T_NO_MIRROR, T_OVERRIDE_CENTER, T_PROP_CONNECTED, T_PROP_EDIT, T_PROP_PROJECTED, T_RELEASE_CONFIRM, T_V3D_ALIGN, t_view_get(), TFM_BWEIGHT, TFM_EDGE_CREASE, TFM_EDGE_SLIDE, TFM_MODAL_PASSTHROUGH_NAVIGATE, TFM_RESIZE, TFM_ROTATION, TFM_SHRINKFATTEN, TFM_TRACKBALL, TFM_TRANSLATION, TFM_VERT_SLIDE, Scene::toolsettings, transdata_check_local_islands(), ToolSettings::transform_flag, transform_gizmo_3d_model_from_constraint_and_mode_init(), transform_orientation_matrix_get(), transform_orientations_current_set(), TREDRAW_HARD, Object::type, TransformOrientationSlot::type, TransInfo::type, wmOperator::type, unit_m3(), USER_RELEASECONFIRM, ToolSettings::uvcalc_flag, UVCALC_TRANSFORM_CORRECT_SLIDE, V3D_AROUND_LOCAL_ORIGINS, V3D_ORIENT_CUSTOM, V3D_ORIENT_CUSTOM_MATRIX, V3D_ORIENT_GLOBAL, V3D_ORIENT_LOCAL, TransInfo::values, TransInfo::values_modal_offset, TransInfo::view, TransInfo::view_layer, TransInfo::vod, WM_event_drag_start_mval_fl(), WM_keymap_active(), and zero_v3().

Referenced by calculateTransformCenter(), and initTransform().

◆ postTrans()

◆ projectFloatView()

void projectFloatView ( TransInfo * t,
const float vec[3],
float adr[2] )

◆ projectFloatViewEx()

◆ projectIntView()

void projectIntView ( TransInfo * t,
const float vec[3],
int adr[2] )

Definition at line 344 of file editors/transform/transform.cc.

References projectIntViewEx(), and V3D_PROJ_TEST_NOP.

Referenced by projectFloatViewEx().

◆ projectIntViewEx()

◆ removeAspectRatio()

◆ resetTransModal()

void resetTransModal ( TransInfo * t)

Free data before switching to another mode.

Definition at line 53 of file transform_generics.cc.

References freeTransCustomDataForMode().

Referenced by transformEvent().

◆ resetTransRestrictions()

void resetTransRestrictions ( TransInfo * t)

Definition at line 58 of file transform_generics.cc.

References TransInfo::flag.

Referenced by transformEvent().

◆ restoreTransObjects()

◆ saveTransform()

void saveTransform ( bContext * C,
TransInfo * t,
wmOperator * op )
See also
initTransform which reads values from the operator.

Definition at line 1655 of file editors/transform/transform.cc.

References BKE_view_layer_active_object_get(), BKE_view_layer_synced_ensure(), TransInfo::con, CON_APPLY, CON_AXIS0, CON_AXIS1, CON_AXIS2, constraintModeToIndex(), CTX_data_tool_settings(), CTX_MASK, CTX_NO_PET, ELEM, TransInfo::flag, wmOperator::flag, Scene::id, TransInfo::mbus, MOD_SNAP, MOD_SNAP_FORCED, Object::mode, TransCon::mode, TransInfo::mode, TransSnap::mode, TransInfo::modifiers, OB_MODE_OBJECT, OP_IS_REPEAT, TransInfo::options, TransInfo::orient, TransInfo::orient_axis, TransInfo::orient_axis_ortho, TransInfo::orient_curr, wmMsgParams_RNA::prop, PROP_EDIT_CONNECTED, PROP_EDIT_PROJECTED, PROP_EDIT_USE, ToolSettings::prop_mode, TransInfo::prop_mode, TransInfo::prop_size, ToolSettings::proportional_action, ToolSettings::proportional_edit, ToolSettings::proportional_fcurve, ToolSettings::proportional_mask, ToolSettings::proportional_objects, ToolSettings::proportional_size, wmMsgParams_RNA::ptr, wmOperator::ptr, RNA_boolean_set(), RNA_enum_set(), RNA_float_set(), RNA_float_set_array(), RNA_pointer_create(), RNA_property_array_check(), RNA_property_boolean_set(), RNA_property_boolean_set_array(), RNA_property_enum_get(), RNA_property_enum_set(), RNA_property_float_get(), RNA_property_float_set(), RNA_property_float_set_array(), RNA_property_is_set(), RNA_property_unset(), RNA_struct_find_property(), SCE_SNAP, SCE_SNAP_INDIVIDUAL_PROJECT, SCE_SNAP_TARGET_NOT_ACTIVE, SCE_SNAP_TARGET_NOT_EDITED, SCE_SNAP_TARGET_NOT_NONEDITED, SCE_SNAP_TARGET_ONLY_SELECTABLE, TransInfo::scene, SET_FLAG_FROM_TEST, TransInfo::settings, TransSnap::source_operation, SPACE_ACTION, SPACE_GRAPH, TransInfo::spacemtx, TransInfo::spacetype, TransInfo::state, T_ALT_TRANSFORM, T_MODAL, T_NO_MIRROR, T_PROP_CONNECTED, T_PROP_EDIT, T_PROP_EDIT_ALL, T_PROP_PROJECTED, TransSnap::target_operation, TFM_SHRINKFATTEN, TRANS_CANCEL, transform_snap_flag_from_spacetype_ptr(), transformModeUseSnap(), TransInfo::tsnap, TransInfo::type, ToolSettings::uvcalc_flag, UVCALC_TRANSFORM_CORRECT_SLIDE, V3D_ORIENT_CUSTOM_MATRIX, TransInfo::values_final, TransInfo::view_layer, and WM_msg_publish_rna_params().

Referenced by transformops_exit().

◆ setCustomPoints()

void setCustomPoints ( TransInfo * t,
MouseInput * mi,
const int mval_start[2],
const int mval_end[2] )

◆ setCustomPointsFromDirection()

void setCustomPointsFromDirection ( TransInfo * t,
MouseInput * mi,
const blender::float2 & dir )

◆ setInputPostFct()

void setInputPostFct ( MouseInput * mi,
void(* post )(TransInfo *t, float values[3]) )

Definition at line 482 of file transform_input.cc.

References MouseInput::post.

◆ setTransformViewAspect()

◆ setTransformViewMatrices()

◆ transdata_check_local_islands()

bool transdata_check_local_islands ( TransInfo * t,
short around )

◆ transform_apply_matrix()

bool transform_apply_matrix ( TransInfo * t,
float mat[4][4] )

Transform a single matrix using the current t->final_values.

Definition at line 2213 of file editors/transform/transform.cc.

References TransInfo::mode_info, and TransModeInfo::transform_matrix_fn.

Referenced by gizmo_modal(), and nla_transform_apply().

◆ transform_data_ext_rotate()

◆ transform_final_value_get()

void transform_final_value_get ( const TransInfo * t,
float * value,
int value_num )

Definition at line 2222 of file editors/transform/transform.cc.

References TransInfo::values_final.

Referenced by gizmo_modal().

◆ transform_input_reset()

void transform_input_reset ( TransInfo * t,
const blender::float2 & mval )

Referenced by snapsource_confirm().

◆ transform_input_update()

◆ transform_input_virtual_mval_reset()

◆ transform_modal_keymap()

◆ transform_object_deform_pose_armature_get()

◆ transform_view_vector_calc()

void transform_view_vector_calc ( const TransInfo * t,
const float focus[3],
float r_vec[3] )

Calculates projection vector based on a location.

Definition at line 63 of file editors/transform/transform.cc.

References copy_v3_v3(), normalize_v3(), TransInfo::persp, RV3D_ORTHO, sub_v3_v3v3(), and TransInfo::viewinv.

◆ transformApply()

◆ transformEnd()

◆ transformEvent()

int transformEvent ( TransInfo * t,
wmOperator * op,
const wmEvent * event )

Definition at line 984 of file editors/transform/transform.cc.

References addSnapPoint(), applyMouseInput(), TransInfo::area, BKE_workspace_status_clear(), BLI_assert, calculatePropRatio(), TransInfo::con, CON_APPLY, CON_AXIS2, TransInfo::context, CTX_CAMERA, CTX_NO_PET, CTX_wm_window(), CTX_wm_workspace(), wmEvent::customdata, TransInfo::data_type, ED_uvedit_live_unwrap_timer_check(), ELEM, EVT_CKEY, EVT_LEFTALTKEY, EVT_MODAL_MAP, EVT_OKEY, EVT_PADMINUS, EVT_PADPLUSKEY, EVT_RIGHTALTKEY, ListBase::first, TransInfo::flag, wmEvent::flag, TransModeInfo::handle_event_fn, handleNumInput(), handleSnapping(), hasNumInput(), IFACE_, initSelectConstraint(), initSnapping(), SpaceNode::insert_ofs_dir, ISMOUSE_MOTION, KM_ALT, KM_PRESS, KM_RELEASE, KM_SHIFT, TransInfo::launch_event, max_ff(), min_ff(), MOD_CONSTRAINT_SELECT_AXIS, MOD_CONSTRAINT_SELECT_PLANE, MOD_EDIT_SNAP_SOURCE, MOD_NODE_ATTACH, MOD_PRECISION, MOD_SNAP, MOD_SNAP_INVERT, TransCon::mode, TransInfo::mode, TransInfo::mode_info, wmEvent::modifier, TransInfo::modifiers, TransInfo::mouse, MOUSEMOVE, TransInfo::mval, wmEvent::mval, TransInfo::num, OPERATOR_PASS_THROUGH, TransInfo::options, TransInfo::orient, TransInfo::orient_curr, TransInfo::persp, postSelectConstraint(), MouseInput::precision, wmEvent::prev_type, wmEvent::prev_val, TransInfo::prop_mode, PROP_MODE_MAX, TransInfo::prop_size, TransInfo::redraw, TransInfo::region, ARegion::regiondata, removeSnapPoint(), resetTransModal(), resetTransRestrictions(), restoreTransObjects(), RV3D_NAVIGATING, RV3D_ORTHO, SCE_SNAP_TO_GRID, setLocalConstraint(), SNODE_INSERTOFS_DIR_LEFT, SNODE_INSERTOFS_DIR_RIGHT, sort_trans_data_dist(), SPACE_IMAGE, SPACE_NODE, SPACE_SEQ, SPACE_VIEW3D, ScrArea::spacedata, ScrArea::spacetype, TransInfo::spacetype, TransInfo::state, stopConstraint(), T_ALT_TRANSFORM, T_AUTOIK, T_NO_CONSTRAINT, T_PROP_CONNECTED, T_PROP_EDIT, T_PROP_SIZE_MAX, T_PROP_SIZE_MIN, T_RELEASE_CONFIRM, TransSnap::target_type, TFM_EDGE_SLIDE, TFM_MODAL_ADD_SNAP, TFM_MODAL_AUTOCONSTRAINT, TFM_MODAL_AUTOCONSTRAINTPLANE, TFM_MODAL_AUTOIK_LEN_DEC, TFM_MODAL_AUTOIK_LEN_INC, TFM_MODAL_AXIS_X, TFM_MODAL_AXIS_Y, TFM_MODAL_AXIS_Z, TFM_MODAL_CANCEL, TFM_MODAL_CONFIRM, TFM_MODAL_CONS_OFF, TFM_MODAL_EDIT_SNAP_SOURCE_ON, TFM_MODAL_INSERTOFS_TOGGLE_DIR, TFM_MODAL_NODE_ATTACH_OFF, TFM_MODAL_NODE_ATTACH_ON, TFM_MODAL_PLANE_X, TFM_MODAL_PLANE_Y, TFM_MODAL_PLANE_Z, TFM_MODAL_PRECISION, TFM_MODAL_PROPSIZE, TFM_MODAL_PROPSIZE_DOWN, TFM_MODAL_PROPSIZE_UP, TFM_MODAL_REMOVE_SNAP, TFM_MODAL_RESIZE, TFM_MODAL_ROTATE, TFM_MODAL_ROTATE_NORMALS, TFM_MODAL_SNAP_INV_OFF, TFM_MODAL_SNAP_INV_ON, TFM_MODAL_SNAP_TOGGLE, TFM_MODAL_TRACKBALL, TFM_MODAL_TRANSLATE, TFM_MODAL_VERT_EDGE_SLIDE, TFM_NORMAL_ROTATION, TFM_RESIZE, TFM_ROTATION, TFM_TRACKBALL, TFM_TRANSLATION, TFM_VERT_SLIDE, TIMER, TRANS_CANCEL, TRANS_CONFIRM, TRANS_RUNNING, TRANS_STARTING, TransConvertType_Mesh, TransConvertType_Tracking, transform_autoik_update(), transform_event_modal_constraint(), transform_mode_init(), transform_mode_is_changeable(), transform_mode_snap_source_init(), transform_snap_flag_from_modifiers_set(), TREDRAW_HARD, TREDRAW_SOFT, TransInfo::tsnap, TransInfo::type, wmEvent::type, V3D_ORIENT_NORMAL, wmEvent::val, validSnap(), TransInfo::values, TransInfo::view, TransInfo::vod, WM_EVENT_IS_REPEAT, and WM_window_status_area_tag_redraw().

Referenced by transform_modal().

◆ transformViewUpdate()