Blender V5.0
blender::ed::transform Namespace Reference

Namespaces

namespace  curves
namespace  pointcloud
namespace  greasepencil

Classes

struct  TransformBounds
struct  TransformCalcParams
struct  SnapObjectHitDepth
struct  SnapObjectParams
struct  TransDataBasic
struct  TransDataMirror
struct  TransDataExtension
struct  TransData2D
struct  TransDataCurveHandleFlags
struct  TransData
struct  TransSnapPoint
struct  TransSnap
struct  TransCon
struct  MouseInput
struct  TransCustomData
struct  TransCustomDataContainer
struct  TransDataContainer
struct  TransInfo
struct  TransConvertTypeInfo
struct  TransDataEdgeSlideVert
struct  TransDataVertSlideVert
struct  CurvesTransformData
struct  TransIslandData
struct  MirrorDataVert
struct  TransMirrorData
struct  TransMeshDataCrazySpace
struct  BoneInitData
struct  PoseInitData_Mirror
struct  TransDataGraph
struct  BeztMap
struct  TransDataMasking
struct  TransCustomData_PartialUpdate
struct  PartialTypeState
struct  TransCustomDataMesh
struct  TransCustomDataMergeGroup
struct  TransCustomDataLayer
struct  UVGroups
struct  TransDataNla
struct  IDGroupedTransData
struct  TransCustomDataNode
struct  TransDataObject
struct  TransDataPaintCurve
struct  TransformResult
struct  TransDataSeq
struct  TransSeq
struct  TransDataTracking
struct  TransformInitContext
struct  TransDataTrackingCurves
struct  GizmoGroup2D
struct  GizmoGroup_Resize2D
struct  GizmoGroup_Rotate2D
struct  GizmoGroup
struct  XFormCageWidgetGroup
struct  XFormShearWidgetGroup
struct  GizmoExtrudeGroup
struct  InputAngle_Data
struct  TransModeInfo
struct  TransDataGenericSlideVert
struct  BendCustomData
struct  SeqSlideParams
struct  EdgeSlideData
struct  EdgeSlideParams
struct  RotateMatrixCache
struct  ShearCustomData
struct  ShrinkFattenCustomData
struct  SnapSouceCustomData
struct  ToSphereInfo
struct  TranslateCustomData
struct  VertSlideData
struct  VertSlideParams
struct  TransformModeItem
struct  SnapObjectContext
struct  RayCastAll_Data
class  SnapData
struct  SnapCache_EditMesh
class  SnapData_Mesh
struct  TransSeqSnapData

Enumerations

enum  eTfmMode {
  TFM_INIT = -1 , TFM_DUMMY , TFM_TRANSLATION , TFM_ROTATION ,
  TFM_RESIZE , TFM_SKIN_RESIZE , TFM_TOSPHERE , TFM_SHEAR ,
  TFM_BEND , TFM_SHRINKFATTEN , TFM_TILT , TFM_TRACKBALL ,
  TFM_PUSHPULL , TFM_EDGE_CREASE , TFM_VERT_CREASE , TFM_MIRROR ,
  TFM_BONESIZE , TFM_BONE_ENVELOPE , TFM_CURVE_SHRINKFATTEN , TFM_MASK_SHRINKFATTEN ,
  TFM_BONE_ROLL , TFM_TIME_TRANSLATE , TFM_TIME_SLIDE , TFM_TIME_SCALE ,
  TFM_TIME_EXTEND , TFM_BAKE_TIME = 26 , TFM_DEPRECATED , TFM_BWEIGHT ,
  TFM_ALIGN , TFM_EDGE_SLIDE , TFM_VERT_SLIDE , TFM_SEQ_SLIDE ,
  TFM_BONE_ENVELOPE_DIST , TFM_NORMAL_ROTATION , TFM_GPENCIL_OPACITY
}
enum  eSnapEditType { SNAP_GEOM_FINAL = 0 , SNAP_GEOM_CAGE = 1 , SNAP_GEOM_EDIT = 2 }
enum  eSnapOcclusionTest { SNAP_OCCLUSION_NEVER = 0 , SNAP_OCCLUSION_AS_SEEM = 1 , SNAP_OCCLUSION_ALWAYS = 2 }
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 , T_ORIGIN = 1 << 27
}
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 ,
  MOD_NODE_FRAME = 1 << 8 , MOD_STRIP_CLAMP_HOLDS = 1 << 9
}
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_USER = 1 << 5
}
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 , HLP_ERROR = 7 ,
  HLP_ERROR_DASH = 8
}
enum  eTOType { O_DEFAULT = 0 , O_SCENE , O_SET }
enum  transDataTracking_Mode { transDataTracking_ModeTracks = 0 , transDataTracking_ModePlaneTracks = 1 }
enum  eArrowDirection { UP , DOWN , LEFT , RIGHT }
enum  {
  MAN_AXIS_TRANS_X = 0 , MAN_AXIS_TRANS_Y , MAN_AXIS_TRANS_Z , MAN_AXIS_TRANS_C ,
  MAN_AXIS_TRANS_XY , MAN_AXIS_TRANS_YZ , MAN_AXIS_TRANS_ZX , MAN_AXIS_ROT_X ,
  MAN_AXIS_ROT_Y , MAN_AXIS_ROT_Z , MAN_AXIS_ROT_C , MAN_AXIS_ROT_T ,
  MAN_AXIS_SCALE_X , MAN_AXIS_SCALE_Y , MAN_AXIS_SCALE_Z , MAN_AXIS_SCALE_C ,
  MAN_AXIS_SCALE_XY , MAN_AXIS_SCALE_YZ , MAN_AXIS_SCALE_ZX , MAN_AXIS_LAST = MAN_AXIS_SCALE_ZX + 1
}
enum  { MAN_AXES_ALL = 0 , MAN_AXES_TRANSLATE , MAN_AXES_ROTATE , MAN_AXES_SCALE }
enum  {
  ORIENTATION_NONE = 0 , ORIENTATION_NORMAL = 1 , ORIENTATION_VERT = 2 , ORIENTATION_EDGE = 3 ,
  ORIENTATION_FACE = 4
}
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 , TFM_MODAL_NODE_FRAME = 37 , TFM_MODAL_STRIP_CLAMP = 38
}
Transform Data
enum  {
  TD_SELECTED = 1 << 0 , TD_USEQUAT = 1 << 1 , TD_SINGLE_SCALE = 1 << 3 , TD_INDIVIDUAL_SCALE = 1 << 4 ,
  TD_NOCENTER = 1 << 5 , TD_NO_EXT = 1 << 6 , TD_SKIP = 1 << 7 , TD_BEZTRIPLE = 1 << 8 ,
  TD_NO_LOC = 1 << 9 , TD_NOTIMESNAP = 1 << 10 , TD_INTVALUES = 1 << 11 , TD_MIRROR_X = 1 << 12 ,
  TD_MIRROR_Y = 1 << 13 , TD_MIRROR_Z = 1 << 14 , TD_MIRROR_EDGE_X = 1 << 12 , TD_MIRROR_EDGE_Y = 1 << 13 ,
  TD_MIRROR_EDGE_Z = 1 << 14 , TD_MOVEHANDLE1 = 1 << 15 , TD_MOVEHANDLE2 = 1 << 16 , TD_PBONE_LOCAL_MTX_P = 1 << 17 ,
  TD_PBONE_LOCAL_MTX_C = 1 << 18 , TD_GREASE_PENCIL_FRAME = 1 << 19
}
Transform (Translate) Custom Data
enum  eTranslateRotateMode { TRANSLATE_ROTATE_OFF = 0 , TRANSLATE_ROTATE_ON , TRANSLATE_ROTATE_RESET }

Functions

void keymap_transform (wmKeyConfig *keyconf)
void transform_operatortypes ()
bool calculateTransformCenter (bContext *C, int centerMode, float cent3d[3], float cent2d[2])
void BIF_clearTransformOrientation (bContext *C)
void BIF_removeTransformOrientation (bContext *C, TransformOrientation *target)
void BIF_removeTransformOrientationIndex (bContext *C, int index)
bool BIF_createTransformOrientation (bContext *C, ReportList *reports, const char *name, bool use_view, bool activate, bool overwrite)
void BIF_selectTransformOrientation (bContext *C, TransformOrientation *target)
void ED_getTransformOrientationMatrix (const Scene *scene, ViewLayer *view_layer, const View3D *v3d, Object *ob, Object *obedit, short around, float r_orientation_mat[3][3])
int BIF_countTransformOrientation (const bContext *C)
void properties_register (wmOperatorType *ot, int flags)
void calc_orientation_from_type (const bContext *C, float r_mat[3][3])
short calc_orientation_from_type_ex (const Scene *scene, ViewLayer *view_layer, const View3D *v3d, const RegionView3D *rv3d, Object *ob, Object *obedit, short orientation_index, int pivot_point, float r_mat[3][3])
bool calc_pivot_pos (const bContext *C, const short pivot_type, float r_pivot_pos[3])
static void convertViewVec2D (View2D *v2d, float r_vec[3], int dx, int dy)
static void convertViewVec2D_mask (View2D *v2d, float r_vec[3], int dx, int dy)
static void viewRedrawForce (const bContext *C, TransInfo *t)
static void viewRedrawPost (bContext *C, TransInfo *t)
static bool transform_modal_item_poll (const wmOperator *op, int value)
static bool transform_event_modal_constraint (TransInfo *t, short modal_type)
static void tool_settings_update_snap_toggle (TransInfo *t)
static bool transinfo_show_overlay (TransInfo *t, ARegion *region)
static void drawTransformView (const bContext *, ARegion *region, void *arg)
static void drawAutoKeyWarning (TransInfo *t, ARegion *region)
static void drawTransformPixel (const bContext *, ARegion *region, void *arg)
 ENUM_OPERATORS (eTFlag, T_ORIGIN)
char constraintModeToChar (const TransInfo *t)
bool transform_mode_use_local_origins (const TransInfo *t)
void transform_around_single_fallback_ex (TransInfo *t, int data_len_all)
void transform_around_single_fallback (TransInfo *t)
static bool is_td2d_int (TransData2D *td2d)
static bool motionpath_need_update_pose (Scene *scene, Object *ob)
static bConstraintadd_temporary_ik_constraint (bPoseChannel *pchan, bKinematicConstraint *targetless_con)
static void update_deg_with_temporary_ik (Main *bmain, Object *ob)
static bool is_overlap (const float left_bound_a, const float right_bound_a, const float left_bound_b, const float right_bound_b)
static bool nlastrip_is_overlap (const NlaStrip *strip_a, const float offset_a, const NlaStrip *strip_b, const float offset_b)
static float transdata_get_time_shuffle_offset_side (ListBase *trans_datas, const bool shuffle_left)
static float transdata_get_time_shuffle_offset (ListBase *trans_datas)
static bool transdata_get_track_shuffle_offset_side (ListBase *trans_datas, const int shuffle_direction, int *r_total_offset)
static bool transdata_get_track_shuffle_offset (ListBase *trans_datas, int *r_track_offset)
static void store_transform_properties (const Scene *scene, Strip *strip, float2 origin, TransData *td)
static TransDataSeqToTransData (const Scene *scene, Strip *strip, TransData *td, TransData2D *td2d, int vert_index)
static void freeSeqData (TransInfo *, TransDataContainer *tc, TransCustomData *)
static void createTransSeqImageData (bContext *C, TransInfo *t)
static bool autokeyframe_sequencer_image (bContext *C, Scene *scene, StripTransform *transform, const int tmode)
static TransformResult transform_result_get (TransInfo *t, TransDataSeq *tdseq, TransData2D *td2d, Strip *strip)
static void image_transform_set (TransInfo *t)
static float2 calculate_translation_offset (TransInfo *t, TransDataSeq *tdseq)
static float2 calculate_new_origin_position (TransInfo *t, TransDataSeq *tdseq, TransData2D *td2d)
static void image_origin_set (TransInfo *t)
static void recalcData_sequencer_image (TransInfo *t)
static void special_aftertrans_update__sequencer_image (bContext *C, TransInfo *t)
static TransDataSeqToTransData (const Scene *scene, Strip *strip, const SeqRetimingKey *key, TransData *td, TransData2D *td2d, TransDataSeq *tdseq)
static void freeSeqData (TransInfo *t, TransDataContainer *tc, TransCustomData *custom_data)
static void create_trans_seq_clamp_data (TransInfo *t, const Scene *scene)
static void createTransSeqRetimingData (bContext *, TransInfo *t)
static void recalcData_sequencer_retiming (TransInfo *t)
static void drawArrow (const uint pos_id, const enum eArrowDirection dir)
bool transform_draw_cursor_poll (bContext *C)
void transform_draw_cursor_draw (bContext *C, const blender::int2 &xy, const blender::float2 &, void *customdata)
static void * t_view_get (TransInfo *t)
static int t_around_get (TransInfo *t)
static void freeTransCustomData (TransInfo *t, TransDataContainer *tc, TransCustomData *custom_data)
static void freeTransCustomDataContainer (TransInfo *t, TransDataContainer *tc, TransCustomDataContainer *tcdc)
static void transdata_restore_basic (TransDataBasic *td_basic)
static void restoreElement (TransData *td)
static bool transdata_center_global_get (const TransDataContainer *tc, const TransDataBasic *td_basic, float r_vec[3])
static void calculateCenter_FromAround (TransInfo *t, int around, float r_center[3])
static void calculateZfac (TransInfo *t)
static wmGizmoGroupgizmogroup_xform_find (TransInfo *t)
eTfmMode transform_mode_really_used (bContext *C, eTfmMode mode)
bool transdata_check_local_center (const TransInfo *t, short around)
bool transform_mode_is_changeable (const int mode)
bool transform_mode_affect_only_locations (const TransInfo *t)
static void TRANSFORM_OT_translate (wmOperatorType *ot)
static void TRANSFORM_OT_rotate (wmOperatorType *ot)
static void TRANSFORM_OT_tosphere (wmOperatorType *ot)
static void TRANSFORM_OT_resize (wmOperatorType *ot)
static void TRANSFORM_OT_skin_resize (wmOperatorType *ot)
static void TRANSFORM_OT_shear (wmOperatorType *ot)
static void TRANSFORM_OT_bend (wmOperatorType *ot)
static void TRANSFORM_OT_shrink_fatten (wmOperatorType *ot)
static void TRANSFORM_OT_push_pull (wmOperatorType *ot)
static void TRANSFORM_OT_tilt (wmOperatorType *ot)
static void TRANSFORM_OT_trackball (wmOperatorType *ot)
static void TRANSFORM_OT_mirror (wmOperatorType *ot)
static void TRANSFORM_OT_bbone_resize (wmOperatorType *ot)
static void TRANSFORM_OT_edge_slide (wmOperatorType *ot)
static void TRANSFORM_OT_vert_slide (wmOperatorType *ot)
static void TRANSFORM_OT_edge_crease (wmOperatorType *ot)
static void TRANSFORM_OT_vert_crease (wmOperatorType *ot)
static void TRANSFORM_OT_edge_bevelweight (wmOperatorType *ot)
static void TRANSFORM_OT_seq_slide (wmOperatorType *ot)
static void TRANSFORM_OT_rotate_normal (wmOperatorType *ot)
static wmOperatorStatus select_orientation_exec (bContext *C, wmOperator *op)
static wmOperatorStatus select_orientation_invoke (bContext *C, wmOperator *, const wmEvent *)
static void TRANSFORM_OT_select_orientation (wmOperatorType *ot)
static wmOperatorStatus delete_orientation_exec (bContext *C, wmOperator *)
static wmOperatorStatus delete_orientation_invoke (bContext *C, wmOperator *op, const wmEvent *)
static bool delete_orientation_poll (bContext *C)
static void TRANSFORM_OT_delete_orientation (wmOperatorType *ot)
static wmOperatorStatus create_orientation_exec (bContext *C, wmOperator *op)
static void TRANSFORM_OT_create_orientation (wmOperatorType *ot)
static void transformops_loopsel_hack (bContext *C, wmOperator *op)
static void transformops_exit (bContext *C, wmOperator *op)
static int transformops_mode (wmOperator *op)
static int transformops_data (bContext *C, wmOperator *op, const wmEvent *event)
static wmOperatorStatus transform_modal (bContext *C, wmOperator *op, const wmEvent *event)
static void transform_cancel (bContext *C, wmOperator *op)
static wmOperatorStatus transform_exec (bContext *C, wmOperator *op)
static wmOperatorStatus transform_invoke (bContext *C, wmOperator *op, const wmEvent *event)
static bool transform_poll_property (const bContext *C, wmOperator *op, const PropertyRNA *prop)
static bool tilt_poll (bContext *C)
static bool transform_shear_poll (bContext *C)
static void TRANSFORM_OT_transform (wmOperatorType *ot)
static wmOperatorStatus transform_from_gizmo_invoke (bContext *C, wmOperator *, const wmEvent *event)
static void TRANSFORM_OT_from_gizmo (wmOperatorType *ot)
static TransformOrientationfindOrientationName (ListBase *lb, const char *name)
static void uniqueOrientationName (ListBase *lb, char *name)
static TransformOrientationcreateViewSpace (bContext *C, ReportList *, const char *name, const bool overwrite)
static TransformOrientationcreateObjectSpace (bContext *C, ReportList *, const char *name, const bool overwrite)
static TransformOrientationcreateBoneSpace (bContext *C, ReportList *reports, const char *name, const bool overwrite)
static TransformOrientationcreateCurveSpace (bContext *C, ReportList *reports, const char *name, const bool overwrite)
static TransformOrientationcreateMeshSpace (bContext *C, ReportList *reports, const char *name, const bool overwrite)
static bool test_rotmode_euler (short rotmode)
static void axis_angle_to_gimbal_axis (float gmat[3][3], const float axis[3], const float angle)
bool gimbal_axis_pose (Object *ob, const bPoseChannel *pchan, float gmat[3][3])
bool gimbal_axis_object (Object *ob, float gmat[3][3])
bool transform_orientations_create_from_axis (float mat[3][3], const float x[3], const float y[3], const float z[3])
bool createSpaceNormal (float mat[3][3], const float normal[3])
bool createSpaceNormalTangent (float mat[3][3], const float normal[3], const float tangent[3])
void createSpaceNormalTangent_or_fallback (float mat[3][3], const float normal[3], const float tangent[3])
TransformOrientationaddMatrixSpace (bContext *C, float mat[3][3], const char *name, const bool overwrite)
void applyTransformOrientation (const TransformOrientation *ts, float r_mat[3][3], char r_name[64])
static int bone_children_clear_transflag (bPose &pose, bPoseChannel &pose_bone)
static int armature_bone_transflags_update (Object &ob, bArmature *arm, ListBase *lb)
static void handle_armature_parent_orientation (Object *ob, float r_mat[3][3])
static void handle_object_parent_orientation (Object *ob, float r_mat[3][3])
short transform_orientation_matrix_get (bContext *C, TransInfo *t, short orient_index, const float custom[3][3], float r_spacemtx[3][3])
const char * transform_orientations_spacename_get (TransInfo *t, const short orient_type)
void transform_orientations_current_set (TransInfo *t, const short orient_index)
static uint bm_mesh_elems_select_get_n__internal (BMesh *bm, BMElem **elems, const uint n, const BMIterType itype, const char htype)
static uint bm_mesh_verts_select_get_n (BMesh *bm, BMVert **elems, const uint n)
static uint bm_mesh_edges_select_get_n (BMesh *bm, BMEdge **elems, const uint n)
int getTransformOrientation_ex (const Scene *scene, ViewLayer *view_layer, const View3D *v3d, Object *ob, Object *obedit, const short around, float r_normal[3], float r_plane[3])
int getTransformOrientation (const bContext *C, float r_normal[3], float r_plane[3])
short * transform_snap_flag_from_spacetype_ptr (TransInfo *t, const struct PropertyRNA **r_prop)
static float4 occlusion_plane_create (float3 ray_dir, float3 ray_co, float3 ray_no)
static bool test_projected_vert_dist (const DistProjectedAABBPrecalc *precalc, const float(*clip_plane)[4], const int clip_plane_len, const bool is_persp, const float *co, BVHTreeNearest *nearest)
static bool test_projected_edge_dist (const DistProjectedAABBPrecalc *precalc, const float(*clip_plane)[4], const int clip_plane_len, const bool is_persp, const float va[3], const float vb[3], BVHTreeNearest *nearest)
eSnapMode snapArmature (SnapObjectContext *sctx, const Object *ob_eval, const float4x4 &obmat, bool is_object_active)
eSnapMode snapCamera (SnapObjectContext *sctx, const Object *object, const float4x4 &obmat, eSnapMode snap_to_flag)
eSnapMode snapCurve (SnapObjectContext *sctx, const Object *ob_eval, const float4x4 &obmat)
eSnapMode snap_object_editmesh (SnapObjectContext *sctx, const Object *ob_eval, const ID *id, const float4x4 &obmat, eSnapMode snap_to_flag, bool use_hide)
eSnapMode snap_object_mesh (SnapObjectContext *sctx, const Object *ob_eval, const ID *id, const float4x4 &obmat, eSnapMode snap_to_flag, bool skip_hidden, bool is_editmesh=false)
Transform Gizmo
void VIEW3D_GGT_xform_gizmo (wmGizmoGroupType *gzgt)
void VIEW3D_GGT_xform_gizmo_context (wmGizmoGroupType *gzgt)
static void gizmogroup_refresh_from_matrix (wmGizmoGroup *gzgroup, const float twmat[4][4], const float scale[3], const bool ignore_hidden)
static void rotation_get_fn (const wmGizmo *, wmGizmoProperty *gz_prop, void *value)
static void rotation_set_fn (const wmGizmo *, wmGizmoProperty *gz_prop, const void *value)
static void gizmo_3d_setup_default_matrix (wmGizmo *axis, const int axis_idx)
static void gizmo_3d_setup_draw_default (wmGizmo *axis, const int axis_idx)
static void gizmo_3d_setup_draw_from_twtype (wmGizmo *axis, const int axis_idx, const int twtype)
static void gizmo_3d_setup_draw_modal (wmGizmo *axis, const int axis_idx, const int twtype)
static GizmoGroupgizmogroup_init (wmGizmoGroup *gzgroup)
static wmOperatorStatus gizmo_modal (bContext *C, wmGizmo *widget, const wmEvent *event, eWM_GizmoFlagTweak)
static void gizmogroup_init_properties_from_twtype (wmGizmoGroup *gzgroup)
static void WIDGETGROUP_gizmo_setup (const bContext *C, wmGizmoGroup *gzgroup)
static void gizmo_refresh_from_matrix (wmGizmo *axis, const int axis_idx, const int twtype, const float twmat[4][4], const float scale[3])
static void WIDGETGROUP_gizmo_refresh (const bContext *C, wmGizmoGroup *gzgroup)
static void WIDGETGROUP_gizmo_message_subscribe (const bContext *C, wmGizmoGroup *gzgroup, wmMsgBus *mbus)
static void gizmogroup_hide_all (GizmoGroup *ggd)
static void WIDGETGROUP_gizmo_draw_prepare (const bContext *C, wmGizmoGroup *gzgroup)
static void gizmo_3d_draw_invoke (wmGizmoGroup *gzgroup, const ARegion *region, const int axis_idx_active, const float mval[2])
static void WIDGETGROUP_gizmo_invoke_prepare (const bContext *C, wmGizmoGroup *gzgroup, wmGizmo *gz, const wmEvent *event)
static bool WIDGETGROUP_gizmo_poll_generic (View3D *v3d)
static bool WIDGETGROUP_gizmo_poll_context (const bContext *C, wmGizmoGroupType *)
static bool WIDGETGROUP_gizmo_poll_tool (const bContext *C, wmGizmoGroupType *gzgt)
Scale Cage Gizmo
void VIEW3D_GGT_xform_cage (wmGizmoGroupType *gzgt)
static bool WIDGETGROUP_xform_cage_poll (const bContext *C, wmGizmoGroupType *gzgt)
static void WIDGETGROUP_xform_cage_setup (const bContext *, wmGizmoGroup *gzgroup)
static void WIDGETGROUP_xform_cage_refresh (const bContext *C, wmGizmoGroup *gzgroup)
static void WIDGETGROUP_xform_cage_message_subscribe (const bContext *C, wmGizmoGroup *gzgroup, wmMsgBus *mbus)
static void WIDGETGROUP_xform_cage_draw_prepare (const bContext *C, wmGizmoGroup *gzgroup)
Transform Shear Gizmo
void VIEW3D_GGT_xform_shear (wmGizmoGroupType *gzgt)
static bool WIDGETGROUP_xform_shear_poll (const bContext *C, wmGizmoGroupType *gzgt)
static void WIDGETGROUP_xform_shear_setup (const bContext *, wmGizmoGroup *gzgroup)
static void WIDGETGROUP_xform_shear_refresh (const bContext *C, wmGizmoGroup *gzgroup)
static void WIDGETGROUP_xform_shear_message_subscribe (const bContext *C, wmGizmoGroup *gzgroup, wmMsgBus *mbus)
static void WIDGETGROUP_xform_shear_draw_prepare (const bContext *C, wmGizmoGroup *gzgroup)
Scale Handles

Defines public functions, not the gizmo itself:

void ED_widgetgroup_gizmo2d_resize_callbacks_set (wmGizmoGroupType *gzgt)
static GizmoGroup_Resize2Dgizmogroup2d_resize_init (wmGizmoGroup *gzgroup)
static void gizmo2d_resize_refresh (const bContext *C, wmGizmoGroup *gzgroup)
static void gizmo2d_resize_draw_prepare (const bContext *C, wmGizmoGroup *gzgroup)
static void gizmo2d_resize_setup (const bContext *, wmGizmoGroup *gzgroup)
static void gizmo2d_resize_invoke_prepare (const bContext *C, wmGizmoGroup *, wmGizmo *gz, const wmEvent *)
static void gizmo2d_resize_message_subscribe (const bContext *C, wmGizmoGroup *gzgroup, wmMsgBus *mbus)
Rotate Handles

Defines public functions, not the gizmo itself:

  • #ED_widgetgroup_gizmo2d_rotate_setup
void ED_widgetgroup_gizmo2d_rotate_callbacks_set (wmGizmoGroupType *gzgt)
static GizmoGroup_Rotate2Dgizmogroup2d_rotate_init (wmGizmoGroup *gzgroup)
static void gizmo2d_rotate_refresh (const bContext *C, wmGizmoGroup *gzgroup)
static void gizmo2d_rotate_draw_prepare (const bContext *C, wmGizmoGroup *gzgroup)
static void gizmo2d_rotate_setup (const bContext *, wmGizmoGroup *gzgroup)
static void gizmo2d_rotate_message_subscribe (const bContext *C, wmGizmoGroup *gzgroup, wmMsgBus *mbus)
Utilities
int calc_gizmo_stats (const bContext *C, const TransformCalcParams *params, TransformBounds *tbounds, RegionView3D *rv3d)
static wmGizmogizmo_get_axis_from_index (const GizmoGroup *ggd, const short axis_idx)
static short gizmo_get_axis_type (const int axis_idx)
static uint gizmo_orientation_axis (const int axis_idx, bool *r_is_plane)
static bool gizmo_is_axis_visible (const RegionView3D *rv3d, const int twtype, const float idot[3], const int axis_type, const int axis_idx)
static void gizmo_get_axis_color (const int axis_idx, const float idot[3], float r_col[4], float r_col_hi[4])
static void gizmo_get_axis_constraint (const int axis_idx, bool r_axis[3])
static void reset_tw_center (TransformBounds *tbounds)
static void calc_tw_center (TransformBounds *tbounds, const float co[3])
static void protectflag_to_drawflags (short protectflag, short *drawflags)
static Objectgizmo_3d_transform_space_object_get (Scene *scene, ViewLayer *view_layer)
static int gizmo_3d_foreach_selected (const bContext *C, const short orient_index, const bool use_curve_handles, const bool use_only_center, FunctionRef< void(const float3 &)> user_fn, const float(**r_mat)[4], short *r_drawflags)
static void gizmo_get_idot (const RegionView3D *rv3d, float r_idot[3])
static bool gizmo_3d_calc_pos (const bContext *C, const Scene *scene, const TransformBounds *tbounds, const short pivot_type, float r_pivot_pos[3])
static void gizmo_line_range (const int twtype, const short axis_type, float *r_start, float *r_end)
static void gizmo_3d_dial_matrixbasis_calc (const ARegion *region, const float axis[3], const float center_global[3], const float mval_init[2], float r_mat_basis[4][4])
static const IDdata_for_snap (Object *ob_eval, eSnapEditType edit_mode_type, bool *r_use_hide)
static const IDdata_for_snap_dupli (ID *ob_data)
Snap calculation
bool snap_sequencer_to_closest_strip_calc (Scene *scene, ARegion *region, int frame_1, int frame_2, int *r_snap_distance, float *r_snap_frame)
void sequencer_snap_point (ARegion *region, float snap_point)
bool snap_sequencer_calc (TransInfo *t)
void snap_sequencer_apply_seqslide (TransInfo *t, float *vec)
void snap_sequencer_image_apply_translate (TransInfo *t, float vec[2])
static bool snap_calc_timeline (TransInfo *t, const TransSeqSnapData *snap_data)
static bool snap_calc_preview_origin (TransInfo *t, const TransSeqSnapData *snap_data)
static bool snap_calc_preview_image (TransInfo *t, const TransSeqSnapData *snap_data)
static int snap_sequencer_to_closest_strip_ex (TransInfo *t, const int frame_1, const int frame_2)
Public Object Snapping API
SnapObjectContextsnap_object_context_create (Scene *scene, int flag)
void snap_object_context_destroy (SnapObjectContext *sctx)
void snap_object_context_set_editmesh_callbacks (SnapObjectContext *sctx, bool(*test_vert_fn)(BMVert *, void *user_data), bool(*test_edge_fn)(BMEdge *, void *user_data), bool(*test_face_fn)(BMFace *, void *user_data), void *user_data)
bool snap_object_project_ray_ex (SnapObjectContext *sctx, Depsgraph *depsgraph, const View3D *v3d, const SnapObjectParams *params, const float ray_start[3], const float ray_normal[3], float *ray_depth, float r_loc[3], float r_no[3], int *r_index, const Object **r_ob, float r_obmat[4][4])
bool snap_object_project_ray (SnapObjectContext *sctx, Depsgraph *depsgraph, const View3D *v3d, const SnapObjectParams *params, const float ray_start[3], const float ray_normal[3], float *ray_depth, float r_co[3], float r_no[3])
bool snap_object_project_ray_all (SnapObjectContext *sctx, Depsgraph *depsgraph, const View3D *v3d, const SnapObjectParams *params, const float ray_start[3], const float ray_normal[3], float ray_depth, bool sort, ListBase *r_hit_list)
eSnapMode snap_object_project_view3d_ex (SnapObjectContext *sctx, Depsgraph *depsgraph, const ARegion *region, const View3D *v3d, const eSnapMode snap_to, const SnapObjectParams *params, const float init_co[3], const float mval[2], const float prev_co[3], float *dist_px, float r_loc[3], float r_no[3], int *r_index, const Object **r_ob, float r_obmat[4][4], float r_face_nor[3])
eSnapMode snap_object_project_view3d (SnapObjectContext *sctx, Depsgraph *depsgraph, const ARegion *region, const View3D *v3d, const eSnapMode snap_to, const SnapObjectParams *params, const float init_co[3], const float mval[2], const float prev_co[3], float *dist_px, float r_loc[3], float r_no[3])
bool object_project_all_view3d_ex (SnapObjectContext *sctx, Depsgraph *depsgraph, const ARegion *region, const View3D *v3d, const SnapObjectParams *params, const float mval[2], float ray_depth, bool sort, ListBase *r_hit_list)
static bool snap_object_context_runtime_init (SnapObjectContext *sctx, Depsgraph *depsgraph, const ARegion *region, const View3D *v3d, eSnapMode snap_to_flag, eSnapOcclusionTest occlusion_test, const SnapObjectParams *params, const float ray_start[3], const float ray_dir[3], const float ray_depth, const float mval[2], const float init_co[3], const float prev_co[3], const float dist_px_sq, ListBase *hit_list)
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)
Public Transform API
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 projectFloatViewCenterFallback (TransInfo *t, float adr[2])
void projectIntViewEx (TransInfo *t, const float vec[3], int adr[2], const eV3DProjTest flag)
void projectIntView (TransInfo *t, const float vec[3], int adr[2])
void projectFloatViewEx (TransInfo *t, const float vec[3], float adr[2], const 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)
wmOperatorStatus transformEvent (TransInfo *t, wmOperator *op, const wmEvent *event)
void saveTransform (bContext *C, TransInfo *t, wmOperator *op)
bool initTransform (bContext *C, TransInfo *t, wmOperator *op, const wmEvent *event, int mode)
void transformApply (bContext *C, TransInfo *t)
wmOperatorStatus transformEnd (bContext *C, TransInfo *t)
bool transform_apply_matrix (TransInfo *t, float mat[4][4])
void transform_final_value_get (const TransInfo *t, float *value, const int value_num)
void view_vector_calc (const TransInfo *t, const float focus[3], float r_vec[3])
Generics
bool checkUseAxisMatrix (TransInfo *t)
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 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, TransDataExtension *td_ext, 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)
Drawing Constraints
static void drawObjectConstraint (TransInfo *t)
static void drawLine (TransInfo *t, const float center[3], const float dir[3], char axis, short options)
void drawConstraint (TransInfo *t)
void drawPropCircle (TransInfo *t)
void drawPropRange (TransInfo *t)
Internal Utilities
static void projection_matrix_calc (const TransInfo *t, float r_pmtx[3][3])
static void constraint_plane_normal_calc (const TransInfo *t, float r_plane_no[3])
void constraintNumInput (TransInfo *t, float vec[3])
static void viewAxisCorrectCenter (const TransInfo *t, float t_con_center[3])
static void axisProjection (const TransInfo *t, const float axis[3], const float in[3], float out[3])
static void constraint_snap_plane_to_edge (const TransInfo *t, const float plane_no[3], float r_out[3])
static void UNUSED_FUNCTION (constraint_snap_plane_to_face(const TransInfo *t, const float plane[4], float r_out[3]))
void transform_constraint_snap_axis_to_edge (const TransInfo *t, const float axis[3], float r_out[3])
void transform_constraint_snap_axis_to_face (const TransInfo *t, const float axis[3], float r_out[3])
static bool isPlaneProjectionViewAligned (const TransInfo *t, const float plane_no[3])
static void planeProjection (const TransInfo *t, const float plane_no[3], const float in[3], float out[3])
static short transform_orientation_or_default (const TransInfo *t)
static const float(* transform_object_axismtx_get (const TransInfo *t, const TransDataContainer *tc, const TransData *td))[3]
void transform_constraint_get_nearest (const TransInfo *t, const float3 &vec, float r_vec[3])
static void applyAxisConstraintVec (const TransInfo *t, const TransDataContainer *, const TransData *td, const float in[3], float out[3])
static void applyObjectConstraintVec (const TransInfo *t, const TransDataContainer *tc, const TransData *td, const float in[3], float out[3])
static void applyAxisConstraintSize (const TransInfo *t, const TransDataContainer *, const TransData *td, float r_smat[3][3])
static void applyObjectConstraintSize (const TransInfo *t, const TransDataContainer *tc, const TransData *td, float r_smat[3][3])
static void constraints_rotation_impl (const TransInfo *t, const float axismtx[3][3], float r_axis[3])
static void applyAxisConstraintRot (const TransInfo *t, const TransDataContainer *, const TransData *td, float r_axis[3])
static void applyObjectConstraintRot (const TransInfo *t, const TransDataContainer *tc, const TransData *td, float r_axis[3])
Internal Setup Calls
void setConstraint (TransInfo *t, int mode, const char text[])
void setAxisMatrixConstraint (TransInfo *t, int mode, const char text[])
void setLocalConstraint (TransInfo *t, int mode, const char text[])
void setUserConstraint (TransInfo *t, int mode, const char text_[])
Start / Stop Constraints
void startConstraint (TransInfo *t)
void stopConstraint (TransInfo *t)
Middle Mouse Button Select
void initSelectConstraint (TransInfo *t)
void selectConstraint (TransInfo *t)
void postSelectConstraint (TransInfo *t)
static void setNearestAxis2d (TransInfo *t)
static void setNearestAxis3d (TransInfo *t)
void setNearestAxis (TransInfo *t)
Helper Functions
int constraintModeToIndex (const TransInfo *t)
bool isLockConstraint (const TransInfo *t)
int getConstraintSpaceDimension (const TransInfo *t)
Proportional Editing
static void make_sorted_index_map (TransDataContainer *tc, FunctionRef< bool(int, int)> compare)
static void sort_trans_data_dist_container (const TransInfo *t, TransDataContainer *tc)
void sort_trans_data_dist (TransInfo *t)
static void sort_trans_data_selected_first_container (TransDataContainer *tc)
static void sort_trans_data_selected_first (TransInfo *t)
static float3 prop_dist_loc_get (const TransDataContainer *tc, const TransData *td, const bool use_island, const float proj_vec[3])
static void set_prop_dist (TransInfo *t, const bool with_dist)
Pose Mode (Auto-IK)
static bool pchan_autoik_adjust (bPoseChannel *pchan, short chainlen)
void transform_autoik_update (TransInfo *t, short mode)
Curve Surface
void calc_distanceCurveVerts (TransData *head, TransData *tail, bool cyclic)
TransDataCurveHandleFlagsinitTransDataCurveHandles (TransData *td, BezTriple *bezt)
UV Coordinates
void clipUVData (TransInfo *t)
Animation Editors (General)
char transform_convert_frame_side_dir_get (TransInfo *t, float cframe)
bool FrameOnMouseSide (char side, float frame, float cframe)
Transform Utilities
bool constraints_list_needinv (TransInfo *t, ListBase *list)
Transform (After-Transform Update)
void special_aftertrans_update (bContext *C, TransInfo *t)
int special_transform_moving (TransInfo *t)
Transform Data Create
static int countAndCleanTransDataContainer (TransInfo *t)
static void init_proportional_edit (TransInfo *t)
static void init_TransDataContainers (TransInfo *t, Object *obact, Span< Object * > objects)
static TransConvertTypeInfoconvert_type_get (const TransInfo *t, Object **r_obj_armature)
void create_trans_data (bContext *C, TransInfo *t)
Transform Data Recalc/Flush
void transform_convert_clip_mirror_modifier_apply (TransDataContainer *tc)
void animrecord_check_state (TransInfo *t, ID *id)
void transform_convert_flush_handle2D (TransData *td, TransData2D *td2d, const float y_fac)
void recalc_data (TransInfo *t)
CustomData TransCustomDataLayer Creation
void transform_convert_mesh_customdatacorrect_init (TransInfo *t)
static BMFacemesh_customdatacorrect_find_best_face_substitute (BMFace *f)
static void mesh_customdatacorrect_face_substitute_set (TransCustomDataLayer *tcld, BMFace *f, BMFace *f_copy)
static BMFacemesh_customdatacorrect_face_substitute_get (BMFace *f_copy)
static void mesh_customdatacorrect_init_vert (TransCustomDataLayer *tcld, TransDataBasic *td, const int index)
static void mesh_customdatacorrect_init_container_generic (TransDataContainer *, TransCustomDataLayer *tcld)
static void mesh_customdatacorrect_init_container_merge_group (TransDataContainer *tc, TransCustomDataLayer *tcld)
static TransCustomDataLayermesh_customdatacorrect_create_impl (TransDataContainer *tc, const bool use_merge_group)
static void mesh_customdatacorrect_create (TransDataContainer *tc, const bool use_merge_group)
Special After Transform Sequencer
bool transform_convert_sequencer_clamp (const TransInfo *t, float r_val[2])
static void special_aftertrans_update__sequencer (bContext *C, TransInfo *t)
Special After Transform Pose
void transform_convert_pose_transflags_update (Object *ob, int mode, short around)
static void pose_channel_children_clear_transflag (bPose &pose, bPoseChannel &pose_bone, const int mode, const short around)
static short apply_targetless_ik (Object *ob)
static void pose_grab_with_ik_clear (Main *bmain, Object *ob)
static void special_aftertrans_update__pose (bContext *C, TransInfo *t)
Island Creation
void transform_convert_mesh_islands_calc (BMEditMesh *em, bool calc_single_islands, bool calc_island_center, bool calc_island_axismtx, TransIslandData *r_island_data)
void transform_convert_mesh_islanddata_free (TransIslandData *island_data)
Connectivity Distance for Proportional Editing
void transform_convert_mesh_connectivity_distance (BMesh *bm, const float mtx[3][3], float *dists, int *index)
static bool bmesh_test_dist_add (BMVert *v0, BMVert *v1, BMVert *v2, float *dists, int *index, const float mtx[3][3])
static bool bmesh_test_loose_edge (BMEdge *edge)
TransDataMirror Creation
void transform_convert_mesh_mirrordata_calc (BMEditMesh *em, bool use_select, bool use_topology, const bool mirror_axis[3], TransMirrorData *r_mirror_data)
void transform_convert_mesh_mirrordata_free (TransMirrorData *mirror_data)
static bool is_in_quadrant_v3 (const float co[3], const int quadrant[3], const float epsilon)
Crazy Space
void transform_convert_mesh_crazyspace_detect (TransInfo *t, TransDataContainer *tc, BMEditMesh *em, TransMeshDataCrazySpace *r_crazyspace_data)
void transform_convert_mesh_crazyspace_transdata_set (const float mtx[3][3], const float smtx[3][3], const float defmat[3][3], const float quat[4], TransData *r_td)
void transform_convert_mesh_crazyspace_free (TransMeshDataCrazySpace *r_crazyspace_data)
API for Vert Slide
Array< TransDataVertSlideVerttransform_mesh_vert_slide_data_create (const TransDataContainer *tc, Vector< float3 > &r_loc_dst_buffer)
Array< TransDataVertSlideVerttransform_mesh_uv_vert_slide_data_create (const TransInfo *t, TransDataContainer *tc, Vector< float3 > &r_loc_dst_buffer)
API for Edge Slide
Array< TransDataEdgeSlideVerttransform_mesh_edge_slide_data_create (const TransDataContainer *tc, int *r_group_len)
Array< TransDataEdgeSlideVerttransform_mesh_uv_edge_slide_data_create (const TransInfo *t, TransDataContainer *tc, int *r_group_len)
static bool mesh_vert_is_inner (BMVert *v)
static bool bm_loop_calc_opposite_co (const BMLoop *l_tmp, const float plane_no[3], float r_co[3])
static float3 isect_face_dst (const BMLoop *l)
static bool mesh_uv_group_is_inner (const TransDataContainer *tc, const BMUVOffsets &offsets, Span< int > group)
static bool bm_loop_uv_calc_opposite_co (const BMLoop *l_tmp, const float2 &uv_tmp, const BMUVOffsets &offsets, const float2 &ray_direction, float2 &r_co)
static float2 isect_face_dst (const BMLoop *l, const float2 &uv, const float2 &aspect, const BMUVOffsets &offsets)
Grease Pencil Transform helpers
static void grease_pencil_transdata_add_fake_drawing_users (const GreasePencil &grease_pencil)
static void grease_pencil_transdata_remove_fake_drawing_users (const GreasePencil &grease_pencil)
static bool grease_pencil_layer_initialize_trans_data (const GreasePencil &grease_pencil, bke::greasepencil::Layer &layer, const Span< int > frames_affected, const bool use_duplicates)
static bool grease_pencil_layer_reset_trans_data (bke::greasepencil::Layer &layer)
static bool grease_pencil_layer_update_trans_data (bke::greasepencil::Layer &layer, const int src_frame_number, const int dst_frame_number)
static bool grease_pencil_layer_apply_trans_data (GreasePencil &grease_pencil, bke::greasepencil::Layer &layer, const bool canceled, const bool duplicate)
Action Transform Creation
static int count_fcurve_keys (FCurve *fcu, char side, float cfra, bool is_prop_edit)
static int count_gplayer_frames (bGPDlayer *gpl, char side, float cfra, bool is_prop_edit)
static int count_grease_pencil_frames (const bke::greasepencil::Layer *layer, const char side, const float cfra, const bool is_prop_edit, const bool use_duplicated)
static int count_masklayer_frames (MaskLayer *masklay, char side, float cfra, bool is_prop_edit)
static void TimeToTransData (TransData *td, TransData2D *td2d, BezTriple *bezt, bAnimListElem *ale, float ypos)
static TransDataActionFCurveToTransData (TransData *td, TransData2D **td2dv, FCurve *fcu, bAnimListElem *ale, char side, float cfra, bool is_prop_edit, float ypos)
static int GPLayerToTransData (TransData *td, TransData2D *td2d, bGPDlayer *gpl, char side, float cfra, bool is_prop_edit, float ypos)
static int GreasePencilLayerToTransData (TransData *td, TransData2D *td2d, GreasePencil *grease_pencil, bke::greasepencil::Layer *layer, const char side, const float cfra, const bool is_prop_edit, const float ypos, const bool duplicate)
static int MaskLayerToTransData (TransData *td, TransData2D *td2d, MaskLayer *masklay, char side, float cfra, bool is_prop_edit, float ypos)
static void createTransActionData (bContext *C, TransInfo *t)
Action Transform Flush
static void invert_snap (eSnapMode &snap_mode)
static void recalcData_actedit (TransInfo *t)
Special After Transform Action
static int masklay_shape_cmp_frame (void *thunk, const void *a, const void *b)
static void posttrans_mask_clean (Mask *mask)
static void posttrans_gpd_clean (bGPdata *gpd)
static void posttrans_action_clean (bAnimContext *ac, bAction *act)
static void special_aftertrans_update__actedit (bContext *C, TransInfo *t)
Pose Auto-IK
static bKinematicConstrainthas_targetless_ik (bPoseChannel *pchan)
static short pose_grab_with_ik_add (bPoseChannel *pchan)
static short pose_grab_with_ik_children (bPose *pose, Bone *bone)
static short pose_grab_with_ik (Main *bmain, Object *ob)
Pose Mirror
static void pose_mirror_info_init (PoseInitData_Mirror *pid, bPoseChannel *pchan, bPoseChannel *pchan_orig, bool is_mirror_relative)
Convert Armature
static void add_pose_transdata (TransInfo *t, bPoseChannel *pchan, Object *ob, TransData *td, TransDataExtension *td_ext)
static void createTransPose (bContext *, TransInfo *t)
static void createTransArmatureVerts (bContext *, TransInfo *t)
Recalc Data Edit Armature
static void restoreBones (TransDataContainer *tc)
static void recalcData_edit_armature (TransInfo *t)
Recalc Data Pose
static void pose_transform_mirror_update (TransInfo *t, TransDataContainer *tc, Object *ob)
static void pose_mirror_info_restore (const PoseInitData_Mirror *pid)
static void restoreMirrorPoseBones (TransDataContainer *tc)
static Vector< RNAPathget_affected_rna_paths_from_transform_mode (const eTfmMode tmode, ToolSettings *toolsettings, const StringRef rotation_path, const bool targetless_ik, const bool is_connected, const bool transforming_more_than_one_bone)
static void autokeyframe_pose (bContext *C, Scene *scene, Object *ob, short targetless_ik, const eTfmMode tmode, const bool transforming_more_than_one_bone)
static void recalcData_pose (TransInfo *t)
Shared 2D Cursor Utilities
static void createTransCursor_2D_impl (TransInfo *t, float cursor_location[2])
static void recalcData_cursor_2D_impl (TransInfo *t)
Image Cursor
static void createTransCursor_image (bContext *, TransInfo *t)
static void recalcData_cursor_image (TransInfo *t)
Sequencer Cursor
static void createTransCursor_sequencer (bContext *, TransInfo *t)
static void recalcData_cursor_sequencer (TransInfo *t)
View 3D Cursor
static void createTransCursor_view3d (bContext *, TransInfo *t)
static void recalcData_cursor_view3d (TransInfo *t)
Curve/Surfaces Transform Creation
static int bezt_select_to_transform_triple_flag (const BezTriple *bezt, const eNurbHandleTest_Mode handle_mode)
static void createTransCurveVerts (bContext *, TransInfo *t)
static void recalcData_curve (TransInfo *t)
static void createTransLatticeVerts (bContext *, TransInfo *t)
static void recalcData_lattice (TransInfo *t)
Graph Editor Transform Creation
static void bezt_to_transdata (TransData *td, TransData2D *td2d, TransDataGraph *tdg, bAnimListElem *ale, BezTriple *bezt, int bi, bool selected, bool ishandle, bool intvals, const float mtx[3][3], const float smtx[3][3], float unit_scale, float offset)
static bool graph_edit_is_translation_mode (TransInfo *t)
static bool graph_edit_use_local_center (TransInfo *t)
static void enable_autolock (TransInfo *t, SpaceGraph *space_graph)
static void graph_bezt_get_transform_selection (const TransInfo *t, const BezTriple *bezt, const bool use_handle, bool *r_left_handle, bool *r_key, bool *r_right_handle)
static float graph_key_shortest_dist (TransInfo *t, FCurve *fcu, TransData *td_start, TransData *td, int cfra, bool use_handle)
static void createTransGraphEditData (bContext *C, TransInfo *t)
Graph Editor Transform Flush
static bool fcu_test_selected (FCurve *fcu)
static void flushTransGraphData (TransInfo *t)
static Vector< BeztMapbezt_to_beztmaps (BezTriple *bezts, const int totvert)
static void sort_time_beztmaps (const MutableSpan< BeztMap > bezms)
static void update_trans_data (TransData *td, const FCurve *fcu, const int new_index, const bool swap_handles)
static void update_transdata_bezt_pointers (TransDataContainer *tc, const Map< float *, int > &trans_data_map, const FCurve *fcu, const Span< BeztMap > bezms)
static void remake_graph_transdata (TransInfo *t, const Span< FCurve * > fcurves)
static void recalcData_graphedit (TransInfo *t)
Special After Transform Graph
static void special_aftertrans_update__graph (bContext *C, TransInfo *t)
Masking Transform Creation
static void MaskHandleToTransData (MaskSplinePoint *point, eMaskWhichHandle which_handle, TransData *td, TransData2D *td2d, TransDataMasking *tdm, const float asp[2], const float parent_matrix[3][3], const float parent_inverse_matrix[3][3])
static void MaskPointToTransData (Scene *scene, MaskSplinePoint *point, TransData *td, TransData2D *td2d, TransDataMasking *tdm, const bool is_prop_edit, const float asp[2])
static void createTransMaskingData (bContext *C, TransInfo *t)
Recalc TransData Masking
static void flushTransMasking (TransInfo *t)
static void recalcData_mask_common (TransInfo *t)
Special After Transform Mask
static void special_aftertrans_update__mask (bContext *C, TransInfo *t)
Meta Elements Transform Creation
static void createTransMBallVerts (bContext *, TransInfo *t)
Recalc Meta Ball
static void recalcData_mball (TransInfo *t)
CustomData Layer Correction Apply
static const floatmesh_vert_orig_co_get (TransCustomDataLayer *tcld, BMVert *v)
static void mesh_customdatacorrect_apply_vert (TransCustomDataLayer *tcld, TransDataBasic *td, TransCustomDataMergeGroup *merge_data, bool do_loop_mdisps)
static void mesh_customdatacorrect_apply (TransDataContainer *tc, bool is_final)
CustomData Layer Correction Restore
static void mesh_customdatacorrect_restore (TransInfo *t)
Edit Mesh Verts Transform Creation
static void mesh_transdata_center_copy (const TransIslandData *island_data, const int island_index, const float iloc[3], float r_center[3])
static void VertsToTransData (TransInfo *t, TransData *td, TransDataExtension *tx, BMEditMesh *em, BMVert *eve, const TransIslandData *island_data, const int island_index)
static void createTransEditVerts (bContext *, TransInfo *t)
Recalc Mesh Data (Partial Update)
static BMPartialUpdatemesh_partial_ensure (TransInfo *t, TransDataContainer *tc, enum ePartialType partial_type)
static void mesh_partial_types_calc (TransInfo *t, PartialTypeState *r_partial_state)
static void mesh_partial_update (TransInfo *t, TransDataContainer *tc, const PartialTypeState *partial_state)
Recalc Mesh Data
static void mesh_transdata_mirror_apply (TransDataContainer *tc)
static void recalcData_mesh (TransInfo *t)
static void mesh_skin_apply_to_mirror (TransInfo *t)
static void recalcData_mesh_skin (TransInfo *t)
static void recalcData_mesh_cdata (TransInfo *t)
Special After Transform Mesh
static void special_aftertrans_update__mesh (bContext *, TransInfo *t)
Edge (for crease) Transform Creation
static void createTransEdge (bContext *, TransInfo *t)
static void recalcData_mesh_edge (TransInfo *t)
Edit Mesh #CD_MVERT_SKIN Transform Creation
static floatmesh_skin_transdata_center (const TransIslandData *island_data, const int island_index, BMVert *eve)
static void mesh_skin_transdata_create (TransDataBasic *td, BMEditMesh *em, BMVert *eve, const TransIslandData *island_data, const int island_index)
static void createTransMeshSkin (bContext *, TransInfo *t)
UVs Transform Creation
static void UVsToTransData (const float aspect[2], float *uv, const float *center, const float calc_dist, const bool selected, BMLoop *l, TransData *r_td, TransData2D *r_td2d)
static void uv_set_connectivity_distance (const ToolSettings *ts, BMesh *bm, float *dists, const float aspect[2])
static void createTransUVs (bContext *C, TransInfo *t)
UVs Transform Flush
static void flushTransUVs (TransInfo *t)
static void recalcData_uv (TransInfo *t)
static void view2d_edge_pan_loc_compensate (TransInfo *t, float r_offset[2])
static void flushTransSeq (TransInfo *t)
static void recalcData_sequencer (TransInfo *t)
API for Vert and Edge Slide
static UVGroupsmesh_uv_groups_get (TransDataContainer *tc, BMesh *bm, const BMUVOffsets &offsets)
Edit Mesh Bevel Weight and Crease Transform Creation
static floatmesh_cdata_transdata_center (const TransIslandData *island_data, const int island_index, BMVert *eve)
static void mesh_cdata_transdata_create (TransDataBasic *td, BMVert *eve, float *weight, const TransIslandData *island_data, const int island_index)
static void createTransMeshVertCData (bContext *, TransInfo *t)
Transform application to NLA strips
static void nlatrack_truncate_temporary_tracks (bAnimContext *ac)
static void applyTransformNLA_translation (PointerRNA *strip_rna_ptr, const TransDataNla *transdata)
 Applies a translation to the given NlaStrip.
static void applyTransformNLA_timeScale (PointerRNA *strip_rna_ptr, const float value)
static void nlastrip_overlap_reorder (TransDataNla *tdn, NlaStrip *strip)
static void nlastrip_flag_overlaps (NlaStrip *strip)
static void nlastrip_fix_overlapping (TransInfo *t, TransDataNla *tdn, NlaStrip *strip)
NLA Transform Creation
static void createTransNlaData (bContext *C, TransInfo *t)
static void recalcData_nla (TransInfo *t)
Special After Transform NLA
static void nlastrip_shuffle_transformed (TransDataContainer *tc, TransDataNla *first_trans_data)
static void special_aftertrans_update__nla (bContext *C, TransInfo *t)
Node Transform Creation
static void create_transform_data_for_node (TransData &td, TransData2D &td2d, bNode &node, const float dpi_fac)
static bool is_node_parent_select (const bNode *node)
static bool transform_tied_to_other_node (bNode *node, VectorSet< bNode * > transformed_nodes)
static VectorSet< bNode * > get_transformed_nodes (bNodeTree &node_tree)
static void createTransNodeData (bContext *C, TransInfo *t)
static void flushTransParticles (TransInfo *t)
Flush Transform Nodes
static void node_snap_grid_apply (TransInfo *t)
static void move_child_nodes (bNode &node, const float2 &delta)
static bool has_selected_parent (const bNode &node)
static void flushTransNodes (TransInfo *t)
Special After Transform Node
static void special_aftertrans_update__node (bContext *C, TransInfo *t)
Object Mode Custom Data
static void freeTransObjectCustomData (TransInfo *t, TransDataContainer *, TransCustomData *custom_data)
Object Data in Object Mode

Use to implement 'Affect Only Origins' feature. We need this to be detached from transform data because, unlike transforming regular objects, we need to transform the children.

Nearly all of the logic here is in the 'object::data_xform_container_*' API.

static void trans_obdata_in_obmode_update_all (TransInfo *t)
Object Child Skip

Don't transform unselected children, this is done using the parent inverse matrix.

Note
The complex logic here is caused by mixed selection within a single selection chain, otherwise we only need #XFORM_OB_SKIP_CHILD_PARENT_IS_XFORM for single objects.
static void trans_obchild_in_obmode_update_all (TransInfo *t)
Object Transform Creation

Instead of transforming the selection, move the 2D/3D cursor.

static void ObjectToTransData (TransInfo *t, TransData *td, TransDataExtension *td_ext, Object *ob)
static void trans_object_base_deps_flag_prepare (const TransInfo *t, const Scene *scene, ViewLayer *view_layer)
static void tag_trans_objects_with_geometry_dep_only_fn (ID *id, eDepsObjectComponentType component)
static void tag_trans_objects_dep_fn (ID *id, eDepsObjectComponentType component)
static void flush_trans_object_base_deps_flag (const TransInfo *t, Object *object)
static void trans_object_base_deps_flag_finish (const TransInfo *t, const Scene *scene, ViewLayer *view_layer)
static void set_trans_object_base_flags (TransInfo *t)
static bool mark_children (Object *ob)
static int count_proportional_objects (TransInfo *t)
static void clear_trans_object_base_flags (TransInfo *t)
static void createTransObject (bContext *C, TransInfo *t)
Transform (Auto-Keyframing)
static bool motionpath_need_update_object (Scene *scene, Object *ob)
Recalc Data object
static Vector< RNAPathget_affected_rna_paths_from_transform_mode (const eTfmMode tmode, Scene *scene, ViewLayer *view_layer, Object *ob, const StringRef rotation_path, const bool transforming_more_than_one_object)
static void autokeyframe_object (bContext *C, Scene *scene, Object *ob, const eTfmMode tmode, const bool transforming_more_than_one_object)
static void recalcData_objects (TransInfo *t)
static void recalcData_texspace (TransInfo *t)
static void recalcData_sculpt (TransInfo *t)
static void special_aftertrans_update__sculpt (bContext *C, TransInfo *t)
Special After Transform Object
static void special_aftertrans_update__object (bContext *C, TransInfo *t)
Texture Space Transform Creation

Instead of transforming the selection, move the 2D/3D cursor.

static void createTransTexspace (bContext *, TransInfo *t)
Paint Curve Transform Creation
static void PaintCurveConvertHandle (PaintCurvePoint *pcp, int id, TransData2D *td2d, TransDataPaintCurve *tdpc, TransData *td)
static void PaintCurvePointToTransData (PaintCurvePoint *pcp, TransData *td, TransData2D *td2d, TransDataPaintCurve *tdpc)
static void createTransPaintCurveVerts (bContext *C, TransInfo *t)
Paint Curve Transform Flush
static void flushTransPaintCurve (TransInfo *t)
Particle Edit Transform Creation
static void createTransParticleVerts (bContext *, TransInfo *t)
Recalc Transform Particles Data
static void recalcData_particles (TransInfo *t)
Sculpt Transform Creation
static void createTransSculpt (bContext *C, TransInfo *t)
Clip Editor Motion Tracking Transform Creation
static void markerToTransDataInit (TransformInitContext *init_context, MovieTrackingTrack *track, MovieTrackingMarker *marker, int area, float loc[2], const float rel[2], const float off[2], const float aspect[2])
static void trackToTransData (TransformInitContext *init_context, const int framenr, MovieTrackingTrack *track, const float aspect[2])
static void trackToTransDataIfNeeded (TransformInitContext *init_context, const int framenr, MovieTrackingTrack *track, const float aspect[2])
static void planeMarkerToTransDataInit (TransformInitContext *init_context, MovieTrackingPlaneTrack *plane_track, MovieTrackingPlaneMarker *plane_marker, float corner[2], const float aspect[2])
static void planeTrackToTransData (TransformInitContext *init_context, const int framenr, MovieTrackingPlaneTrack *plane_track, const float aspect[2])
static void planeTrackToTransDataIfNeeded (TransformInitContext *init_context, const int framenr, MovieTrackingPlaneTrack *plane_track, const float aspect[2])
static void transDataTrackingFree (TransInfo *, TransDataContainer *, TransCustomData *custom_data)
static void createTransTrackingTracksData (bContext *C, TransInfo *t)
static void createTransTrackingData (bContext *C, TransInfo *t)
static void markerToTransCurveDataInit (TransData *td, TransData2D *td2d, TransDataTrackingCurves *tdt, MovieTrackingTrack *track, MovieTrackingMarker *marker, MovieTrackingMarker *prev_marker, short coord, float size)
static void createTransTrackingCurvesData (bContext *C, TransInfo *t)
static void createTransTrackingCurves (bContext *C, TransInfo *t)
recalc Motion Tracking TransData
static void cancelTransTracking (TransInfo *t)
static void flushTransTracking (TransInfo *t)
static void recalcData_tracking (TransInfo *t)
static void cancelTransTrackingCurves (TransInfo *t)
static void flushTransTrackingCurves (TransInfo *t)
static void recalcData_tracking_curves (TransInfo *t)
Special After Transform Tracking
static void special_aftertrans_update__movieclip (bContext *C, TransInfo *t)
static void special_aftertrans_update__movieclip_for_curves (bContext *C, TransInfo *t)
Gizmo
void gizmo_prepare_mat (const bContext *C, RegionView3D *rv3d, const TransformBounds *tbounds)
void gizmo_xform_message_subscribe (wmGizmoGroup *gzgroup, wmMsgBus *mbus, Scene *scene, bScreen *screen, ScrArea *area, ARegion *region, void(*type_fn)(wmGizmoGroupType *))
void transform_gizmo_3d_model_from_constraint_and_mode_init (TransInfo *t)
void transform_gizmo_3d_model_from_constraint_and_mode_set (TransInfo *t)
void transform_gizmo_3d_model_from_constraint_and_mode_restore (TransInfo *t)
Shared Callback's
static bool gizmo2d_generic_poll (const bContext *C, wmGizmoGroupType *gzgt)
static void gizmo2d_pivot_point_message_subscribe (wmGizmoGroup *gzgroup, wmMsgBus *mbus, bScreen *screen, ScrArea *area, ARegion *region)
Callbacks for #MouseInput.apply
static void InputVector (TransInfo *t, MouseInput *mi, const double mval[2], float output[3])
static void InputSpring (TransInfo *, MouseInput *mi, const double mval[2], float output[3])
static void InputSpringFlip (TransInfo *t, MouseInput *mi, const double mval[2], float output[3])
static void InputSpringDelta (TransInfo *t, MouseInput *mi, const double mval[2], float output[3])
static void InputTrackBall (TransInfo *, MouseInput *mi, const double mval[2], float output[3])
static void InputHorizontalRatio (TransInfo *t, MouseInput *mi, const double mval[2], float output[3])
static void InputHorizontalAbsolute (TransInfo *t, MouseInput *mi, const double mval[2], float output[3])
static void InputVerticalRatio (TransInfo *t, MouseInput *mi, const double mval[2], float output[3])
static void InputVerticalAbsolute (TransInfo *t, MouseInput *mi, const double mval[2], float output[3])
static void InputCustomRatioFlip (TransInfo *, MouseInput *mi, const double mval[2], float output[3])
static void InputCustomRatio (TransInfo *t, MouseInput *mi, const double mval[2], float output[3])
static void InputAngle (TransInfo *, MouseInput *mi, const double mval[2], float output[3])
static void InputAngleSpring (TransInfo *t, MouseInput *mi, const double mval[2], float output[3])
Setup & Handle Mouse Input
static void calcSpringFactor (MouseInput *mi)
static int transform_seq_slide_strip_cursor_get (const Strip *strip)
static int transform_seq_slide_cursor_get (TransInfo *t)
Transform Locks
void protectedTransBits (short protectflag, float vec[3])
static void protectedQuaternionBits (short protectflag, float quat[4], const float oldquat[4])
static void protectedRotateBits (short protectflag, float eul[3], const float oldeul[3])
static void protectedAxisAngleBits (short protectflag, float axis[3], float *angle, const float oldAxis[3], float oldAngle)
void protectedScaleBits (short protectflag, float scale[3])
Transform Limits
void constraintTransLim (const TransInfo *t, const TransDataContainer *tc, TransData *td)
static void constraintob_from_transdata (bConstraintOb *cob, TransDataExtension *td_ext)
static void constraintRotLim (const TransInfo *, TransData *td, TransDataExtension *td_ext)
void constraintScaleLim (const TransInfo *t, const TransDataContainer *tc, int td_index)
Transform (Rotation Utils)
void headerRotation (TransInfo *t, char *str, const int str_size, float final)
void ElementRotation_ex (const TransInfo *t, const TransDataContainer *tc, TransData *td, TransDataExtension *td_ext, const float mat[3][3], const float *center)
void ElementRotation (const TransInfo *t, const TransDataContainer *tc, TransData *td, TransDataExtension *td_ext, const float mat[3][3], const short around)
Transform (Resize Utils)
void headerResize (TransInfo *t, const float vec[3], char *str, const int str_size)
static void TransMat3ToSize (const float mat[3][3], const float smat[3][3], float size[3])
void ElementResize (const TransInfo *t, const TransDataContainer *tc, int td_index, const float mat[3][3])
Transform Mode Initialization
static TransModeInfomode_info_get (TransInfo *t, const int mode)
void transform_mode_init (TransInfo *t, wmOperator *op, const int mode)
void transform_mode_default_modal_orientation_set (TransInfo *t, int type)
void transform_mode_rotation_axis_get (const TransInfo *t, float3 &r_axis)
bool transform_mode_is_axis_pointing_to_screen (const TransInfo *t, const float3 &axis)
Transform (Sequencer Slide)
bool transform_mode_edge_seq_slide_use_restore_handle_selection (const TransInfo *t)
static void headerSeqSlide (TransInfo *t, const float val[2], char str[UI_MAX_DRAW_STR])
static void applySeqSlideValue (TransInfo *t, const float val[2])
static void applySeqSlide (TransInfo *t)
static void initSeqSlide (TransInfo *t, wmOperator *op)
Mouse Input Utilities
void transform_mode_edge_slide_reproject_input (TransInfo *t)
void transform_mode_vert_slide_reproject_input (TransInfo *t)
Transform Element
void transform_mode_snap_source_init (TransInfo *t, wmOperator *op)
static void snapsource_end (TransInfo *t)
static void snapsource_confirm (TransInfo *t)
static eRedrawFlag snapsource_handle_event_fn (TransInfo *t, const wmEvent *event)
static void snapsource_transform_fn (TransInfo *t)
Transform (Align)
static void applyAlign (TransInfo *t)
static void initAlign (TransInfo *t, wmOperator *)
Transform (Bake-Time)
static void applyBakeTime (TransInfo *t)
static void initBakeTime (TransInfo *t, wmOperator *)
Transform (EditBone B-Bone width scaling)
static void headerBoneSize (TransInfo *t, const float vec[3], char str[UI_MAX_DRAW_STR])
static void ElementBoneSize (TransInfo *t, TransDataContainer *tc, TransData *td, const float mat[3][3])
static void applyBoneSize (TransInfo *t)
static void initBoneSize (TransInfo *t, wmOperator *)
Transform (Bend) Element
static void transdata_elem_bend (const TransInfo *t, const TransDataContainer *tc, TransData *td, TransDataExtension *td_ext, float angle, const BendCustomData *bend_data, const float warp_sta_local[3], const float[3], const float warp_end_radius_local[3], const float pivot_local[3], bool is_clamp)
Transform (Bend)
static eRedrawFlag handleEventBend (TransInfo *, const wmEvent *event)
static void Bend (TransInfo *t)
static void initBend (TransInfo *t, wmOperator *)
Transform (Bone Envelope)
static void applyBoneEnvelope (TransInfo *t)
static void initBoneEnvelope (TransInfo *t, wmOperator *)
Transform (EditBone Roll)
static void applyBoneRoll (TransInfo *t)
static void initBoneRoll (TransInfo *t, wmOperator *)
Transform (Curve Shrink/Fatten)
static void applyCurveShrinkFatten (TransInfo *t)
static void initCurveShrinkFatten (TransInfo *t, wmOperator *)
Transform Value
static void transdata_elem_value (const TransInfo *, const TransDataContainer *, TransData *td, const float value)
static void apply_value_impl (TransInfo *t, const char *value_name)
static void applyCrease (TransInfo *t)
static void applyBevelWeight (TransInfo *t)
static void init_mode_impl (TransInfo *t)
static void initEgdeCrease (TransInfo *t, wmOperator *)
static void initVertCrease (TransInfo *t, wmOperator *)
static void initBevelWeight (TransInfo *t, wmOperator *)
Transform (Normal Rotation)
static void storeCustomLNorValue (TransDataContainer *tc, BMesh *bm)
static void applyNormalRotation (TransInfo *t)
static void initNormalRotation (TransInfo *t, wmOperator *)
Transform (Edge Slide)
static TransDataContaineredge_slide_container_first_ok (TransInfo *t)
static EdgeSlideDataedgeSlideFirstGet (TransInfo *t)
static void calcEdgeSlideCustomPoints (TransInfo *t)
static void interp_line_v3_v3v3v3 (float p[3], const float v1[3], const float v2[3], const float v3[3], float t)
static void edge_slide_data_init_mval (MouseInput *mi, EdgeSlideData *sld, float *mval_dir)
static bool is_vert_slide_visible_bmesh (TransInfo *t, TransDataContainer *tc, const View3D *v3d, const BMBVHTree *bmbvh, TransDataEdgeSlideVert *sv)
static void calcEdgeSlide_mval_range (TransInfo *t, TransDataContainer *tc, EdgeSlideData *sld, const int loop_nr, const float2 &mval, const bool use_calc_direction)
static EdgeSlideDatacreateEdgeSlideVerts (TransInfo *t, TransDataContainer *tc, const bool use_double_side)
static void freeEdgeSlideVerts (TransInfo *, TransDataContainer *, TransCustomData *custom_data)
static eRedrawFlag handleEventEdgeSlide (TransInfo *t, const wmEvent *event)
static void drawEdgeSlide (TransInfo *t)
static void edge_slide_snap_apply (TransInfo *t, float *value)
static void edge_slide_apply_elem (const TransDataEdgeSlideVert &sv, const float fac, const float curr_length_fac, const int curr_side_unclamp, const bool use_clamp, const bool use_even, const bool use_flip, float r_co[3])
static void doEdgeSlide (TransInfo *t, float perc)
static void applyEdgeSlide (TransInfo *t)
static void edge_slide_transform_matrix_fn (TransInfo *t, float mat_xform[4][4])
static void initEdgeSlide_ex (TransInfo *t, wmOperator *op, bool use_double_side, bool use_even, bool flipped, bool use_clamp)
static void initEdgeSlide (TransInfo *t, wmOperator *op)
Transform (GPencil Strokes Opacity)
static void applyGPOpacity (TransInfo *t)
static void initGPOpacity (TransInfo *t, wmOperator *)
Transform (Mask Shrink/Fatten)
static void applyMaskShrinkFatten (TransInfo *t)
static void initMaskShrinkFatten (TransInfo *t, wmOperator *)
Transform (Mirror)
static void ElementMirror (TransInfo *t, TransDataContainer *tc, int td_index, int axis, bool flip)
static void applyMirror (TransInfo *t)
static void initMirror (TransInfo *t, wmOperator *)
Transform (Push/Pull)
static void transdata_elem_push_pull (const TransInfo *t, const TransDataContainer *tc, TransData *td, const float distance, const float axis_global[3], const bool is_lock_constraint, const bool is_data_space)
static void applyPushPull (TransInfo *t)
static void initPushPull (TransInfo *t, wmOperator *)
Transform (Resize)
static float ResizeBetween (TransInfo *t, const float p1[3], const float p2[3])
static void ApplySnapResize (TransInfo *t, float vec[3])
static void constrain_scale_to_boundary (const float numerator, const float denominator, float *scale)
static bool clip_uv_transform_resize (TransInfo *t, float vec[2])
static void applyResize (TransInfo *t)
static void resize_transform_matrix_fn (TransInfo *t, float mat_xform[4][4])
static void initResize (TransInfo *t, wmOperator *op)
Transform (Rotation) Matrix Cache
static void rmat_cache_init (RotateMatrixCache *rmc, const float angle, const float axis[3])
static void rmat_cache_reset (RotateMatrixCache *rmc)
static void rmat_cache_update (RotateMatrixCache *rmc, const float axis[3], const float angle)
Transform (Rotation) Element
static void transdata_elem_rotate (const TransInfo *t, const TransDataContainer *tc, TransData *td, TransDataExtension *td_ext, const float axis[3], const float angle, const float angle_step, const bool is_large_rotation, RotateMatrixCache *rmc)
Transform (Rotation)
static float RotationBetween (TransInfo *t, const float p1[3], const float p2[3])
static void ApplySnapRotation (TransInfo *t, float *value)
static float large_rotation_limit (float angle)
static void applyRotationValue (TransInfo *t, float angle, const float axis[3], const bool is_large_rotation)
static bool uv_rotation_in_clip_bounds_test (const TransInfo *t, const float angle)
static bool clip_uv_transform_rotate (const TransInfo *t, float *vec, float *vec_inside_bounds)
static void applyRotation (TransInfo *t)
static void applyRotationMatrix (TransInfo *t, float mat_xform[4][4])
static void initRotation (TransInfo *t, wmOperator *)
Transform (Shear) Element
static void transdata_elem_shear (const TransInfo *t, const TransDataContainer *tc, TransData *td, const float mat_final[3][3], const bool is_local_center)
Transform (Shear)
static void initShear_mouseInputMode (TransInfo *t)
static eRedrawFlag handleEventShear (TransInfo *t, const wmEvent *event)
static void apply_shear_value (TransInfo *t, const float value)
static bool uv_shear_in_clip_bounds_test (const TransInfo *t, const float value)
static bool clip_uv_transform_shear (const TransInfo *t, float *vec, float *vec_inside_bounds)
static void apply_shear (TransInfo *t)
static void initShear (TransInfo *t, wmOperator *op)
Transform (Skin)
static void transdata_elem_skin_resize (const TransInfo *t, const TransDataContainer *, TransData *td, const float mat[3][3])
static void applySkinResize (TransInfo *t)
static void initSkinResize (TransInfo *t, wmOperator *)
Transform (Tilt)
static void applyTilt (TransInfo *t)
static void initTilt (TransInfo *t, wmOperator *)
Transform (Animation Time Scale)
static void timescale_snap_apply_fn (TransInfo *t, float vec[3])
static void headerTimeScale (TransInfo *t, char str[UI_MAX_DRAW_STR])
static void applyTimeScaleValue (TransInfo *t, float value)
static void applyTimeScale (TransInfo *t)
static void timescale_transform_matrix_fn (TransInfo *t, float mat_xform[4][4])
static void initTimeScale (TransInfo *t, wmOperator *)
Transform (Animation Time Slide)
static void headerTimeSlide (TransInfo *t, const float sval, char str[UI_MAX_DRAW_STR])
static void applyTimeSlideValue (TransInfo *t, float sval, float cval)
static void applyTimeSlide (TransInfo *t)
static void initTimeSlide (TransInfo *t, wmOperator *)
Transform (Animation Translation)
static void headerTimeTranslate (TransInfo *t, char str[UI_MAX_DRAW_STR])
static void applyTimeTranslateValue (TransInfo *t, const float deltax)
static void applyTimeTranslate (TransInfo *t)
static void initTimeTranslate (TransInfo *t, wmOperator *)
To Sphere Utilities
static void to_sphere_radius_update (TransInfo *t)
Transform (ToSphere) Element
static void transdata_elem_to_sphere (const TransInfo *, const TransDataContainer *tc, TransData *td, const float ratio, const ToSphereInfo *to_sphere_info, const bool is_local_center, const bool is_data_space)
Transform (ToSphere)
static void applyToSphere (TransInfo *t)
static void initToSphere (TransInfo *t, wmOperator *)
Transform (Rotation - Trackball)
static void transdata_elem_trackball (const TransInfo *t, const TransDataContainer *tc, TransData *td, TransDataExtension *td_ext, const float axis[3], const float angle, const float mat_final[3][3])
static void applyTrackballValue_calc_axis_angle (const TransInfo *t, const float phi[2], float r_axis[3], float *r_angle)
static void applyTrackballValue (TransInfo *t, const float axis[3], const float angle)
static void applyTrackball (TransInfo *t)
static void applyTrackballMatrix (TransInfo *t, float mat_xform[4][4])
static void initTrackball (TransInfo *t, wmOperator *)
Transform (Translation) Element
static void transdata_elem_translate (const TransInfo *t, const TransDataContainer *tc, TransData *td, TransDataExtension *td_ext, const float3 &snap_source_local, const float3 &vec, enum eTranslateRotateMode rotate_mode)
Transform (Translation) Header
static void translate_dist_to_str (char *r_str, const int r_str_maxncpy, const float val, const UnitSettings *unit)
static void headerTranslation (TransInfo *t, const float vec[3], char str[UI_MAX_DRAW_STR])
Transform (Translation) Snapping
static void ApplySnapTranslation (TransInfo *t, float vec[3])
static void translate_snap_increment_init (const TransInfo *t)
static bool translate_snap_increment (const TransInfo *t, float *r_val)
Transform (Translation)
static void applyTranslationValue (TransInfo *t, const float vec[3])
static bool clip_uv_transform_translation (TransInfo *t, float vec[2])
static void applyTranslation (TransInfo *t)
static void applyTranslationMatrix (TransInfo *t, float mat_xform[4][4])
static void initTranslation (TransInfo *t, wmOperator *)
Transform (Vert Slide)
static void vert_slide_update_input (TransInfo *t)
static void calcVertSlideCustomPoints (TransInfo *t)
static VertSlideDatacreateVertSlideVerts (TransInfo *t, TransDataContainer *tc)
static void freeVertSlideVerts (TransInfo *, TransDataContainer *, TransCustomData *custom_data)
static eRedrawFlag handleEventVertSlide (TransInfo *t, const wmEvent *event)
static void drawVertSlide (TransInfo *t)
static void vert_slide_apply_elem (const TransDataVertSlideVert &sv, const float perc, const bool use_even, const bool use_flip, float r_co[3])
static void doVertSlide (TransInfo *t, float perc)
static void vert_slide_snap_apply (TransInfo *t, float *value)
static void applyVertSlide (TransInfo *t)
static void vert_slide_transform_matrix_fn (TransInfo *t, float mat_xform[4][4])
static void initVertSlide_ex (TransInfo *t, wmOperator *op, bool use_even, bool flipped, bool use_clamp)
static void initVertSlide (TransInfo *t, wmOperator *op)
Prototypes
static void setSnappingCallback (TransInfo *t)
static void snap_target_view3d_fn (TransInfo *t, float *vec)
static void snap_target_uv_fn (TransInfo *t, float *vec)
static void snap_target_sequencer_fn (TransInfo *t, float *vec)
static void snap_target_nla_fn (TransInfo *t, float *vec)
static void snap_source_median_fn (TransInfo *t)
static void snap_source_center_fn (TransInfo *t)
static void snap_source_closest_fn (TransInfo *t)
static void snap_source_active_fn (TransInfo *t)
static eSnapMode snapObjectsTransform (TransInfo *t, const float mval[2], float *dist_px, float r_loc[3], float r_no[3])
Implementations
static bool snap_use_backface_culling (const TransInfo *t)
bool validSnap (const TransInfo *t)
void transform_snap_flag_from_modifiers_set (TransInfo *t)
bool transform_snap_is_active (const TransInfo *t)
bool transformModeUseSnap (const TransInfo *t)
static bool doForceIncrementSnap (const TransInfo *t)
void drawSnapping (TransInfo *t)
eRedrawFlag handleSnapping (TransInfo *t, const wmEvent *event)
static bool applyFaceProject (TransInfo *t, TransDataContainer *tc, TransData *td, TransDataExtension *td_ext)
static void applyFaceNearest (TransInfo *t, TransDataContainer *tc, TransData *td)
bool transform_snap_project_individual_is_active (const TransInfo *t)
void transform_snap_project_individual_apply (TransInfo *t)
static bool transform_snap_mixed_is_active (const TransInfo *t)
void transform_snap_mixed_apply (TransInfo *t, float *vec)
void resetSnapping (TransInfo *t)
bool usingSnappingNormal (const TransInfo *t)
bool validSnappingNormal (const TransInfo *t)
static bool bm_edge_is_snap_target (BMEdge *e, void *)
static bool bm_face_is_snap_target (BMFace *f, void *)
short * transform_snap_flag_from_spacetype_ptr (TransInfo *t, const PropertyRNA **r_prop=nullptr)
static eSnapFlag snap_flag_from_spacetype (TransInfo *t)
static eSnapMode snap_mode_from_spacetype (TransInfo *t)
static eSnapTargetOP snap_target_select_from_spacetype_and_tool_settings (TransInfo *t)
static void snap_object_context_init (TransInfo *t)
static void initSnappingMode (TransInfo *t)
void transform_snap_grid_init (const TransInfo *t, float r_snap[3], float *r_snap_precision)
void transform_snap_reset_from_mode (TransInfo *t, wmOperator *op)
void initSnapping (TransInfo *t, wmOperator *op)
void freeSnapping (TransInfo *t)
void initSnapAngleIncrements (TransInfo *t)
void addSnapPoint (TransInfo *t)
eRedrawFlag updateSelectedSnapPoint (TransInfo *t)
void removeSnapPoint (TransInfo *t)
void getSnapPoint (const TransInfo *t, float vec[3])
static void snap_multipoints_free (TransInfo *t)
Calc Snap
static void snap_grid_uv_apply (TransInfo *t, const float grid_dist[2], float r_out[2])
static bool snap_grid_uv (TransInfo *t, float r_val[2])
Target
void tranform_snap_target_median_calc (const TransInfo *t, float r_median[3])
Peeling
bool peelObjectsTransform (TransInfo *t, const float mval[2], const bool use_peel_object, float r_loc[3], float r_no[3], float *r_thickness)
snap Grid
static void snap_increment_apply (const TransInfo *t, const float loc[3], float r_out[3])
bool transform_snap_increment_ex (const TransInfo *t, bool use_local_space, float *r_val)
bool transform_snap_increment (const TransInfo *t, float *r_val)
float transform_snap_increment_get (const TransInfo *t)
void tranform_snap_source_restore_context (TransInfo *t)
Generic callbacks
float transform_snap_distance_len_squared_fn (TransInfo *, const float p1[3], const float p2[3])
Snap data
TransSeqSnapDatasnap_sequencer_data_alloc (const TransInfo *t)
void snap_sequencer_data_free (TransSeqSnapData *data)
static void snap_data_build_timeline (const TransInfo *t, TransSeqSnapData *snap_data)
static void snap_data_build_preview (const TransInfo *t, TransSeqSnapData *snap_data)
Snapping in Anim Editors
void snapFrameTransform (TransInfo *t, eSnapMode snap_mode, float val_initial, float val_final, float *r_val_final)
void transform_snap_anim_flush_data (TransInfo *t, TransData *td, eSnapMode snap_mode, float *r_val_final)
bool transform_snap_nla_calc (TransInfo *t, float *vec)
static void transform_snap_anim_flush_data_ex (TransInfo *t, TransData *td, float val, const eSnapMode snap_mode, float *r_val_final)
static void invert_snap (eSnapMode &snap_mode)
static float2 nla_transform_apply (TransInfo *t, const float *vec, const float2 &ival)
Ray Cast Functions
static SnapObjectHitDepthhit_depth_create (const float depth, const float co[3], uint ob_uuid)
static int hit_depth_cmp (const void *arg1, const void *arg2)
void raycast_all_cb (void *userdata, int index, const BVHTreeRay *ray, BVHTreeRayHit *hit)
bool raycast_tri_backface_culling_test (const float dir[3], const float v0[3], const float v1[3], const float v2[3], float no[3])
static eSnapMode raycast_obj_fn (SnapObjectContext *sctx, const Object *ob_eval, const ID *ob_data, const float4x4 &obmat, bool, bool use_hide)
static bool raycastObjects (SnapObjectContext *sctx)
static void mesh_corner_tris_raycast_backface_culling_cb (void *userdata, int index, const BVHTreeRay *ray, BVHTreeRayHit *hit)
static bool raycastMesh (SnapObjectContext *sctx, const Object *ob_eval, const Mesh *mesh_eval, const float4x4 &obmat, const uint ob_index, bool use_hide)
Surface Snap Functions
static void nearest_world_tree_co (const BVHTree *tree, BVHTree_NearestPointCallback nearest_cb, void *treedata, const float3 &co, BVHTreeNearest *r_nearest)
bool nearest_world_tree (SnapObjectContext *sctx, const BVHTree *tree, BVHTree_NearestPointCallback nearest_cb, const blender::float4x4 &obmat, void *treedata, BVHTreeNearest *r_nearest)
static eSnapMode nearest_world_object_fn (SnapObjectContext *sctx, const Object *ob_eval, const ID *ob_data, const float4x4 &obmat, bool, bool use_hide)
static bool nearestWorldObjects (SnapObjectContext *sctx)
static bool nearest_world_mesh (SnapObjectContext *sctx, const Object *ob_eval, const Mesh *mesh_eval, const float4x4 &obmat, bool use_hide)
Callbacks
void cb_snap_vert (void *userdata, int index, const DistProjectedAABBPrecalc *precalc, const float(*clip_plane)[4], const int clip_plane_len, BVHTreeNearest *nearest)
void cb_snap_edge (void *userdata, int index, const DistProjectedAABBPrecalc *precalc, const float(*clip_plane)[4], const int clip_plane_len, BVHTreeNearest *nearest)
Internal Object Snapping API
static eSnapMode snap_polygon (SnapObjectContext *sctx, eSnapMode snap_to_flag)
static eSnapMode snap_edge_points (SnapObjectContext *sctx, const float dist_px_sq_orig)
eSnapMode snap_object_center (SnapObjectContext *sctx, const Object *ob_eval, const float4x4 &obmat, eSnapMode snap_to_flag)
static eSnapMode snap_obj_fn (SnapObjectContext *sctx, const Object *ob_eval, const ID *ob_data, const float4x4 &obmat, bool is_object_active, bool use_hide)
static eSnapMode snapObjectsRay (SnapObjectContext *sctx)
static bool snap_grid (SnapObjectContext *sctx)
eSnapMode snap_polygon_mesh (SnapObjectContext *sctx, const Object *ob_eval, const ID *id, const float4x4 &obmat, eSnapMode snap_to_flag, int face_index)
eSnapMode snap_edge_points_mesh (SnapObjectContext *sctx, const Object *ob_eval, const ID *id, const float4x4 &obmat, float dist_px_sq_orig, int edge_index)
static eSnapMode mesh_snap_mode_supported (const Mesh *mesh, bool skip_hidden)
static eSnapMode snapMesh (SnapObjectContext *sctx, const Object *ob_eval, const Mesh *mesh_eval, const float4x4 &obmat, bool skip_hidden, bool is_editmesh, eSnapMode snap_to)
Snap Object Data
static const Meshget_mesh_ref (const Object *ob_eval)
static Meshcreate_mesh (SnapObjectContext *sctx, const Object *ob_eval, eSnapEditType)
static SnapCache_EditMeshsnap_object_data_editmesh_get (SnapObjectContext *sctx, const Object *ob_eval, bool create)
static eSnapMode editmesh_snap_mode_supported (BMesh *bm)
static SnapCache_EditMesheditmesh_snapdata_init (SnapObjectContext *sctx, const Object *ob_eval, eSnapMode snap_to_flag)
static void snap_object_data_mesh_get (const Mesh *mesh_eval, bool skip_hidden, bke::BVHTreeFromMesh *r_treedata)
Subclass for Snapping to Edges or Points of a Mesh
static void cb_snap_edge_verts (void *userdata, int index, const DistProjectedAABBPrecalc *precalc, const float(*clip_plane)[4], const int clip_plane_len, BVHTreeNearest *nearest)
static void cb_snap_tri_verts (void *userdata, int index, const DistProjectedAABBPrecalc *precalc, const float(*clip_plane)[4], const int clip_plane_len, BVHTreeNearest *nearest)
static void cb_snap_tri_edges (void *userdata, int index, const DistProjectedAABBPrecalc *precalc, const float(*clip_plane)[4], const int clip_plane_len, BVHTreeNearest *nearest)
Snap sources
static VectorSet< Strip * > query_snap_sources_timeline (const Scene *scene, Map< SeqRetimingKey *, Strip * > &retiming_selection)
static VectorSet< Strip * > query_snap_sources_preview (const Scene *scene)
static int cmp_fn (const void *a, const void *b)
static void points_build_sources_timeline_strips (const Scene *scene, TransSeqSnapData *snap_data, const Span< Strip * > snap_sources)
static void points_build_sources_timeline_retiming (const Scene *scene, TransSeqSnapData *snap_data, const Map< SeqRetimingKey *, Strip * > &retiming_selection)
static void points_build_sources_preview_image (const Scene *scene, TransSeqSnapData *snap_data, const Span< Strip * > snap_sources)
static void points_build_sources_preview_origin (const Scene *scene, TransSeqSnapData *snap_data, const Span< Strip * > snap_sources)
Snap targets
static void query_strip_effects_fn (const Scene *scene, Strip *strip_reference, ListBase *seqbase, VectorSet< Strip * > &strips)
static VectorSet< Strip * > query_snap_targets_timeline (Scene *scene, const Span< Strip * > snap_sources, const bool exclude_selected)
static VectorSet< Strip * > query_snap_targets_preview (const TransInfo *t)
static Map< SeqRetimingKey *, Strip * > visible_retiming_keys_get (const Scene *scene, Span< Strip * > snap_strip_targets)
static void points_build_targets_timeline (const Scene *scene, const short snap_mode, TransSeqSnapData *snap_data, const Span< Strip * > strip_targets)
static void points_build_targets_preview_general (const View2D *v2d, const short snap_mode, TransSeqSnapData *snap_data)
static void points_build_targets_preview_image (const Scene *scene, const View2D *v2d, const short snap_mode, TransSeqSnapData *snap_data, const Span< Strip * > snap_targets)
static void points_build_3x3_grid (const Scene *scene, TransSeqSnapData *snap_data, Strip *strip)
static void points_build_targets_preview_origin (const Scene *scene, TransSeqSnapData *snap_data, const Span< Strip * > snap_sources, const Span< Strip * > snap_targets)
Snap utilities
static float seq_snap_threshold_get_view_distance (const TransInfo *t)
static int seq_snap_threshold_get_frame_distance (const TransInfo *t)

Variables

TransConvertTypeInfo TransConvertType_Action
TransConvertTypeInfo TransConvertType_EditArmature
TransConvertTypeInfo TransConvertType_Pose
TransConvertTypeInfo TransConvertType_CursorImage
TransConvertTypeInfo TransConvertType_CursorSequencer
TransConvertTypeInfo TransConvertType_Cursor3D
TransConvertTypeInfo TransConvertType_Curve
TransConvertTypeInfo TransConvertType_Graph
TransConvertTypeInfo TransConvertType_Lattice
TransConvertTypeInfo TransConvertType_Mask
TransConvertTypeInfo TransConvertType_MBall
TransConvertTypeInfo TransConvertType_Mesh
TransConvertTypeInfo TransConvertType_MeshEdge
TransConvertTypeInfo TransConvertType_MeshSkin
TransConvertTypeInfo TransConvertType_MeshUV
TransConvertTypeInfo TransConvertType_MeshVertCData
TransConvertTypeInfo TransConvertType_NLA
TransConvertTypeInfo TransConvertType_Node
TransConvertTypeInfo TransConvertType_Object
TransConvertTypeInfo TransConvertType_ObjectTexSpace
TransConvertTypeInfo TransConvertType_PaintCurve
TransConvertTypeInfo TransConvertType_Particle
TransConvertTypeInfo TransConvertType_Sculpt
TransConvertTypeInfo TransConvertType_Sequencer
TransConvertTypeInfo TransConvertType_SequencerImage
TransConvertTypeInfo TransConvertType_SequencerRetiming
TransConvertTypeInfo TransConvertType_Tracking
TransConvertTypeInfo TransConvertType_TrackingCurves
static wmGizmoGroupTypeg_GGT_xform_gizmo = nullptr
static wmGizmoGroupTypeg_GGT_xform_gizmo_context = nullptr
struct { 
   float   blender::ed::transform::min 
   float   blender::ed::transform::max 
g_tw_axis_range [2]
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_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
static const float VecZero [3] = {0, 0, 0}
static const float VecOne [3] = {1, 1, 1}
static const char OP_TRANSLATION [] = "TRANSFORM_OT_translate"
static const char OP_ROTATION [] = "TRANSFORM_OT_rotate"
static const char OP_TOSPHERE [] = "TRANSFORM_OT_tosphere"
static const char OP_RESIZE [] = "TRANSFORM_OT_resize"
static const char OP_SKIN_RESIZE [] = "TRANSFORM_OT_skin_resize"
static const char OP_SHEAR [] = "TRANSFORM_OT_shear"
static const char OP_BEND [] = "TRANSFORM_OT_bend"
static const char OP_SHRINK_FATTEN [] = "TRANSFORM_OT_shrink_fatten"
static const char OP_PUSH_PULL [] = "TRANSFORM_OT_push_pull"
static const char OP_TILT [] = "TRANSFORM_OT_tilt"
static const char OP_TRACKBALL [] = "TRANSFORM_OT_trackball"
static const char OP_MIRROR [] = "TRANSFORM_OT_mirror"
static const char OP_BONE_SIZE [] = "TRANSFORM_OT_bbone_resize"
static const char OP_EDGE_SLIDE [] = "TRANSFORM_OT_edge_slide"
static const char OP_VERT_SLIDE [] = "TRANSFORM_OT_vert_slide"
static const char OP_EDGE_CREASE [] = "TRANSFORM_OT_edge_crease"
static const char OP_VERT_CREASE [] = "TRANSFORM_OT_vert_crease"
static const char OP_EDGE_BWEIGHT [] = "TRANSFORM_OT_edge_bevelweight"
static const char OP_SEQ_SLIDE [] = "TRANSFORM_OT_seq_slide"
static const char OP_NORMAL_ROTATION [] = "TRANSFORM_OT_rotate_normal"
static TransformModeItem transform_modes []

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 , INPUT_ERROR , INPUT_ERROR_DASH
}
void initMouseInput (TransInfo *t, MouseInput *mi, const float2 &center, const float2 &mval, bool precision)
void initMouseInputMode (TransInfo *t, MouseInput *mi, MouseInputMode mode)
void applyMouseInput (TransInfo *t, MouseInput *mi, const 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 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 float2 &dir)
void setInputPostFct (MouseInput *mi, void(*post)(TransInfo *t, float values[3]))

Container TransCustomData Creation

enum  ePartialType { PARTIAL_NONE = -1 , PARTIAL_TYPE_GROUP = 0 , PARTIAL_TYPE_ALL = 1 }
static void mesh_customdata_free_fn (TransInfo *t, TransDataContainer *tc, TransCustomData *custom_data)
static void mesh_customdatacorrect_free (TransCustomDataLayer *tcld)
static TransCustomDataMeshmesh_customdata_ensure (TransDataContainer *tc)
static void mesh_customdata_free (TransCustomDataMesh *tcmd)

Sequencer Transform Creation

enum  SeqInputSide { SEQ_INPUT_LEFT = -1 , SEQ_INPUT_RIGHT = 1 }
bool seq_transform_check_overlap (Span< Strip * > transformed_strips)
static void SeqTransInfo (TransInfo *t, Strip *strip, int *r_count, int *r_flag)
static int SeqTransCount (TransInfo *t, ListBase *seqbase)
static TransDataSeqToTransData (Scene *scene, TransData *td, TransData2D *td2d, TransDataSeq *tdsq, Strip *strip, int flag, int sel_flag)
static int SeqToTransData_build (TransInfo *t, ListBase *seqbase, TransData *td, TransData2D *td2d, TransDataSeq *tdsq)
static void free_transform_custom_data (TransCustomData *custom_data)
static void seq_transform_cancel (TransInfo *t, Span< Strip * > transformed_strips)
static ListBaseseqbase_active_get (const TransInfo *t)
static VectorSet< Strip * > seq_transform_collection_from_transdata (TransDataContainer *tc)
static void freeSeqData (TransInfo *t, TransDataContainer *tc, TransCustomData *custom_data)
static VectorSet< Strip * > query_selected_strips_no_handles (ListBase *seqbase)
static Stripeffect_input_get (const Scene *scene, Strip *effect, SeqInputSide side)
static Stripeffect_base_input_get (const Scene *scene, Strip *effect, SeqInputSide side)
static void query_time_dependent_strips_strips (TransInfo *t, VectorSet< Strip * > &time_dependent_strips)
static void create_trans_seq_clamp_data (TransInfo *t, const Scene *scene)
static void createTransSeqData (bContext *C, TransInfo *t)

Arrow / Cage Gizmo Group

Defines public functions, not the gizmo itself:

enum  { MAN2D_AXIS_TRANS_X = 0 , MAN2D_AXIS_TRANS_Y , MAN2D_AXIS_LAST }
void ED_widgetgroup_gizmo2d_xform_callbacks_set (wmGizmoGroupType *gzgt)
void ED_widgetgroup_gizmo2d_xform_no_cage_callbacks_set (wmGizmoGroupType *gzgt)
static void gizmo2d_get_axis_color (const int axis_idx, float *r_col, float *r_col_hi)
static GizmoGroup2Dgizmogroup2d_init (wmGizmoGroup *gzgroup)
static bool gizmo2d_calc_bounds (const bContext *C, float *r_center, float *r_min, float *r_max)
static int gizmo2d_calc_transform_orientation (const bContext *C)
static float gizmo2d_calc_rotation (const bContext *C)
static bool seq_get_strip_pivot_median (const Scene *scene, float r_pivot[2])
static bool gizmo2d_calc_transform_pivot (const bContext *C, float r_pivot[2])
BLI_INLINE void gizmo2d_origin_to_region (ARegion *region, float *r_origin)
static wmOperatorStatus gizmo2d_modal (bContext *C, wmGizmo *widget, const wmEvent *, eWM_GizmoFlagTweak)
static void gizmo2d_xform_setup (const bContext *, wmGizmoGroup *gzgroup)
static void rotate_around_center_v2 (float point[2], const float center[2], const float angle)
static void gizmo2d_xform_refresh (const bContext *C, wmGizmoGroup *gzgroup)
static void gizmo2d_xform_draw_prepare (const bContext *C, wmGizmoGroup *gzgroup)
static void gizmo2d_xform_invoke_prepare (const bContext *C, wmGizmoGroup *gzgroup, wmGizmo *, const wmEvent *)
static void gizmo2d_xform_setup_no_cage (const bContext *C, wmGizmoGroup *gzgroup)
static void gizmo2d_xform_no_cage_message_subscribe (const bContext *C, wmGizmoGroup *gzgroup, wmMsgBus *mbus)

Extrude Gizmo

enum  { EXTRUDE_AXIS_NORMAL = 0 , EXTRUDE_AXIS_XYZ = 1 }
static const float extrude_button_scale = 0.15f
static const float extrude_button_offset_scale = 1.5f
static const float extrude_outer_scale = 1.2f
static const float extrude_arrow_scale = 0.7f
static const float extrude_arrow_xyz_axis_scale = 0.6666f
static const float extrude_arrow_normal_axis_scale = 0.6666f
static const float extrude_dial_scale = 0.2
static const uchar shape_plus []
void VIEW3D_GGT_xform_extrude (wmGizmoGroupType *gzgt)
static void gizmo_mesh_extrude_orientation_matrix_set (GizmoExtrudeGroup *ggd, const float mat[3][3])
static void gizmo_mesh_extrude_orientation_matrix_set_for_adjust (GizmoExtrudeGroup *ggd, const float mat[3][3])
static void gizmo_mesh_extrude_setup (const bContext *C, wmGizmoGroup *gzgroup)
static void gizmo_mesh_extrude_refresh (const bContext *C, wmGizmoGroup *gzgroup)
static void gizmo_mesh_extrude_draw_prepare (const bContext *C, wmGizmoGroup *gzgroup)
static void gizmo_mesh_extrude_invoke_prepare (const bContext *, wmGizmoGroup *gzgroup, wmGizmo *gz, const wmEvent *)
static void gizmo_mesh_extrude_message_subscribe (const bContext *C, wmGizmoGroup *gzgroup, wmMsgBus *mbus)

Transform (Shrink-Fatten)

enum  eShrinkFattenMode { EVEN_THICKNESS_OFF = 0 , EVEN_THICKNESS_ON = 1 }
static void transdata_elem_shrink_fatten (const TransInfo *t, const TransDataContainer *, TransData *td, TransDataExtension *td_ext, const float distance)
static eRedrawFlag shrinkfatten_handleEvent (TransInfo *t, const wmEvent *event)
static void applyShrinkFatten (TransInfo *t)
static void initShrinkFatten (TransInfo *t, wmOperator *op)

Iterator

using IterSnapObjsCallback
static bool snap_object_is_snappable (const SnapObjectContext *sctx, const eSnapTargetOP snap_target_select, const Base *base_act, const Base *base)
static eSnapMode iter_snap_objects (SnapObjectContext *sctx, IterSnapObjsCallback sob_callback)

Detailed Description

Typedef Documentation

◆ IterSnapObjsCallback

Initial value:
const Object *ob_eval,
const ID *ob_data,
const float4x4 &obmat,
bool is_object_active,
bool use_hide)
MatBase< float, 4, 4 > float4x4
Definition DNA_ID.h:414

Definition at line 418 of file transform_snap_object.cc.

Enumeration Type Documentation

◆ anonymous enum

anonymous enum
Enumerator
MAN_AXES_ALL 
MAN_AXES_TRANSLATE 
MAN_AXES_ROTATE 
MAN_AXES_SCALE 

Definition at line 141 of file transform_gizmo_3d.cc.

◆ anonymous enum

anonymous enum

#TransData.flag

Enumerator
TD_SELECTED 
TD_USEQUAT 
TD_SINGLE_SCALE 

Used for scaling of MetaElem.rad.

TD_INDIVIDUAL_SCALE 

Scale relative to individual element center.

TD_NOCENTER 
TD_NO_EXT 

#TransData.ext abused for particle key timing.

TD_SKIP 

Don't transform this data.

TD_BEZTRIPLE 

If this is a bezier triple, we need to restore the handles, if this is set #TransData.hdata needs freeing.

TD_NO_LOC 

When this is set, don't apply translation changes to this element.

TD_NOTIMESNAP 

For Graph Editor auto-snap, indicates that point should not undergo auto-snapping.

TD_INTVALUES 

For Graph Editor - curves that can only have int-values need their keyframes tagged with this.

TD_MIRROR_X 

For edit-mode mirror.

TD_MIRROR_Y 
TD_MIRROR_Z 
TD_MIRROR_EDGE_X 

For edit-mode mirror, clamp axis to 0.

TD_MIRROR_EDGE_Y 
TD_MIRROR_EDGE_Z 
TD_MOVEHANDLE1 

For F-curve handles, move them along with their keyframes.

TD_MOVEHANDLE2 
TD_PBONE_LOCAL_MTX_P 

Exceptional case with pose bone rotating when a parent bone has 'Local Location' option enabled and rotating also transforms it.

TD_PBONE_LOCAL_MTX_C 

Same as TD_PBONE_LOCAL_MTX_P but for a child bone.

TD_GREASE_PENCIL_FRAME 

Definition at line 345 of file transform.hh.

◆ 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 
TFM_MODAL_NODE_FRAME 
TFM_MODAL_STRIP_CLAMP 

Definition at line 283 of file transform.hh.

◆ anonymous enum

anonymous enum
Enumerator
MAN2D_AXIS_TRANS_X 
MAN2D_AXIS_TRANS_Y 
MAN2D_AXIS_LAST 

Definition at line 155 of file transform_gizmo_2d.cc.

◆ anonymous enum

anonymous enum
Enumerator
ORIENTATION_NONE 
ORIENTATION_NORMAL 
ORIENTATION_VERT 
ORIENTATION_EDGE 
ORIENTATION_FACE 

Definition at line 67 of file transform_orientations.hh.

◆ anonymous enum

anonymous enum
Enumerator
MAN_AXIS_TRANS_X 
MAN_AXIS_TRANS_Y 
MAN_AXIS_TRANS_Z 
MAN_AXIS_TRANS_C 
MAN_AXIS_TRANS_XY 
MAN_AXIS_TRANS_YZ 
MAN_AXIS_TRANS_ZX 
MAN_AXIS_ROT_X 
MAN_AXIS_ROT_Y 
MAN_AXIS_ROT_Z 
MAN_AXIS_ROT_C 
MAN_AXIS_ROT_T 
MAN_AXIS_SCALE_X 
MAN_AXIS_SCALE_Y 
MAN_AXIS_SCALE_Z 
MAN_AXIS_SCALE_C 
MAN_AXIS_SCALE_XY 
MAN_AXIS_SCALE_YZ 
MAN_AXIS_SCALE_ZX 
MAN_AXIS_LAST 

Definition at line 107 of file transform_gizmo_3d.cc.

◆ anonymous enum

anonymous enum
Enumerator
EXTRUDE_AXIS_NORMAL 
EXTRUDE_AXIS_XYZ 

Definition at line 42 of file transform_gizmo_extrude_3d.cc.

◆ eArrowDirection

Enumerator
UP 
DOWN 
LEFT 
RIGHT 

Definition at line 27 of file transform_draw_cursors.cc.

◆ ePartialType

Note
It's important to order from least to greatest (which updates more data), since the larger values are used when values change between updates (which can happen when rotation is enabled with snapping).
Enumerator
PARTIAL_NONE 
PARTIAL_TYPE_GROUP 

Update only faces between tagged and non-tagged faces (affine transformations). Use when transforming is guaranteed not to change the relative locations of vertices.

This has the advantage that selecting the entire mesh or only isolated elements, can skip normal/tessellation updates entirely, so it's worth using when possible.

PARTIAL_TYPE_ALL 

Update for all tagged vertices (any kind of deformation). Use as a default since it can be used with any kind of deformation.

Definition at line 66 of file transform_convert_mesh.cc.

◆ eRedrawFlag

#TransInfo.redraw

Enumerator
TREDRAW_NOTHING 
TREDRAW_SOFT 
TREDRAW_HARD 

Definition at line 249 of file transform.hh.

◆ eShrinkFattenMode

Enumerator
EVEN_THICKNESS_OFF 
EVEN_THICKNESS_ON 

Definition at line 41 of file transform_mode_shrink_fatten.cc.

◆ eSnapDir

#TransSnap.direction

Enumerator
DIR_GLOBAL_X 
DIR_GLOBAL_Y 
DIR_GLOBAL_Z 

Definition at line 220 of file transform.hh.

◆ eSnapEditType

Enumerator
SNAP_GEOM_FINAL 
SNAP_GEOM_CAGE 
SNAP_GEOM_EDIT 

Definition at line 32 of file ED_transform_snap_object_context.hh.

◆ eSnapOcclusionTest

Enumerator
SNAP_OCCLUSION_NEVER 
SNAP_OCCLUSION_AS_SEEM 
SNAP_OCCLUSION_ALWAYS 

Definition at line 38 of file ED_transform_snap_object_context.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_USER 

Definition at line 228 of file transform.hh.

◆ 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 96 of file transform.hh.

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

T_ORIGIN 

Transform origin.

Definition at line 124 of file transform.hh.

◆ eTfmMode

Enumerator
TFM_INIT 
TFM_DUMMY 
TFM_TRANSLATION 
TFM_ROTATION 
TFM_RESIZE 
TFM_SKIN_RESIZE 
TFM_TOSPHERE 
TFM_SHEAR 
TFM_BEND 
TFM_SHRINKFATTEN 
TFM_TILT 
TFM_TRACKBALL 
TFM_PUSHPULL 
TFM_EDGE_CREASE 
TFM_VERT_CREASE 
TFM_MIRROR 
TFM_BONESIZE 
TFM_BONE_ENVELOPE 
TFM_CURVE_SHRINKFATTEN 
TFM_MASK_SHRINKFATTEN 
TFM_BONE_ROLL 
TFM_TIME_TRANSLATE 
TFM_TIME_SLIDE 
TFM_TIME_SCALE 
TFM_TIME_EXTEND 
TFM_BAKE_TIME 
TFM_DEPRECATED 
TFM_BWEIGHT 
TFM_ALIGN 
TFM_EDGE_SLIDE 
TFM_VERT_SLIDE 
TFM_SEQ_SLIDE 
TFM_BONE_ENVELOPE_DIST 
TFM_NORMAL_ROTATION 
TFM_GPENCIL_OPACITY 

Definition at line 36 of file ED_transform.hh.

◆ eTHelpline

#TransInfo.helpline

Enumerator
HLP_NONE 
HLP_SPRING 
HLP_ANGLE 
HLP_HARROW 
HLP_VARROW 
HLP_CARROW 
HLP_TRACKBALL 
HLP_ERROR 
HLP_ERROR_DASH 

Definition at line 257 of file transform.hh.

◆ 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 
MOD_NODE_FRAME 
MOD_STRIP_CLAMP_HOLDS 

Definition at line 195 of file transform.hh.

◆ eTOType

Enumerator
O_DEFAULT 
O_SCENE 
O_SET 

Definition at line 269 of file transform.hh.

◆ eTranslateRotateMode

Rotation may be enabled when snapping.

Enumerator
TRANSLATE_ROTATE_OFF 

Don't rotate (default).

TRANSLATE_ROTATE_ON 

Perform rotation (currently only snap to normal is used).

TRANSLATE_ROTATE_RESET 

Rotate, resetting back to the disabled state.

Definition at line 43 of file transform_mode_translate.cc.

◆ eTSnap

#TransSnap.status

Enumerator
SNAP_RESETTED 
SNAP_SOURCE_FOUND 
SNAP_TARGET_FOUND 
SNAP_MULTI_POINTS 

Definition at line 210 of file transform.hh.

◆ eTState

#TransInfo.state

Enumerator
TRANS_STARTING 
TRANS_RUNNING 
TRANS_CONFIRM 
TRANS_CANCEL 

Definition at line 241 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 
INPUT_ERROR 
INPUT_ERROR_DASH 

Definition at line 1043 of file transform.hh.

◆ SeqInputSide

Enumerator
SEQ_INPUT_LEFT 
SEQ_INPUT_RIGHT 

Definition at line 378 of file transform_convert_sequencer.cc.

◆ transDataTracking_Mode

Enumerator
transDataTracking_ModeTracks 
transDataTracking_ModePlaneTracks 

Definition at line 50 of file transform_convert_tracking.cc.

Function Documentation

◆ ActionFCurveToTransData()

TransData * blender::ed::transform::ActionFCurveToTransData ( TransData * td,
TransData2D ** td2dv,
FCurve * fcu,
bAnimListElem * ale,
char side,
float cfra,
bool is_prop_edit,
float ypos )
static

◆ add_pose_transdata()

void blender::ed::transform::add_pose_transdata ( TransInfo * t,
bPoseChannel * pchan,
Object * ob,
TransData * td,
TransDataExtension * td_ext )
static

Definition at line 392 of file transform_convert_armature.cc.

References add_temporary_ik_constraint(), blender::ed::transform::TransData::axismtx, blender::ed::transform::TransDataExtension::axismtx_gimbal, BKE_bone_parent_transform_calc_from_pchan(), BKE_pose_channel_transform_location(), BKE_pose_channel_transform_orientation(), bPoseChannel::bone, Bone::bone_mat, BONE_NO_LOCAL_LOCATION, blender::ed::transform::TransDataBasic::center, blender::ed::transform::TransDataExtension::center_no_override, blender::ed::transform::TransData::con, bPoseChannel::constinv, CONSTRAINT_IK_AUTO, CONSTRAINT_IK_TEMP, CONSTRAINT_IK_TIP, bPoseChannel::constraints, constraints_list_needinv(), blender::ed::transform::TransInfo::context, copy_m3_m3(), copy_m3_m4(), copy_qt_qt(), copy_v3_v3(), CTX_data_main(), data, Object::data, Bone::dist, ELEM, bPoseChannel::eul, blender::ed::transform::TransDataBasic::extra, ListBase::first, blender::ed::transform::TransDataBasic::flag, Bone::flag, bPoseChannel::flag, bPoseChannel_Runtime::flag, gimbal_axis_pose(), has_targetless_ik(), blender::ed::transform::TransDataBasic::iloc, invert_m3_m3(), blender::ed::transform::TransDataExtension::iquat, blender::ed::transform::TransDataExtension::irot, blender::ed::transform::TransDataExtension::irotAngle, blender::ed::transform::TransDataExtension::irotAxis, blender::ed::transform::TransDataExtension::iscale, blender::ed::transform::TransDataBasic::ival, blender::ed::transform::TransDataExtension::l_smtx, blender::ed::transform::TransDataBasic::loc, bPoseChannel::loc, BoneParentTransform::loc_mat, blender::ed::transform::TransInfo::mode, blender::ed::transform::TransData::mtx, mul_m3_m3m3(), mul_m3_series, normalize_m3(), blender::ed::transform::TransInfo::orient_type_mask, bPoseChannel::parent, bPoseChannel::pose_head, bPoseChannel::pose_mat, POSE_RUNTIME_HINGE_CHILD_TRANSFORM, POSE_RUNTIME_TRANSFORM_CHILD, bPoseChannel::pose_tail, POSE_TRANSFORM_AROUND_CUSTOM_TX, blender::ed::transform::TransData::protectflag, bPoseChannel::protectflag, PSEUDOINVERSE_EPSILON, pseudoinverse_m3_m3(), blender::ed::transform::TransDataExtension::quat, bPoseChannel::quat, blender::ed::transform::TransDataExtension::r_mtx, blender::ed::transform::TransDataExtension::r_smtx, blender::ed::transform::TransDataExtension::rot, ROT_MODE_AXISANGLE, blender::ed::transform::TransDataExtension::rotAngle, bPoseChannel::rotAngle, blender::ed::transform::TransDataExtension::rotAxis, bPoseChannel::rotAxis, bPoseChannel::rotmode, blender::ed::transform::TransDataExtension::rotOrder, BoneParentTransform::rotscale_mat, bPoseChannel::runtime, blender::ed::transform::TransDataExtension::scale, bPoseChannel::scale, blender::ed::transform::TransData::smtx, TD_NO_LOC, TD_NOCENTER, TD_PBONE_LOCAL_MTX_C, TD_PBONE_LOCAL_MTX_P, TD_SELECTED, TFM_BONE_ENVELOPE_DIST, TFM_BONESIZE, TFM_RESIZE, TFM_TRANSLATION, update_deg_with_temporary_ik(), V3D_ORIENT_GIMBAL, blender::ed::transform::TransDataBasic::val, and Bone::xwidth.

Referenced by createTransPose().

◆ add_temporary_ik_constraint()

◆ addMatrixSpace()

◆ addSnapPoint()

◆ animrecord_check_state()

◆ apply_shear()

void blender::ed::transform::apply_shear ( TransInfo * t)
static

◆ apply_shear_value()

◆ apply_targetless_ik()

◆ apply_value_impl()

◆ applyAlign()

◆ applyAspectRatio()

◆ applyAxisConstraintRot()

void blender::ed::transform::applyAxisConstraintRot ( const TransInfo * t,
const TransDataContainer * ,
const TransData * td,
float r_axis[3] )
static

Generic callback for constant spatial constraints applied to rotations

The rotation axis is copied into vec.

In the case of single axis constraints, the rotation axis is directly the one constrained to. For planar constraints (2 axis), the rotation axis is the normal of the plane.

Definition at line 584 of file transform_constraints.cc.

References blender::ed::transform::TransInfo::con, CON_APPLY, constraints_rotation_impl(), blender::ed::transform::TransCon::mode, and blender::ed::transform::TransInfo::spacemtx.

Referenced by setConstraint().

◆ applyAxisConstraintSize()

void blender::ed::transform::applyAxisConstraintSize ( const TransInfo * t,
const TransDataContainer * ,
const TransData * td,
float r_smat[3][3] )
static

◆ applyAxisConstraintVec()

void blender::ed::transform::applyAxisConstraintVec ( const TransInfo * t,
const TransDataContainer * ,
const TransData * td,
const float in[3],
float out[3] )
static

Generic callback for constant spatial constraints applied to linear motion

The in vector in projected into the constrained space and then further projected along the view vector. (in perspective mode, the view vector is relative to the position on screen)

Definition at line 447 of file transform_constraints.cc.

References blender::ed::transform::TransInfo::con, CON_APPLY, copy_v3_v3(), in, blender::ed::transform::TransCon::mode, out, and transform_constraint_get_nearest().

Referenced by applyObjectConstraintVec(), and setConstraint().

◆ applyBakeTime()

◆ applyBevelWeight()

void blender::ed::transform::applyBevelWeight ( TransInfo * t)
static

Definition at line 108 of file transform_mode_customdata.cc.

References apply_value_impl(), applyBevelWeight(), and IFACE_.

Referenced by applyBevelWeight().

◆ applyBoneEnvelope()

◆ applyBoneRoll()

◆ applyBoneSize()

◆ applyCrease()

void blender::ed::transform::applyCrease ( TransInfo * t)
static

Definition at line 103 of file transform_mode_customdata.cc.

References apply_value_impl(), applyCrease(), and IFACE_.

Referenced by applyCrease().

◆ applyCurveShrinkFatten()

◆ applyEdgeSlide()

◆ applyFaceNearest()

void blender::ed::transform::applyFaceNearest ( TransInfo * t,
TransDataContainer * tc,
TransData * td )
static

Definition at line 448 of file transform_snap.cc.

References add_v3_v3(), BKE_object_eval_transform_all(), copy_v3_v3(), CTX_OBJECT, blender::ed::transform::TransInfo::depsgraph, blender::ed::transform::SnapObjectParams::edit_mode_type, blender::ed::transform::TransDataBasic::extra, blender::ed::transform::SnapObjectParams::face_nearest_steps, blender::ed::transform::TransSnap::face_nearest_steps, blender::ed::transform::TransInfo::flag, blender::ed::transform::TransSnap::flag, blender::ed::transform::TransDataBasic::iloc, blender::ed::transform::SnapObjectParams::keep_on_same_target, blender::ed::transform::TransDataBasic::loc, blender::ed::transform::TransDataContainer::mat, mul_m3_v3(), mul_m4_v3(), blender::ed::transform::TransSnap::object_context, blender::ed::transform::SnapObjectParams::occlusion_test, blender::ed::transform::TransInfo::options, blender::ed::transform::TransInfo::region, SCE_SNAP_INDIVIDUAL_NEAREST, SCE_SNAP_KEEP_ON_SAME_OBJECT, blender::ed::transform::TransInfo::scene, blender::ed::transform::TransData::smtx, SNAP_GEOM_EDIT, SNAP_GEOM_FINAL, snap_object_project_view3d(), SNAP_OCCLUSION_ALWAYS, blender::ed::transform::SnapObjectParams::snap_target_select, sub_v3_v3v3(), T_EDIT, blender::ed::transform::TransSnap::target_operation, blender::ed::transform::TransInfo::tsnap, blender::ed::transform::SnapObjectParams::use_backface_culling, blender::ed::transform::TransDataContainer::use_local_mat, and blender::ed::transform::TransInfo::view.

Referenced by transform_snap_project_individual_apply().

◆ applyFaceProject()

bool blender::ed::transform::applyFaceProject ( TransInfo * t,
TransDataContainer * tc,
TransData * td,
TransDataExtension * td_ext )
static

◆ applyGPOpacity()

◆ applyMaskShrinkFatten()

◆ applyMirror()

◆ applyMouseInput()

◆ applyNormalRotation()

◆ applyObjectConstraintRot()

void blender::ed::transform::applyObjectConstraintRot ( const TransInfo * t,
const TransDataContainer * tc,
const TransData * td,
float r_axis[3] )
static

Callback for object based spatial constraints applied to rotations

The rotation axis is copied into vec.

In the case of single axis constraints, the rotation axis is directly the one constrained to. For planar constraints (2 axis), the rotation axis is the normal of the plane.

Definition at line 602 of file transform_constraints.cc.

References blender::ed::transform::TransData::axismtx, BLI_assert, blender::ed::transform::TransInfo::con, CON_APPLY, constraints_rotation_impl(), blender::ed::transform::TransDataContainer::data, blender::ed::transform::TransInfo::flag, float, blender::ed::transform::TransDataContainer::mat3_unit, blender::ed::transform::TransCon::mode, mul_m3_m3m3(), T_EDIT, TRANS_DATA_CONTAINER_FIRST_OK, and transform_object_axismtx_get().

Referenced by setAxisMatrixConstraint().

◆ applyObjectConstraintSize()

void blender::ed::transform::applyObjectConstraintSize ( const TransInfo * t,
const TransDataContainer * tc,
const TransData * td,
float r_smat[3][3] )
static

◆ applyObjectConstraintVec()

void blender::ed::transform::applyObjectConstraintVec ( const TransInfo * t,
const TransDataContainer * tc,
const TransData * td,
const float in[3],
float out[3] )
static

Generic callback for object based spatial constraints applied to linear motion

At first, the following is applied without orientation The IN vector in projected into the constrained space and then further projected along the view vector. (in perspective mode, the view vector is relative to the position on screen).

Further down, that vector is mapped to each data's space.

Definition at line 471 of file transform_constraints.cc.

References applyAxisConstraintVec(), blender::ed::transform::TransInfo::con, CON_APPLY, copy_v3_v3(), blender::ed::transform::TransInfo::flag, float, in, blender::ed::transform::TransDataContainer::mat3_unit, blender::ed::transform::TransCon::mode, mul_m3_v3(), out, blender::ed::transform::TransInfo::spacemtx_inv, T_EDIT, and transform_object_axismtx_get().

Referenced by setAxisMatrixConstraint().

◆ applyPushPull()

◆ applyResize()

◆ applyRotation()

◆ applyRotationMatrix()

◆ applyRotationValue()

void blender::ed::transform::applyRotationValue ( TransInfo * t,
float angle,
const float axis[3],
const bool is_large_rotation )
static

◆ applySeqSlide()

◆ applySeqSlideValue()

◆ applyShrinkFatten()

◆ applySkinResize()

◆ ApplySnapResize()

void blender::ed::transform::ApplySnapResize ( TransInfo * t,
float vec[3] )
static

◆ ApplySnapRotation()

void blender::ed::transform::ApplySnapRotation ( TransInfo * t,
float * value )
static

◆ ApplySnapTranslation()

◆ applyTilt()

◆ applyTimeScale()

◆ applyTimeScaleValue()

◆ applyTimeSlide()

◆ applyTimeSlideValue()

◆ applyTimeTranslate()

◆ applyTimeTranslateValue()

◆ applyToSphere()

◆ applyTrackball()

◆ applyTrackballMatrix()

◆ applyTrackballValue()

void blender::ed::transform::applyTrackballValue ( TransInfo * t,
const float axis[3],
const float angle )
static

◆ applyTrackballValue_calc_axis_angle()

void blender::ed::transform::applyTrackballValue_calc_axis_angle ( const TransInfo * t,
const float phi[2],
float r_axis[3],
float * r_angle )
static

◆ applyTransformNLA_timeScale()

void blender::ed::transform::applyTransformNLA_timeScale ( PointerRNA * strip_rna_ptr,
const float value )
static

Definition at line 323 of file transform_convert_nla.cc.

References RNA_float_set().

Referenced by nlastrip_fix_overlapping().

◆ applyTransformNLA_translation()

void blender::ed::transform::applyTransformNLA_translation ( PointerRNA * strip_rna_ptr,
const TransDataNla * transdata )
static

Applies a translation to the given NlaStrip.

Parameters
strip_rna_ptrThe RNA pointer of the NLA strip to modify.
transdataThe transformation info structure.

Definition at line 311 of file transform_convert_nla.cc.

References blender::ed::transform::TransDataNla::h1, blender::ed::transform::TransDataNla::h2, and RNA_float_set().

Referenced by nlastrip_fix_overlapping().

◆ applyTransformOrientation()

void blender::ed::transform::applyTransformOrientation ( const TransformOrientation * ts,
float r_mat[3][3],
char r_name[64] )

◆ applyTranslation()

◆ applyTranslationMatrix()

void blender::ed::transform::applyTranslationMatrix ( TransInfo * t,
float mat_xform[4][4] )
static

◆ applyTranslationValue()

◆ applyVertSlide()

◆ armature_bone_transflags_update()

int blender::ed::transform::armature_bone_transflags_update ( Object & ob,
bArmature * arm,
ListBase * lb )
static

◆ autokeyframe_object()

◆ autokeyframe_pose()

◆ autokeyframe_sequencer_image()

◆ axis_angle_to_gimbal_axis()

void blender::ed::transform::axis_angle_to_gimbal_axis ( float gmat[3][3],
const float axis[3],
const float angle )
static

Could move into BLI_math_rotation.h however this is only useful for display/editing purposes.

Definition at line 250 of file transform_orientations.cc.

References angle(), axis_angle_to_quat(), copy_v3_v3(), cross_v3_v3v3(), M_PI_2, mul_qt_v3(), normalize_m3(), and normalize_v3().

Referenced by gimbal_axis_object(), and gimbal_axis_pose().

◆ axisProjection()

void blender::ed::transform::axisProjection ( const TransInfo * t,
const float axis[3],
const float in[3],
float out[3] )
static

◆ Bend()

◆ bezt_select_to_transform_triple_flag()

int blender::ed::transform::bezt_select_to_transform_triple_flag ( const BezTriple * bezt,
const eNurbHandleTest_Mode handle_mode )
static

For the purpose of transform code we need to behave as if handles are selected, even when they aren't (see special case below).

Definition at line 38 of file transform_convert_curve.cc.

References BKE_nurb_bezt_handle_test_calc_flag(), ELEM, flag, BezTriple::h1, BezTriple::h2, HD_ALIGN, HD_AUTO, and SELECT.

Referenced by createTransCurveVerts().

◆ bezt_to_beztmaps()

Vector< BeztMap > blender::ed::transform::bezt_to_beztmaps ( BezTriple * bezts,
const int totvert )
static

◆ bezt_to_transdata()

void blender::ed::transform::bezt_to_transdata ( TransData * td,
TransData2D * td2d,
TransDataGraph * tdg,
bAnimListElem * ale,
BezTriple * bezt,
int bi,
bool selected,
bool ishandle,
bool intvals,
const float mtx[3][3],
const float smtx[3][3],
float unit_scale,
float offset )
static

◆ BIF_clearTransformOrientation()

◆ BIF_countTransformOrientation()

int blender::ed::transform::BIF_countTransformOrientation ( const bContext * C)

Definition at line 559 of file transform_orientations.cc.

References BLI_listbase_count(), C, CTX_data_scene(), and Scene::transform_spaces.

Referenced by initTransInfo().

◆ BIF_createTransformOrientation()

bool blender::ed::transform::BIF_createTransformOrientation ( bContext * C,
ReportList * reports,
const char * name,
bool use_view,
bool activate,
bool overwrite )

◆ BIF_removeTransformOrientation()

void blender::ed::transform::BIF_removeTransformOrientation ( bContext * C,
TransformOrientation * target )

◆ BIF_removeTransformOrientationIndex()

void blender::ed::transform::BIF_removeTransformOrientationIndex ( bContext * C,
int index )

◆ BIF_selectTransformOrientation()

◆ bm_edge_is_snap_target()

bool blender::ed::transform::bm_edge_is_snap_target ( BMEdge * e,
void *  )
static

Definition at line 618 of file transform_snap.cc.

References BM_elem_flag_test, BM_ELEM_HIDDEN, BM_ELEM_SELECT, and e.

Referenced by snap_object_context_init().

◆ bm_face_is_snap_target()

bool blender::ed::transform::bm_face_is_snap_target ( BMFace * f,
void *  )
static

◆ bm_loop_calc_opposite_co()

bool blender::ed::transform::bm_loop_calc_opposite_co ( const BMLoop * l_tmp,
const float plane_no[3],
float r_co[3] )
static

Find the closest point on the ngon on the opposite side. used to set the edge slide distance for ngons.

Definition at line 2242 of file transform_convert_mesh.cc.

References BMVert::co, copy_v3_v3(), FLT_MAX, isect_line_plane_v3(), len_squared_v3v3(), line_point_factor_v3(), BMLoop::next, BMLoop::prev, and BMLoop::v.

Referenced by isect_face_dst().

◆ bm_loop_uv_calc_opposite_co()

bool blender::ed::transform::bm_loop_uv_calc_opposite_co ( const BMLoop * l_tmp,
const float2 & uv_tmp,
const BMUVOffsets & offsets,
const float2 & ray_direction,
float2 & r_co )
static

Find the closest point on the ngon on the opposite side. used to set the edge slide distance for ngons.

Definition at line 751 of file transform_convert_mesh_uv.cc.

References BM_ELEM_CD_GET_FLOAT_P, blender::math::distance_squared(), FLT_MAX, isect_ray_seg_v2(), BMLoop::next, BMLoop::prev, and BMUVOffsets::uv.

Referenced by isect_face_dst().

◆ bm_mesh_edges_select_get_n()

uint blender::ed::transform::bm_mesh_edges_select_get_n ( BMesh * bm,
BMEdge ** elems,
const uint n )
static

◆ bm_mesh_elems_select_get_n__internal()

uint blender::ed::transform::bm_mesh_elems_select_get_n__internal ( BMesh * bm,
BMElem ** elems,
const uint n,
const BMIterType itype,
const char htype )
static

◆ bm_mesh_verts_select_get_n()

uint blender::ed::transform::bm_mesh_verts_select_get_n ( BMesh * bm,
BMVert ** elems,
const uint n )
static

◆ bmesh_test_dist_add()

bool blender::ed::transform::bmesh_test_dist_add ( BMVert * v0,
BMVert * v1,
BMVert * v2,
float * dists,
int * index,
const float mtx[3][3] )
static

◆ bmesh_test_loose_edge()

bool blender::ed::transform::bmesh_test_loose_edge ( BMEdge * edge)
static

◆ bone_children_clear_transflag()

int blender::ed::transform::bone_children_clear_transflag ( bPose & pose,
bPoseChannel & pose_bone )
static

◆ calc_distanceCurveVerts()

◆ calc_gizmo_stats()

int blender::ed::transform::calc_gizmo_stats ( const bContext * C,
const TransformCalcParams * params,
TransformBounds * tbounds,
RegionView3D * rv3d )

Centroid, bound-box, of selection.

Returns total items selected.

Definition at line 950 of file transform_gizmo_3d.cc.

References blender::ed::transform::TransformBounds::axis, blender::ed::transform::TransformBounds::axis_max, blender::ed::transform::TransformBounds::axis_min, BKE_scene_orientation_get_index(), C, calc_orientation_from_type_ex(), calc_tw_center(), blender::ed::transform::TransformBounds::center, copy_m3_m3(), copy_m3_m4(), copy_m4_m3(), copy_m4_m4(), copy_v3_v3(), CTX_data_scene(), CTX_data_view_layer(), CTX_wm_area(), ListBase::first, gizmo_3d_foreach_selected(), gizmo_3d_transform_space_object_get(), invert_m3(), invert_m4_m4(), blender::ed::transform::TransformBounds::matrix_space, blender::ed::transform::TransformBounds::max, blender::ed::transform::TransformBounds::min, Object::mode, mul_m3_m3_pre(), mul_m4_v3(), mul_v3_fl(), normalize_m3(), OB_MODE_EDIT, OB_MODE_POSE, OB_MODE_SCULPT, OBEDIT_FROM_OBACT, params, reset_tw_center(), Object::runtime, SCE_ORIENT_DEFAULT, ScrArea::spacedata, Scene::toolsettings, ToolSettings::transform_pivot_point, RegionView3D::tw_axis_matrix, RegionView3D::tw_axis_max, RegionView3D::tw_axis_min, RegionView3D::twdrawflag, RegionView3D::twmat, unit_m3(), unit_m4(), blender::ed::transform::TransformBounds::use_matrix_space, V3D_AROUND_LOCAL_ORIGINS, and zero_v3().

Referenced by gizmo_3d_calc_pos(), gizmo_mesh_extrude_refresh(), gizmo_modal(), WIDGETGROUP_gizmo_refresh(), WIDGETGROUP_tool_generic_refresh(), WIDGETGROUP_xform_cage_refresh(), and WIDGETGROUP_xform_shear_refresh().

◆ calc_orientation_from_type()

◆ calc_orientation_from_type_ex()

short blender::ed::transform::calc_orientation_from_type_ex ( const Scene * scene,
ViewLayer * view_layer,
const View3D * v3d,
const RegionView3D * rv3d,
Object * ob,
Object * obedit,
short orientation_index,
int pivot_point,
float r_mat[3][3] )

◆ calc_pivot_pos()

bool blender::ed::transform::calc_pivot_pos ( const bContext * C,
const short pivot_type,
float r_pivot_pos[3] )

Definition at line 2460 of file transform_gizmo_3d.cc.

References C, CTX_data_scene(), and gizmo_3d_calc_pos().

Referenced by view3d_orbit_calc_center().

◆ calc_tw_center()

◆ calcEdgeSlide_mval_range()

◆ calcEdgeSlideCustomPoints()

◆ calcSpringFactor()

void blender::ed::transform::calcSpringFactor ( MouseInput * mi)
static

◆ calculate_new_origin_position()

◆ calculate_translation_offset()

◆ calculateCenter()

◆ calculateCenter2D()

◆ calculateCenter_FromAround()

◆ calculateCenterActive()

◆ calculateCenterBound()

void blender::ed::transform::calculateCenterBound ( TransInfo * t,
float r_center[3] )

◆ calculateCenterCursor()

◆ calculateCenterCursor2D()

◆ calculateCenterCursorGraph2D()

◆ calculateCenterLocal()

void blender::ed::transform::calculateCenterLocal ( TransInfo * t,
const float center_global[3] )

◆ calculateCenterMedian()

void blender::ed::transform::calculateCenterMedian ( TransInfo * t,
float r_center[3] )

◆ calculatePropRatio()

◆ calculateTransformCenter()

bool blender::ed::transform::calculateTransformCenter ( bContext * C,
int centerMode,
float cent3d[3],
float cent2d[2] )

◆ calculateZfac()

◆ calcVertSlideCustomPoints()

◆ cancelTransTracking()

◆ cancelTransTrackingCurves()

◆ cb_snap_edge()

void blender::ed::transform::cb_snap_edge ( void * userdata,
int index,
const DistProjectedAABBPrecalc * precalc,
const float(*) clip_plane[4],
const int clip_plane_len,
BVHTreeNearest * nearest )

◆ cb_snap_edge_verts()

void blender::ed::transform::cb_snap_edge_verts ( void * userdata,
int index,
const DistProjectedAABBPrecalc * precalc,
const float(*) clip_plane[4],
const int clip_plane_len,
BVHTreeNearest * nearest )
static

Definition at line 261 of file transform_snap_object_mesh.cc.

References cb_snap_vert(), data, i, and BVHTreeNearest::index.

Referenced by snapMesh().

◆ cb_snap_tri_edges()

void blender::ed::transform::cb_snap_tri_edges ( void * userdata,
int index,
const DistProjectedAABBPrecalc * precalc,
const float(*) clip_plane[4],
const int clip_plane_len,
BVHTreeNearest * nearest )
static

◆ cb_snap_tri_verts()

void blender::ed::transform::cb_snap_tri_verts ( void * userdata,
int index,
const DistProjectedAABBPrecalc * precalc,
const float(*) clip_plane[4],
const int clip_plane_len,
BVHTreeNearest * nearest )
static

◆ cb_snap_vert()

void blender::ed::transform::cb_snap_vert ( void * userdata,
int index,
const DistProjectedAABBPrecalc * precalc,
const float(*) clip_plane[4],
const int clip_plane_len,
BVHTreeNearest * nearest )

◆ checkUseAxisMatrix()

◆ clear_trans_object_base_flags()

◆ clip_uv_transform_resize()

◆ clip_uv_transform_rotate()

bool blender::ed::transform::clip_uv_transform_rotate ( const TransInfo * t,
float * vec,
float * vec_inside_bounds )
static

◆ clip_uv_transform_shear()

bool blender::ed::transform::clip_uv_transform_shear ( const TransInfo * t,
float * vec,
float * vec_inside_bounds )
static

◆ clip_uv_transform_translation()

◆ clipUVData()

◆ cmp_fn()

int blender::ed::transform::cmp_fn ( const void * a,
const void * b )
static

◆ constrain_scale_to_boundary()

void blender::ed::transform::constrain_scale_to_boundary ( const float numerator,
const float denominator,
float * scale )
static

Find the correction for the scaling factor when "Constrain to Bounds" is active.

Parameters
numeratorHow far the UV boundary (unit square) is from the origin of the scale.
denominatorHow far the AABB is from the origin of the scale.
scaleScale parameter to update.

Definition at line 82 of file transform_mode_resize.cc.

References fabsf.

Referenced by clip_uv_transform_resize().

◆ constraint_plane_normal_calc()

void blender::ed::transform::constraint_plane_normal_calc ( const TransInfo * t,
float r_plane_no[3] )
static

◆ constraint_snap_plane_to_edge()

void blender::ed::transform::constraint_snap_plane_to_edge ( const TransInfo * t,
const float plane_no[3],
float r_out[3] )
static

◆ constraintModeToChar()

char blender::ed::transform::constraintModeToChar ( const TransInfo * t)

◆ constraintModeToIndex()

int blender::ed::transform::constraintModeToIndex ( const TransInfo * t)

◆ constraintNumInput()

◆ constraintob_from_transdata()

◆ constraintRotLim()

◆ constraints_list_needinv()

bool blender::ed::transform::constraints_list_needinv ( TransInfo * t,
ListBase * list )

◆ constraints_rotation_impl()

void blender::ed::transform::constraints_rotation_impl ( const TransInfo * t,
const float axismtx[3][3],
float r_axis[3] )
static

◆ constraintScaleLim()

◆ constraintTransLim()

◆ convert_type_get()

TransConvertTypeInfo * blender::ed::transform::convert_type_get ( const TransInfo * t,
Object ** r_obj_armature )
static

Definition at line 881 of file transform_convert.cc.

References BKE_view_layer_active_object_get(), BKE_view_layer_synced_ensure(), blender::ed::transform::TransInfo::context, CTX_CURSOR, CTX_EDGE_DATA, CTX_GPENCIL_STROKES, CTX_MASK, CTX_MOVIECLIP, CTX_PAINT_CURVE, CTX_SEQUENCER_IMAGE, CTX_TEXTURE_SPACE, blender::ed::transform::TransInfo::depsgraph, ELEM, blender::ed::transform::TransInfo::mode, Object::mode, OB_ARMATURE, OB_CURVES, OB_CURVES_LEGACY, OB_GREASE_PENCIL, OB_LATTICE, OB_MBALL, OB_MESH, OB_MODE_ALL_PAINT, OB_MODE_ALL_PAINT_GPENCIL, OB_MODE_ALL_WEIGHT_PAINT, OB_MODE_PARTICLE_EDIT, OB_MODE_POSE, OB_MODE_SCULPT, OB_MODE_SCULPT_CURVES, OB_POINTCLOUD, OB_SURF, blender::ed::transform::TransInfo::obedit_type, blender::ed::transform::TransInfo::options, PE_get_current(), PE_start_edit(), blender::ed::transform::TransInfo::region, ARegion::regiontype, RGN_TYPE_PREVIEW, blender::ed::transform::TransInfo::scene, Object::sculpt, blender::ed::vse::sequencer_retiming_mode_is_active(), SPACE_ACTION, SPACE_CLIP, SPACE_GRAPH, SPACE_IMAGE, SPACE_NLA, SPACE_NODE, SPACE_SEQ, SPACE_VIEW3D, blender::ed::transform::TransInfo::spacetype, TFM_BWEIGHT, TFM_SHEAR, TFM_SHRINKFATTEN, TFM_SKIN_RESIZE, TFM_VERT_CREASE, TransConvertType_Action, TransConvertType_Cursor3D, TransConvertType_CursorImage, TransConvertType_CursorSequencer, TransConvertType_Curve, blender::ed::transform::curves::TransConvertType_Curves, TransConvertType_EditArmature, TransConvertType_Graph, blender::ed::transform::greasepencil::TransConvertType_GreasePencil, TransConvertType_Lattice, TransConvertType_Mask, TransConvertType_MBall, TransConvertType_Mesh, TransConvertType_MeshEdge, TransConvertType_MeshSkin, TransConvertType_MeshUV, TransConvertType_MeshVertCData, TransConvertType_NLA, TransConvertType_Node, TransConvertType_Object, TransConvertType_ObjectTexSpace, TransConvertType_PaintCurve, TransConvertType_Particle, blender::ed::transform::pointcloud::TransConvertType_PointCloud, TransConvertType_Pose, TransConvertType_Sculpt, TransConvertType_Sequencer, TransConvertType_SequencerImage, TransConvertType_SequencerRetiming, TransConvertType_Tracking, TransConvertType_TrackingCurves, transform_object_deform_pose_armature_get(), and blender::ed::transform::TransInfo::view_layer.

Referenced by create_trans_data().

◆ convertViewVec()

◆ convertViewVec2D()

void blender::ed::transform::convertViewVec2D ( View2D * v2d,
float r_vec[3],
int dx,
int dy )
static

◆ convertViewVec2D_mask()

void blender::ed::transform::convertViewVec2D_mask ( View2D * v2d,
float r_vec[3],
int dx,
int dy )
static

◆ count_fcurve_keys()

int blender::ed::transform::count_fcurve_keys ( FCurve * fcu,
char side,
float cfra,
bool is_prop_edit )
static

Fully select selected beztriples, but only include if it's on the right side of cfra.

Definition at line 272 of file transform_convert_action.cc.

References FCurve::bezt, count, ELEM, BezTriple::f2, FrameOnMouseSide(), i, SELECT, and BezTriple::vec.

Referenced by createTransActionData().

◆ count_gplayer_frames()

int blender::ed::transform::count_gplayer_frames ( bGPDlayer * gpl,
char side,
float cfra,
bool is_prop_edit )
static

Fully select selected beztriples, but only include if it's on the right side of cfra.

Definition at line 303 of file transform_convert_action.cc.

References count, FrameOnMouseSide(), bGPDlayer::frames, GP_FRAME_SELECT, and LISTBASE_FOREACH.

Referenced by createTransActionData().

◆ count_grease_pencil_frames()

int blender::ed::transform::count_grease_pencil_frames ( const bke::greasepencil::Layer * layer,
const char side,
const float cfra,
const bool is_prop_edit,
const bool use_duplicated )
static

◆ count_masklayer_frames()

int blender::ed::transform::count_masklayer_frames ( MaskLayer * masklay,
char side,
float cfra,
bool is_prop_edit )
static

Fully select selected beztriples, but only include if it's on the right side of cfra.

Definition at line 365 of file transform_convert_action.cc.

References count, FrameOnMouseSide(), LISTBASE_FOREACH, MASK_SHAPE_SELECT, and MaskLayer::splines_shapes.

Referenced by createTransActionData().

◆ count_proportional_objects()

◆ countAndCleanTransDataContainer()

◆ create_mesh()

◆ create_orientation_exec()

◆ create_trans_data()

void blender::ed::transform::create_trans_data ( bContext * C,
TransInfo * t )

Definition at line 1022 of file transform_convert.cc.

References BKE_scene_graph_evaluated_ensure(), BKE_view_layer_active_object_get(), BKE_view_layer_synced_ensure(), BLI_assert, C, View3D::camera, blender::ed::transform::TransInfo::context, convert_type_get(), countAndCleanTransDataContainer(), blender::ed::transform::TransConvertTypeInfo::create_trans_data, CTX_CAMERA, CTX_data_main(), CTX_OBJECT, CTX_OBMODE_XFORM_OBDATA, CTX_OBMODE_XFORM_SKIP_CHILDREN, CTX_POSE_BONE, blender::ed::transform::TransInfo::data_len_all, blender::ed::transform::TransInfo::data_type, blender::ed::transform::TransInfo::depsgraph, blender::ed::transform::TransInfo::flag, NumInput::flag, blender::ed::transform::TransConvertTypeInfo::flags, Object::id, ID_TAG_DOIT, init_proportional_edit(), init_TransDataContainers(), blender::ed::transform::TransInfo::num, NUM_NO_FRACTION, View3D::ob_center, blender::ed::transform::TransInfo::obedit_type, blender::ed::transform::TransInfo::options, RegionView3D::persp, printf, blender::ed::transform::TransInfo::region, ARegion::regiondata, ARegion::regiontype, RGN_TYPE_WINDOW, RV3D_CAMOB, SCE_XFORM_DATA_ORIGIN, SCE_XFORM_SKIP_CHILDREN, blender::ed::transform::TransInfo::scene, blender::ed::transform::TransInfo::settings, SPACE_VIEW3D, blender::ed::transform::TransInfo::spacetype, ID::tag, TransConvertType_Object, TransConvertType_Pose, TransConvertType_Sequencer, TransConvertType_SequencerImage, ToolSettings::transform_flag, blender::ed::transform::TransInfo::view, and blender::ed::transform::TransInfo::view_layer.

Referenced by calculateTransformCenter(), and initTransform().

◆ create_trans_seq_clamp_data() [1/2]

◆ create_trans_seq_clamp_data() [2/2]

◆ create_transform_data_for_node()

◆ createBoneSpace()

TransformOrientation * blender::ed::transform::createBoneSpace ( bContext * C,
ReportList * reports,
const char * name,
const bool overwrite )
static

◆ createCurveSpace()

TransformOrientation * blender::ed::transform::createCurveSpace ( bContext * C,
ReportList * reports,
const char * name,
const bool overwrite )
static

◆ createEdgeSlideVerts()

◆ createMeshSpace()

TransformOrientation * blender::ed::transform::createMeshSpace ( bContext * C,
ReportList * reports,
const char * name,
const bool overwrite )
static

◆ createObjectSpace()

TransformOrientation * blender::ed::transform::createObjectSpace ( bContext * C,
ReportList * ,
const char * name,
const bool overwrite )
static

◆ createSpaceNormal()

bool blender::ed::transform::createSpaceNormal ( float mat[3][3],
const float normal[3] )

◆ createSpaceNormalTangent()

bool blender::ed::transform::createSpaceNormalTangent ( float mat[3][3],
const float normal[3],
const float tangent[3] )
Parameters
normalA unit length normal (or zero in case of error).
tangentA unit length tangent (or zero in case of error).
Note
To recreate an orientation from the matrix:
  • (plane == mat[1])
  • (normal == mat[2])

Definition at line 409 of file transform_orientations.cc.

References BLI_ASSERT_UNIT_V3, copy_v3_v3(), cross_v3_v3v3(), is_zero_v3(), negate_v3_v3(), normalize_v3(), and UNLIKELY.

Referenced by createBoneSpace(), createCurveSpace(), createMeshSpace(), createSpaceNormalTangent_or_fallback(), and ED_getTransformOrientationMatrix().

◆ createSpaceNormalTangent_or_fallback()

void blender::ed::transform::createSpaceNormalTangent_or_fallback ( float mat[3][3],
const float normal[3],
const float tangent[3] )

A version of createSpaceNormalTangent that sets the matrix from usable values if the normal or tangent can't be used to create an orientation matrix.

Definition at line 449 of file transform_orientations.cc.

References axis_dominant_v3_to_m3(), createSpaceNormalTangent(), invert_m3(), is_zero_v3(), and unit_m3().

Referenced by createTransCurveVerts(), and transform_convert_mesh_islands_calc().

◆ createTransActionData()

void blender::ed::transform::createTransActionData ( bContext * C,
TransInfo * t )
static

Definition at line 647 of file transform_convert_action.cc.

References abs, ActionFCurveToTransData(), ANIM_animdata_filter(), ANIM_animdata_freelist(), ANIM_animdata_get_context(), ANIM_nla_tweakedit_remap(), ANIMFILTER_DATA_VISIBLE, ANIMFILTER_FOREDIT, ANIMTYPE_ACTION_SLOT, ANIMTYPE_ANIMDATA, ANIMTYPE_DSARM, ANIMTYPE_DSCACHEFILE, ANIMTYPE_DSCAM, ANIMTYPE_DSCUR, ANIMTYPE_DSGPENCIL, ANIMTYPE_DSHAIR, ANIMTYPE_DSLAM, ANIMTYPE_DSLAT, ANIMTYPE_DSLIGHTPROBE, ANIMTYPE_DSLINESTYLE, ANIMTYPE_DSMAT, ANIMTYPE_DSMBALL, ANIMTYPE_DSMCLIP, ANIMTYPE_DSMESH, ANIMTYPE_DSNTREE, ANIMTYPE_DSPART, ANIMTYPE_DSPOINTCLOUD, ANIMTYPE_DSSKEY, ANIMTYPE_DSSPK, ANIMTYPE_DSTEX, ANIMTYPE_DSVOLUME, ANIMTYPE_DSWOR, ANIMTYPE_FCURVE, ANIMTYPE_FILLACT_LAYERED, ANIMTYPE_FILLACTD, ANIMTYPE_FILLDRIVERS, ANIMTYPE_GPLAYER, ANIMTYPE_GREASE_PENCIL_DATABLOCK, ANIMTYPE_GREASE_PENCIL_LAYER, ANIMTYPE_GREASE_PENCIL_LAYER_GROUP, ANIMTYPE_GROUP, ANIMTYPE_MASKDATABLOCK, ANIMTYPE_MASKLAYER, ANIMTYPE_NLAACTION, ANIMTYPE_NLACONTROLS, ANIMTYPE_NLACURVE, ANIMTYPE_NLATRACK, ANIMTYPE_NONE, ANIMTYPE_NUM_TYPES, ANIMTYPE_OBJECT, ANIMTYPE_PALETTE, ANIMTYPE_SCENE, ANIMTYPE_SHAPEKEY, ANIMTYPE_SPECIALDATA__UNUSED, ANIMTYPE_SUMMARY, FCurve::bezt, BLI_assert_unreachable, BLI_rctf_cent_y(), BLI_rctf_size_x(), BLI_rctf_size_y(), BLI_rcti_size_x(), BLI_rcti_size_y(), C, RenderData::cfra, count, count_fcurve_keys(), count_gplayer_frames(), count_grease_pencil_frames(), count_masklayer_frames(), View2D::cur, bAnimContext::data, blender::ed::transform::TransDataContainer::data, blender::ed::transform::TransDataContainer::data_2d, blender::ed::transform::TransDataContainer::data_len, bAnimContext::datatype, blender::ed::transform::TransData::dist, distance(), ELEM, BezTriple::f2, fabs(), filter, blender::ed::transform::TransInfo::flag, FLT_MAX, blender::ed::transform::TransInfo::frame_side, FrameOnMouseSide(), bGPDlayer::frames, blender::bke::greasepencil::Layer::frames(), GP_FRAME_SELECT, GPLayerToTransData(), GreasePencilLayerToTransData(), i, Map< Key, Value, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::items(), LISTBASE_FOREACH, mask(), View2D::mask, MASK_SHAPE_SELECT, MaskLayerToTransData(), MEM_calloc_arrayN(), min, blender::ed::transform::TransInfo::mode, NLATIME_CONVERT_UNMAP, Scene::r, blender::ed::transform::TransData::rdist, blender::ed::transform::TransInfo::region, GreasePencilLayer::runtime, blender::ed::transform::TransInfo::scene, SELECT, MaskLayer::splines_shapes, T_DUPLICATED_KEYFRAMES, T_PROP_EDIT, TFM_TIME_EXTEND, TRANS_DATA_CONTAINER_FIRST_SINGLE, transform_convert_frame_side_dir_get(), ARegion::v2d, and BezTriple::vec.

◆ createTransArmatureVerts()

void blender::ed::transform::createTransArmatureVerts ( bContext * ,
TransInfo * t )
static

Definition at line 743 of file transform_convert_armature.cc.

References ARM_MIRROR_EDIT, blender::ed::transform::TransInfo::around, blender::ed::transform::TransData::axismtx, BLI_assert, blender::ed::transform::BoneInitData::bone, BONE_EDITMODE_LOCKED, blender::animrig::bone_is_visible(), BONE_ROOTSEL, BONE_SELECTED, BONE_TIPSEL, blender::ed::transform::TransDataBasic::center, copy_m3_m3(), copy_m3_m4(), copy_v3_v3(), blender::ed::transform::TransInfo::data_len_all, blender::ed::transform::BoneInitData::dist, EditBone::dist, ED_armature_ebone_get_mirrored(), ED_armature_ebone_to_mat3(), bArmature::edbo, ELEM, blender::ed::transform::TransDataBasic::extra, bArmature::flag, blender::ed::transform::TransDataBasic::flag, FOREACH_TRANS_DATA_CONTAINER, EditBone::head, i, blender::ed::transform::TransDataBasic::iloc, invert_m3_m3(), blender::ed::transform::TransDataBasic::ival, LISTBASE_FOREACH, blender::ed::transform::TransDataBasic::loc, MEM_allocN_len, MEM_calloc_arrayN(), MEM_malloc_arrayN(), blender::ed::transform::TransInfo::mode, blender::ed::transform::TransData::mtx, mul_m3_m3m3(), normalize_m3(), OB_LOCK_LOC, OB_LOCK_ROT, OB_LOCK_SCALE, blender::ed::transform::TransData::protectflag, PSEUDOINVERSE_EPSILON, pseudoinverse_m3_m3(), blender::ed::transform::BoneInitData::rad_head, EditBone::rad_head, blender::ed::transform::BoneInitData::rad_tail, EditBone::rad_tail, blender::ed::transform::BoneInitData::roll, EditBone::roll, blender::ed::transform::TransData::smtx, EditBone::tail, TD_SELECTED, TFM_BONE_ENVELOPE, TFM_BONE_ENVELOPE_DIST, TFM_BONE_ROLL, TFM_BONESIZE, TFM_ROTATION, transform_around_single_fallback(), V3D_AROUND_LOCAL_ORIGINS, blender::ed::transform::TransDataBasic::val, blender::ed::transform::BoneInitData::xwidth, EditBone::xwidth, blender::ed::transform::BoneInitData::zwidth, and EditBone::zwidth.

◆ createTransCursor_2D_impl()

◆ createTransCursor_image()

void blender::ed::transform::createTransCursor_image ( bContext * ,
TransInfo * t )
static

◆ createTransCursor_sequencer()

void blender::ed::transform::createTransCursor_sequencer ( bContext * ,
TransInfo * t )
static

◆ createTransCursor_view3d()

void blender::ed::transform::createTransCursor_view3d ( bContext * ,
TransInfo * t )
static

Definition at line 124 of file transform_convert_cursor.cc.

References blender::ed::transform::TransData::axismtx, BKE_report(), BLI_assert, blender::ed::transform::TransDataBasic::center, copy_m3_m3(), copy_qt_qt(), copy_v3_v3(), Scene::cursor, blender::ed::transform::TransDataContainer::data, blender::ed::transform::TransInfo::data_container, blender::ed::transform::TransInfo::data_container_len, blender::ed::transform::TransDataContainer::data_ext, blender::ed::transform::TransDataContainer::data_len, blender::ed::transform::TransDataBasic::flag, ID_IS_EDITABLE, blender::ed::transform::TransDataBasic::iloc, blender::ed::transform::TransDataExtension::iquat, blender::ed::transform::TransDataExtension::irot, blender::ed::transform::TransDataExtension::irotAngle, blender::ed::transform::TransDataExtension::irotAxis, blender::ed::transform::TransDataBasic::loc, View3DCursor::location, MEM_callocN(), blender::ed::transform::TransData::mtx, normalize_m3(), PSEUDOINVERSE_EPSILON, pseudoinverse_m3_m3(), blender::ed::transform::TransDataExtension::quat, blender::ed::transform::TransInfo::reports, blender::ed::transform::TransDataExtension::rot, ROT_MODE_AXISANGLE, blender::ed::transform::TransDataExtension::rotAngle, View3DCursor::rotation_angle, View3DCursor::rotation_axis, View3DCursor::rotation_euler, View3DCursor::rotation_mode, View3DCursor::rotation_quaternion, blender::ed::transform::TransDataExtension::rotAxis, blender::ed::transform::TransDataExtension::rotOrder, RPT_ERROR, blender::ed::transform::TransInfo::scene, blender::ed::transform::TransData::smtx, TD_SELECTED, and unit_m3().

◆ createTransCurveVerts()

void blender::ed::transform::createTransCurveVerts ( bContext * ,
TransInfo * t )
static

Definition at line 61 of file transform_convert_curve.cc.

References blender::ed::transform::TransInfo::around, blender::ed::transform::TransData::axismtx, bezt_select_to_transform_triple_flag(), BKE_curve_editNurbs_get(), BKE_nurb_bezt_calc_normal(), BKE_nurb_bezt_calc_plane(), BKE_nurb_bpoint_calc_normal(), BKE_nurb_bpoint_calc_plane(), BKE_nurb_handles_test(), BLI_assert, calc_distanceCurveVerts(), blender::ed::transform::TransDataBasic::center, copy_m3_m3(), copy_m3_m4(), copy_v3_v3(), count, createSpaceNormalTangent_or_fallback(), CU_BEZIER, CU_NURB_CYCLIC, CURVE_HANDLE_NONE, blender::ed::transform::TransInfo::data_len_all, blender::ed::transform::TransData::dist, Curve::editnurb, ELEM, BezTriple::f1, BPoint::f1, BezTriple::f2, BezTriple::f3, blender::ed::transform::TransDataBasic::flag, blender::ed::transform::TransInfo::flag, FLT_MAX, FOREACH_TRANS_DATA_CONTAINER, View3DOverlay::handle_display, BezTriple::hide, BPoint::hide, blender::ed::transform::TransDataBasic::iloc, initTransDataCurveHandles(), blender::ed::transform::TransDataBasic::ival, LISTBASE_FOREACH, blender::ed::transform::TransDataBasic::loc, MEM_calloc_arrayN(), blender::ed::transform::TransInfo::mode, blender::ed::transform::TransData::mtx, NURB_HANDLE_TEST_KNOT_ONLY, NURB_HANDLE_TEST_KNOT_OR_EACH, View3D::overlay, PSEUDOINVERSE_EPSILON, pseudoinverse_m3_m3(), BezTriple::radius, BPoint::radius, blender::ed::transform::TransInfo::reports, SEL_F1, SEL_F2, SEL_F3, SELECT, blender::ed::object::shape_key_report_if_locked(), blender::ed::transform::TransData::smtx, T_PROP_CONNECTED, T_PROP_EDIT, TD_SELECTED, TFM_CURVE_SHRINKFATTEN, TFM_DUMMY, TFM_RESIZE, TFM_TILT, BezTriple::tilt, BPoint::tilt, transform_around_single_fallback_ex(), transform_mode_use_local_origins(), V3D_AROUND_LOCAL_ORIGINS, blender::ed::transform::TransDataBasic::val, BezTriple::vec, BPoint::vec, and blender::ed::transform::TransInfo::view.

◆ createTransEdge()

◆ createTransEditVerts()

void blender::ed::transform::createTransEditVerts ( bContext * ,
TransInfo * t )
static

Quick check if we can transform.

Note
ignore modes here, even in edge/face modes, transform data is created by selected vertices.

Definition at line 1483 of file transform_convert_mesh.cc.

References blender::ed::transform::TransInfo::around, BKE_editmesh_from_object(), BKE_editmesh_looptris_calc(), BLI_assert, bm, BMEditMesh::bm, BM_elem_flag_test, BM_ELEM_HIDDEN, BM_ELEM_SELECT, BM_ELEM_TAG, BM_ITER_MESH, BM_ITER_MESH_INDEX, BM_vert_at_index(), BM_VERTS_OF_MESH, blender::ed::transform::TransDataBasic::center, BMVert::co, copy_m3_m4(), copy_v3_v3(), blender::ed::transform::TransMeshDataCrazySpace::defmats, blender::ed::transform::TransData::dist, ELEM, blender::ed::transform::TransDataBasic::extra, fabsf, blender::ed::transform::MirrorDataVert::flag, blender::ed::transform::TransDataBasic::flag, blender::ed::transform::TransInfo::flag, FLT_MAX, FOREACH_TRANS_DATA_CONTAINER, blender::ed::transform::TransDataBasic::iloc, blender::ed::transform::MirrorDataVert::index, blender::ed::transform::TransIslandData::island_vert_map, blender::ed::transform::TransDataBasic::loc, blender::ed::transform::TransDataMirror::loc_src, BMEditMesh::looptris, ME_EDIT_MIRROR_TOPO, MEM_calloc_arrayN(), MEM_callocN(), MEM_freeN(), MEM_malloc_arrayN(), mesh_transdata_center_copy(), blender::ed::transform::TransMirrorData::mirror_elem_len, blender::ed::transform::TransInfo::mode, poly_to_tri_count(), PSEUDOINVERSE_EPSILON, pseudoinverse_m3_m3(), blender::ed::transform::TransMeshDataCrazySpace::quats, blender::ed::transform::TransInfo::reports, SCE_SELECT_VERTEX, SCE_SNAP_ROTATE, BMEditMesh::selectmode, blender::ed::transform::TransInfo::settings, blender::ed::object::shape_key_report_if_locked(), Array< T, InlineBufferCapacity, Allocator >::size(), ToolSettings::snap_flag, T_PROP_CONNECTED, T_PROP_EDIT, T_PROP_EDIT_ALL, TD_MIRROR_EDGE_X, TD_MIRROR_EDGE_Y, TD_MIRROR_EDGE_Z, TD_SELECTED, TFM_DUMMY, TFM_NORMAL_ROTATION, TFM_SHRINKFATTEN, TFM_TRANSLATION, transform_convert_mesh_connectivity_distance(), transform_convert_mesh_crazyspace_detect(), transform_convert_mesh_crazyspace_free(), transform_convert_mesh_crazyspace_transdata_set(), transform_convert_mesh_islanddata_free(), transform_convert_mesh_islands_calc(), transform_convert_mesh_mirrordata_calc(), transform_convert_mesh_mirrordata_free(), TRANSFORM_MAXDIST_MIRROR, usingSnappingNormal(), V3D_AROUND_LOCAL_ORIGINS, blender::ed::transform::TransMirrorData::vert_map, and VertsToTransData().

◆ createTransGraphEditData()

void blender::ed::transform::createTransGraphEditData ( bContext * C,
TransInfo * t )
static

It is important to note that this doesn't always act on the selection (like it's usually done), it acts on a subset of it. E.g. the selection code may leave a hint that we just dragged on a left or right handle (SIPO_RUNTIME_FLAG_TWEAK_HANDLES_LEFT/RIGHT) and then we only transform the selected left or right handles accordingly. The points to be transformed are tagged with BEZT_FLAG_TEMP_TAG; some lower level curve functions may need to be made aware of this. It's ugly that these act based on selection state anyway.

Definition at line 245 of file transform_convert_graph.cc.

References blender::Set< Key, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::add(), ANIM_animdata_filter(), ANIM_animdata_freelist(), ANIM_animdata_get_context(), ANIM_get_normalization_flags(), ANIM_nla_tweakedit_remap(), ANIM_unit_mapping_get_factor(), ANIM_UNITCONV_ONLYSEL, ANIM_UNITCONV_SELVERTS, ANIMFILTER_CURVE_VISIBLE, ANIMFILTER_DATA_VISIBLE, ANIMFILTER_FCURVESONLY, ANIMFILTER_FOREDIT, blender::Vector< T, InlineBufferCapacity, Allocator >::append(), blender::ed::transform::TransInfo::area, FCurve::bezt, BEZT_FLAG_TEMP_TAG, bezt_to_transdata(), C, RenderData::cfra, count, blender::ed::transform::TransDataContainer::custom, bAnimContext::data, blender::ed::transform::TransCustomData::data, blender::ed::transform::TransDataContainer::data, blender::ed::transform::TransDataContainer::data_2d, blender::ed::transform::TransDataContainer::data_len, bAnimContext::datatype, blender::ed::transform::TransData::dist, ELEM, enable_autolock(), BezTriple::f1, BezTriple::f2, BezTriple::f3, FCURVE_INT_VALUES, filter, ListBase::first, blender::ed::transform::TransDataBasic::flag, blender::ed::transform::TransInfo::flag, FCurve::flag, SpaceGraph::flag, FLT_MAX, blender::ed::transform::TransInfo::frame_side, FrameOnMouseSide(), graph_bezt_get_transform_selection(), graph_edit_is_translation_mode(), graph_edit_use_local_center(), graph_key_shortest_dist(), BezTriple::h1, BezTriple::h2, HD_ALIGN, HD_AUTO, HD_AUTO_ANIM, i, Scene::id, initTransDataCurveHandles(), IS_EQF, LISTBASE_FOREACH, MEM_calloc_arrayN(), MEM_callocN(), blender::ed::transform::TransInfo::mode, mul_v3_fl(), NLATIME_CONVERT_UNMAP, Scene::r, blender::ed::transform::TransData::rdist, blender::ed::transform::TransInfo::region, bAnimContext::scene, blender::ed::transform::TransInfo::scene, SIPO_AUTOLOCK_AXIS, SIPO_NOHANDLES, bAnimContext::sl, ScrArea::spacedata, T_PROP_EDIT, TD_MOVEHANDLE1, TD_MOVEHANDLE2, testhandles_fcurve(), TFM_RESIZE, TFM_ROTATION, TFM_TIME_EXTEND, TRANS_DATA_CONTAINER_FIRST_SINGLE, transform_convert_frame_side_dir_get(), blender::ed::transform::TransCustomDataContainer::type, UI_view2d_scale_get(), unit_m3(), blender::ed::transform::TransCustomData::use_free, ARegion::v2d, and BezTriple::vec.

◆ createTransLatticeVerts()

◆ createTransMaskingData()

◆ createTransMBallVerts()

◆ createTransMeshSkin()

void blender::ed::transform::createTransMeshSkin ( bContext * ,
TransInfo * t )
static

Quick check if we can transform.

Note
ignore modes here, even in edge/face modes, transform data is created by selected vertices.

Definition at line 67 of file transform_convert_mesh_skin.cc.

References blender::ed::transform::TransInfo::around, BKE_editmesh_from_object(), BLI_assert, bm, BMEditMesh::bm, BM_elem_flag_test, BM_ELEM_HIDDEN, BM_ELEM_SELECT, BM_ELEM_TAG, BM_ITER_MESH, BM_ITER_MESH_INDEX, BM_vert_at_index(), BM_VERTS_OF_MESH, CD_MVERT_SKIN, copy_m3_m4(), copy_v3_v3(), createSpaceNormal(), CustomData_bmesh_get(), CustomData_has_layer(), BMHeader::data, blender::ed::transform::TransMeshDataCrazySpace::defmats, blender::ed::transform::MirrorDataVert::flag, blender::ed::transform::TransDataBasic::flag, blender::ed::transform::TransInfo::flag, FLT_MAX, FOREACH_TRANS_DATA_CONTAINER, BMVert::head, blender::ed::transform::MirrorDataVert::index, blender::ed::transform::TransIslandData::island_vert_map, ME_EDIT_MIRROR_TOPO, MEM_calloc_arrayN(), MEM_callocN(), MEM_freeN(), MEM_malloc_arrayN(), mesh_skin_transdata_create(), blender::ed::transform::TransMirrorData::mirror_elem_len, blender::ed::transform::TransInfo::mode, BMVert::no, PSEUDOINVERSE_EPSILON, pseudoinverse_m3_m3(), blender::ed::transform::TransMeshDataCrazySpace::quats, MVertSkin::radius, SCE_SELECT_VERTEX, BMEditMesh::selectmode, T_PROP_CONNECTED, T_PROP_EDIT, T_PROP_EDIT_ALL, TFM_SKIN_RESIZE, transform_convert_mesh_connectivity_distance(), transform_convert_mesh_crazyspace_detect(), transform_convert_mesh_crazyspace_free(), transform_convert_mesh_crazyspace_transdata_set(), transform_convert_mesh_islanddata_free(), transform_convert_mesh_islands_calc(), transform_convert_mesh_mirrordata_calc(), transform_convert_mesh_mirrordata_free(), V3D_AROUND_LOCAL_ORIGINS, BMesh::vdata, and blender::ed::transform::TransMirrorData::vert_map.

◆ createTransMeshVertCData()

◆ createTransNlaData()

void blender::ed::transform::createTransNlaData ( bContext * C,
TransInfo * t )
static

Definition at line 444 of file transform_convert_nla.cc.

References ANIM_animdata_filter(), ANIM_animdata_freelist(), ANIM_animdata_get_context(), ANIMFILTER_DATA_VISIBLE, ANIMFILTER_FCURVESONLY, ANIMFILTER_FOREDIT, ANIMFILTER_LIST_VISIBLE, ANIMTYPE_NLATRACK, blender::ed::transform::TransData::axismtx, BKE_nlastrips_clear_metas(), BKE_nlastrips_make_metas(), BLI_assert, BLI_findindex(), C, blender::ed::transform::TransDataBasic::center, RenderData::cfra, copy_v3_v3(), count, blender::ed::transform::TransDataContainer::custom, bAnimContext::data, blender::ed::transform::TransCustomData::data, blender::ed::transform::TransDataContainer::data, blender::ed::transform::TransDataContainer::data_len, bAnimContext::datatype, ELEM, blender::ed::transform::TransDataBasic::extra, filter, blender::ed::transform::TransDataBasic::flag, float, blender::ed::transform::TransInfo::frame_side, FrameOnMouseSide(), blender::ed::transform::TransDataNla::h1, blender::ed::transform::TransDataNla::h2, blender::ed::transform::TransDataNla::handle, blender::ed::transform::TransDataNla::id, blender::ed::transform::TransDataBasic::iloc, LISTBASE_FOREACH, blender::ed::transform::TransDataBasic::loc, MEM_calloc_arrayN(), blender::ed::transform::TransInfo::mode, blender::ed::transform::TransData::mtx, AnimData::nla_tracks, NLASTRIP_FLAG_SELECT, NLASTRIP_TYPE_TRANSITION, NLATRACK_STEP, blender::ed::transform::TransDataNla::nlt, blender::ed::transform::TransDataNla::oldTrack, Scene::r, blender::ed::transform::TransInfo::scene, blender::ed::transform::TransDataNla::signed_track_index, bAnimContext::sl, blender::ed::transform::TransData::smtx, blender::ed::transform::TransDataNla::strip, NlaTrack::strips, TD_SELECTED, TFM_TIME_EXTEND, TFM_TRANSLATION, blender::ed::transform::TransDataNla::trackIndex, TRANS_DATA_CONTAINER_FIRST_SINGLE, transform_convert_frame_side_dir_get(), blender::ed::transform::TransCustomDataContainer::type, unit_m3(), and blender::ed::transform::TransCustomData::use_free.

◆ createTransNodeData()

void blender::ed::transform::createTransNodeData ( bContext * C,
TransInfo * t )
static

◆ createTransObject()

void blender::ed::transform::createTransObject ( bContext * C,
TransInfo * t )
static

Definition at line 524 of file transform_convert_object.cc.

References blender::Set< Key, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::add(), BA_SNAP_FIX_DEPS_FIASCO, BA_TRANSFORM_CHILD, BA_TRANSFORM_LOCKED_IN_PLACE, BA_TRANSFORM_PARENT, BA_WAS_SEL, BASE_EDITABLE, BASE_SELECTABLE, BASE_SELECTED, BASE_XFORM_INDIRECT, BKE_id_is_editable(), BKE_object_is_in_editmode(), BKE_view_layer_base_find(), BKE_view_layer_object_bases_get(), BKE_view_layer_synced_ensure(), BLI_ghash_free(), BLI_ghash_insert(), BLI_ghash_lookup(), BLI_ghash_ptr_new_ex(), C, clear_trans_object_base_flags(), blender::Set< Key, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::contains(), count_proportional_objects(), CTX_DATA_BEGIN, CTX_DATA_COUNT, CTX_DATA_END, CTX_data_main(), CTX_OBMODE_XFORM_OBDATA, CTX_OBMODE_XFORM_SKIP_CHILDREN, blender::ed::transform::TransInfo::custom, blender::ed::transform::TransCustomData::data, blender::ed::transform::TransDataContainer::data, Object::data, blender::ed::transform::TransDataContainer::data_ext, blender::ed::transform::TransDataContainer::data_len, blender::ed::object::data_xform_container_create(), blender::ed::object::data_xform_container_item_ensure(), blender::ed::transform::TransDataBasic::extra, blender::ed::transform::TransDataBasic::flag, blender::ed::transform::TransInfo::flag, Object::flag, blender::ed::transform::TransCustomData::free_cb, freeTransObjectCustomData(), i, Object::id, ID::lib, LISTBASE_FOREACH, MEM_calloc_arrayN(), MEM_callocN(), blender::ed::object::object_xform_skip_child_container_item_ensure(), ObjectToTransData(), blender::ed::transform::TransInfo::options, Object::parent, blender::ed::transform::TransData::protectflag, Object::protectflag, Object::rotmode, blender::ed::transform::TransDataExtension::rotOrder, blender::ed::transform::TransInfo::scene, set_trans_object_base_flags(), T_PROP_EDIT, TD_NO_LOC, TD_NOCENTER, TD_SELECTED, TD_SKIP, TRANS_DATA_CONTAINER_FIRST_SINGLE, blender::ed::transform::TransCustomDataContainer::type, blender::ed::transform::TransDataBasic::val, blender::ed::transform::TransInfo::view, blender::ed::transform::TransInfo::view_layer, blender::ed::transform::TransDataObject::xcs, blender::ed::transform::TransDataObject::xds, blender::ed::object::XFORM_OB_SKIP_CHILD_PARENT_APPLY, blender::ed::object::XFORM_OB_SKIP_CHILD_PARENT_IS_XFORM, blender::ed::object::XFORM_OB_SKIP_CHILD_PARENT_IS_XFORM_INDIRECT, and blender::ed::object::xform_skip_child_container_create().

◆ createTransPaintCurveVerts()

◆ createTransParticleVerts()

void blender::ed::transform::createTransParticleVerts ( bContext * ,
TransInfo * t )
static

Definition at line 36 of file transform_convert_particle.cc.

References BKE_view_layer_active_object_get(), BKE_view_layer_synced_ensure(), calc_distanceCurveVerts(), blender::ed::transform::TransDataBasic::center, PTCacheEditKey::co, copy_v3_v3(), count, blender::ed::transform::TransInfo::depsgraph, blender::ed::transform::TransDataBasic::flag, blender::ed::transform::TransInfo::flag, ParticleEditSettings::flag, ParticleSystem::flag, PTCacheEditKey::flag, PTCacheEditPoint::flag, FOREACH_TRANS_DATA_CONTAINER, ParticleSettings::from, i, blender::ed::transform::TransDataBasic::iloc, invert_m4_m4(), blender::ed::transform::TransDataBasic::ival, PTCacheEditPoint::keys, blender::ed::transform::TransDataBasic::loc, MEM_calloc_arrayN(), ParticleSystemModifierData::mesh_final, blender::ed::transform::TransInfo::mode, blender::ed::transform::TransData::mtx, mul_m4_v3(), OB_LOCK_LOC, ParticleSystem::part, ToolSettings::particle, ParticleSystem::particles, PE_get_current(), PE_LOCK_FIRST, PE_settings(), PEK_HIDE, PEK_SELECT, PEK_USE_WCO, PEP_HIDE, PEP_TRANSFORM, PTCacheEdit::points, blender::ed::transform::TransData::protectflag, PTCacheEdit::psmd_eval, PTCacheEdit::psys, PSYS_GLOBAL_HAIR, psys_mat_hair_to_global(), blender::ed::transform::TransDataExtension::quat, Object::runtime, blender::ed::transform::TransDataExtension::scale, SCE_SELECT_PATH, blender::ed::transform::TransInfo::scene, ParticleEditSettings::selectmode, blender::ed::transform::TransInfo::settings, blender::ed::transform::TransData::smtx, T_PROP_EDIT, TD_NO_EXT, TD_SELECTED, TD_SKIP, TFM_BAKE_TIME, PTCacheEditKey::time, PTCacheEditPoint::totkey, unit_m3(), unit_m4(), blender::ed::transform::TransDataBasic::val, blender::ed::transform::TransInfo::view_layer, and PTCacheEditKey::world_co.

◆ createTransPose()

◆ createTransSculpt()

void blender::ed::transform::createTransSculpt ( bContext * C,
TransInfo * t )
static

Definition at line 32 of file transform_convert_sculpt.cc.

References blender::ed::transform::TransData::axismtx, BKE_id_is_editable(), BKE_report(), BKE_view_layer_active_object_get(), BKE_view_layer_synced_ensure(), BLI_assert, C, blender::ed::transform::TransDataBasic::center, copy_m3_m3(), copy_m3_m4(), copy_m4_m4(), copy_qt_qt(), copy_v3_v3(), CTX_data_main(), CTX_PAINT_CURVE, blender::ed::transform::TransDataContainer::data, blender::ed::transform::TransInfo::data_container, blender::ed::transform::TransInfo::data_container_len, blender::ed::transform::TransDataContainer::data_ext, blender::ed::transform::TransDataContainer::data_len, blender::ed::transform::TransDataBasic::flag, Scene::id, blender::ed::transform::TransDataBasic::iloc, SculptSession::init_pivot_scale, blender::ed::sculpt_paint::init_transform(), invert_m3(), blender::ed::transform::TransDataExtension::iquat, blender::ed::transform::TransDataContainer::is_active, is_zero_v4(), blender::ed::transform::TransDataExtension::iscale, blender::ed::transform::TransDataExtension::l_smtx, blender::ed::transform::TransDataBasic::loc, MEM_callocN(), blender::ed::transform::TransInfo::mode, blender::ed::transform::TransData::mtx, mul_m4_v3(), blender::ed::transform::TransInfo::mval, normalize_m3(), blender::ed::transform::TransDataExtension::obmat, blender::ed::transform::TransInfo::options, SculptSession::pivot_pos, SculptSession::pivot_rot, SculptSession::pivot_scale, blender::ed::transform::TransDataExtension::quat, blender::ed::transform::TransDataExtension::r_mtx, blender::ed::transform::TransDataExtension::r_smtx, blender::ed::sculpt_paint::report_if_shape_key_is_locked(), blender::ed::transform::TransInfo::reports, blender::ed::transform::TransDataExtension::rot, ROT_MODE_QUAT, blender::ed::transform::TransDataExtension::rotAngle, blender::ed::transform::TransDataExtension::rotAxis, blender::ed::transform::TransDataExtension::rotOrder, RPT_ERROR, blender::ed::transform::TransDataExtension::scale, blender::ed::transform::TransInfo::scene, Object::sculpt, blender::ed::transform::TransData::smtx, TD_SELECTED, TFM_DUMMY, blender::ed::transform::TransInfo::undo_name, and blender::ed::transform::TransInfo::view_layer.

◆ createTransSeqData()

◆ createTransSeqImageData()

◆ createTransSeqRetimingData()

◆ createTransTexspace()

◆ createTransTrackingCurves()

◆ createTransTrackingCurvesData()

◆ createTransTrackingData()

◆ createTransTrackingTracksData()

◆ createTransUVs()

◆ createVertSlideVerts()

◆ createViewSpace()

TransformOrientation * blender::ed::transform::createViewSpace ( bContext * C,
ReportList * ,
const char * name,
const bool overwrite )
static

◆ data_for_snap()

const ID * blender::ed::transform::data_for_snap ( Object * ob_eval,
eSnapEditType edit_mode_type,
bool * r_use_hide )
static

Mesh used for snapping.

  • When the return value is null the BKE_editmesh_from_object(ob_eval) should be used.
  • In rare cases there is no evaluated mesh available and a null result doesn't imply an edit-mesh, so callers need to account for a null edit-mesh too, see: #96536.

Definition at line 353 of file transform_snap_object.cc.

References BKE_object_get_editmesh_eval_cage(), BKE_object_get_editmesh_eval_final(), BKE_object_get_evaluated_mesh(), BKE_object_is_in_editmode(), Object::data, ELEM, Mesh::id, ME_WRAPPER_TYPE_BMESH, OB_CURVES_LEGACY, OB_MESH, OB_SURF, Mesh::runtime, SNAP_GEOM_CAGE, SNAP_GEOM_EDIT, SNAP_GEOM_FINAL, and Object::type.

Referenced by iter_snap_objects().

◆ data_for_snap_dupli()

const ID * blender::ed::transform::data_for_snap_dupli ( ID * ob_data)
static

Mesh used for snapping (dupli-list instances). A version of data_for_snap for instances.

Definition at line 403 of file transform_snap_object.cc.

References BKE_mesh_wrapper_ensure_subdivision(), GS, ID_ME, and ID::name.

Referenced by iter_snap_objects().

◆ delete_orientation_exec()

◆ delete_orientation_invoke()

wmOperatorStatus blender::ed::transform::delete_orientation_invoke ( bContext * C,
wmOperator * op,
const wmEvent *  )
static

Definition at line 245 of file transform_ops.cc.

References C, and delete_orientation_exec().

Referenced by TRANSFORM_OT_delete_orientation().

◆ delete_orientation_poll()

◆ doEdgeSlide()

◆ doForceIncrementSnap()

◆ doVertSlide()

◆ drawArrow()

void blender::ed::transform::drawArrow ( const uint pos_id,
const enum eArrowDirection dir )
static

◆ drawAutoKeyWarning()

◆ drawConstraint()

◆ drawEdgeSlide()

void blender::ed::transform::drawEdgeSlide ( TransInfo * t)
static

Definition at line 453 of file transform_mode_edge_slide.cc.

References add_v3_v3(), add_v3_v3v3(), b, copy_v3_v3(), blender::ed::transform::EdgeSlideParams::curr_side_unclamp, blender::ed::transform::EdgeSlideData::curr_sv_index, blender::ed::transform::TransInfo::custom, blender::ed::transform::TransCustomData::data, blender::ed::transform::TransDataEdgeSlideVert::dir_side, edgeSlideFirstGet(), blender::ed::transform::TransInfo::flag, blender::ed::transform::EdgeSlideParams::flipped, GPU_blend(), GPU_BLEND_ALPHA, GPU_BLEND_NONE, GPU_DEPTH_LESS_EQUAL, GPU_DEPTH_NONE, GPU_depth_test(), GPU_line_width(), GPU_matrix_mul, GPU_matrix_pop(), GPU_matrix_push(), GPU_point_size(), GPU_PRIM_LINES, GPU_PRIM_POINTS, GPU_SHADER_3D_POINT_UNIFORM_SIZE_UNIFORM_COLOR_AA, GPU_SHADER_3D_UNIFORM_COLOR, GPU_vertformat_attr_add(), immBegin(), immBeginAtMost(), immBindBuiltinProgram(), immEnd(), immUnbindProgram(), immUniformThemeColorShadeAlpha(), immVertex3fv(), immVertexFormat(), interp_line_v3_v3v3v3(), blender::math::is_zero(), is_zero_v3(), blender::ed::transform::TransCustomDataContainer::mode, mul_v3_fl(), negate_v3_v3(), blender::ed::transform::EdgeSlideParams::perc, pos, SPACE_VIEW3D, blender::ed::transform::TransInfo::spacetype, blender::ed::transform::EdgeSlideData::sv, T_ALT_TRANSFORM, TH_EDGE_SELECT, TH_FACEDOT_SIZE, TH_OUTLINE_WIDTH, TH_SELECT, TRANS_DATA_CONTAINER_FIRST_OK, UI_GetThemeValuef(), blender::ed::transform::EdgeSlideParams::use_even, and blender::ed::transform::TransDataEdgeSlideVert::v_co_orig().

◆ drawLine()

◆ drawObjectConstraint()

◆ drawPropCircle()

◆ drawPropRange()

◆ drawSnapping()

void blender::ed::transform::drawSnapping ( TransInfo * t)

Definition at line 202 of file transform_snap.cc.

References blender::ed::transform::TransInfo::aspect, BLI_listbase_is_empty(), BLI_rctf_size_x(), BLI_rcti_size_x(), col, copy_m4_m4(), View2D::cur, DIR_GLOBAL_X, DIR_GLOBAL_Y, blender::ed::transform::TransSnap::direction, ED_view3d_cursor_snap_draw_util(), ED_view3d_pixel_size(), blender::ed::transform::TransInfo::flag, GPU_blend(), GPU_BLEND_ALPHA, GPU_BLEND_NONE, GPU_DEPTH_LESS_EQUAL, GPU_DEPTH_NONE, GPU_depth_test(), GPU_matrix_pop_projection(), GPU_matrix_push_projection(), GPU_PRIM_LINES, GPU_SHADER_3D_UNIFORM_COLOR, GPU_vertformat_attr_add(), imm_draw_circle_wire_2d(), imm_drawcircball(), immBegin(), immBindBuiltinProgram(), immEnd(), immRectf(), immUnbindProgram(), immUniformColor3ub(), immUniformColor4ubv(), immVertex3f(), immVertex3fv(), immVertexFormat(), LISTBASE_FOREACH, View2D::mask, MOD_EDIT_SNAP_SOURCE, blender::ed::transform::TransInfo::modifiers, blender::ed::transform::TransSnap::points, pos, blender::ed::transform::TransInfo::region, ARegion::regiondata, ARegion::regiontype, RGN_TYPE_PREVIEW, blender::ed::transform::TransSnap::selectedPoint, size(), SNAP_MULTI_POINTS, blender::ed::transform::TransSnap::snap_source, SNAP_SOURCE_FOUND, blender::ed::transform::TransSnap::snap_target, SNAP_TARGET_FOUND, blender::ed::transform::TransSnap::snapNormal, blender::ed::transform::TransSnap::source_type, SPACE_IMAGE, SPACE_SEQ, SPACE_VIEW3D, blender::ed::transform::TransInfo::spacetype, blender::ed::transform::TransSnap::status, T_DRAW_SNAP_SOURCE, blender::ed::transform::TransSnap::target_type, TH_ACTIVE, TH_SELECT, TH_SEQ_ACTIVE, TH_TRANSFORM, TH_VERTEX_SIZE, transform_snap_is_active(), blender::ed::transform::TransInfo::tsnap, U, UI_GetThemeColor3ubv(), UI_GetThemeValuef(), UI_view2d_view_to_region_fl(), UNPACK2, usingSnappingNormal(), ARegion::v2d, validSnappingNormal(), RegionView3D::viewinv, wmOrtho2_region_pixelspace(), x, rctf::xmax, rctf::xmin, y, rctf::ymax, and rctf::ymin.

Referenced by drawTransformView(), and sequencer_snap_point().

◆ drawTransformPixel()

◆ drawTransformView()

◆ drawVertSlide()

void blender::ed::transform::drawVertSlide ( TransInfo * t)
static

Definition at line 274 of file transform_mode_vert_slide.cc.

References add_v3_v3(), blender::ed::transform::TransInfo::aspect, b, blender::ed::transform::TransDataVertSlideVert::co_dest_3d(), blender::ed::transform::TransDataVertSlideVert::co_orig_3d(), compare_v2v2(), blender::ed::transform::VertSlideData::curr_sv_index, blender::ed::transform::TransDataContainer::custom, blender::ed::transform::TransInfo::custom, blender::ed::transform::TransCustomData::data, blender::ed::transform::TransInfo::flag, blender::ed::transform::VertSlideParams::flipped, GPU_blend(), GPU_BLEND_ALPHA, GPU_DEPTH_NONE, GPU_depth_test(), GPU_line_width(), GPU_matrix_identity_set(), GPU_matrix_mul, GPU_matrix_pop(), GPU_matrix_pop_projection(), GPU_matrix_push(), GPU_matrix_push_projection(), GPU_matrix_scale_2f(), GPU_point_size(), GPU_PRIM_LINES, GPU_PRIM_POINTS, GPU_SHADER_3D_LINE_DASHED_UNIFORM_COLOR, GPU_SHADER_3D_POINT_UNIFORM_COLOR, GPU_SHADER_3D_UNIFORM_COLOR, GPU_vertformat_attr_add(), GPU_viewport_size_get_f(), immBegin(), immBindBuiltinProgram(), immEnd(), immUnbindProgram(), immUniform1f(), immUniform1i(), immUniform2f(), immUniformColor4f(), immUniformThemeColorShadeAlpha(), immVertex2fv(), immVertex3fv(), immVertexFormat(), blender::ed::transform::MouseInput::imval, blender::ed::transform::TransCustomDataContainer::mode, blender::ed::transform::TransInfo::mouse, mul_v3_fl(), blender::ed::transform::TransInfo::mval, negate_v3_v3(), blender::ed::transform::TransDataContainer::obedit, blender::ed::transform::VertSlideData::project(), blender::ed::transform::TransInfo::region, SPACE_VIEW3D, blender::ed::transform::TransInfo::spacetype, sub_v3_v3v3(), blender::ed::transform::VertSlideData::sv, T_ALT_TRANSFORM, TH_EDGE_SELECT, TH_FACEDOT_SIZE, TH_OUTLINE_WIDTH, TH_VERTEX_ACTIVE, TRANS_DATA_CONTAINER_FIRST_OK, UI_GetThemeValuef(), blender::ed::transform::VertSlideParams::use_even, and wmOrtho2_region_pixelspace().

◆ ED_getTransformOrientationMatrix()

void blender::ed::transform::ED_getTransformOrientationMatrix ( const Scene * scene,
ViewLayer * view_layer,
const View3D * v3d,
Object * ob,
Object * obedit,
short around,
float r_orientation_mat[3][3] )

◆ ED_widgetgroup_gizmo2d_resize_callbacks_set()

◆ ED_widgetgroup_gizmo2d_rotate_callbacks_set()

◆ ED_widgetgroup_gizmo2d_xform_callbacks_set()

◆ ED_widgetgroup_gizmo2d_xform_no_cage_callbacks_set()

◆ edge_slide_apply_elem()

void blender::ed::transform::edge_slide_apply_elem ( const TransDataEdgeSlideVert & sv,
const float fac,
const float curr_length_fac,
const int curr_side_unclamp,
const bool use_clamp,
const bool use_even,
const bool use_flip,
float r_co[3] )
static

NOTE(@ideasman42): Implementation note, even mode ignores the starting positions and uses only the a/b verts, this could be changed/improved so the distance is still met but the verts are moved along their original path (which may not be straight), however how it works now is OK and matches 2.4x.

Note
len_v3v3(curr_sv->dir_side[0], curr_sv->dir_side[1]) is the same as the distance between the original vert locations, same goes for the lines below.

Definition at line 678 of file transform_mode_edge_slide.cc.

References add_v3_v3v3(), copy_v3_v3(), blender::ed::transform::TransDataEdgeSlideVert::dir_side, blender::ed::transform::TransDataEdgeSlideVert::edge_len, fabsf, interp_line_v3_v3v3v3(), is_zero_v3(), madd_v3_v3fl(), min_ff(), and blender::ed::transform::TransDataEdgeSlideVert::v_co_orig().

Referenced by doEdgeSlide(), and edge_slide_transform_matrix_fn().

◆ edge_slide_container_first_ok()

TransDataContainer * blender::ed::transform::edge_slide_container_first_ok ( TransInfo * t)
static

Get the first valid TransDataContainer *.

Note we cannot trust TRANS_DATA_CONTAINER_FIRST_OK because of multi-object that may leave items with invalid custom data in the transform data container.

Definition at line 105 of file transform_mode_edge_slide.cc.

References BLI_assert_msg, and FOREACH_TRANS_DATA_CONTAINER.

Referenced by edge_slide_snap_apply(), edge_slide_transform_matrix_fn(), and edgeSlideFirstGet().

◆ edge_slide_data_init_mval()

◆ edge_slide_snap_apply()

◆ edge_slide_transform_matrix_fn()

◆ edgeSlideFirstGet()

◆ editmesh_snap_mode_supported()

eSnapMode blender::ed::transform::editmesh_snap_mode_supported ( BMesh * bm)
static

◆ editmesh_snapdata_init()

SnapCache_EditMesh * blender::ed::transform::editmesh_snapdata_init ( SnapObjectContext * sctx,
const Object * ob_eval,
eSnapMode snap_to_flag )
static

◆ effect_base_input_get()

Strip * blender::ed::transform::effect_base_input_get ( const Scene * scene,
Strip * effect,
SeqInputSide side )
static

Definition at line 396 of file transform_convert_sequencer.cc.

References effect_input_get(), and input.

Referenced by query_time_dependent_strips_strips().

◆ effect_input_get()

Strip * blender::ed::transform::effect_input_get ( const Scene * scene,
Strip * effect,
SeqInputSide side )
static

◆ ElementBoneSize()

◆ ElementMirror()

void blender::ed::transform::ElementMirror ( TransInfo * t,
TransDataContainer * tc,
int td_index,
int axis,
bool flip )
static

Mirrors an object by negating the scale of the object on the mirror axis, reflecting the location and adjusting the rotation.

Parameters
axisEither the axis to mirror on (0 = x, 1 = y, 2 = z) in transform space or -1 for no axis mirror.
flipIf true, a mirror on all axis will be performed additionally (point reflection).

Definition at line 42 of file transform_mode_mirror.cc.

References add_v3_v3(), add_v3_v3v3(), blender::ed::transform::TransInfo::around, blender::ed::transform::TransData::axismtx, blender::ed::transform::TransDataBasic::center, blender::ed::transform::TransDataContainer::center_local, constraintScaleLim(), constraintTransLim(), copy_v3_v3(), CTX_MOVIECLIP, CTX_OBJECT, CTX_POSE_BONE, blender::ed::transform::TransDataContainer::data, blender::ed::transform::TransDataContainer::data_ext, ElementRotation_ex(), blender::ed::transform::TransDataBasic::flag, blender::ed::transform::TransInfo::flag, blender::ed::transform::TransDataBasic::iloc, invert_m3_m3(), blender::ed::transform::TransDataExtension::irotAngle, blender::ed::transform::TransDataExtension::iscale, blender::ed::transform::TransDataBasic::loc, blender::ed::transform::TransData::mtx, mul_m3_m3m3(), mul_m3_v3(), mul_v3_v3v3(), negate_v3(), blender::ed::transform::TransInfo::options, protectedScaleBits(), protectedTransBits(), blender::ed::transform::TransData::protectflag, reflect_v3_v3v3(), blender::ed::transform::TransDataExtension::rotAngle, blender::ed::transform::TransDataExtension::scale, blender::ed::transform::TransData::smtx, blender::ed::transform::TransInfo::spacemtx, blender::ed::transform::TransInfo::spacemtx_inv, sub_v3_v3(), sub_v3_v3v3(), T_EDIT, T_POINTS, T_V3D_ALIGN, TD_INDIVIDUAL_SCALE, TD_NO_LOC, transdata_check_local_center(), and unit_m3().

Referenced by applyMirror().

◆ ElementResize()

void blender::ed::transform::ElementResize ( const TransInfo * t,
const TransDataContainer * tc,
int td_index,
const float mat[3][3] )

Definition at line 965 of file transform_mode.cc.

References add_v3_v3(), add_v3_v3v3(), applyNumInput(), blender::ed::transform::TransCon::applySize, blender::ed::transform::TransInfo::around, blender::ed::transform::TransData::axismtx, blender::ed::transform::TransDataBasic::center, blender::ed::transform::TransDataContainer::center_local, blender::ed::transform::TransInfo::con, CON_APPLY, constraintScaleLim(), constraintTransLim(), copy_m3_m3(), copy_v3_v3(), copy_v4_v4(), CTX_GPENCIL_STROKES, CTX_MOVIECLIP, CTX_OBJECT, CTX_POSE_BONE, blender::ed::transform::TransDataContainer::data, blender::ed::transform::TransDataContainer::data_ext, blender::ed::transform::TransInfo::data_type, ELEM, blender::ed::transform::TransDataBasic::extra, fabs(), blender::ed::transform::TransData::factor, blender::ed::transform::TransDataBasic::flag, blender::ed::transform::TransInfo::flag, blender::ed::transform::TransDataBasic::iloc, blender::math::interpolate(), blender::ed::transform::TransDataExtension::iscale, blender::ed::transform::TransDataBasic::ival, blender::ed::transform::TransDataBasic::loc, mat3_to_size(), blender::math::max(), blender::ed::transform::TransCon::mode, blender::ed::transform::TransData::mtx, mul_m3_m3m3(), mul_m3_v3(), mul_mat3_m4_v3(), mul_v3_fl(), blender::ed::transform::TransInfo::num, blender::ed::transform::TransInfo::options, blender::ed::transform::TransDataContainer::poseobj, protectedScaleBits(), protectedTransBits(), blender::ed::transform::TransData::protectflag, blender::ed::transform::TransDataExtension::scale, blender::ed::transform::TransData::smtx, sub_v3_v3(), sub_v3_v3v3(), T_EDIT, T_POINTS, T_V3D_ALIGN, TD_INDIVIDUAL_SCALE, TD_SINGLE_SCALE, TransConvertType_Object, TransConvertType_ObjectTexSpace, TransConvertType_Pose, TransConvertType_Sculpt, transdata_check_local_center(), transform_snap_increment(), TransMat3ToSize(), blender::ed::transform::TransDataBasic::val, and blender::ed::transform::TransInfo::values_final.

◆ ElementRotation()

void blender::ed::transform::ElementRotation ( const TransInfo * t,
const TransDataContainer * tc,
TransData * td,
TransDataExtension * td_ext,
const float mat[3][3],
const short around )

◆ ElementRotation_ex()

void blender::ed::transform::ElementRotation_ex ( const TransInfo * t,
const TransDataContainer * tc,
TransData * td,
TransDataExtension * td_ext,
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 591 of file transform_mode.cc.

References add_eul_euleul(), add_v3_v3(), add_v3_v3v3(), axis_angle_to_quat(), blender::ed::transform::TransDataBasic::center, blender::ed::transform::TransDataExtension::center_no_override, constraintRotLim(), constraintTransLim(), copy_v3_v3(), CTX_GPENCIL_STROKES, CTX_POSE_BONE, blender::ed::transform::TransDataExtension::dquat, blender::ed::transform::TransDataExtension::drot, eulO_to_mat3(), blender::ed::transform::TransDataBasic::extra, blender::ed::transform::TransDataBasic::flag, blender::ed::transform::TransInfo::flag, blender::ed::transform::TransDataBasic::iloc, blender::ed::transform::TransDataContainer::imat3, interp_m3_m3m3(), invert_qt_qt_normalized(), blender::ed::transform::TransDataExtension::iquat, blender::ed::transform::TransDataExtension::irot, blender::ed::transform::TransDataExtension::irotAngle, blender::ed::transform::TransDataExtension::irotAxis, is_zero_v3(), is_zero_v4(), blender::ed::transform::TransDataExtension::l_smtx, blender::ed::transform::TransDataBasic::loc, blender::ed::transform::TransDataContainer::mat3, mat3_to_compatible_eulO(), mat3_to_quat(), blender::ed::transform::TransData::mtx, mul_m3_m3m3(), mul_m3_series, mul_m3_v3(), mul_qt_qtqt(), OB_GREASE_PENCIL, blender::ed::transform::TransInfo::obedit_type, blender::ed::transform::TransInfo::options, protectedAxisAngleBits(), protectedQuaternionBits(), protectedRotateBits(), protectedTransBits(), blender::ed::transform::TransData::protectflag, blender::ed::transform::TransDataExtension::quat, quat_to_axis_angle(), quat_to_mat3(), blender::ed::transform::TransDataExtension::r_mtx, blender::ed::transform::TransDataExtension::r_smtx, blender::ed::transform::TransDataExtension::rot, ROT_MODE_AXISANGLE, ROT_MODE_QUAT, blender::ed::transform::TransDataExtension::rotAngle, blender::ed::transform::TransDataExtension::rotAxis, blender::ed::transform::TransDataExtension::rotOrder, blender::ed::transform::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().

◆ enable_autolock()

◆ ENUM_OPERATORS()

blender::ed::transform::ENUM_OPERATORS ( eTFlag ,
T_ORIGIN  )

References T_ORIGIN.

◆ fcu_test_selected()

bool blender::ed::transform::fcu_test_selected ( FCurve * fcu)
static

Definition at line 648 of file transform_convert_graph.cc.

References FCurve::bezt, BEZT_ISSEL_ANY, i, and FCurve::totvert.

Referenced by recalcData_graphedit().

◆ findOrientationName()

TransformOrientation * blender::ed::transform::findOrientationName ( ListBase * lb,
const char * name )
static

Definition at line 76 of file transform_orientations.cc.

References BLI_findstring(), name, and offsetof.

Referenced by addMatrixSpace(), and uniqueOrientationName().

◆ flush_trans_object_base_deps_flag()

◆ flushTransGraphData()

◆ flushTransMasking()

◆ flushTransNodes()

void blender::ed::transform::flushTransNodes ( TransInfo * t)
static

Definition at line 274 of file transform_convert_node.cc.

References Map< Key, Value, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::add(), blender::Vector< T, InlineBufferCapacity, Allocator >::append(), blender::ed::transform::TransInfo::area, BLI_rctf_compare(), BLI_rctf_transform_pt_v(), blender::ed::transform::TransInfo::context, CTX_VIEW2D_EDGE_PAN, View2D::cur, blender::ed::transform::TransInfo::custom, blender::ed::transform::TransCustomData::data, blender::ed::transform::TransCustomDataNode::edgepan_data, SpaceNode::edittree, blender::ed::transform::TransDataBasic::extra, ListBase::first, FOREACH_TRANS_DATA_CONTAINER, has_selected_parent(), i, blender::wm::InvokeDefault, blender::Vector< T, InlineBufferCapacity, Allocator >::is_empty(), blender::ed::transform::TransCustomDataNode::is_new_node, blender::ed::transform::TransData2D::loc, bNode::location, MOD_NODE_ATTACH, MOD_NODE_FRAME, blender::ed::transform::TransInfo::modifiers, move_child_nodes(), blender::ed::transform::TransInfo::mval, blender::bke::node_detach_node(), blender::ed::space_node::node_insert_on_frame_flag_set(), blender::ed::space_node::node_insert_on_link_flags_set(), NODE_SELECT, node_snap_grid_apply(), blender::ed::transform::TransCustomDataNode::old_parent_by_detached_node, blender::ed::transform::TransInfo::options, blender::ed::transform::TransInfo::region, ScrArea::spacedata, blender::ed::transform::TransInfo::state, TRANS_CANCEL, transformViewUpdate(), blender::ed::transform::TransCustomDataContainer::type, UI_SCALE_FAC, UI_view2d_edge_pan_apply(), UI_view2d_edge_pan_cancel(), ARegion::v2d, blender::ed::transform::TransCustomDataNode::viewrect_prev, ARegion::winrct, WM_operator_name_call(), rcti::xmin, xy, and rcti::ymin.

◆ flushTransPaintCurve()

◆ flushTransParticles()

◆ flushTransSeq()

void blender::ed::transform::flushTransSeq ( TransInfo * t)
static

◆ flushTransTracking()

◆ flushTransTrackingCurves()

◆ flushTransUVs()

◆ FrameOnMouseSide()

bool blender::ed::transform::FrameOnMouseSide ( char side,
float frame,
float cframe )

◆ free_transform_custom_data()

void blender::ed::transform::free_transform_custom_data ( TransCustomData * custom_data)
static

◆ freeCustomNormalArray()

◆ freeEdgeSlideVerts()

void blender::ed::transform::freeEdgeSlideVerts ( TransInfo * ,
TransDataContainer * ,
TransCustomData * custom_data )
static

◆ freeSeqData() [1/3]

◆ freeSeqData() [2/3]

◆ freeSeqData() [3/3]

◆ freeSnapping()

◆ freeTransCustomData()

◆ freeTransCustomDataContainer()

void blender::ed::transform::freeTransCustomDataContainer ( TransInfo * t,
TransDataContainer * tc,
TransCustomDataContainer * tcdc )
static

◆ freeTransCustomDataForMode()

void blender::ed::transform::freeTransCustomDataForMode ( TransInfo * t)

◆ freeTransObjectCustomData()

◆ freeVertSlideVerts()

void blender::ed::transform::freeVertSlideVerts ( TransInfo * ,
TransDataContainer * ,
TransCustomData * custom_data )
static

◆ get_affected_rna_paths_from_transform_mode() [1/2]

◆ get_affected_rna_paths_from_transform_mode() [2/2]

Vector< RNAPath > blender::ed::transform::get_affected_rna_paths_from_transform_mode ( const eTfmMode tmode,
ToolSettings * toolsettings,
const StringRef rotation_path,
const bool targetless_ik,
const bool is_connected,
const bool transforming_more_than_one_bone )
static

◆ get_mesh_ref()

const Mesh * blender::ed::transform::get_mesh_ref ( const Object * ob_eval)
static

◆ get_transformed_nodes()

VectorSet< bNode * > blender::ed::transform::get_transformed_nodes ( bNodeTree & node_tree)
static

◆ getConstraintSpaceDimension()

int blender::ed::transform::getConstraintSpaceDimension ( const TransInfo * t)

Returns the dimension of the constraint space.

For that reason, the flags always needs to be set to properly evaluate here, even if they aren't actually used in the callback function. (Which could happen for weird constraints not yet designed. Along a path for example.)

Definition at line 1241 of file transform_constraints.cc.

References blender::ed::transform::TransInfo::con, CON_AXIS0, CON_AXIS1, CON_AXIS2, and blender::ed::transform::TransCon::mode.

Referenced by constraintNumInput(), startConstraint(), and transform_constraint_get_nearest().

◆ getSnapPoint()

◆ getTransformOrientation()

int blender::ed::transform::getTransformOrientation ( const bContext * C,
float r_normal[3],
float r_plane[3] )

◆ getTransformOrientation_ex()

int blender::ed::transform::getTransformOrientation_ex ( const Scene * scene,
ViewLayer * view_layer,
const View3D * v3d,
Object * ob,
Object * obedit,
short around,
float r_normal[3],
float r_plane[3] )

Calculate unit length values into r_normal & r_plane from selected objects in the 3D viewport.

Parameters
v3dThe 3D viewport or null.

Logic explained:

  • Edges and vert-pairs treated the same way.
  • Point the Y axis along the edge vector (towards the active vertex).
  • Point the Z axis outwards (the same direction as the normals).
Note
Z points outwards - along the normal. take care making changes here, see: #38592, #43708

Definition at line 942 of file transform_orientations.cc.

References bArmature::act_edbone, add_v3_v3(), add_v3_v3v3(), armature_bone_transflags_update(), BASE_SELECTED, Nurb::bezt, BKE_curve_editNurbs_get(), BKE_curve_nurb_vert_active_get(), BKE_editmesh_from_object(), BKE_nurb_bezt_calc_normal(), BKE_nurb_bezt_calc_plane(), BKE_nurb_bpoint_calc_normal(), BKE_nurb_bpoint_calc_plane(), BKE_nurb_bpoint_get_next(), BKE_nurb_bpoint_get_prev(), BKE_pose_channel_active_if_bonecoll_visible(), BKE_pose_channel_transform_orientation(), BKE_view_layer_base_find(), BKE_view_layer_synced_ensure(), BLI_assert, BMEditMesh::bm, BM_EDGE, BM_edge_calc_length_squared(), BM_edge_exists(), BM_edge_is_boundary(), BM_edge_ordered_verts(), BM_edge_other_vert(), BM_editselection_normal(), BM_editselection_plane(), BM_elem_flag_test, BM_ELEM_SELECT, BM_FACE, BM_face_calc_tangent_pair_auto(), BM_FACES_OF_MESH, BM_ITER_MESH, BM_mesh_active_vert_get(), bm_mesh_edges_select_get_n(), bm_mesh_verts_select_get_n(), BM_select_history_active_get(), BM_VERT, BM_vert_edge_pair(), BM_vert_tri_calc_tangent_from_edge(), BM_VERTS_OF_MESH, BONE_CONNECTED, blender::animrig::bone_is_visible(), BONE_ROOTSEL, BONE_SELECTED, BONE_TIPSEL, Nurb::bp, bPose::chanbase, BMVert::co, copy_m3_m4(), copy_v3_v3(), cross_v3_v3v3(), CU_BEZIER, CURVE_HANDLE_NONE, Object::data, dot_v3v3(), e, ED_armature_ebone_to_mat3(), bArmature::edbo, MetaBall::editelems, ELEM, BezTriple::f1, BPoint::f1, BezTriple::f2, BezTriple::f3, ListBase::first, bPoseChannel_Runtime::flag, EditBone::flag, flag, MetaElem::flag, View3DOverlay::handle_display, BMEditSelection::htype, invert_m3_m3(), is_zero_v3(), BMEdge::l, l, MetaBall::lastelem, len_squared_v3(), LIKELY, LISTBASE_FOREACH, Object::mode, mul_m3_v3(), mul_mat3_m4_v3(), negate_v3(), Nurb::next, BMFace::no, BMVert::no, normal_tri_v3(), normalize_v3(), normalize_v3_v3(), OB_ARMATURE, OB_CURVES_LEGACY, OB_MBALL, OB_MESH, OB_MODE_ALL_PAINT, OB_MODE_PARTICLE_EDIT, OB_MODE_POSE, OB_SURF, ORIENTATION_EDGE, ORIENTATION_FACE, ORIENTATION_NONE, ORIENTATION_NORMAL, ORIENTATION_VERT, ortho_v3_v3(), View3D::overlay, EditBone::parent, Nurb::pntsu, Nurb::pntsv, Object::pose, POSE_RUNTIME_TRANSFORM, project_plane_normalized_v3_v3v3(), project_v3_v3v3(), MetaElem::quat, quat_to_mat3(), result, bPoseChannel::runtime, SEL_F1, SEL_F2, SEL_F3, SELECT, sub_v3_v3(), sub_v3_v3v3(), BMesh::totedgesel, BMesh::totfacesel, BMesh::totvertsel, transpose_m3(), Nurb::type, Object::type, UNLIKELY, BMLoop::v, v, BMEdge::v1, BMEdge::v2, V3D_AROUND_ACTIVE, V3D_AROUND_LOCAL_ORIGINS, BezTriple::vec, BPoint::vec, and zero_v3().

Referenced by ED_getTransformOrientationMatrix(), and getTransformOrientation().

◆ gimbal_axis_object()

◆ gimbal_axis_pose()

◆ gizmo2d_calc_bounds()

◆ gizmo2d_calc_rotation()

◆ gizmo2d_calc_transform_orientation()

◆ gizmo2d_calc_transform_pivot()

◆ gizmo2d_generic_poll()

◆ gizmo2d_get_axis_color()

void blender::ed::transform::gizmo2d_get_axis_color ( const int axis_idx,
float * r_col,
float * r_col_hi )
static

◆ gizmo2d_modal()

◆ gizmo2d_origin_to_region()

BLI_INLINE void blender::ed::transform::gizmo2d_origin_to_region ( ARegion * region,
float * r_origin )

Convert origin (or any other point) from view to region space.

Definition at line 437 of file transform_gizmo_2d.cc.

References BLI_INLINE, UI_view2d_view_to_region_fl(), and ARegion::v2d.

Referenced by gizmo2d_modal(), gizmo2d_resize_draw_prepare(), gizmo2d_rotate_draw_prepare(), and gizmo2d_xform_draw_prepare().

◆ gizmo2d_pivot_point_message_subscribe()

◆ gizmo2d_resize_draw_prepare()

◆ gizmo2d_resize_invoke_prepare()

void blender::ed::transform::gizmo2d_resize_invoke_prepare ( const bContext * C,
wmGizmoGroup * ,
wmGizmo * gz,
const wmEvent *  )
static

◆ gizmo2d_resize_message_subscribe()

void blender::ed::transform::gizmo2d_resize_message_subscribe ( const bContext * C,
wmGizmoGroup * gzgroup,
wmMsgBus * mbus )
static

◆ gizmo2d_resize_refresh()

◆ gizmo2d_resize_setup()

◆ gizmo2d_rotate_draw_prepare()

◆ gizmo2d_rotate_message_subscribe()

void blender::ed::transform::gizmo2d_rotate_message_subscribe ( const bContext * C,
wmGizmoGroup * gzgroup,
wmMsgBus * mbus )
static

◆ gizmo2d_rotate_refresh()

◆ gizmo2d_rotate_setup()

◆ gizmo2d_xform_draw_prepare()

◆ gizmo2d_xform_invoke_prepare()

◆ gizmo2d_xform_no_cage_message_subscribe()

void blender::ed::transform::gizmo2d_xform_no_cage_message_subscribe ( const bContext * C,
wmGizmoGroup * gzgroup,
wmMsgBus * mbus )
static

◆ gizmo2d_xform_refresh()

◆ gizmo2d_xform_setup()

◆ gizmo2d_xform_setup_no_cage()

void blender::ed::transform::gizmo2d_xform_setup_no_cage ( const bContext * C,
wmGizmoGroup * gzgroup )
static

◆ gizmo_3d_calc_pos()

◆ gizmo_3d_dial_matrixbasis_calc()

void blender::ed::transform::gizmo_3d_dial_matrixbasis_calc ( const ARegion * region,
const float axis[3],
const float center_global[3],
const float mval_init[2],
float r_mat_basis[4][4] )
static

◆ gizmo_3d_draw_invoke()

◆ gizmo_3d_foreach_selected()

int blender::ed::transform::gizmo_3d_foreach_selected ( const bContext * C,
const short orient_index,
const bool use_curve_handles,
const bool use_only_center,
FunctionRef< void(const float3 &)> user_fn,
const float(**) r_mat[4],
short * r_drawflags )
static

Run user_fn for each coordinate of elements selected in View3D (vertices, particles...).

Note
Each coordinate has the space matrix of the active object.
Parameters
orient_indexA TransformOrientationSlot.type. Here used for calculating r_drawflags.
use_curve_handlesIf true, the handles of curves are traversed.
use_only_centerFor objects in object mode, defines whether the corners of the bounds or just the center are traversed.
user_fnCallback that runs on each coordinate.
r_matReturns the space matrix of the coordinates.
r_drawflagsDrawing flags for gizmos. Usually stored in #RegionView3D::drawflags.

Definition at line 523 of file transform_gizmo_3d.cc.

References BASE_SELECTED, BASE_SELECTED_EDITABLE, Nurb::bezt, BKE_curve_editNurbs_get(), BKE_editmesh_from_object(), BKE_object_boundbox_get(), BKE_object_pose_array_get(), BKE_pose_channel_transform_location(), BKE_view_layer_active_base_get(), BKE_view_layer_object_bases_get(), BKE_view_layer_synced_ensure(), bm, BMEditMesh::bm, BM_elem_flag_test, BM_ELEM_HIDDEN, BM_ELEM_SELECT, BM_ITER_MESH, BM_VERTS_OF_MESH, BONE_CONNECTED, BONE_EDITMODE_LOCKED, blender::animrig::bone_is_visible(), BONE_ROOTSEL, BONE_SELECTED, BONE_TIPSEL, Nurb::bp, C, BMVert::co, PTCacheEditKey::co, blender::bounds::corners(), CTX_data_expect_evaluated_depsgraph(), CTX_data_scene(), CTX_data_view_layer(), CTX_wm_area(), CU_BEZIER, CURVE_HANDLE_NONE, Lattice::def, depsgraph, blender::ed::greasepencil::MutableDrawingInfo::drawing, bArmature::edbo, MetaBall::editelems, Lattice::editlatt, ELEM, BezTriple::f1, BPoint::f1, BezTriple::f2, BezTriple::f3, ListBase::first, Base::flag, PTCacheEditKey::flag, PTCacheEditPoint::flag, FOREACH_EDIT_OBJECT_BEGIN, FOREACH_EDIT_OBJECT_END, blender::index_mask::IndexMask::foreach_index(), blender::IndexMask::from_bools(), Curves::geometry, blender::bke::crazyspace::get_evaluated_curves_deformation(), blender::bke::crazyspace::get_evaluated_grease_pencil_drawing_deformation(), gizmo_3d_transform_space_object_get(), View3DOverlay::handle_display, blender::MatBase< float, 4, 4 >::identity(), invert_m4_m4(), PTCacheEditPoint::keys, EditLatt::latt, blender::ed::greasepencil::MutableDrawingInfo::layer_index, LISTBASE_FOREACH, blender::bke::AttributeAccessor::lookup_or_default(), mask(), Object::mode, mul_m4_m4m4(), mul_v3_m4v3(), Nurb::next, OB_ARMATURE, OB_CURVES, OB_CURVES_LEGACY, OB_GREASE_PENCIL, OB_LATTICE, OB_LOCK_LOC, OB_LOCK_ROT, OB_LOCK_SCALE, OB_MBALL, OB_MESH, OB_MODE_ALL_PAINT, OB_MODE_PARTICLE_EDIT, OB_MODE_POSE, OB_MODE_SCULPT, OB_POINTCLOUD, OB_SURF, OBEDIT_FROM_OBACT, Base::object, View3D::overlay, blender::threading::parallel_for_each(), PE_get_current(), PEK_SELECT, PEK_USE_WCO, PEP_HIDE, SculptSession::pivot_pos, Lattice::pntsu, Nurb::pntsu, Lattice::pntsv, Nurb::pntsv, Lattice::pntsw, blender::bke::Point, PTCacheEdit::points, POSE_RUNTIME_TRANSFORM, blender::bke::crazyspace::GeometryDeformation::positions, protectflag_to_drawflags(), blender::MatBase< T, NumCol, NumRow, Alignment >::ptr(), blender::ed::greasepencil::retrieve_editable_drawings(), blender::ed::curves::retrieve_selected_points(), Object::runtime, Object::sculpt, SELECT, blender::index_mask::IndexMask::size(), ScrArea::spacedata, blender::bke::greasepencil::Drawing::strokes(), TFM_ROTATION, PTCacheEdit::totpoint, transform_convert_pose_transflags_update(), Nurb::type, V3D_AROUND_CENTER_BOUNDS, V3D_ORIENT_GIMBAL, V3D_ORIENT_GLOBAL, V3D_ORIENT_LOCAL, BezTriple::vec, BPoint::vec, and PTCacheEditKey::world_co.

Referenced by calc_gizmo_stats(), and gizmo_3d_calc_pos().

◆ gizmo_3d_setup_default_matrix()

◆ gizmo_3d_setup_draw_default()

◆ gizmo_3d_setup_draw_from_twtype()

◆ gizmo_3d_setup_draw_modal()

◆ gizmo_3d_transform_space_object_get()

Object * blender::ed::transform::gizmo_3d_transform_space_object_get ( Scene * scene,
ViewLayer * view_layer )
static

◆ gizmo_get_axis_color()

◆ gizmo_get_axis_constraint()

◆ gizmo_get_axis_from_index()

wmGizmo * blender::ed::transform::gizmo_get_axis_from_index ( const GizmoGroup * ggd,
const short axis_idx )
static

◆ gizmo_get_axis_type()

◆ gizmo_get_idot()

void blender::ed::transform::gizmo_get_idot ( const RegionView3D * rv3d,
float r_idot[3] )
static

◆ gizmo_is_axis_visible()

◆ gizmo_line_range()

void blender::ed::transform::gizmo_line_range ( const int twtype,
const short axis_type,
float * r_start,
float * r_end )
static

Sets up r_start and r_len to define arrow line range. Needed to adjust line drawing for combined gizmo axis types.

Definition at line 1133 of file transform_gizmo_3d.cc.

References MAN_AXES_SCALE, MAN_AXES_TRANSLATE, V3D_GIZMO_SHOW_OBJECT_ROTATE, V3D_GIZMO_SHOW_OBJECT_SCALE, and V3D_GIZMO_SHOW_OBJECT_TRANSLATE.

Referenced by gizmo_3d_setup_draw_from_twtype(), gizmo_3d_setup_draw_modal(), and gizmo_refresh_from_matrix().

◆ gizmo_mesh_extrude_draw_prepare()

◆ gizmo_mesh_extrude_invoke_prepare()

◆ gizmo_mesh_extrude_message_subscribe()

◆ gizmo_mesh_extrude_orientation_matrix_set()

void blender::ed::transform::gizmo_mesh_extrude_orientation_matrix_set ( GizmoExtrudeGroup * ggd,
const float mat[3][3] )
static

◆ gizmo_mesh_extrude_orientation_matrix_set_for_adjust()

void blender::ed::transform::gizmo_mesh_extrude_orientation_matrix_set_for_adjust ( GizmoExtrudeGroup * ggd,
const float mat[3][3] )
static

◆ gizmo_mesh_extrude_refresh()

void blender::ed::transform::gizmo_mesh_extrude_refresh ( const bContext * C,
wmGizmoGroup * gzgroup )
static

Definition at line 221 of file transform_gizmo_extrude_3d.cc.

References blender::ed::transform::GizmoExtrudeGroup::adjust, blender::ed::transform::GizmoExtrudeGroup::adjust_axis, blender::ed::transform::TransformBounds::axis, BKE_scene_orientation_get_index(), C, calc_gizmo_stats(), blender::ed::transform::TransformBounds::center, blender::ed::transform::GizmoExtrudeGroup::constraint_axis, copy_m3_m3(), CTX_data_scene(), CTX_wm_manager(), CTX_wm_region_data(), wmGizmoGroup::customdata, blender::ed::transform::GizmoExtrudeGroup::data, dot_v3v3(), ED_GIZMO_BUTTON_SHOW_BACKDROP, ED_GIZMO_BUTTON_SHOW_HELPLINE, extrude_arrow_normal_axis_scale, EXTRUDE_AXIS_NORMAL, EXTRUDE_AXIS_XYZ, extrude_button_offset_scale, extrude_button_scale, G, gizmo_mesh_extrude_orientation_matrix_set(), gizmo_mesh_extrude_orientation_matrix_set_for_adjust(), blender::ed::transform::GizmoExtrudeGroup::gzgt_axis_type_prop, i, blender::ed::transform::GizmoExtrudeGroup::invoke_view, blender::ed::transform::GizmoExtrudeGroup::invoke_xyz_no, ListBase::last, wmOperator::macro, wmGizmo::matrix_basis, wmGizmo::matrix_offset, mul_v3_v3fl(), negate_v3(), blender::ed::transform::GizmoExtrudeGroup::normal_axis, blender::ed::transform::GizmoExtrudeGroup::normal_mat3, blender::ed::transform::GizmoExtrudeGroup::orient_matrix, blender::ed::transform::GizmoExtrudeGroup::orient_type, blender::ed::transform::GizmoExtrudeGroup::orientation_index, blender::ed::transform::GizmoExtrudeGroup::ot_extrude, params, ptr, wmGizmo::ptr, wmOperator::ptr, blender::ed::transform::GizmoExtrudeGroup::redo_xform, RNA_boolean_get_array(), RNA_enum_get(), RNA_enum_set(), RNA_float_get_array(), RNA_property_enum_get(), wmWindowManager::runtime, SCE_ORIENT_DEFAULT, SCE_WORKSPACE_TOOL_FALLBACK, Scene::toolsettings, wmGizmoGroup::type, wmOperator::type, unit_m3(), V3D_ORIENT_NORMAL, blender::ed::transform::GizmoExtrudeGroup::value, WM_GIZMO_HIDDEN, WM_gizmo_set_flag(), WM_gizmo_set_matrix_location(), WM_toolsystem_ref_from_context(), WM_toolsystem_ref_properties_ensure_from_gizmo_group, and ToolSettings::workspace_tool_type.

Referenced by VIEW3D_GGT_xform_extrude().

◆ gizmo_mesh_extrude_setup()

◆ gizmo_modal()

◆ gizmo_orientation_axis()

◆ gizmo_prepare_mat()

void blender::ed::transform::gizmo_prepare_mat ( const bContext * C,
RegionView3D * rv3d,
const TransformBounds * tbounds )

◆ gizmo_refresh_from_matrix()

◆ gizmo_xform_message_subscribe()

◆ gizmogroup2d_init()

◆ gizmogroup2d_resize_init()

GizmoGroup_Resize2D * blender::ed::transform::gizmogroup2d_resize_init ( wmGizmoGroup * gzgroup)
static

◆ gizmogroup2d_rotate_init()

GizmoGroup_Rotate2D * blender::ed::transform::gizmogroup2d_rotate_init ( wmGizmoGroup * gzgroup)
static

◆ gizmogroup_hide_all()

void blender::ed::transform::gizmogroup_hide_all ( GizmoGroup * ggd)
static

◆ gizmogroup_init()

◆ gizmogroup_init_properties_from_twtype()

◆ gizmogroup_refresh_from_matrix()

void blender::ed::transform::gizmogroup_refresh_from_matrix ( wmGizmoGroup * gzgroup,
const float twmat[4][4],
const float scale[3],
const bool ignore_hidden )
static

◆ gizmogroup_xform_find()

◆ GPLayerToTransData()

int blender::ed::transform::GPLayerToTransData ( TransData * td,
TransData2D * td2d,
bGPDlayer * gpl,
char side,
float cfra,
bool is_prop_edit,
float ypos )
static

This function advances the address to which td points to, so it must return the new address so that the next time new transform data is added, it doesn't overwrite the existing ones: e.g. td += GPLayerToTransData(td, ...);

Parameters
sideis needed for the extend mode. 'B' = both sides, 'R'/'L' mean only data on the named side are used.

Definition at line 488 of file transform_convert_action.cc.

References BLI_assert, blender::ed::transform::TransDataBasic::center, count, blender::ed::transform::TransDataBasic::flag, float, FrameOnMouseSide(), bGPDlayer::frames, GP_FRAME_SELECT, blender::ed::transform::TransDataBasic::iloc, is_td2d_int(), blender::ed::transform::TransDataBasic::ival, LISTBASE_FOREACH, blender::ed::transform::TransData2D::loc, blender::ed::transform::TransDataBasic::loc, blender::ed::transform::TransData2D::loc2d_i, TD_SELECTED, and blender::ed::transform::TransDataBasic::val.

Referenced by createTransActionData().

◆ graph_bezt_get_transform_selection()

void blender::ed::transform::graph_bezt_get_transform_selection ( const TransInfo * t,
const BezTriple * bezt,
const bool use_handle,
bool * r_left_handle,
bool * r_key,
bool * r_right_handle )
static

Get the effective selection of a triple for transform, i.e. return if the left handle, right handle and/or the center point should be affected by transform.

Definition at line 181 of file transform_convert_graph.cc.

References blender::ed::transform::TransInfo::area, BezTriple::f1, BezTriple::f2, BezTriple::f3, ListBase::first, SpaceGraph_Runtime::flag, blender::ed::transform::TransInfo::is_launch_event_drag, left, SpaceGraph::runtime, SELECT, SIPO_RUNTIME_FLAG_TWEAK_HANDLES_LEFT, SIPO_RUNTIME_FLAG_TWEAK_HANDLES_RIGHT, and ScrArea::spacedata.

Referenced by createTransGraphEditData(), and graph_key_shortest_dist().

◆ graph_edit_is_translation_mode()

bool blender::ed::transform::graph_edit_is_translation_mode ( TransInfo * t)
static

◆ graph_edit_use_local_center()

bool blender::ed::transform::graph_edit_use_local_center ( TransInfo * t)
static

◆ graph_key_shortest_dist()

◆ grease_pencil_layer_apply_trans_data()

◆ grease_pencil_layer_initialize_trans_data()

◆ grease_pencil_layer_reset_trans_data()

bool blender::ed::transform::grease_pencil_layer_reset_trans_data ( bke::greasepencil::Layer & layer)
static

Definition at line 152 of file transform_convert_action.cc.

References GreasePencilLayer::runtime.

Referenced by recalcData_actedit().

◆ grease_pencil_layer_update_trans_data()

bool blender::ed::transform::grease_pencil_layer_update_trans_data ( bke::greasepencil::Layer & layer,
const int src_frame_number,
const int dst_frame_number )
static

◆ grease_pencil_transdata_add_fake_drawing_users()

void blender::ed::transform::grease_pencil_transdata_add_fake_drawing_users ( const GreasePencil & grease_pencil)
static

◆ grease_pencil_transdata_remove_fake_drawing_users()

void blender::ed::transform::grease_pencil_transdata_remove_fake_drawing_users ( const GreasePencil & grease_pencil)
static

◆ GreasePencilLayerToTransData()

◆ handle_armature_parent_orientation()

void blender::ed::transform::handle_armature_parent_orientation ( Object * ob,
float r_mat[3][3] )
static

◆ handle_object_parent_orientation()

void blender::ed::transform::handle_object_parent_orientation ( Object * ob,
float r_mat[3][3] )
static

◆ handleEventBend()

eRedrawFlag blender::ed::transform::handleEventBend ( TransInfo * ,
const wmEvent * event )
static

◆ handleEventEdgeSlide()

◆ handleEventShear()

◆ handleEventVertSlide()

◆ handleSnapping()

◆ has_selected_parent()

bool blender::ed::transform::has_selected_parent ( const bNode & node)
static

Definition at line 264 of file transform_convert_node.cc.

References NODE_SELECT, and bNode::parent.

Referenced by flushTransNodes().

◆ has_targetless_ik()

◆ headerBoneSize()

◆ headerResize()

◆ headerRotation()

◆ headerSeqSlide()

◆ headerTimeScale()

◆ headerTimeSlide()

◆ headerTimeTranslate()

◆ headerTranslation()

◆ hit_depth_cmp()

int blender::ed::transform::hit_depth_cmp ( const void * arg1,
const void * arg2 )
static

◆ hit_depth_create()

SnapObjectHitDepth * blender::ed::transform::hit_depth_create ( const float depth,
const float co[3],
uint ob_uuid )
static

◆ image_origin_set()

◆ image_transform_set()

◆ init_mode_impl()

◆ init_proportional_edit()

◆ init_TransDataContainers()

void blender::ed::transform::init_TransDataContainers ( TransInfo * t,
Object * obact,
Span< Object * > objects )
static

Definition at line 794 of file transform_convert.cc.

References BKE_view_layer_array_from_objects_in_mode_params(), BLI_assert, copy_m3_m4(), copy_m4_m4(), data, blender::ed::transform::TransInfo::data_container, blender::ed::transform::TransInfo::data_container_len, blender::ed::transform::TransInfo::data_type, ELEM, blender::ed::transform::TransInfo::flag, i, blender::ed::transform::TransDataContainer::imat, blender::ed::transform::TransDataContainer::imat3, invert_m3_m3(), invert_m4_m4_fallback(), blender::Span< T >::is_empty(), blender::ed::transform::TransDataContainer::mat, blender::ed::transform::TransDataContainer::mat3, blender::ed::transform::TransDataContainer::mat3_unit, ME_SYMMETRY_X, ME_SYMMETRY_Y, ME_SYMMETRY_Z, MEM_calloc_arrayN(), MEM_freeN(), Object::mode, normalize_m3_m3(), OB_ARMATURE, OB_MESH, OB_MODE_EDIT, OB_MODE_OBJECT, OB_MODE_POSE, blender::ed::transform::TransDataContainer::obedit, params, blender::ed::transform::TransDataContainer::poseobj, blender::ed::transform::TransInfo::scene, blender::Span< T >::size(), SPACE_VIEW3D, blender::ed::transform::TransInfo::spacetype, T_2D_EDIT, T_NO_MIRROR, TransConvertType_Curve, blender::ed::transform::curves::TransConvertType_Curves, TransConvertType_EditArmature, blender::ed::transform::greasepencil::TransConvertType_GreasePencil, TransConvertType_Lattice, TransConvertType_MBall, TransConvertType_Mesh, TransConvertType_MeshEdge, TransConvertType_MeshSkin, TransConvertType_MeshUV, TransConvertType_MeshVertCData, blender::ed::transform::pointcloud::TransConvertType_PointCloud, TransConvertType_Pose, Object::type, blender::ed::transform::TransDataContainer::use_local_mat, blender::ed::transform::TransDataContainer::use_mirror_axis_x, blender::ed::transform::TransDataContainer::use_mirror_axis_y, blender::ed::transform::TransDataContainer::use_mirror_axis_z, blender::ed::transform::TransInfo::view, and blender::ed::transform::TransInfo::view_layer.

Referenced by create_trans_data().

◆ initAlign()

void blender::ed::transform::initAlign ( TransInfo * t,
wmOperator *  )
static

◆ initBakeTime()

◆ initBend()

◆ initBevelWeight()

void blender::ed::transform::initBevelWeight ( TransInfo * t,
wmOperator *  )
static

◆ initBoneEnvelope()

◆ initBoneRoll()

◆ initBoneSize()

◆ initCurveShrinkFatten()

void blender::ed::transform::initCurveShrinkFatten ( TransInfo * t,
wmOperator *  )
static

◆ initEdgeSlide()

void blender::ed::transform::initEdgeSlide ( TransInfo * t,
wmOperator * op )
static

◆ initEdgeSlide_ex()

◆ initEgdeCrease()

void blender::ed::transform::initEgdeCrease ( TransInfo * t,
wmOperator *  )
static

◆ initGPOpacity()

◆ initMaskShrinkFatten()

◆ initMirror()

void blender::ed::transform::initMirror ( TransInfo * t,
wmOperator *  )
static

◆ initMouseInput()

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

◆ initMouseInputMode()

void blender::ed::transform::initMouseInputMode ( TransInfo * t,
MouseInput * mi,
MouseInputMode mode )

Definition at line 347 of file transform_input.cc.

References blender::ed::transform::MouseInput::apply, calcSpringFactor(), blender::ed::transform::TransInfo::context, CTX_wm_space_seq(), CTX_wm_window(), blender::ed::transform::MouseInput::data, data, blender::ed::transform::MouseInput::factor, blender::ed::transform::TransInfo::flag, SpaceSeq::flag, blender::ed::transform::TransInfo::helpline, HLP_ANGLE, HLP_CARROW, HLP_ERROR, HLP_ERROR_DASH, HLP_HARROW, HLP_NONE, HLP_SPRING, HLP_TRACKBALL, HLP_VARROW, blender::ed::transform::MouseInput::imval, INPUT_ANGLE, INPUT_ANGLE_SPRING, INPUT_CUSTOM_RATIO, INPUT_CUSTOM_RATIO_FLIP, INPUT_ERROR, INPUT_ERROR_DASH, 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(), blender::ed::transform::TransInfo::mode, blender::ed::transform::MouseInput::precision_factor, SPACE_SEQ_DESELECT_STRIP_HANDLE, T_MODAL, T_MODAL_CURSOR_SET, TFM_SEQ_SLIDE, transform_mode_edge_seq_slide_use_restore_handle_selection(), transform_seq_slide_cursor_get(), blender::ed::transform::MouseInput::use_virtual_mval, WM_cursor_modal_set(), WM_CURSOR_NONE, WM_CURSOR_NSEW_SCROLL, and WM_CURSOR_STOP.

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

◆ initNormalRotation()

◆ initPushPull()

◆ initResize()

◆ initRotation()

◆ initSelectConstraint()

void blender::ed::transform::initSelectConstraint ( TransInfo * t)

◆ initSeqSlide()

◆ initShear()

◆ initShear_mouseInputMode()

◆ initShrinkFatten()

void blender::ed::transform::initShrinkFatten ( TransInfo * t,
wmOperator * op )
static

Definition at line 182 of file transform_mode_shrink_fatten.cc.

References B_UNIT_LENGTH, BKE_report(), copy_v3_fl(), blender::ed::transform::TransInfo::custom, blender::ed::transform::TransCustomData::data, data, EVEN_THICKNESS_ON, blender::ed::transform::TransInfo::flag, blender::ed::transform::TransCustomData::free_cb, blender::ed::transform::TransInfo::idx_max, NumInput::idx_max, blender::ed::transform::TransInfo::increment, blender::ed::transform::TransInfo::increment_precision, initMouseInputMode(), initShrinkFatten(), INPUT_VERTICAL_ABSOLUTE, blender::ed::transform::TransInfo::keymap, blender::ed::transform::ShrinkFattenCustomData::kmi, MEM_callocN(), MEM_freeN(), blender::ed::transform::ShrinkFattenCustomData::mode, blender::ed::transform::TransCustomDataContainer::mode, blender::ed::transform::TransInfo::mode, blender::ed::transform::TransInfo::mouse, blender::ed::transform::TransInfo::num, OB_MESH, blender::ed::transform::TransInfo::obedit_type, blender::ed::transform::ShrinkFattenCustomData::op, wmOperator::ptr, blender::ed::transform::TransInfo::reports, RNA_property_boolean_get(), RNA_property_is_set(), RNA_struct_find_property(), RPT_ERROR, blender::ed::transform::TransInfo::scene, SET_FLAG_FROM_TEST, blender::ed::transform::TransInfo::state, UnitSettings::system, T_ALT_TRANSFORM, T_EDIT, TFM_MODAL_RESIZE, TFM_SHRINKFATTEN, TRANS_CANCEL, Scene::unit, NumInput::unit_sys, NumInput::unit_type, blender::ed::transform::ShrinkFattenCustomData::use_alt_press_to_disable, NumInput::val_inc, and WM_modalkeymap_find_propvalue().

Referenced by initShrinkFatten().

◆ initSkinResize()

◆ initSnapAngleIncrements()

◆ initSnapping()

◆ initSnappingMode()

◆ initTilt()

◆ initTimeScale()

◆ initTimeSlide()

◆ initTimeTranslate()

◆ initToSphere()

◆ initTrackball()

◆ initTransDataCurveHandles()

◆ initTransform()

bool blender::ed::transform::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 1940 of file editors/transform/transform.cc.

References applyMouseInput(), BKE_editmesh_lnorspace_update(), BLI_assert_msg, BMEditMesh::bm, BM_lnorspace_invalidate(), C, calculateCenter(), calculatePropRatio(), blender::ed::transform::TransInfo::center2d, blender::ed::transform::TransInfo::con, CON_APPLY, blender::ed::transform::TransInfo::context, create_trans_data(), CTX_CURSOR, CTX_GPENCIL_STROKES, CTX_TEXTURE_SPACE, CTX_VIEW2D_EDGE_PAN, CTX_wm_manager(), blender::ed::transform::TransInfo::data_len_all, blender::ed::transform::TransInfo::data_type, blender::ed::transform::TransInfo::draw_handle_cursor, blender::ed::transform::TransInfo::draw_handle_pixel, blender::ed::transform::TransInfo::draw_handle_view, drawTransformPixel(), drawTransformView(), ED_region_draw_cb_activate(), ELEM, EVT_HYPER, EVT_LEFTALTKEY, EVT_LEFTCTRLKEY, EVT_LEFTSHIFTKEY, EVT_OSKEY, EVT_RIGHTALTKEY, EVT_RIGHTCTRLKEY, EVT_RIGHTSHIFTKEY, blender::ed::transform::TransDataBasic::flag, blender::ed::transform::TransInfo::flag, FOREACH_TRANS_DATA_CONTAINER, G, blender::ed::transform::MouseInput::imval, initMouseInput(), initSnapping(), initTransInfo(), blender::ed::transform::TransInfo::is_launch_event_drag, wmKeyMap::items, blender::ed::transform::TransInfo::keymap, KM_ALT, KM_CTRL, KM_HYPER, KM_OSKEY, KM_PRESS, KM_PRESS_DRAG, KM_SHIFT, KMI_INACTIVE, blender::ed::transform::TransInfo::launch_event, LISTBASE_FOREACH, MOD_NODE_ATTACH, MOD_SNAP_INVERT, wmOperatorType::modalkeymap, blender::ed::transform::TransCon::mode, blender::ed::transform::TransInfo::mode, wmEvent::modifier, blender::ed::transform::TransInfo::modifiers, blender::ed::transform::TransInfo::mouse, blender::ed::transform::TransInfo::mval, OB_MESH, blender::ed::transform::TransInfo::obedit_type, blender::ed::transform::TransInfo::options, options, blender::ed::transform::TransInfo::orient_axis, blender::ed::transform::TransInfo::orient_axis_ortho, postTrans(), wmOperator::ptr, blender::ed::transform::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(), ARegion::runtime, setUserConstraint(), SPACE_ACTION, SPACE_CLIP, SPACE_GRAPH, SPACE_IMAGE, SPACE_NODE, SPACE_SEQ, SPACE_TYPE_ANY, SPACE_VIEW3D, blender::ed::transform::TransInfo::spacemtx, blender::ed::transform::TransInfo::spacetype, blender::ed::transform::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(), wmEvent::type, wmOperator::type, unit_m3(), blender::ed::transform::TransInfo::values, WM_keymap_active(), WM_paint_cursor_activate(), and WM_userdef_event_type_from_keymap_type().

Referenced by transformops_data().

◆ initTransInfo()

void blender::ed::transform::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 121 of file transform_generics.cc.

References blender::ed::transform::TransInfo::animtimer, bScreen::animtimer, blender::ed::transform::TransInfo::area, blender::ed::transform::TransInfo::around, blender::ed::transform::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_default_render(), BKE_view_layer_synced_ensure(), BLI_assert, BRUSH_CURVE, C, calculateCenter2D(), calculateCenterLocal(), blender::ed::transform::TransInfo::center_global, blender::ed::transform::TransInfo::con, CON_APPLY, CON_AXIS0, CON_AXIS1, CON_AXIS2, copy_v4_v4(), CTX_CURSOR, CTX_data_depsgraph_pointer(), CTX_data_scene(), CTX_data_sequencer_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(), CTX_wm_space_seq(), blender::ed::transform::TransInfo::data_container, blender::ed::transform::TransInfo::data_container_len, blender::ed::transform::TransInfo::data_len_all, blender::ed::transform::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, ListBase::first, blender::ed::transform::TransInfo::flag, Brush::flag, wmOperator::flag, blender::ed::transform::TransInfo::helpline, HLP_NONE, i, ToolSettings::imapaint, blender::ed::transform::MouseInput::imval, TransformOrientationSlot::index_custom, initNumInput(), blender::ed::transform::TransInfo::is_orient_default_overwrite, ISMOUSE_BUTTON, wmKeyMap::items, KMI_INACTIVE, blender::ed::transform::TransInfo::launch_event, LISTBASE_FOREACH, blender::ed::transform::TransInfo::mat, blender::ed::transform::TransInfo::matrix, blender::ed::transform::TransInfo::mbus, MEM_callocN(), wmOperatorType::modalkeymap, blender::ed::transform::TransCon::mode, blender::ed::transform::TransInfo::mode, Object::mode, SpaceImage::mode, blender::ed::transform::TransInfo::mode_info, blender::ed::transform::TransInfo::mouse, mul_v3_v3(), blender::ed::transform::TransInfo::mval, wmEvent::mval, blender::ed::transform::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, blender::ed::transform::TransInfo::obedit_type, OP_IS_REPEAT_LAST, blender::ed::transform::TransInfo::options, blender::ed::transform::TransInfo::orient, blender::ed::transform::TransInfo::orient_axis, blender::ed::transform::TransInfo::orient_axis_ortho, blender::ed::transform::TransInfo::orient_type_mask, Scene::orientation_slots, ImagePaintSettings::paint, printf, PROP_EDIT_CONNECTED, PROP_EDIT_PROJECTED, PROP_EDIT_USE, blender::ed::transform::TransInfo::prop_mode, ToolSettings::prop_mode, blender::ed::transform::TransInfo::prop_size, ToolSettings::proportional_action, ToolSettings::proportional_edit, ToolSettings::proportional_fcurve, ToolSettings::proportional_mask, ToolSettings::proportional_objects, ToolSettings::proportional_size, wmOperator::ptr, blender::ed::transform::TransInfo::redraw, blender::ed::transform::TransInfo::region, ARegion::regiondata, ARegion::regiontype, blender::ed::transform::TransInfo::remove_on_cancel, blender::ed::transform::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, blender::ed::transform::TransInfo::scene, SET_FLAG_FROM_TEST, blender::ed::transform::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, ScrArea::spacedata, blender::ed::transform::TransInfo::spacetype, ScrArea::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_ORIGIN, 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, blender::ed::transform::TransInfo::type, Object::type, TransformOrientationSlot::type, wmOperator::type, U, 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, blender::ed::transform::TransInfo::values, blender::ed::transform::TransInfo::values_modal_offset, blender::ed::transform::TransInfo::view, blender::ed::transform::TransInfo::view_layer, blender::ed::transform::TransInfo::vod, WM_event_drag_start_mval_fl(), WM_keymap_active(), and zero_v3().

Referenced by calculateTransformCenter(), and initTransform().

◆ initTranslation()

void blender::ed::transform::initTranslation ( TransInfo * t,
wmOperator *  )
static

Definition at line 580 of file transform_mode_translate.cc.

References blender::ed::transform::TransInfo::aspect, B_UNIT_LENGTH, B_UNIT_NONE, BKE_report(), copy_v3_fl(), CTX_CAMERA, blender::ed::transform::TransInfo::custom, blender::ed::transform::TransCustomData::data, blender::ed::transform::TransInfo::flag, NumInput::flag, blender::ed::transform::TransInfo::idx_max, NumInput::idx_max, blender::ed::transform::TransInfo::increment, blender::ed::transform::TransInfo::increment_precision, initMouseInputMode(), initTranslation(), INPUT_VECTOR, MEM_callocN(), blender::ed::transform::TransCustomDataContainer::mode, blender::ed::transform::TransInfo::mouse, blender::ed::transform::TransInfo::num, blender::ed::transform::TransInfo::options, blender::ed::transform::TranslateCustomData::prev, blender::ed::transform::TransInfo::region, blender::ed::transform::TransInfo::reports, blender::ed::transform::TranslateCustomData::rotate_mode, RPT_ERROR, blender::ed::transform::TransInfo::scene, blender::ed::transform::TransInfo::snap_spatial, blender::ed::transform::TransInfo::snap_spatial_precision, SPACE_ACTION, SPACE_GRAPH, SPACE_VIEW3D, blender::ed::transform::TransInfo::spacetype, blender::ed::transform::TransInfo::state, UnitSettings::system, T_2D_EDIT, TRANS_CANCEL, transform_mode_default_modal_orientation_set(), TRANSLATE_ROTATE_OFF, translate_snap_increment_init(), UI_view2d_grid_resolution_x__frames_or_seconds(), UI_view2d_grid_resolution_y__values(), Scene::unit, NumInput::unit_sys, NumInput::unit_type, blender::ed::transform::TransCustomData::use_free, ARegion::v2d, V3D_ORIENT_GLOBAL, V3D_ORIENT_VIEW, and NumInput::val_inc.

Referenced by initTranslation().

◆ initVertCrease()

void blender::ed::transform::initVertCrease ( TransInfo * t,
wmOperator *  )
static

◆ initVertSlide()

void blender::ed::transform::initVertSlide ( TransInfo * t,
wmOperator * op )
static

◆ initVertSlide_ex()

void blender::ed::transform::initVertSlide_ex ( TransInfo * t,
wmOperator * op,
bool use_even,
bool flipped,
bool use_clamp )
static

◆ InputAngle()

◆ InputAngleSpring()

void blender::ed::transform::InputAngleSpring ( TransInfo * t,
MouseInput * mi,
const double mval[2],
float output[3] )
static

◆ InputCustomRatio()

void blender::ed::transform::InputCustomRatio ( TransInfo * t,
MouseInput * mi,
const double mval[2],
float output[3] )
static

Callback for INPUT_CUSTOM_RATIO.

Definition at line 169 of file transform_input.cc.

References InputCustomRatioFlip(), and output.

Referenced by initMouseInputMode().

◆ InputCustomRatioFlip()

void blender::ed::transform::InputCustomRatioFlip ( TransInfo * ,
MouseInput * mi,
const double mval[2],
float output[3] )
static

◆ InputHorizontalAbsolute()

void blender::ed::transform::InputHorizontalAbsolute ( TransInfo * t,
MouseInput * mi,
const double mval[2],
float output[3] )
static

◆ InputHorizontalRatio()

void blender::ed::transform::InputHorizontalRatio ( TransInfo * t,
MouseInput * mi,
const double mval[2],
float output[3] )
static

◆ InputSpring()

void blender::ed::transform::InputSpring ( TransInfo * ,
MouseInput * mi,
const double mval[2],
float output[3] )
static

◆ InputSpringDelta()

void blender::ed::transform::InputSpringDelta ( TransInfo * t,
MouseInput * mi,
const double mval[2],
float output[3] )
static

Callback for INPUT_SPRING_DELTA.

Definition at line 74 of file transform_input.cc.

References InputSpring(), and output.

Referenced by initMouseInputMode().

◆ InputSpringFlip()

void blender::ed::transform::InputSpringFlip ( TransInfo * t,
MouseInput * mi,
const double mval[2],
float output[3] )
static

◆ InputTrackBall()

void blender::ed::transform::InputTrackBall ( TransInfo * ,
MouseInput * mi,
const double mval[2],
float output[3] )
static

◆ InputVector()

void blender::ed::transform::InputVector ( TransInfo * t,
MouseInput * mi,
const double mval[2],
float output[3] )
static

◆ InputVerticalAbsolute()

void blender::ed::transform::InputVerticalAbsolute ( TransInfo * t,
MouseInput * mi,
const double mval[2],
float output[3] )
static

◆ InputVerticalRatio()

void blender::ed::transform::InputVerticalRatio ( TransInfo * t,
MouseInput * mi,
const double mval[2],
float output[3] )
static

◆ interp_line_v3_v3v3v3()

void blender::ed::transform::interp_line_v3_v3v3v3 ( float p[3],
const float v1[3],
const float v2[3],
const float v3[3],
float t )
static

◆ invert_snap() [1/2]

void blender::ed::transform::invert_snap ( eSnapMode & snap_mode)
static

◆ invert_snap() [2/2]

void blender::ed::transform::invert_snap ( eSnapMode & snap_mode)
static

Definition at line 114 of file transform_snap_animation.cc.

References SCE_SNAP_TO_FRAME, and SCE_SNAP_TO_SECOND.

◆ is_in_quadrant_v3()

bool blender::ed::transform::is_in_quadrant_v3 ( const float co[3],
const int quadrant[3],
const float epsilon )
static

Definition at line 1183 of file transform_convert_mesh.cc.

Referenced by transform_convert_mesh_mirrordata_calc().

◆ is_node_parent_select()

bool blender::ed::transform::is_node_parent_select ( const bNode * node)
static

Definition at line 88 of file transform_convert_node.cc.

References bNode::flag, NODE_SELECT, and bNode::parent.

Referenced by get_transformed_nodes().

◆ is_overlap()

bool blender::ed::transform::is_overlap ( const float left_bound_a,
const float right_bound_a,
const float left_bound_b,
const float right_bound_b )
static

Definition at line 70 of file transform_convert_nla.cc.

Referenced by nlastrip_is_overlap().

◆ is_td2d_int()

◆ is_vert_slide_visible_bmesh()

◆ isect_face_dst() [1/2]

◆ isect_face_dst() [2/2]

float2 blender::ed::transform::isect_face_dst ( const BMLoop * l,
const float2 & uv,
const float2 & aspect,
const BMUVOffsets & offsets )
static

◆ isLockConstraint()

bool blender::ed::transform::isLockConstraint ( const TransInfo * t)

◆ isPlaneProjectionViewAligned()

bool blender::ed::transform::isPlaneProjectionViewAligned ( const TransInfo * t,
const float plane_no[3] )
static

Return true if the 2x axis are both aligned when projected into the view. In this case, we can't usefully project the cursor onto the plane.

Definition at line 324 of file transform_constraints.cc.

References blender::ed::transform::TransInfo::center_global, dot_v3v3(), eps, fabsf, and view_vector_calc().

Referenced by transform_constraint_get_nearest().

◆ iter_snap_objects()

◆ keymap_transform()

void blender::ed::transform::keymap_transform ( wmKeyConfig * keyconf)

◆ large_rotation_limit()

float blender::ed::transform::large_rotation_limit ( float angle)
static

Definition at line 180 of file transform_mode_rotate.cc.

References angle(), fabsf, float, fmodf, and M_PI.

Referenced by applyRotation(), and applyRotationValue().

◆ make_sorted_index_map()

void blender::ed::transform::make_sorted_index_map ( TransDataContainer * tc,
FunctionRef< bool(int, int)> compare )
static

◆ mark_children()

bool blender::ed::transform::mark_children ( Object * ob)
static

◆ markerToTransCurveDataInit()

◆ markerToTransDataInit()

void blender::ed::transform::markerToTransDataInit ( TransformInitContext * init_context,
MovieTrackingTrack * track,
MovieTrackingMarker * marker,
int area,
float loc[2],
const float rel[2],
const float off[2],
const float aspect[2] )
static

◆ MaskHandleToTransData()

void blender::ed::transform::MaskHandleToTransData ( MaskSplinePoint * point,
eMaskWhichHandle which_handle,
TransData * td,
TransData2D * td2d,
TransDataMasking * tdm,
const float asp[2],
const float parent_matrix[3][3],
const float parent_inverse_matrix[3][3] )
static

◆ masklay_shape_cmp_frame()

int blender::ed::transform::masklay_shape_cmp_frame ( void * thunk,
const void * a,
const void * b )
static

◆ MaskLayerToTransData()

◆ MaskPointToTransData()

void blender::ed::transform::MaskPointToTransData ( Scene * scene,
MaskSplinePoint * point,
TransData * td,
TransData2D * td2d,
TransDataMasking * tdm,
const bool is_prop_edit,
const float asp[2] )
static

◆ mesh_cdata_transdata_center()

float * blender::ed::transform::mesh_cdata_transdata_center ( const TransIslandData * island_data,
const int island_index,
BMVert * eve )
static

◆ mesh_cdata_transdata_create()

◆ mesh_corner_tris_raycast_backface_culling_cb()

void blender::ed::transform::mesh_corner_tris_raycast_backface_culling_cb ( void * userdata,
int index,
const BVHTreeRay * ray,
BVHTreeRayHit * hit )
static

◆ mesh_customdata_ensure()

◆ mesh_customdata_free()

◆ mesh_customdata_free_fn()

void blender::ed::transform::mesh_customdata_free_fn ( TransInfo * t,
TransDataContainer * tc,
TransCustomData * custom_data )
static

◆ mesh_customdatacorrect_apply()

◆ mesh_customdatacorrect_apply_vert()

◆ mesh_customdatacorrect_create()

void blender::ed::transform::mesh_customdatacorrect_create ( TransDataContainer * tc,
const bool use_merge_group )
static

◆ mesh_customdatacorrect_create_impl()

◆ mesh_customdatacorrect_face_substitute_get()

BMFace * blender::ed::transform::mesh_customdatacorrect_face_substitute_get ( BMFace * f_copy)
static

◆ mesh_customdatacorrect_face_substitute_set()

◆ mesh_customdatacorrect_find_best_face_substitute()

BMFace * blender::ed::transform::mesh_customdatacorrect_find_best_face_substitute ( BMFace * f)
static

Search for a neighboring face with area and preferably without selected vertex. Used to replace area-less faces in custom-data correction.

Definition at line 184 of file transform_convert_mesh.cc.

References BM_elem_flag_test, BM_ELEM_SELECT, BM_ITER_ELEM, BM_LOOPS_OF_FACE, BMLoop::f, is_zero_v3(), l, BMLoop::next, BMFace::no, and BMLoop::v.

Referenced by mesh_customdatacorrect_face_substitute_set().

◆ mesh_customdatacorrect_free()

◆ mesh_customdatacorrect_init_container_generic()

◆ mesh_customdatacorrect_init_container_merge_group()

◆ mesh_customdatacorrect_init_vert()

◆ mesh_customdatacorrect_restore()

◆ mesh_partial_ensure()

BMPartialUpdate * blender::ed::transform::mesh_partial_ensure ( TransInfo * t,
TransDataContainer * tc,
enum ePartialType partial_type )
static

Definition at line 1733 of file transform_convert_mesh.cc.

References BKE_editmesh_from_object(), BLI_assert, BLI_assert_unreachable, BMEditMesh::bm, BM_elem_index_get, BM_mesh_elem_index_ensure(), BM_mesh_partial_create_from_verts(), BM_mesh_partial_create_from_verts_group_multi(), BM_mesh_partial_create_from_verts_group_single(), BM_mesh_partial_destroy(), BM_VERT, blender::ed::transform::TransCustomData_PartialUpdate::cache, blender::ed::transform::TransDataContainer::data, blender::ed::transform::TransDataContainer::data_mirror, blender::ed::transform::TransDataContainer::data_mirror_len, equals_v3v3(), blender::ed::transform::TransDataBasic::extra, blender::ed::transform::TransData::factor, blender::ed::transform::TransDataBasic::flag, blender::ed::transform::TransInfo::flag, flag, i, blender::ed::transform::TransDataBasic::iloc, blender::Array< T, InlineBufferCapacity, Allocator >::is_empty(), blender::ed::transform::TransDataBasic::loc, blender::ed::transform::TransDataMirror::loc_src, mesh_customdata_ensure(), blender::ed::transform::TransDataContainer::obedit, offsetof, params, PARTIAL_NONE, PARTIAL_TYPE_ALL, PARTIAL_TYPE_GROUP, blender::ed::transform::TransCustomDataMesh::partial_update, POINTER_OFFSET, blender::ed::transform::TransCustomData_PartialUpdate::prop_size, blender::ed::transform::TransInfo::prop_size, blender::ed::transform::TransCustomData_PartialUpdate::prop_size_prev, blender::bits::BitVector< InlineBufferCapacity, Allocator >::resize(), T_PROP_EDIT, TD_MIRROR_EDGE_AXIS_SHIFT, TD_MIRROR_EDGE_X, TD_MIRROR_EDGE_Y, TD_MIRROR_EDGE_Z, TD_MIRROR_X, TD_MIRROR_Y, TD_MIRROR_Z, BMesh::totvert, blender::ed::transform::TransDataContainer::use_mirror_axis_any, and v.

Referenced by mesh_partial_update().

◆ mesh_partial_types_calc()

◆ mesh_partial_update()

◆ mesh_skin_apply_to_mirror()

void blender::ed::transform::mesh_skin_apply_to_mirror ( TransInfo * t)
static

◆ mesh_skin_transdata_center()

float * blender::ed::transform::mesh_skin_transdata_center ( const TransIslandData * island_data,
const int island_index,
BMVert * eve )
static

◆ mesh_skin_transdata_create()

◆ mesh_snap_mode_supported()

eSnapMode blender::ed::transform::mesh_snap_mode_supported ( const Mesh * mesh,
bool skip_hidden )
static

◆ mesh_transdata_center_copy()

void blender::ed::transform::mesh_transdata_center_copy ( const TransIslandData * island_data,
const int island_index,
const float iloc[3],
float r_center[3] )
static

◆ mesh_transdata_mirror_apply()

◆ mesh_uv_group_is_inner()

◆ mesh_uv_groups_get()

◆ mesh_vert_is_inner()

bool blender::ed::transform::mesh_vert_is_inner ( BMVert * v)
static

◆ mesh_vert_orig_co_get()

const float * blender::ed::transform::mesh_vert_orig_co_get ( TransCustomDataLayer * tcld,
BMVert * v )
static

If we're sliding the vert, return its original location, if not, the current location is good.

Definition at line 517 of file transform_convert_mesh.cc.

References BLI_ghash_lookup(), blender::ed::transform::TransDataBasic::iloc, blender::ed::transform::TransCustomDataLayer::merge_group, blender::ed::transform::TransCustomDataLayer::origverts, and v.

Referenced by mesh_customdatacorrect_apply_vert().

◆ mode_info_get()

◆ motionpath_need_update_object()

bool blender::ed::transform::motionpath_need_update_object ( Scene * scene,
Object * ob )
static

◆ motionpath_need_update_pose()

bool blender::ed::transform::motionpath_need_update_pose ( Scene * scene,
Object * ob )
static

◆ move_child_nodes()

void blender::ed::transform::move_child_nodes ( bNode & node,
const float2 & delta )
static

Definition at line 253 of file transform_convert_node.cc.

References move_child_nodes().

Referenced by flushTransNodes(), and move_child_nodes().

◆ nearest_world_mesh()

◆ nearest_world_object_fn()

◆ nearest_world_tree()

◆ nearest_world_tree_co()

void blender::ed::transform::nearest_world_tree_co ( const BVHTree * tree,
BVHTree_NearestPointCallback nearest_cb,
void * treedata,
const float3 & co,
BVHTreeNearest * r_nearest )
static

◆ nearestWorldObjects()

bool blender::ed::transform::nearestWorldObjects ( SnapObjectContext * sctx)
static

Main Nearest World Surface Function

Walks through all objects in the scene to find the nearest location on target surface.

Parameters
sctxSnap context to store data.
paramsSettings for snapping.
init_coInitial location of source point.
prev_coCurrent location of source point after transformation but before snapping.

Definition at line 796 of file transform_snap_object.cc.

References iter_snap_objects(), nearest_world_object_fn(), and SCE_SNAP_TO_NONE.

Referenced by snap_object_project_view3d_ex().

◆ nla_transform_apply()

◆ nlastrip_fix_overlapping()

◆ nlastrip_flag_overlaps()

void blender::ed::transform::nlastrip_flag_overlaps ( NlaStrip * strip)
static

Flag overlaps with adjacent strips.

Since the strips are re-ordered as they're transformed, we only have to check adjacent strips for overlap instead of all of them.

Definition at line 345 of file transform_convert_nla.cc.

References NlaStrip::flag, NlaStrip::next, NLASTRIP_FLAG_INVALID_LOCATION, NLASTRIP_FLAG_SELECT, nlastrip_is_overlap(), and NlaStrip::prev.

Referenced by recalcData_nla().

◆ nlastrip_is_overlap()

bool blender::ed::transform::nlastrip_is_overlap ( const NlaStrip * strip_a,
const float offset_a,
const NlaStrip * strip_b,
const float offset_b )
static

◆ nlastrip_overlap_reorder()

void blender::ed::transform::nlastrip_overlap_reorder ( TransDataNla * tdn,
NlaStrip * strip )
static

Reorder strips for proper nla stack evaluation while dragging.

Definition at line 329 of file transform_convert_nla.cc.

References BLI_listbase_swaplinks(), blender::ed::transform::TransDataNla::h1, NlaStrip::next, blender::ed::transform::TransDataNla::nlt, NlaStrip::prev, NlaStrip::start, and NlaTrack::strips.

Referenced by recalcData_nla().

◆ nlastrip_shuffle_transformed()

◆ nlatrack_truncate_temporary_tracks()

void blender::ed::transform::nlatrack_truncate_temporary_tracks ( bAnimContext * ac)
static

◆ node_snap_grid_apply()

◆ object_project_all_view3d_ex()

bool blender::ed::transform::object_project_all_view3d_ex ( SnapObjectContext * sctx,
Depsgraph * depsgraph,
const ARegion * region,
const View3D * v3d,
const SnapObjectParams * params,
const float mval[2],
float ray_depth,
bool sort,
ListBase * r_hit_list )

◆ ObjectToTransData()

void blender::ed::transform::ObjectToTransData ( TransInfo * t,
TransData * td,
TransDataExtension * td_ext,
Object * ob )
static

Transcribe given object into TransData for Transforming.

Definition at line 142 of file transform_convert_object.cc.

References blender::ed::transform::TransData::axismtx, blender::ed::transform::TransDataExtension::axismtx_gimbal, BKE_object_mat3_to_rot(), BKE_object_tfm_copy(), BKE_object_to_mat3(), BKE_object_where_is_calc(), BKE_rigidbody_check_sim_running(), BKE_scene_ctime_get(), blender::ed::transform::TransDataBasic::center, blender::ed::transform::TransData::con, Object::constraints, constraints_list_needinv(), copy_m3_m3(), copy_m3_m4(), copy_m4_m4(), copy_qt_qt(), copy_v3_v3(), DEG_get_evaluated(), blender::ed::transform::TransInfo::depsgraph, Object::dloc, blender::ed::transform::TransDataExtension::dquat, Object::dquat, blender::ed::transform::TransDataExtension::drot, Object::drot, Object::drotAngle, Object::drotAxis, blender::ed::transform::TransDataExtension::dscale, Object::dscale, blender::ed::transform::TransDataBasic::extra, ListBase::first, gimbal_axis_object(), blender::ed::transform::TransDataBasic::iloc, invert_m3_m3_safe_ortho(), blender::ed::transform::TransDataExtension::iquat, blender::ed::transform::TransDataExtension::irot, blender::ed::transform::TransDataExtension::irotAngle, blender::ed::transform::TransDataExtension::irotAxis, blender::ed::transform::TransDataExtension::iscale, blender::ed::transform::TransDataBasic::loc, Object::loc, mat4_to_loc_rot_size(), blender::ed::transform::TransInfo::mode, blender::ed::transform::TransData::mtx, mul_m3_m3m3(), OB_NEG_SCALE, OB_NO_CONSTRAINTS, blender::ed::transform::TransDataExtension::obmat, blender::ed::transform::TransDataExtension::oloc, blender::ed::transform::TransDataExtension::oquat, blender::ed::transform::TransInfo::orient_type_mask, blender::ed::transform::TransDataExtension::orot, blender::ed::transform::TransDataExtension::orotAngle, blender::ed::transform::TransDataExtension::orotAxis, orthogonalize_m3_zero_axes(), Object::parent, blender::ed::transform::TransDataExtension::quat, Object::quat, Object::rigidbody_object, Scene::rigidbody_world, blender::ed::transform::TransDataExtension::rot, Object::rot, rot, ROT_MODE_AXISANGLE, blender::ed::transform::TransDataExtension::rotAngle, Object::rotAngle, blender::ed::transform::TransDataExtension::rotAxis, Object::rotAxis, Object::rotmode, blender::ed::transform::TransDataExtension::rotOrder, Object::runtime, blender::ed::transform::TransDataExtension::scale, Object::scale, blender::ed::transform::TransInfo::scene, blender::ed::transform::TransData::smtx, sub_v3_v3(), TFM_DUMMY, Object::transflag, transform_orientations_create_from_axis(), unit_m3(), UNPACK3, and V3D_ORIENT_GIMBAL.

Referenced by createTransObject().

◆ occlusion_plane_create()

float4 blender::ed::transform::occlusion_plane_create ( float3 ray_dir,
float3 ray_co,
float3 ray_no )
static

◆ PaintCurveConvertHandle()

◆ PaintCurvePointToTransData()

◆ pchan_autoik_adjust()

bool blender::ed::transform::pchan_autoik_adjust ( bPoseChannel * pchan,
short chainlen )
static

◆ peelObjectsTransform()

◆ planeMarkerToTransDataInit()

◆ planeProjection()

void blender::ed::transform::planeProjection ( const TransInfo * t,
const float plane_no[3],
const float in[3],
float out[3] )
static

◆ planeTrackToTransData()

void blender::ed::transform::planeTrackToTransData ( TransformInitContext * init_context,
const int framenr,
MovieTrackingPlaneTrack * plane_track,
const float aspect[2] )
static

◆ planeTrackToTransDataIfNeeded()

void blender::ed::transform::planeTrackToTransDataIfNeeded ( TransformInitContext * init_context,
const int framenr,
MovieTrackingPlaneTrack * plane_track,
const float aspect[2] )
static

◆ points_build_3x3_grid()

void blender::ed::transform::points_build_3x3_grid ( const Scene * scene,
TransSeqSnapData * snap_data,
Strip * strip )
static

◆ points_build_sources_preview_image()

void blender::ed::transform::points_build_sources_preview_image ( const Scene * scene,
TransSeqSnapData * snap_data,
const Span< Strip * > snap_sources )
static

◆ points_build_sources_preview_origin()

void blender::ed::transform::points_build_sources_preview_origin ( const Scene * scene,
TransSeqSnapData * snap_data,
const Span< Strip * > snap_sources )
static

◆ points_build_sources_timeline_retiming()

void blender::ed::transform::points_build_sources_timeline_retiming ( const Scene * scene,
TransSeqSnapData * snap_data,
const Map< SeqRetimingKey *, Strip * > & retiming_selection )
static

◆ points_build_sources_timeline_strips()

void blender::ed::transform::points_build_sources_timeline_strips ( const Scene * scene,
TransSeqSnapData * snap_data,
const Span< Strip * > snap_sources )
static

◆ points_build_targets_preview_general()

void blender::ed::transform::points_build_targets_preview_general ( const View2D * v2d,
const short snap_mode,
TransSeqSnapData * snap_data )
static

◆ points_build_targets_preview_image()

void blender::ed::transform::points_build_targets_preview_image ( const Scene * scene,
const View2D * v2d,
const short snap_mode,
TransSeqSnapData * snap_data,
const Span< Strip * > snap_targets )
static

◆ points_build_targets_preview_origin()

void blender::ed::transform::points_build_targets_preview_origin ( const Scene * scene,
TransSeqSnapData * snap_data,
const Span< Strip * > snap_sources,
const Span< Strip * > snap_targets )
static

Definition at line 404 of file transform_snap_sequencer.cc.

References points_build_3x3_grid().

Referenced by snap_data_build_preview().

◆ points_build_targets_timeline()

◆ pose_channel_children_clear_transflag()

◆ pose_grab_with_ik()

◆ pose_grab_with_ik_add()

◆ pose_grab_with_ik_children()

short blender::ed::transform::pose_grab_with_ik_children ( bPose * pose,
Bone * bone )
static

Bone is a candidate to get IK, but we don't do it if it has children connected.

Definition at line 231 of file transform_convert_armature.cc.

References BKE_pose_channel_find_name(), BONE_CONNECTED, Bone::childbase, LISTBASE_FOREACH, Bone::name, pose_grab_with_ik_add(), and pose_grab_with_ik_children().

Referenced by pose_grab_with_ik(), and pose_grab_with_ik_children().

◆ pose_grab_with_ik_clear()

◆ pose_mirror_info_init()

◆ pose_mirror_info_restore()

◆ pose_transform_mirror_update()

◆ postSelectConstraint()

void blender::ed::transform::postSelectConstraint ( TransInfo * t)

◆ postTrans()

void blender::ed::transform::postTrans ( bContext * C,
TransInfo * t )

Here I would suggest only TransInfo related issues, like free data & reset variables. Not redraws.

Definition at line 762 of file transform_generics.cc.

References blender::ed::transform::TransInfo::area, BLI_freelistN(), BLI_rng_free(), C, CTX_MASK, CTX_PAINT_CURVE, CTX_wm_window(), blender::ed::transform::TransInfo::custom, blender::ed::transform::MouseInput::data, blender::ed::transform::TransInfo::data_container, blender::ed::transform::TransInfo::data_len_all, blender::ed::transform::TransInfo::draw_handle_cursor, blender::ed::transform::TransInfo::draw_handle_pixel, blender::ed::transform::TransInfo::draw_handle_view, ED_region_draw_cb_exit(), ED_uvedit_live_unwrap_end(), ED_view3d_navigation_free(), ELEM, ListBase::first, blender::ed::transform::TransDataBasic::flag, blender::ed::transform::TransInfo::flag, SpaceImage::flag, FOREACH_TRANS_DATA_CONTAINER, freeSnapping(), freeTransCustomDataContainer(), blender::ed::transform::TransData::hdata, MEM_freeN(), MEM_SAFE_FREE, blender::ed::transform::TransInfo::mouse, OB_CURVES_LEGACY, OB_SURF, blender::ed::transform::TransInfo::obedit_type, blender::ed::transform::TransInfo::options, blender::ed::transform::TransSnap::points, blender::ed::transform::TransInfo::region, blender::ed::transform::TransInfo::rng, ARegion::runtime, SI_LIVE_UNWRAP, SPACE_GRAPH, SPACE_IMAGE, ScrArea::spacedata, blender::ed::transform::TransInfo::spacetype, blender::ed::transform::TransInfo::state, T_MODAL_CURSOR_SET, TD_BEZTRIPLE, TRANS_CANCEL, blender::ed::transform::TransInfo::tsnap, blender::ed::transform::TransInfo::vod, WM_cursor_modal_restore(), and WM_paint_cursor_end().

Referenced by calculateTransformCenter(), initTransform(), and transformEnd().

◆ posttrans_action_clean()

void blender::ed::transform::posttrans_action_clean ( bAnimContext * ac,
bAction * act )
static

Called by special_aftertrans_update to make sure selected keyframes replace any other keyframes which may reside on that frame (that is not selected). remake_action_ipos should have already been called.

Definition at line 1178 of file transform_convert_action.cc.

References ANIM_animdata_filter(), ANIM_animdata_freelist(), ANIM_nla_mapping_apply_if_needed_fcurve(), ANIMCONT_ACTION, ANIMFILTER_DATA_VISIBLE, ANIMFILTER_FCURVESONLY, ANIMFILTER_FOREDIT, BKE_fcurve_merge_duplicate_keys(), filter, LISTBASE_FOREACH, and SELECT.

Referenced by special_aftertrans_update__actedit().

◆ posttrans_gpd_clean()

◆ posttrans_mask_clean()

◆ projectFloatView()

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

◆ projectFloatViewCenterFallback()

◆ projectFloatViewEx()

◆ projectIntView()

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

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

References projectIntViewEx(), and V3D_PROJ_TEST_NOP.

Referenced by projectFloatViewEx().

◆ projectIntViewEx()

◆ projection_matrix_calc()

◆ prop_dist_loc_get()

◆ properties_register()

void blender::ed::transform::properties_register ( wmOperatorType * ot,
int flags )

Definition at line 654 of file transform_ops.cc.

References BLT_I18NCONTEXT_ID_CURVE_LEGACY, FLT_MAX, ot, P_ALIGN_SNAP, P_CENTER, P_CONSTRAINT, P_CORRECT_UV, P_CURSOR_EDIT, P_GEO_SNAP, P_GPENCIL_EDIT, P_MIRROR, P_MIRROR_DUMMY, P_NO_DEFAULTS, P_NO_TEXSPACE, P_OPTIONS, P_ORIENT_AXIS, P_ORIENT_AXIS_ORTHO, P_ORIENT_MATRIX, P_POST_TRANSFORM, P_PROPORTIONAL, P_SNAP, P_TRANSLATE_ORIGIN, P_VIEW2D_EDGE_PAN, PROP_ENUM, PROP_FLOAT, PROP_HIDDEN, PROP_NONE, PROP_SKIP_SAVE, PROP_XYZ, RNA_def_boolean(), RNA_def_boolean_vector(), RNA_def_enum(), RNA_def_enum_flag(), RNA_def_enum_funcs(), RNA_def_float(), RNA_def_float_matrix(), RNA_def_float_vector(), RNA_def_property(), RNA_def_property_array(), RNA_def_property_enum_default(), RNA_def_property_enum_items(), RNA_def_property_flag(), RNA_def_property_translation_context(), RNA_def_property_ui_text(), rna_enum_axis_xyz_items, rna_enum_proportional_falloff_items, rna_enum_snap_element_items, rna_enum_snap_source_items, rna_TransformOrientation_itemf(), SCE_SNAP_TO_INCREMENT, T_PROP_SIZE_MAX, and T_PROP_SIZE_MIN.

Referenced by MESH_OT_extrude_context(), MESH_OT_extrude_edges_indiv(), MESH_OT_extrude_faces_indiv(), MESH_OT_extrude_region(), MESH_OT_extrude_verts_indiv(), MESH_OT_polybuild_delete_at_cursor(), MESH_OT_polybuild_face_at_cursor(), MESH_OT_polybuild_split_at_cursor(), MESH_OT_polybuild_transform_at_cursor(), MESH_OT_rip(), MESH_OT_rip_edge(), TRANSFORM_OT_bbone_resize(), TRANSFORM_OT_bend(), TRANSFORM_OT_edge_bevelweight(), TRANSFORM_OT_edge_crease(), TRANSFORM_OT_edge_slide(), TRANSFORM_OT_mirror(), TRANSFORM_OT_push_pull(), TRANSFORM_OT_resize(), TRANSFORM_OT_rotate(), TRANSFORM_OT_rotate_normal(), TRANSFORM_OT_seq_slide(), TRANSFORM_OT_shear(), TRANSFORM_OT_shrink_fatten(), TRANSFORM_OT_skin_resize(), TRANSFORM_OT_tilt(), TRANSFORM_OT_tosphere(), TRANSFORM_OT_trackball(), TRANSFORM_OT_transform(), TRANSFORM_OT_translate(), TRANSFORM_OT_vert_crease(), TRANSFORM_OT_vert_slide(), and UV_OT_rip().

◆ protectedAxisAngleBits()

void blender::ed::transform::protectedAxisAngleBits ( short protectflag,
float axis[3],
float * angle,
const float oldAxis[3],
float oldAngle )
static

This function only does the delta rotation. Axis-angle is usually internally stored as quaternions.

Definition at line 181 of file transform_mode.cc.

References angle(), axis_angle_to_eulO(), EULER_ORDER_DEFAULT, eulO_to_axis_angle(), IS_EQF, OB_LOCK_ROT4D, OB_LOCK_ROTW, OB_LOCK_ROTX, OB_LOCK_ROTY, and OB_LOCK_ROTZ.

Referenced by ElementRotation_ex().

◆ protectedQuaternionBits()

void blender::ed::transform::protectedQuaternionBits ( short protectflag,
float quat[4],
const float oldquat[4] )
static

◆ protectedRotateBits()

void blender::ed::transform::protectedRotateBits ( short protectflag,
float eul[3],
const float oldeul[3] )
static

Definition at line 164 of file transform_mode.cc.

References OB_LOCK_ROTX, OB_LOCK_ROTY, and OB_LOCK_ROTZ.

Referenced by ElementRotation_ex().

◆ protectedScaleBits()

void blender::ed::transform::protectedScaleBits ( short protectflag,
float scale[3] )

Definition at line 232 of file transform_mode.cc.

References OB_LOCK_SCALEX, OB_LOCK_SCALEY, and OB_LOCK_SCALEZ.

Referenced by ElementMirror(), and ElementResize().

◆ protectedTransBits()

void blender::ed::transform::protectedTransBits ( short protectflag,
float vec[3] )

◆ protectflag_to_drawflags()

void blender::ed::transform::protectflag_to_drawflags ( short protectflag,
short * drawflags )
static

◆ query_selected_strips_no_handles()

◆ query_snap_sources_preview()

◆ query_snap_sources_timeline()

◆ query_snap_targets_preview()

◆ query_snap_targets_timeline()

◆ query_strip_effects_fn()

◆ query_time_dependent_strips_strips()

◆ raycast_all_cb()

void blender::ed::transform::raycast_all_cb ( void * userdata,
int index,
const BVHTreeRay * ray,
BVHTreeRayHit * hit )

◆ raycast_obj_fn()

◆ raycast_tri_backface_culling_test()

bool blender::ed::transform::raycast_tri_backface_culling_test ( const float dir[3],
const float v0[3],
const float v1[3],
const float v2[3],
float no[3] )

◆ raycastMesh()

bool blender::ed::transform::raycastMesh ( SnapObjectContext * sctx,
const Object * ob_eval,
const Mesh * mesh_eval,
const float4x4 & obmat,
const uint ob_index,
bool use_hide )
static

◆ raycastObjects()

bool blender::ed::transform::raycastObjects ( SnapObjectContext * sctx)
static

Main RayCast Function

Walks through all objects in the scene to find the hit on object surface.

Parameters
sctxSnap context to store data.

Read/Write Args

Parameters
ray_depthmaximum depth allowed for r_co, elements deeper than this value will be ignored.

Definition at line 666 of file transform_snap_object.cc.

References iter_snap_objects(), raycast_obj_fn(), and SCE_SNAP_TO_NONE.

Referenced by snap_object_project_ray_all(), snap_object_project_ray_ex(), and snap_object_project_view3d_ex().

◆ recalc_data()

◆ recalcData_actedit()

void blender::ed::transform::recalcData_actedit ( TransInfo * t)
static

Definition at line 988 of file transform_convert_action.cc.

References ANIM_animdata_context_getdata(), ANIM_animdata_filter(), ANIM_animdata_freelist(), ANIM_id_update(), ANIM_list_elem_update(), ANIMCONT_MASK, ANIMFILTER_ANIMDATA, ANIMFILTER_DATA_VISIBLE, ANIMTYPE_GREASE_PENCIL_LAYER, bAnimContext::area, blender::ed::transform::TransInfo::area, BKE_view_layer_active_object_get(), BKE_view_layer_synced_ensure(), bAnimContext::bmain, blender::ed::transform::TransInfo::context, CTX_data_main(), bAnimContext::data, blender::ed::transform::TransDataContainer::data, blender::ed::transform::TransDataContainer::data_2d, bAnimContext::datatype, blender::ed::transform::TransDataBasic::extra, filter, ListBase::first, blender::ed::transform::TransDataBasic::flag, blender::ed::transform::TransSnap::flag, SpaceAction::flag, grease_pencil_layer_reset_trans_data(), grease_pencil_layer_update_trans_data(), i, blender::ed::transform::TransDataBasic::iloc, invert_snap(), is_td2d_int(), blender::ed::transform::TransDataBasic::ival, LISTBASE_FOREACH, blender::ed::transform::TransData2D::loc, blender::ed::transform::TransDataBasic::loc, blender::ed::transform::TransData2D::loc2d_i, MOD_SNAP_INVERT, blender::ed::transform::TransSnap::mode, blender::ed::transform::TransInfo::modifiers, bAnimContext::obact, bAnimContext::region, blender::ed::transform::TransInfo::region, ARegion::regiontype, bAnimContext::regiontype, round_fl_to_int(), SACTION_NOREALTIMEUPDATES, SCE_SNAP, bAnimContext::scene, blender::ed::transform::TransInfo::scene, bAnimContext::sl, ScrArea::spacedata, bAnimContext::spacetype, ScrArea::spacetype, blender::ed::transform::TransInfo::state, TD_GREASE_PENCIL_FRAME, TD_NOTIMESNAP, TRANS_CANCEL, TRANS_DATA_CONTAINER_FIRST_SINGLE, transform_convert_flush_handle2D(), transform_snap_anim_flush_data(), blender::ed::transform::TransInfo::tsnap, bAnimContext::view_layer, and blender::ed::transform::TransInfo::view_layer.

◆ recalcData_cursor_2D_impl()

◆ recalcData_cursor_image()

void blender::ed::transform::recalcData_cursor_image ( TransInfo * t)
static

Definition at line 93 of file transform_convert_cursor.cc.

References recalcData_cursor_2D_impl().

◆ recalcData_cursor_sequencer()

void blender::ed::transform::recalcData_cursor_sequencer ( TransInfo * t)
static

Definition at line 113 of file transform_convert_cursor.cc.

References recalcData_cursor_2D_impl().

◆ recalcData_cursor_view3d()

void blender::ed::transform::recalcData_cursor_view3d ( TransInfo * t)
static

◆ recalcData_curve()

◆ recalcData_edit_armature()

◆ recalcData_graphedit()

◆ recalcData_lattice()

◆ recalcData_mask_common()

void blender::ed::transform::recalcData_mask_common ( TransInfo * t)
static

◆ recalcData_mball()

◆ recalcData_mesh()

◆ recalcData_mesh_cdata()

void blender::ed::transform::recalcData_mesh_cdata ( TransInfo * t)
static

◆ recalcData_mesh_edge()

void blender::ed::transform::recalcData_mesh_edge ( TransInfo * t)
static

◆ recalcData_mesh_skin()

◆ recalcData_nla()

void blender::ed::transform::recalcData_nla ( TransInfo * t)
static

Definition at line 640 of file transform_convert_nla.cc.

References ANIM_id_update(), blender::ed::transform::TransInfo::area, BKE_animdata_from_id(), BKE_nlameta_flush_transforms(), BKE_nlastrips_add_strip_unsafe(), BKE_nlatrack_insert_after(), BKE_nlatrack_insert_before(), BKE_nlatrack_is_nonlocal_in_liboverride(), BKE_nlatrack_new(), BKE_nlatrack_remove_strip(), BKE_nlatrack_set_active(), BLI_addtail(), BLI_findindex(), BLI_remlink(), CLAMP, blender::ed::transform::TransInfo::context, CTX_data_main(), blender::ed::transform::TransDataContainer::custom, blender::ed::transform::TransCustomData::data, blender::ed::transform::TransDataContainer::data_len, ELEM, NlaStrip::end, ListBase::first, NlaStrip::flag, NlaTrack::flag, SpaceNla::flag, blender::ed::transform::TransDataNla::h1, blender::ed::transform::TransDataNla::h2, blender::ed::transform::TransDataNla::handle, i, blender::ed::transform::TransDataNla::id, ID_IS_OVERRIDE_LIBRARY, ListBase::last, blender::ed::transform::TransInfo::mode, NlaStrip::next, NlaTrack::next, AnimData::nla_tracks, nlastrip_fix_overlapping(), NLASTRIP_FLAG_INVALID_LOCATION, nlastrip_flag_overlaps(), nlastrip_overlap_reorder(), NLASTRIP_TYPE_TRANSITION, NLATRACK_PROTECTED, NLATRACK_STEP, NLATRACK_TEMPORARILY_ADDED, blender::ed::transform::TransDataNla::nlt, blender::ed::transform::TransDataNla::oldTrack, NlaStrip::prev, NlaTrack::prev, NlaStrip::scale, blender::ed::transform::TransDataNla::signed_track_index, SNLA_NOREALTIMEUPDATES, ScrArea::spacedata, NlaStrip::start, blender::ed::transform::TransInfo::state, blender::ed::transform::TransDataNla::strip, NlaTrack::strips, TFM_TRANSLATION, blender::ed::transform::TransDataNla::trackIndex, TRANS_CANCEL, TRANS_DATA_CONTAINER_FIRST_SINGLE, blender::ed::transform::TransCustomDataContainer::type, and NlaStrip::type.

◆ recalcData_objects()

◆ recalcData_particles()

void blender::ed::transform::recalcData_particles ( TransInfo * t)
static

◆ recalcData_pose()

◆ recalcData_sculpt()

◆ recalcData_sequencer()

◆ recalcData_sequencer_image()

void blender::ed::transform::recalcData_sequencer_image ( TransInfo * t)
static

◆ recalcData_sequencer_retiming()

◆ recalcData_texspace()

◆ recalcData_tracking()

◆ recalcData_tracking_curves()

◆ recalcData_uv()

◆ remake_graph_transdata()

◆ removeAspectRatio()

◆ removeSnapPoint()

◆ reset_tw_center()

◆ resetSnapping()

◆ resetTransModal()

void blender::ed::transform::resetTransModal ( TransInfo * t)

Free data before switching to another mode.

Definition at line 58 of file transform_generics.cc.

References freeTransCustomDataForMode().

Referenced by transformEvent().

◆ resetTransRestrictions()

void blender::ed::transform::resetTransRestrictions ( TransInfo * t)

Definition at line 63 of file transform_generics.cc.

References blender::ed::transform::TransInfo::flag, and T_ALL_RESTRICTIONS.

Referenced by transformEvent().

◆ resize_transform_matrix_fn()

void blender::ed::transform::resize_transform_matrix_fn ( TransInfo * t,
float mat_xform[4][4] )
static

◆ ResizeBetween()

◆ restoreBones()

◆ restoreElement()

◆ restoreMirrorPoseBones()

◆ restoreTransObjects()

◆ rmat_cache_init()

void blender::ed::transform::rmat_cache_init ( RotateMatrixCache * rmc,
const float angle,
const float axis[3] )
static

◆ rmat_cache_reset()

void blender::ed::transform::rmat_cache_reset ( RotateMatrixCache * rmc)
static

◆ rmat_cache_update()

void blender::ed::transform::rmat_cache_update ( RotateMatrixCache * rmc,
const float axis[3],
const float angle )
static

◆ rotate_around_center_v2()

void blender::ed::transform::rotate_around_center_v2 ( float point[2],
const float center[2],
const float angle )
static

Definition at line 571 of file transform_gizmo_2d.cc.

References add_v2_v2(), angle(), rotate_v2_v2fl(), and sub_v2_v2v2().

Referenced by gizmo2d_xform_invoke_prepare().

◆ rotation_get_fn()

void blender::ed::transform::rotation_get_fn ( const wmGizmo * ,
wmGizmoProperty * gz_prop,
void * value )
static

◆ rotation_set_fn()

void blender::ed::transform::rotation_set_fn ( const wmGizmo * ,
wmGizmoProperty * gz_prop,
const void * value )
static

◆ RotationBetween()

◆ saveTransform()

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

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

References BKE_view_layer_active_object_get(), BKE_view_layer_synced_ensure(), C, blender::ed::transform::TransInfo::con, CON_APPLY, CON_AXIS0, CON_AXIS1, CON_AXIS2, constraintModeToIndex(), CTX_data_tool_settings(), CTX_MASK, CTX_NO_PET, ELEM, blender::ed::transform::TransInfo::flag, wmOperator::flag, MOD_SNAP, MOD_SNAP_FORCED, blender::ed::transform::TransCon::mode, blender::ed::transform::TransInfo::mode, blender::ed::transform::TransSnap::mode, Object::mode, blender::ed::transform::TransInfo::modifiers, OB_MODE_OBJECT, OP_IS_REPEAT, blender::ed::transform::TransInfo::options, blender::ed::transform::TransInfo::orient, blender::ed::transform::TransInfo::orient_axis, blender::ed::transform::TransInfo::orient_axis_ortho, blender::ed::transform::TransInfo::orient_curr, PROP_EDIT_CONNECTED, PROP_EDIT_PROJECTED, PROP_EDIT_USE, blender::ed::transform::TransInfo::prop_mode, ToolSettings::prop_mode, blender::ed::transform::TransInfo::prop_size, ToolSettings::proportional_action, ToolSettings::proportional_edit, ToolSettings::proportional_fcurve, ToolSettings::proportional_mask, ToolSettings::proportional_objects, ToolSettings::proportional_size, wmOperator::ptr, RNA_boolean_set(), RNA_enum_set(), RNA_float_set(), RNA_float_set_array(), 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_INDIVIDUAL_PROJECT, SCE_SNAP_TARGET_NOT_ACTIVE, SCE_SNAP_TARGET_NOT_EDITED, SCE_SNAP_TARGET_NOT_NONEDITED, SCE_SNAP_TARGET_ONLY_SELECTABLE, blender::ed::transform::TransInfo::scene, blender::ed::transform::TransInfo::settings, blender::ed::transform::TransSnap::source_operation, SPACE_ACTION, SPACE_GRAPH, blender::ed::transform::TransInfo::spacemtx, blender::ed::transform::TransInfo::spacetype, blender::ed::transform::TransInfo::state, T_ALT_TRANSFORM, T_MODAL, T_NO_MIRROR, T_PROP_CONNECTED, T_PROP_EDIT, T_PROP_EDIT_ALL, T_PROP_PROJECTED, blender::ed::transform::TransSnap::target_operation, TFM_SHRINKFATTEN, tool_settings_update_snap_toggle(), TRANS_CANCEL, transformModeUseSnap(), blender::ed::transform::TransInfo::tsnap, blender::ed::transform::TransInfo::type, ToolSettings::uvcalc_flag, UVCALC_TRANSFORM_CORRECT_SLIDE, V3D_ORIENT_CUSTOM_MATRIX, blender::ed::transform::TransInfo::values_final, and blender::ed::transform::TransInfo::view_layer.

Referenced by transformops_exit().

◆ select_orientation_exec()

◆ select_orientation_invoke()

wmOperatorStatus blender::ed::transform::select_orientation_invoke ( bContext * C,
wmOperator * ,
const wmEvent *  )
static

◆ selectConstraint()

void blender::ed::transform::selectConstraint ( TransInfo * t)

◆ seq_get_strip_pivot_median()

◆ seq_snap_threshold_get_frame_distance()

int blender::ed::transform::seq_snap_threshold_get_frame_distance ( const TransInfo * t)
static

◆ seq_snap_threshold_get_view_distance()

◆ seq_transform_cancel()

◆ seq_transform_check_overlap()

bool blender::ed::transform::seq_transform_check_overlap ( Span< Strip * > transformed_strips)

Definition at line 309 of file transform_convert_sequencer.cc.

References STRIP_OVERLAP.

Referenced by freeSeqData().

◆ seq_transform_collection_from_transdata()

◆ seqbase_active_get()

◆ SeqToTransData() [1/3]

◆ SeqToTransData() [2/3]

◆ SeqToTransData() [3/3]

◆ SeqToTransData_build()

int blender::ed::transform::SeqToTransData_build ( TransInfo * t,
ListBase * seqbase,
TransData * td,
TransData2D * td2d,
TransDataSeq * tdsq )
static

◆ SeqTransCount()

int blender::ed::transform::SeqTransCount ( TransInfo * t,
ListBase * seqbase )
static

Definition at line 161 of file transform_convert_sequencer.cc.

References count, flag, LISTBASE_FOREACH, and SeqTransInfo().

Referenced by createTransSeqData().

◆ SeqTransInfo()

◆ sequencer_snap_point()

◆ set_prop_dist()

◆ set_trans_object_base_flags()

◆ setAxisMatrixConstraint()

◆ setConstraint()

◆ setCustomPoints()

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

◆ setCustomPointsFromDirection()

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

◆ setInputPostFct()

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

Definition at line 490 of file transform_input.cc.

References blender::ed::transform::MouseInput::post.

◆ setLocalConstraint()

void blender::ed::transform::setLocalConstraint ( TransInfo * t,
int mode,
const char text[] )

◆ setNearestAxis()

◆ setNearestAxis2d()

◆ setNearestAxis3d()

◆ setSnappingCallback()

◆ setTransformViewAspect()

◆ setTransformViewMatrices()

◆ setUserConstraint()

void blender::ed::transform::setUserConstraint ( TransInfo * t,
int mode,
const char text_[] )

◆ shrinkfatten_handleEvent()

◆ snap_calc_preview_image()

◆ snap_calc_preview_origin()

◆ snap_calc_timeline()

◆ snap_data_build_preview()

◆ snap_data_build_timeline()

◆ snap_edge_points()

◆ snap_edge_points_mesh()

eSnapMode blender::ed::transform::snap_edge_points_mesh ( SnapObjectContext * sctx,
const Object * ob_eval,
const ID * id,
const float4x4 & obmat,
float dist_px_sq_orig,
int edge_index )

◆ snap_flag_from_spacetype()

eSnapFlag blender::ed::transform::snap_flag_from_spacetype ( TransInfo * t)
static

◆ snap_grid()

◆ snap_grid_uv()

◆ snap_grid_uv_apply()

◆ snap_increment_apply()

◆ snap_mode_from_spacetype()

◆ snap_multipoints_free()

◆ snap_obj_fn()

◆ snap_object_center()

◆ snap_object_context_create()

◆ snap_object_context_destroy()

◆ snap_object_context_init()

◆ snap_object_context_runtime_init()

bool blender::ed::transform::snap_object_context_runtime_init ( SnapObjectContext * sctx,
Depsgraph * depsgraph,
const ARegion * region,
const View3D * v3d,
eSnapMode snap_to_flag,
eSnapOcclusionTest occlusion_test,
const SnapObjectParams * params,
const float ray_start[3],
const float ray_dir[3],
const float ray_depth,
const float mval[2],
const float init_co[3],
const float prev_co[3],
const float dist_px_sq,
ListBase * hit_list )
static

Definition at line 1083 of file transform_snap_object.cc.

References blender::math::abs(), RegionView3D::clip, blender::ed::transform::SnapObjectContext::clip_planes, compare_m4m4(), copy_v2_v2(), copy_v3_v3(), blender::ed::transform::SnapObjectContext::curr_co, blender::ed::transform::SnapObjectContext::Output::data, blender::ed::transform::SnapObjectContext::depsgraph, depsgraph, blender::ed::transform::SnapObjectContext::Output::dist_px_sq, ED_view3d_grid_view_scale(), blender::ed::transform::SnapObjectContext::grid, blender::ed::transform::SnapObjectContext::has_occlusion_plane, blender::ed::transform::SnapObjectContext::has_occlusion_plane_in_front, blender::ed::transform::SnapObjectContext::hit_list, blender::ed::transform::SnapObjectContext::Output::index, blender::ed::transform::SnapObjectContext::init_co, blender::ed::transform::SnapObjectContext::mval, blender::ed::transform::SnapObjectContext::Output::ob, blender::ed::transform::SnapObjectContext::object_index, blender::ed::transform::SnapObjectParams::occlusion_test, blender::ed::transform::SnapObjectContext::occlusion_test_edit, blender::ed::transform::SnapObjectContext::params, params, blender::ed::transform::SnapObjectContext::persmat, RegionView3D::persmat, plane_from_point_normal_v3(), blender::ed::transform::SnapObjectContext::planes, planes_from_projmat(), blender::MatBase< T, NumCol, NumRow, Alignment >::ptr(), blender::ed::transform::SnapObjectContext::Output::ray_depth_max, blender::ed::transform::SnapObjectContext::Output::ray_depth_max_in_front, blender::ed::transform::SnapObjectContext::ray_dir, blender::ed::transform::SnapObjectContext::ray_start, ARegion::regiondata, blender::ed::transform::SnapObjectContext::ret, RegionView3D::rflag, blender::ed::transform::SnapObjectContext::runtime, blender::ed::transform::SnapObjectContext::rv3d, RV3D_CLIPPING, SCE_SNAP_INDIVIDUAL_NEAREST, SCE_SNAP_TO_EDGE_PERPENDICULAR, SCE_SNAP_TO_FACE, SCE_SNAP_TO_GRID, SCE_SNAP_TO_NONE, blender::ed::transform::SnapObjectContext::scene, blender::ed::transform::SnapObjectContext::size, SNAP_OCCLUSION_ALWAYS, blender::ed::transform::SnapObjectContext::snap_to_flag, blender::ed::transform::SnapObjectContext::use_init_co, blender::ed::transform::SnapObjectContext::v3d, RegionView3D::viewinv, blender::ed::transform::SnapObjectContext::win_size, ARegion::winx, and ARegion::winy.

Referenced by snap_object_project_ray_all(), snap_object_project_ray_ex(), and snap_object_project_view3d_ex().

◆ snap_object_context_set_editmesh_callbacks()

void blender::ed::transform::snap_object_context_set_editmesh_callbacks ( SnapObjectContext * sctx,
bool(* test_vert_fn )(BMVert *, void *user_data),
bool(* test_edge_fn )(BMEdge *, void *user_data),
bool(* test_face_fn )(BMFace *, void *user_data),
void * user_data )

◆ snap_object_data_editmesh_get()

◆ snap_object_data_mesh_get()

void blender::ed::transform::snap_object_data_mesh_get ( const Mesh * mesh_eval,
bool skip_hidden,
bke::BVHTreeFromMesh * r_treedata )
static

Definition at line 32 of file transform_snap_object_mesh.cc.

Referenced by nearest_world_mesh(), raycastMesh(), and snapMesh().

◆ snap_object_editmesh()

eSnapMode blender::ed::transform::snap_object_editmesh ( SnapObjectContext * sctx,
const Object * ob_eval,
const ID * id,
const float4x4 & obmat,
eSnapMode snap_to_flag,
bool use_hide )

◆ snap_object_is_snappable()

◆ snap_object_mesh()

◆ snap_object_project_ray()

bool blender::ed::transform::snap_object_project_ray ( SnapObjectContext * sctx,
Depsgraph * depsgraph,
const View3D * v3d,
const SnapObjectParams * params,
const float ray_start[3],
const float ray_normal[3],
float * ray_depth,
float r_co[3],
float r_no[3] )

Convenience function for snap ray-casting.

Given a ray, cast it into the scene (snapping to faces).

Returns
Snap success

Definition at line 1301 of file transform_snap_object.cc.

References depsgraph, params, and snap_object_project_ray_ex().

Referenced by blender::ed::greasepencil::grease_pencil_reproject_exec(), view3d_ruler_item_mousemove(), walk_floor_distance_get(), and walk_ray_cast().

◆ snap_object_project_ray_all()

bool blender::ed::transform::snap_object_project_ray_all ( SnapObjectContext * sctx,
Depsgraph * depsgraph,
const View3D * v3d,
const SnapObjectParams * params,
const float ray_start[3],
const float ray_normal[3],
float ray_depth,
bool sort,
ListBase * r_hit_list )

Fill in a list of all hits.

Parameters
ray_depthOnly depths in this range are considered, -1.0 for maximum.
sortOptionally sort the hits by depth.
r_hit_listList of SnapObjectHitDepth (caller must free).

Definition at line 1256 of file transform_snap_object.cc.

References BLI_assert, BLI_listbase_sort(), BVH_RAYCAST_DIST_MAX, depsgraph, hit_depth_cmp(), params, blender::ed::transform::SnapObjectContext::Output::ray_depth_max, raycastObjects(), blender::ed::transform::SnapObjectContext::ret, SCE_SNAP_TO_FACE, snap_object_context_runtime_init(), and sort().

Referenced by object_project_all_view3d_ex().

◆ snap_object_project_ray_ex()

◆ snap_object_project_view3d()

eSnapMode blender::ed::transform::snap_object_project_view3d ( SnapObjectContext * sctx,
Depsgraph * depsgraph,
const ARegion * region,
const View3D * v3d,
const eSnapMode snap_to,
const SnapObjectParams * params,
const float init_co[3],
const float mval[2],
const float prev_co[3],
float * dist_px,
float r_loc[3],
float r_no[3] )

Convenience function for performing snapping.

Given a 2D region value, snap to vert/edge/face.

Parameters
sctxSnap context.
snap_toTarget elements to snap source to.
paramsAddition snapping options.
init_coInitial world-space coordinate of source (optional).
mvalCurrent transformed screen-space coordinate or mouse position (optional).
prev_coCurrent transformed world-space coordinate of source (optional).
dist_pxMaximum distance to snap (in pixels).
r_locSnapped world-space coordinate.
r_noSnapped world-space normal (optional).
Returns
Snapped-to element, eSnapMode.

Definition at line 1542 of file transform_snap_object.cc.

References depsgraph, params, and snap_object_project_view3d_ex().

Referenced by add_vertex_invoke(), applyFaceNearest(), applyFaceProject(), EDBM_project_snap_verts(), gizmo_move_modal(), snapObjectsTransform(), v3d_cursor_snap_update(), and view3d_ruler_item_mousemove().

◆ snap_object_project_view3d_ex()

eSnapMode blender::ed::transform::snap_object_project_view3d_ex ( SnapObjectContext * sctx,
Depsgraph * depsgraph,
const ARegion * region,
const View3D * v3d,
const eSnapMode snap_to,
const SnapObjectParams * params,
const float init_co[3],
const float mval[2],
const float prev_co[3],
float * dist_px,
float r_loc[3],
float r_no[3],
int * r_index,
const Object ** r_ob,
float r_obmat[4][4],
float r_face_nor[3] )

Perform snapping.

Given a 2D region value, snap to vert/edge/face/grid.

Parameters
sctxSnap context.
snap_toTarget elements to snap source to.
paramsAddition snapping options.
init_coInitial world-space coordinate of source (optional).
mvalCurrent transformed screen-space coordinate or mouse position (optional).
prev_coCurrent transformed world-space coordinate of source (optional).
dist_pxMaximum distance to snap (in pixels).
r_locSnapped world-space coordinate.
r_noSnapped world-space normal (optional).
r_indexIndex of snapped-to target element (optional).
r_obSnapped-to target object (optional).
r_obmatMatrix of snapped-to target object (optional).
r_face_norWorld-space normal of snapped-to target face (optional).
Returns
Snapped-to element, eSnapMode.

Definition at line 1325 of file transform_snap_object.cc.

References BLI_assert, BLI_ASSERT_UNIT_V3, BVH_RAYCAST_DIST_MAX, RegionView3D::clip, clip_segment_v3_plane_n(), copy_m4_m4(), copy_v3_v3(), depsgraph, blender::ed::transform::SnapObjectContext::Output::dist_px_sq, blender::math::dot(), ED_view3d_win_to_ray_clipped_ex(), FLT_MAX, blender::ed::transform::SnapObjectContext::has_occlusion_plane, blender::ed::transform::SnapObjectContext::Output::index, blender::ed::transform::SnapObjectContext::Output::loc, nearestWorldObjects(), blender::ed::transform::SnapObjectContext::Output::no, blender::ed::transform::SnapObjectContext::Output::ob, blender::ed::transform::SnapObjectContext::Output::obmat, blender::ed::transform::SnapObjectContext::occlusion_plane, occlusion_plane_create(), params, blender::MatBase< T, NumCol, NumRow, Alignment >::ptr(), blender::ed::transform::SnapObjectContext::ray_dir, blender::ed::transform::SnapObjectContext::ray_start, raycastObjects(), ARegion::regiondata, blender::ed::transform::SnapObjectContext::ret, RegionView3D::rflag, blender::ed::transform::SnapObjectContext::runtime, RV3D_CLIPPING, SCE_SNAP_INDIVIDUAL_NEAREST, SCE_SNAP_TO_EDGE, SCE_SNAP_TO_EDGE_ENDPOINT, SCE_SNAP_TO_EDGE_MIDPOINT, SCE_SNAP_TO_EDGE_PERPENDICULAR, SCE_SNAP_TO_FACE, SCE_SNAP_TO_GEOM, SCE_SNAP_TO_GRID, SCE_SNAP_TO_NONE, SCE_SNAP_TO_POINT, snap_edge_points(), snap_grid(), snap_object_context_runtime_init(), SNAP_OCCLUSION_ALWAYS, SNAP_OCCLUSION_AS_SEEM, SNAP_OCCLUSION_NEVER, snap_polygon(), SNAP_TO_EDGE_ELEMENTS, blender::ed::transform::SnapObjectContext::snap_to_flag, snapObjectsRay(), blender::math::sqrt(), square_f(), and XRAY_ENABLED.

Referenced by ED_view3d_cursor3d_position_rotation(), snap_object_project_view3d(), and v3d_cursor_snap_update().

◆ snap_polygon()

◆ snap_polygon_mesh()

◆ snap_sequencer_apply_seqslide()

◆ snap_sequencer_calc()

◆ snap_sequencer_data_alloc()

◆ snap_sequencer_data_free()

void blender::ed::transform::snap_sequencer_data_free ( TransSeqSnapData * data)

Definition at line 510 of file transform_snap_sequencer.cc.

References data.

Referenced by freeSnapping(), and snap_sequencer_to_closest_strip_ex().

◆ snap_sequencer_image_apply_translate()

◆ snap_sequencer_to_closest_strip_calc()

bool blender::ed::transform::snap_sequencer_to_closest_strip_calc ( Scene * scene,
ARegion * region,
int frame_1,
int frame_2,
int * r_snap_distance,
float * r_snap_frame )

◆ snap_sequencer_to_closest_strip_ex()

◆ snap_source_active_fn()

◆ snap_source_center_fn()

◆ snap_source_closest_fn()

◆ snap_source_median_fn()

◆ snap_target_nla_fn()

◆ snap_target_select_from_spacetype_and_tool_settings()

◆ snap_target_sequencer_fn()

◆ snap_target_uv_fn()

◆ snap_target_view3d_fn()

◆ snap_use_backface_culling()

◆ snapArmature()

◆ snapCamera()

◆ snapCurve()

◆ snapFrameTransform()

◆ snapMesh()

◆ snapObjectsRay()

eSnapMode blender::ed::transform::snapObjectsRay ( SnapObjectContext * sctx)
static

Main Snapping Function

Walks through all objects in the scene to find the closest snap element ray.

Parameters
sctxSnap context to store data.

Read/Write Args

Parameters
dist_pxMaximum threshold distance (in pixels).

Definition at line 981 of file transform_snap_object.cc.

References iter_snap_objects(), and snap_obj_fn().

Referenced by snap_object_project_view3d_ex().

◆ snapObjectsTransform()

eSnapMode blender::ed::transform::snapObjectsTransform ( TransInfo * t,
const float mval[2],
float * dist_px,
float r_loc[3],
float r_no[3] )
static

Definition at line 1589 of file transform_snap.cc.

References add_v3_v3(), blender::ed::transform::TransInfo::center2d, blender::ed::transform::TransInfo::center_global, blender::ed::transform::TransInfo::con, CON_APPLY, convertViewVec(), blender::ed::transform::TransInfo::depsgraph, blender::ed::transform::SnapObjectParams::edit_mode_type, blender::ed::transform::TransInfo::flag, blender::ed::transform::TransSnap::flag, blender::ed::transform::SnapObjectParams::grid_size, MOD_PRECISION, blender::ed::transform::TransCon::mode, blender::ed::transform::TransInfo::mode, blender::ed::transform::TransSnap::mode, blender::ed::transform::TransInfo::modifiers, blender::ed::transform::TransSnap::object_context, blender::ed::transform::SnapObjectParams::occlusion_test, blender::ed::transform::TransInfo::region, SCE_SNAP_BACKFACE_CULLING, SCE_SNAP_TO_GRID, SNAP_GEOM_EDIT, SNAP_GEOM_FINAL, snap_object_project_view3d(), SNAP_OCCLUSION_AS_SEEM, blender::ed::transform::TransSnap::snap_source, SNAP_SOURCE_FOUND, blender::ed::transform::TransInfo::snap_spatial, blender::ed::transform::TransInfo::snap_spatial_precision, SNAP_TARGET_FOUND, blender::ed::transform::SnapObjectParams::snap_target_select, blender::ed::transform::TransSnap::status, T_EDIT, blender::ed::transform::TransSnap::target_operation, TFM_ROTATION, transform_constraint_get_nearest(), blender::ed::transform::TransInfo::tsnap, blender::ed::transform::SnapObjectParams::use_backface_culling, and blender::ed::transform::TransInfo::view.

Referenced by snap_target_view3d_fn().

◆ snapsource_confirm()

◆ snapsource_end()

◆ snapsource_handle_event_fn()

◆ snapsource_transform_fn()

◆ sort_time_beztmaps()

◆ sort_trans_data_dist()

void blender::ed::transform::sort_trans_data_dist ( TransInfo * t)

◆ sort_trans_data_dist_container()

void blender::ed::transform::sort_trans_data_dist_container ( const TransInfo * t,
TransDataContainer * tc )
static

Construct an index map to visit tc->data, tc->data_ext, and tc->data_2d in order of selection state (selected first). Unselected items are visited by either their dist or rdist property, depending on a flag in t.

Definition at line 105 of file transform_convert.cc.

References b, blender::ed::transform::TransDataContainer::data, blender::ed::transform::TransData::dist, blender::ed::transform::TransDataBasic::flag, blender::ed::transform::TransInfo::flag, make_sorted_index_map(), MEM_SAFE_FREE, blender::ed::transform::TransData::rdist, blender::ed::transform::TransDataContainer::sorted_index_map, T_PROP_CONNECTED, and TD_SELECTED.

Referenced by sort_trans_data_dist().

◆ sort_trans_data_selected_first()

void blender::ed::transform::sort_trans_data_selected_first ( TransInfo * t)
static

◆ sort_trans_data_selected_first_container()

void blender::ed::transform::sort_trans_data_selected_first_container ( TransDataContainer * tc)
static

Construct an index map to visit tc->data, tc->data_ext, and tc->data_2d in order of selection state (selected first).

Definition at line 149 of file transform_convert.cc.

References b, BLI_assert_msg, blender::ed::transform::TransDataContainer::data, blender::ed::transform::TransDataBasic::flag, make_sorted_index_map(), blender::ed::transform::TransDataContainer::sorted_index_map, and TD_SELECTED.

Referenced by sort_trans_data_selected_first().

◆ special_aftertrans_update()

◆ special_aftertrans_update__actedit()

void blender::ed::transform::special_aftertrans_update__actedit ( bContext * C,
TransInfo * t )
static

◆ special_aftertrans_update__graph()

◆ special_aftertrans_update__mask()

◆ special_aftertrans_update__mesh()

◆ special_aftertrans_update__movieclip()

◆ special_aftertrans_update__movieclip_for_curves()

◆ special_aftertrans_update__nla()

◆ special_aftertrans_update__node()

◆ special_aftertrans_update__object()

void blender::ed::transform::special_aftertrans_update__object ( bContext * C,
TransInfo * t )
static

Definition at line 920 of file transform_convert_object.cc.

References ANIM_deselect_keys_in_animation_editors(), autokeyframe_object(), BKE_ptcache_ids_from_object(), BKE_ptcache_object_reset(), BKE_rigidbody_aftertrans_update(), BKE_rigidbody_check_sim_running(), BKE_scene_ctime_get(), BLI_assert, BLI_freelistN(), C, clear_trans_object_base_flags(), CTX_OBJECT, blender::ed::transform::TransDataContainer::data, blender::ed::transform::TransDataContainer::data_ext, blender::ed::transform::TransDataContainer::data_len, DEG_id_tag_update(), blender::ed::transform::TransDataBasic::extra, blender::ed::transform::TransDataBasic::flag, i, Object::id, ID_RECALC_GEOMETRY, ID_RECALC_TRANSFORM, blender::animrig::is_autokey_on(), LISTBASE_FOREACH, MAX_DUPLI_RECUR, blender::ed::transform::TransInfo::mode, blender::ed::object::motion_paths_recalc_selected(), motionpath_need_update_object(), blender::ed::object::OBJECT_PATH_CALC_RANGE_CHANGED, blender::ed::object::OBJECT_PATH_CALC_RANGE_CURRENT_FRAME, blender::ed::transform::TransDataExtension::oloc, blender::ed::transform::TransInfo::options, blender::ed::transform::TransDataExtension::oquat, blender::ed::transform::TransDataExtension::orot, blender::ed::transform::TransDataExtension::orotAngle, blender::ed::transform::TransDataExtension::orotAxis, PTCACHE_OUTDATED, PTCACHE_RESET_OUTDATED, PTCACHE_TYPE_PARTICLES, Object::rigidbody_object, Scene::rigidbody_world, blender::ed::transform::TransInfo::scene, blender::ed::transform::TransInfo::state, TD_SKIP, TRANS_CANCEL, and TRANS_DATA_CONTAINER_FIRST_SINGLE.

◆ special_aftertrans_update__pose()

◆ special_aftertrans_update__sculpt()

◆ special_aftertrans_update__sequencer()

◆ special_aftertrans_update__sequencer_image()

◆ special_transform_moving()

◆ startConstraint()

◆ stopConstraint()

◆ store_transform_properties()

◆ storeCustomLNorValue()

◆ t_around_get()

◆ t_view_get()

◆ tag_trans_objects_dep_fn()

void blender::ed::transform::tag_trans_objects_dep_fn ( ID * id,
eDepsObjectComponentType component )
static

◆ tag_trans_objects_with_geometry_dep_only_fn()

void blender::ed::transform::tag_trans_objects_with_geometry_dep_only_fn ( ID * id,
eDepsObjectComponentType component )
static

◆ test_projected_edge_dist()

bool blender::ed::transform::test_projected_edge_dist ( const DistProjectedAABBPrecalc * precalc,
const float(*) clip_plane[4],
const int clip_plane_len,
const bool is_persp,
const float va[3],
const float vb[3],
BVHTreeNearest * nearest )
static

◆ test_projected_vert_dist()

bool blender::ed::transform::test_projected_vert_dist ( const DistProjectedAABBPrecalc * precalc,
const float(*) clip_plane[4],
const int clip_plane_len,
const bool is_persp,
const float * co,
BVHTreeNearest * nearest )
static

◆ test_rotmode_euler()

bool blender::ed::transform::test_rotmode_euler ( short rotmode)
static

Definition at line 242 of file transform_orientations.cc.

References ELEM, false, ROT_MODE_AXISANGLE, and ROT_MODE_QUAT.

Referenced by gimbal_axis_object(), and gimbal_axis_pose().

◆ tilt_poll()

bool blender::ed::transform::tilt_poll ( bContext * C)
static

◆ timescale_snap_apply_fn()

void blender::ed::transform::timescale_snap_apply_fn ( TransInfo * t,
float vec[3] )
static

◆ timescale_transform_matrix_fn()

void blender::ed::transform::timescale_transform_matrix_fn ( TransInfo * t,
float mat_xform[4][4] )
static

◆ TimeToTransData()

◆ to_sphere_radius_update()

◆ tool_settings_update_snap_toggle()

◆ trackToTransData()

◆ trackToTransDataIfNeeded()

void blender::ed::transform::trackToTransDataIfNeeded ( TransformInitContext * init_context,
const int framenr,
MovieTrackingTrack * track,
const float aspect[2] )
static

◆ tranform_snap_source_restore_context()

void blender::ed::transform::tranform_snap_source_restore_context ( TransInfo * t)

◆ tranform_snap_target_median_calc()

void blender::ed::transform::tranform_snap_target_median_calc ( const TransInfo * t,
float r_median[3] )

◆ trans_obchild_in_obmode_update_all()

◆ trans_obdata_in_obmode_update_all()

◆ trans_object_base_deps_flag_finish()

void blender::ed::transform::trans_object_base_deps_flag_finish ( const TransInfo * t,
const Scene * scene,
ViewLayer * view_layer )
static

◆ trans_object_base_deps_flag_prepare()

void blender::ed::transform::trans_object_base_deps_flag_prepare ( const TransInfo * t,
const Scene * scene,
ViewLayer * view_layer )
static

◆ transdata_center_global_get()

◆ transdata_check_local_center()

◆ transdata_check_local_islands()

bool blender::ed::transform::transdata_check_local_islands ( TransInfo * t,
short around )

◆ transdata_elem_bend()

◆ transdata_elem_push_pull()

◆ transdata_elem_rotate()

◆ transdata_elem_shear()

◆ transdata_elem_shrink_fatten()

◆ transdata_elem_skin_resize()

◆ transdata_elem_to_sphere()

◆ transdata_elem_trackball()

void blender::ed::transform::transdata_elem_trackball ( const TransInfo * t,
const TransDataContainer * tc,
TransData * td,
TransDataExtension * td_ext,
const float axis[3],
const float angle,
const float mat_final[3][3] )
static

◆ transdata_elem_translate()

◆ transdata_elem_value()

void blender::ed::transform::transdata_elem_value ( const TransInfo * ,
const TransDataContainer * ,
TransData * td,
const float value )
static

◆ transdata_get_time_shuffle_offset()

float blender::ed::transform::transdata_get_time_shuffle_offset ( ListBase * trans_datas)
static

Assumes strips to horizontally translate (shuffle) are tagged with NLASTRIP_FLAG_INVALID_LOCATION.

Returns
The minimal total signed offset that results in no overlaps between tagged strips and non-tagged strips.

Definition at line 144 of file transform_convert_nla.cc.

References BLI_assert, and transdata_get_time_shuffle_offset_side().

Referenced by nlastrip_shuffle_transformed().

◆ transdata_get_time_shuffle_offset_side()

float blender::ed::transform::transdata_get_time_shuffle_offset_side ( ListBase * trans_datas,
const bool shuffle_left )
static

Assumes strips to horizontally translate (shuffle) are tagged with NLASTRIP_FLAG_INVALID_LOCATION.

Returns
The total sided offset that results in no overlaps between tagged strips and non-tagged strips.

Definition at line 96 of file transform_convert_nla.cc.

References e, NlaStrip::end, IS_EQT, LISTBASE_FOREACH, NLASTRIP_FLAG_INVALID_LOCATION, nlastrip_is_overlap(), NLASTRIP_TYPE_TRANSITION, blender::ed::transform::TransDataNla::nlt, NlaStrip::start, blender::ed::transform::TransDataNla::strip, and NlaTrack::strips.

Referenced by transdata_get_time_shuffle_offset().

◆ transdata_get_track_shuffle_offset()

bool blender::ed::transform::transdata_get_track_shuffle_offset ( ListBase * trans_datas,
int * r_track_offset )
static

Assumes all of given trans_datas are part of the same ID.

Parameters
r_track_offsetThe minimal total signed offset that results in valid strip track-moves for all strips from trans_datas.
Returns
true if r_track_offset results in a valid offset, false if no solution exists in either direction.

Definition at line 221 of file transform_convert_nla.cc.

References abs, and transdata_get_track_shuffle_offset_side().

Referenced by nlastrip_shuffle_transformed().

◆ transdata_get_track_shuffle_offset_side()

bool blender::ed::transform::transdata_get_track_shuffle_offset_side ( ListBase * trans_datas,
const int shuffle_direction,
int * r_total_offset )
static

Assumes all of given trans_datas are part of the same ID.

Parameters
shuffle_directionthe direction the strip is traveling. 1 is towards the bottom of the stack, -1 is away from it.
r_total_offsetThe minimal total signed offset that results in valid strip track-moves for all strips from trans_datas.
Returns
true if r_total_offset results in a valid offset, false if no solution exists in the desired direction.

Definition at line 166 of file transform_convert_nla.cc.

References BKE_animdata_from_id(), BKE_nlatrack_is_nonlocal_in_liboverride(), BLI_findlink(), BLI_listbase_is_empty(), LinkData::data, ListBase::first, NlaTrack::flag, blender::ed::transform::TransDataNla::id, LISTBASE_FOREACH, AnimData::nla_tracks, NLATRACK_PROTECTED, blender::ed::transform::TransDataNla::trackIndex, and tracks.

Referenced by transdata_get_track_shuffle_offset().

◆ transdata_restore_basic()

◆ transDataTrackingFree()

void blender::ed::transform::transDataTrackingFree ( TransInfo * ,
TransDataContainer * ,
TransCustomData * custom_data )
static

◆ transform_apply_matrix()

bool blender::ed::transform::transform_apply_matrix ( TransInfo * t,
float mat[4][4] )

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

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

References blender::ed::transform::TransInfo::mode_info, and blender::ed::transform::TransModeInfo::transform_matrix_fn.

Referenced by gizmo_modal(), and nla_transform_apply().

◆ transform_around_single_fallback()

void blender::ed::transform::transform_around_single_fallback ( TransInfo * t)

◆ transform_around_single_fallback_ex()

void blender::ed::transform::transform_around_single_fallback_ex ( TransInfo * t,
int data_len_all )

◆ transform_autoik_update()

◆ transform_cancel()

◆ transform_constraint_get_nearest()

◆ transform_constraint_snap_axis_to_edge()

void blender::ed::transform::transform_constraint_snap_axis_to_edge ( const TransInfo * t,
const float axis[3],
float r_out[3] )

◆ transform_constraint_snap_axis_to_face()

void blender::ed::transform::transform_constraint_snap_axis_to_face ( const TransInfo * t,
const float axis[3],
float r_out[3] )

◆ transform_convert_clip_mirror_modifier_apply()

◆ transform_convert_flush_handle2D()

◆ transform_convert_frame_side_dir_get()

◆ transform_convert_mesh_connectivity_distance()

void blender::ed::transform::transform_convert_mesh_connectivity_distance ( BMesh * bm,
const float mtx[3][3],
float * dists,
int * index )

◆ transform_convert_mesh_crazyspace_detect()

◆ transform_convert_mesh_crazyspace_free()

void blender::ed::transform::transform_convert_mesh_crazyspace_free ( TransMeshDataCrazySpace * r_crazyspace_data)

◆ transform_convert_mesh_crazyspace_transdata_set()

void blender::ed::transform::transform_convert_mesh_crazyspace_transdata_set ( const float mtx[3][3],
const float smtx[3][3],
const float defmat[3][3],
const float quat[4],
TransData * r_td )

◆ transform_convert_mesh_customdatacorrect_init()

◆ transform_convert_mesh_islanddata_free()

◆ transform_convert_mesh_islands_calc()

◆ transform_convert_mesh_mirrordata_calc()

◆ transform_convert_mesh_mirrordata_free()

void blender::ed::transform::transform_convert_mesh_mirrordata_free ( TransMirrorData * mirror_data)

◆ transform_convert_pose_transflags_update()

◆ transform_convert_sequencer_clamp()

◆ transform_data_ext_rotate()

◆ transform_draw_cursor_draw()

void blender::ed::transform::transform_draw_cursor_draw ( bContext * C,
const blender::int2 & xy,
const blender::float2 & tilt,
void * customdata )

◆ transform_draw_cursor_poll()

bool blender::ed::transform::transform_draw_cursor_poll ( bContext * C)

Poll callback for cursor drawing: WM_paint_cursor_activate

Definition at line 77 of file transform_draw_cursors.cc.

References C, CTX_wm_region(), ELEM, ARegion::regiontype, RGN_TYPE_PREVIEW, RGN_TYPE_WINDOW, and true.

Referenced by initTransform().

◆ transform_event_modal_constraint()

◆ transform_exec()

◆ transform_final_value_get()

void blender::ed::transform::transform_final_value_get ( const TransInfo * t,
float * value,
const int value_num )

◆ transform_from_gizmo_invoke()

◆ transform_gizmo_3d_model_from_constraint_and_mode_init()

void blender::ed::transform::transform_gizmo_3d_model_from_constraint_and_mode_init ( TransInfo * t)

Set the T_NO_GIZMO flag.

Note
This maintains the conventional behavior of not displaying the gizmo if the operator has been triggered by shortcuts.

Definition at line 2331 of file transform_gizmo_3d.cc.

References ELEM, blender::ed::transform::TransInfo::flag, g_GGT_xform_gizmo, g_GGT_xform_gizmo_context, wmGizmo::parent_gzgroup, blender::ed::transform::TransInfo::region, ARegion::runtime, T_NO_GIZMO, wmGizmoGroup::type, and WM_gizmomap_get_modal().

Referenced by initTransInfo().

◆ transform_gizmo_3d_model_from_constraint_and_mode_restore()

void blender::ed::transform::transform_gizmo_3d_model_from_constraint_and_mode_restore ( TransInfo * t)

◆ transform_gizmo_3d_model_from_constraint_and_mode_set()

void blender::ed::transform::transform_gizmo_3d_model_from_constraint_and_mode_set ( TransInfo * t)

Change the gizmo and its orientation to match the transform state.

Note
This used while the modal operator is running so changes to the constraint or mode show the gizmo associated with that state, as if it had been the initial gizmo dragged.

Definition at line 2344 of file transform_gizmo_3d.cc.

References BLI_assert_msg, BLI_STATIC_ASSERT, blender::ed::transform::TransInfo::center_global, blender::ed::transform::TransInfo::con, CON_APPLY, CON_AXIS0, CON_AXIS1, CON_AXIS2, blender::ed::transform::TransInfo::context, copy_m4_m3(), copy_v2_v2_int(), copy_v3_v3(), wmGizmoGroup::customdata, ELEM, equals_v3v3(), blender::ed::transform::TransInfo::flag, float, gizmo_refresh_from_matrix(), gizmogroup_xform_find(), blender::ed::transform::GizmoGroup::gizmos, wmGizmo::highlight_part, blender::ed::transform::MouseInput::imval, MAN_AXIS_ROT_C, MAN_AXIS_ROT_X, MAN_AXIS_ROT_Y, MAN_AXIS_ROT_Z, MAN_AXIS_SCALE_C, MAN_AXIS_SCALE_X, MAN_AXIS_SCALE_XY, MAN_AXIS_SCALE_Y, MAN_AXIS_SCALE_YZ, MAN_AXIS_SCALE_Z, MAN_AXIS_SCALE_ZX, MAN_AXIS_TRANS_C, MAN_AXIS_TRANS_X, MAN_AXIS_TRANS_XY, MAN_AXIS_TRANS_Y, MAN_AXIS_TRANS_YZ, MAN_AXIS_TRANS_Z, MAN_AXIS_TRANS_ZX, blender::ed::transform::TransInfo::matrix, blender::ed::transform::TransCon::mode, blender::ed::transform::TransInfo::mode, blender::ed::transform::TransInfo::mouse, O_DEFAULT, O_SCENE, blender::ed::transform::TransInfo::orient, blender::ed::transform::TransInfo::orient_curr, blender::ed::transform::TransInfo::region, ARegion::regiondata, ARegion::runtime, T_NO_GIZMO, TFM_RESIZE, TFM_ROTATION, TFM_TRACKBALL, TFM_TRANSLATION, RegionView3D::twmat, blender::ed::transform::GizmoGroup::twtype, WM_gizmo_highlight_set(), WM_gizmo_modal_set_while_modal(), and WM_gizmomap_get_modal().

Referenced by setNearestAxis(), snapsource_end(), transform_event_modal_constraint(), and transform_mode_init().

◆ transform_input_reset()

◆ transform_input_update()

◆ transform_input_virtual_mval_reset()

◆ transform_invoke()

◆ transform_mesh_edge_slide_data_create()

Array< TransDataEdgeSlideVert > blender::ed::transform::transform_mesh_edge_slide_data_create ( const TransDataContainer * tc,
int * r_group_len )

We need at least 3 points to calculate the intersection of prev-curr and next-curr destinations. next_next is only required to identify the edge in next.e.

| | | | | prev.e | curr.e | next.e | prev.v -— curr.v -— next.v -— next_next.v

Find the best direction to slide among the ones already computed.

Parameters
curr_side_otherprevious state of the #SlideTempDataMesh where the faces are linked to the previous edge.
l_srcthe source corner in the edge to slide.
l_dstthe current destination corner.

Sanity check the line-line intersection.

             <- Slide direction.
           +dst0-+----------+
           |     |          |
Line A: -> |     |          |
           |     |          |
           +dst1 |          |
           |\    |          |
  ^        | \   |          |
  |        |  \  |          |
  |        |   \ |          |
Valid      |    |          |
conical    |     +curr_orig-+
region.    |    /|          |
  |        |   / |          |
  |        |  /  |          |
  v        | /   |          |
           |/    |          |
           +dst2 |          |
           |     |          |
Line B: -> |     |          |
           |     |          |
           +dst3-+----------+
                 ^
                 The slide edges (in this case 3 vertices).

NOTE(@ideasman42): the diagram above depicts the line A/B intersection which defines the slide destination for the central vertex (curr_orig) to move towards.

While this often makes sense (intuitively) there are cases where the two lines are close to parallel, where the intersection point may be a distant location. There is no guarantee the intersection point is anywhere between the lines (as users would expect).

To prevent distant points being used, a sanity check is needed.

Note that the midpoint between dst1 & dst2 is always a reasonable fallback so it's not necessary to use the intersection when it approaches extreme values. On the other hand it's undesirable to be overly sensitive in considering a location "invalid" since that may result in erratic behavior from a user perspective (using a seemingly random method of picking the target).

Excluding the Intersection

There doesn't seem to be one obvious "correct" solution, I think it's reasonable to consider the triangle define by (dst1, dst2 & curr_orig) to form a cone where the tip of the cone is curr_orig and (dst1 & dst2) are the sides. The cone extends past those lines (so there is no cutoff between dst1 & dst2).

Notes:

  • Any intersection outside the cone is ignored.
  • We may want to limit how distant the point can be although there doesn't seem to be an cutoff where the intersection point is obviously wrong. (although we could clamp at some distance instead of rejecting the location).
  • In the case of degenerate geometry (lines that have no length for example) just use the mid-point as it's not worth attempting to calculate an intersection from degenerate input, since there isn't an obvious correct answer and it's more likely to produce confusing results.

See #144270.

Definition at line 2295 of file transform_convert_mesh.cc.

References BKE_editmesh_from_object(), BLI_assert, bm, BMEditMesh::bm, BM_edge_exists(), BM_edge_is_boundary(), BM_edge_is_manifold(), BM_EDGES_OF_MESH, BM_EDGES_OF_VERT, BM_elem_flag_test, BM_elem_index_get, BM_elem_index_set, BM_ELEM_SELECT, BM_ITER_ELEM, BM_iter_elem_count_flag(), BM_ITER_MESH, BM_LOOPS_OF_EDGE, BM_VERT, BM_VERTS_OF_MESH, BMVert::co, blender::math::cross(), blender::Array< T, InlineBufferCapacity, Allocator >::data(), blender::ed::transform::TransDataContainer::data, blender::ed::transform::TransDataContainer::data_len, blender::ed::transform::TransDataEdgeSlideVert::dir_side, blender::math::distance(), blender::math::dot(), BMLoop::e, e, ELEM, blender::ed::transform::TransDataBasic::extra, BMLoop::f, blender::ed::transform::TransDataContainer::foreach_index_selected(), i, blender::Array< T, InlineBufferCapacity, Allocator >::index_range(), isect_face_dst(), isect_line_line_epsilon_v3(), l, blender::ed::transform::TransDataEdgeSlideVert::loop_nr, mesh_vert_is_inner(), blender::math::midpoint(), BMLoop::next, next, blender::math::normalize(), blender::math::normalize_and_get_length(), blender::ed::transform::TransDataContainer::obedit, BMLoop::prev, BMLoop::radial_next, blender::ed::transform::TransDataEdgeSlideVert::td, UNLIKELY, BMLoop::v, and v.

Referenced by createEdgeSlideVerts().

◆ transform_mesh_uv_edge_slide_data_create()

Array< TransDataEdgeSlideVert > blender::ed::transform::transform_mesh_uv_edge_slide_data_create ( const TransInfo * t,
TransDataContainer * tc,
int * r_group_len )

We need at least 3 points to calculate the intersection of prev-curr and next-curr destinations.

| | | | | | prev -— curr -— next

Find the best direction to slide among the ones already computed.

Parameters
curr_prevprev state of the #SlideTempDataUV where the faces are linked to the previous edge.
l_srcthe source corner in the edge to slide.
l_dstthe current destination corner.

Definition at line 818 of file transform_convert_mesh_uv.cc.

References blender::ed::transform::TransInfo::aspect, BKE_editmesh_from_object(), BLI_assert, bm, BMEditMesh::bm, BM_ELEM_CD_GET_FLOAT_P, BM_elem_index_get, BM_elem_index_set, BM_LOOP, BM_uv_map_offsets_get(), compare_v2v2(), blender::ed::transform::TransDataContainer::data, blender::math::distance(), blender::math::dot(), ED_uvedit_select_mode_get(), ELEM, blender::ed::transform::TransDataBasic::extra, BMLoop::f, blender::ed::transform::TransDataContainer::foreach_index_selected(), blender::ed::transform::UVGroups::groups(), i, blender::Array< T, InlineBufferCapacity, Allocator >::index_range(), isect_face_dst(), ISECT_LINE_LINE_COLINEAR, isect_line_line_v2_point(), l, mesh_uv_group_is_inner(), mesh_uv_groups_get(), blender::math::midpoint(), BMLoop::next, next, blender::math::normalize(), blender::ed::transform::TransDataContainer::obedit, BMLoop::prev, BMLoop::radial_next, blender::ed::transform::TransInfo::scene, blender::ed::transform::UVGroups::sd_array_create_and_init_edge(), blender::ed::transform::UVGroups::sd_group_get(), blender::ed::transform::TransInfo::settings, blender::ed::transform::TransDataEdgeSlideVert::td, blender::ed::transform::UVGroups::td_indices_get(), BMUVOffsets::uv, UV_SELECT_EDGE, uvedit_edge_select_test_ex(), and BMLoop::v.

Referenced by createEdgeSlideVerts().

◆ transform_mesh_uv_vert_slide_data_create()

◆ transform_mesh_vert_slide_data_create()

◆ transform_modal()

wmOperatorStatus blender::ed::transform::transform_modal ( bContext * C,
wmOperator * op,
const wmEvent * event )
static

Definition at line 429 of file transform_ops.cc.

References applyMouseInput(), BLI_assert, C, blender::ed::transform::TransInfo::center_global, blender::ed::transform::TransInfo::context, wmOperator::customdata, ED_view3d_navigation_do(), blender::ed::transform::TransformModeItem::idname, MOD_PRECISION, blender::ed::transform::TransformModeItem::mode, blender::ed::transform::TransInfo::mode, blender::ed::transform::TransInfo::modifiers, blender::ed::transform::TransInfo::mouse, blender::ed::transform::TransInfo::mval, wmEvent::mval, NDOF_MOTION, OPERATOR_PASS_THROUGH, OPERATOR_RUNNING_MODAL, blender::ed::transform::MouseInput::precision, blender::ed::transform::TransInfo::redraw, blender::ed::transform::TransInfo::region, ARegion::regiondata, RegionView3D::rflag, RV3D_NAVIGATING, transform_input_virtual_mval_reset(), transform_modes, transformApply(), transformEnd(), transformEvent(), transformops_exit(), transformViewUpdate(), TREDRAW_HARD, wmEvent::type, blender::ed::transform::TransInfo::values, blender::ed::transform::TransInfo::vod, WM_operator_type_set(), and WM_operatortype_find().

Referenced by TRANSFORM_OT_bbone_resize(), TRANSFORM_OT_bend(), TRANSFORM_OT_edge_bevelweight(), TRANSFORM_OT_edge_crease(), TRANSFORM_OT_edge_slide(), TRANSFORM_OT_mirror(), TRANSFORM_OT_push_pull(), TRANSFORM_OT_resize(), TRANSFORM_OT_rotate(), TRANSFORM_OT_rotate_normal(), TRANSFORM_OT_seq_slide(), TRANSFORM_OT_shear(), TRANSFORM_OT_shrink_fatten(), TRANSFORM_OT_skin_resize(), TRANSFORM_OT_tilt(), TRANSFORM_OT_tosphere(), TRANSFORM_OT_trackball(), TRANSFORM_OT_transform(), TRANSFORM_OT_translate(), TRANSFORM_OT_vert_crease(), and TRANSFORM_OT_vert_slide().

◆ transform_modal_item_poll()

bool blender::ed::transform::transform_modal_item_poll ( const wmOperator * op,
int value )
static

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

References blender::ed::transform::TransInfo::con, CON_APPLY, CTX_CAMERA, wmOperator::customdata, blender::ed::transform::TransInfo::data_type, ELEM, blender::ed::transform::TransInfo::flag, MOD_EDIT_SNAP_SOURCE, blender::ed::transform::TransCon::mode, blender::ed::transform::TransInfo::mode, blender::ed::transform::TransInfo::modifiers, blender::ed::transform::TransInfo::options, blender::ed::transform::TransSnap::selectedPoint, SNAP_TARGET_FOUND, SPACE_IMAGE, SPACE_NODE, SPACE_SEQ, SPACE_VIEW3D, blender::ed::transform::TransInfo::spacetype, blender::ed::transform::TransSnap::status, T_2D_EDIT, T_AUTOIK, T_NO_CONSTRAINT, T_PROP_EDIT, 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_OFF, TFM_MODAL_EDIT_SNAP_SOURCE_ON, TFM_MODAL_INSERTOFS_TOGGLE_DIR, TFM_MODAL_NODE_ATTACH_OFF, TFM_MODAL_NODE_ATTACH_ON, TFM_MODAL_NODE_FRAME, TFM_MODAL_PASSTHROUGH_NAVIGATE, TFM_MODAL_PLANE_X, TFM_MODAL_PLANE_Y, TFM_MODAL_PLANE_Z, 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_STRIP_CLAMP, TFM_MODAL_TRACKBALL, TFM_MODAL_TRANSLATE, TFM_MODAL_VERT_EDGE_SLIDE, TFM_RESIZE, TFM_ROTATION, TFM_SHRINKFATTEN, TFM_TRANSLATION, TFM_VERT_SLIDE, TransConvertType_Mesh, TransConvertType_MeshUV, TransConvertType_Tracking, transform_mode_is_changeable(), blender::ed::transform::TransInfo::tsnap, and blender::ed::transform::TransInfo::vod.

Referenced by transform_modal_keymap().

◆ transform_modal_keymap()

◆ transform_mode_affect_only_locations()

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

bool blender::ed::transform::transform_mode_is_axis_pointing_to_screen ( const TransInfo * t,
const float3 & axis )

◆ transform_mode_is_changeable()

bool blender::ed::transform::transform_mode_is_changeable ( int mode)

Informs if the mode can be switched during modal.

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

eTfmMode blender::ed::transform::transform_mode_really_used ( bContext * C,
eTfmMode mode )

◆ transform_mode_rotation_axis_get()

◆ transform_mode_snap_source_init()

void blender::ed::transform::transform_mode_snap_source_init ( TransInfo * t,
wmOperator * op )

Definition at line 166 of file transform_mode_snapsource.cc.

References blender::ed::transform::MouseInput::apply, blender::ed::transform::SnapSouceCustomData::apply, applyMouseInput(), blender::ed::transform::TransInfo::context, CTX_wm_window(), blender::ed::transform::TransInfo::custom, wmGizmo::custom_modal, blender::ed::transform::SnapSouceCustomData::customdata_mode_prev, blender::ed::transform::TransCustomData::data, blender::ed::transform::TransInfo::data_type, ELEM, wmWindow::eventstate, blender::ed::transform::TransInfo::flag, blender::ed::transform::TransSnap::flag, blender::ed::transform::MouseInput::imval, MEM_callocN(), MOD_EDIT_SNAP_SOURCE, MOD_SNAP, MOD_SNAP_FORCED, wmGizmoType::modal, blender::ed::transform::TransCustomDataContainer::mode, blender::ed::transform::TransInfo::mode, blender::ed::transform::TransSnap::mode, blender::ed::transform::TransInfo::mode_info, blender::ed::transform::SnapSouceCustomData::mode_info_prev, blender::ed::transform::TransInfo::modifiers, blender::ed::transform::TransInfo::mouse, blender::ed::transform::SnapSouceCustomData::mouse_prev, blender::ed::transform::TransSnap::object_context, blender::ed::transform::MouseInput::post, blender::ed::transform::SnapSouceCustomData::post, blender::ed::transform::TransInfo::region, restoreTransObjects(), ARegion::runtime, SCE_SNAP, 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, blender::ed::transform::SnapSouceCustomData::snap_mode_confirm, snap_object_context_set_editmesh_callbacks(), SNAP_SOURCE_FOUND, blender::ed::transform::TransSnap::snap_target_fn, SPACE_VIEW3D, blender::ed::transform::TransInfo::spacetype, blender::ed::transform::TransSnap::status, T_DRAW_SNAP_SOURCE, blender::ed::transform::TransSnap::target_operation, blender::ed::transform::SnapSouceCustomData::target_operation_prev, TFM_DUMMY, TFM_INIT, TFM_TRANSLATION, TransConvertType_Mesh, transform_mode_init(), transform_snap_flag_from_modifiers_set(), transformModeUseSnap(), TransMode_snapsource, blender::ed::transform::TransInfo::tsnap, wmGizmo::type, blender::ed::transform::MouseInput::use_virtual_mval, blender::ed::transform::SnapSouceCustomData::use_virtual_mval, blender::ed::transform::TransInfo::values_final, WM_gizmo_modal_set_while_modal(), and WM_gizmomap_get_modal().

Referenced by transformEvent().

◆ transform_mode_use_local_origins()

bool blender::ed::transform::transform_mode_use_local_origins ( const TransInfo * t)

◆ transform_mode_vert_slide_reproject_input()

void blender::ed::transform::transform_mode_vert_slide_reproject_input ( TransInfo * t)

◆ transform_object_axismtx_get()

◆ transform_object_deform_pose_armature_get()

◆ transform_operatortypes()

◆ transform_orientation_matrix_get()

◆ transform_orientation_or_default()

◆ transform_orientations_create_from_axis()

bool blender::ed::transform::transform_orientations_create_from_axis ( float mat[3][3],
const float x[3],
const float y[3],
const float z[3] )

◆ transform_orientations_current_set()

◆ transform_orientations_spacename_get()

◆ TRANSFORM_OT_bbone_resize()

◆ TRANSFORM_OT_bend()

◆ TRANSFORM_OT_create_orientation()

void blender::ed::transform::TRANSFORM_OT_create_orientation ( wmOperatorType * ot)
static

◆ TRANSFORM_OT_delete_orientation()

void blender::ed::transform::TRANSFORM_OT_delete_orientation ( wmOperatorType * ot)
static

◆ TRANSFORM_OT_edge_bevelweight()

◆ TRANSFORM_OT_edge_crease()

◆ TRANSFORM_OT_edge_slide()

◆ TRANSFORM_OT_from_gizmo()

void blender::ed::transform::TRANSFORM_OT_from_gizmo ( wmOperatorType * ot)
static

Definition at line 1505 of file transform_ops.cc.

References ED_operator_regionactive(), ot, and transform_from_gizmo_invoke().

Referenced by transform_operatortypes().

◆ TRANSFORM_OT_mirror()

◆ TRANSFORM_OT_push_pull()

◆ TRANSFORM_OT_resize()

◆ TRANSFORM_OT_rotate()

◆ TRANSFORM_OT_rotate_normal()

◆ TRANSFORM_OT_select_orientation()

◆ TRANSFORM_OT_seq_slide()

◆ TRANSFORM_OT_shear()

◆ TRANSFORM_OT_shrink_fatten()

◆ TRANSFORM_OT_skin_resize()

◆ TRANSFORM_OT_tilt()

◆ TRANSFORM_OT_tosphere()

◆ TRANSFORM_OT_trackball()

◆ TRANSFORM_OT_transform()

◆ TRANSFORM_OT_translate()

◆ TRANSFORM_OT_vert_crease()

◆ TRANSFORM_OT_vert_slide()

◆ transform_poll_property()

◆ transform_result_get()

◆ transform_seq_slide_cursor_get()

◆ transform_seq_slide_strip_cursor_get()

int blender::ed::transform::transform_seq_slide_strip_cursor_get ( const Strip * strip)
static

◆ transform_shear_poll()

bool blender::ed::transform::transform_shear_poll ( bContext * C)
static

◆ transform_snap_anim_flush_data()

void blender::ed::transform::transform_snap_anim_flush_data ( TransInfo * t,
TransData * td,
eSnapMode snap_mode,
float * r_val_final )

This function is used by Animation Editor specific transform functions to do the Snap Keyframe to Nearest Frame/Marker.

Definition at line 106 of file transform_snap_animation.cc.

References blender::ed::transform::TransDataBasic::loc, and transform_snap_anim_flush_data_ex().

Referenced by flushTransGraphData(), and recalcData_actedit().

◆ transform_snap_anim_flush_data_ex()

◆ transform_snap_distance_len_squared_fn()

float blender::ed::transform::transform_snap_distance_len_squared_fn ( TransInfo * ,
const float p1[3],
const float p2[3] )

Definition at line 1795 of file transform_snap.cc.

References len_squared_v3v3().

◆ transform_snap_flag_from_modifiers_set()

◆ transform_snap_flag_from_spacetype_ptr() [1/2]

◆ transform_snap_flag_from_spacetype_ptr() [2/2]

short * blender::ed::transform::transform_snap_flag_from_spacetype_ptr ( TransInfo * t,
const struct PropertyRNA ** r_prop )

References data.

◆ transform_snap_grid_init()

◆ transform_snap_increment()

◆ transform_snap_increment_ex()

◆ transform_snap_increment_get()

◆ transform_snap_is_active()

◆ transform_snap_mixed_apply()

◆ transform_snap_mixed_is_active()

◆ transform_snap_nla_calc()

◆ transform_snap_project_individual_apply()

◆ transform_snap_project_individual_is_active()

◆ transform_snap_reset_from_mode()

◆ transform_tied_to_other_node()

bool blender::ed::transform::transform_tied_to_other_node ( bNode * node,
VectorSet< bNode * > transformed_nodes )
static

Some nodes are transformed together with other nodes:

  • Parent frames with shrinking turned on are automatically resized based on their children.
  • Child nodes of frames that are manually resizable are transformed together with their parent frame.

Definition at line 104 of file transform_convert_node.cc.

References blender::VectorSet< Key, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::contains(), data, NodeFrame::flag, NODE_FRAME_SHRINK, bNode::parent, and bNode::storage.

Referenced by get_transformed_nodes().

◆ transform_view_vector_calc()

void blender::ed::transform::transform_view_vector_calc ( const TransInfo * t,
const float focus[3],
float r_vec[3] )

◆ transformApply()

◆ transformEnd()

◆ transformEvent()

wmOperatorStatus blender::ed::transform::transformEvent ( TransInfo * t,
wmOperator * op,
const wmEvent * event )

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

References addSnapPoint(), applyMouseInput(), blender::ed::transform::TransInfo::area, BLI_assert, calculatePropRatio(), blender::ed::transform::TransInfo::con, CON_APPLY, CON_AXIS2, blender::ed::transform::TransInfo::context, CTX_CAMERA, CTX_NO_PET, CTX_wm_window(), wmEvent::customdata, blender::ed::transform::TransInfo::data_type, ED_uvedit_live_unwrap_timer_check(), ED_workspace_status_text(), ELEM, EVT_CKEY, EVT_LEFTALTKEY, EVT_MODAL_MAP, EVT_OKEY, EVT_PADMINUS, EVT_PADPLUSKEY, EVT_RIGHTALTKEY, ListBase::first, blender::ed::transform::TransInfo::flag, wmEvent::flag, blender::ed::transform::TransModeInfo::handle_event_fn, handleNumInput(), handleSnapping(), hasNumInput(), blender::ed::transform::TransInfo::helpline, HLP_ERROR, HLP_ERROR_DASH, IFACE_, initSelectConstraint(), SpaceNode::insert_ofs_dir, ISMOUSE_MOTION, KM_ALT, KM_PRESS, KM_RELEASE, KM_SHIFT, blender::ed::transform::TransInfo::launch_event, max_ff(), min_ff(), MOD_CONSTRAINT_SELECT_AXIS, MOD_CONSTRAINT_SELECT_PLANE, MOD_EDIT_SNAP_SOURCE, MOD_NODE_ATTACH, MOD_NODE_FRAME, MOD_PRECISION, MOD_SNAP, MOD_SNAP_INVERT, MOD_STRIP_CLAMP_HOLDS, blender::ed::transform::TransCon::mode, blender::ed::transform::TransInfo::mode, blender::ed::transform::TransInfo::mode_info, wmEvent::modifier, blender::ed::transform::TransInfo::modifiers, blender::ed::transform::TransInfo::mouse, MOUSEMOVE, blender::ed::transform::TransInfo::mval, wmEvent::mval, blender::ed::transform::TransInfo::num, OPERATOR_PASS_THROUGH, blender::ed::transform::TransInfo::options, blender::ed::transform::TransInfo::orient, blender::ed::transform::TransInfo::orient_curr, blender::ed::transform::TransInfo::persp, postSelectConstraint(), blender::ed::transform::MouseInput::precision, wmEvent::prev_type, wmEvent::prev_val, blender::ed::transform::TransInfo::prop_mode, PROP_MODE_MAX, blender::ed::transform::TransInfo::prop_size, blender::ed::transform::TransInfo::redraw, blender::ed::transform::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, blender::ed::transform::TransInfo::spacetype, ScrArea::spacetype, blender::ed::transform::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, blender::ed::transform::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_NODE_FRAME, 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_STRIP_CLAMP, 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, tool_settings_update_snap_toggle(), 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(), transform_snap_reset_from_mode(), TREDRAW_HARD, TREDRAW_SOFT, blender::ed::transform::TransInfo::tsnap, blender::ed::transform::TransInfo::type, wmEvent::type, V3D_ORIENT_NORMAL, wmEvent::val, validSnap(), blender::ed::transform::TransInfo::values, blender::ed::transform::TransInfo::view, blender::ed::transform::TransInfo::vod, WM_EVENT_IS_REPEAT, and WM_window_status_area_tag_redraw().

Referenced by transform_modal().

◆ transformModeUseSnap()

◆ transformops_data()

◆ transformops_exit()

void blender::ed::transform::transformops_exit ( bContext * C,
wmOperator * op )
static

◆ transformops_loopsel_hack()

void blender::ed::transform::transformops_loopsel_hack ( bContext * C,
wmOperator * op )
static

Special hack for #MESH_OT_loopcut_slide so we get back to the selection mode Do this for all meshes in multi-object edit-mode so their select-mode is in sync for following operators

Definition at line 349 of file transform_ops.cc.

References C, CTX_data_scene(), EDBM_selectmode_set_multi(), wmOperatorType::idname, OP_EDGE_SLIDE, wmOperator::opm, wmOperator::prev, wmOperator::ptr, RNA_property_boolean_get_array(), RNA_property_is_set(), RNA_struct_find_property(), SCE_SELECT_EDGE, SCE_SELECT_FACE, SCE_SELECT_VERTEX, ToolSettings::selectmode, Scene::toolsettings, and wmOperator::type.

Referenced by transformops_exit().

◆ transformops_mode()

int blender::ed::transform::transformops_mode ( wmOperator * op)
static

◆ transformViewUpdate()

◆ transinfo_show_overlay()

◆ translate_dist_to_str()

void blender::ed::transform::translate_dist_to_str ( char * r_str,
const int r_str_maxncpy,
const float val,
const UnitSettings * unit )
static

◆ translate_snap_increment()

◆ translate_snap_increment_init()

◆ TransMat3ToSize()

void blender::ed::transform::TransMat3ToSize ( const float mat[3][3],
const float smat[3][3],
float size[3] )
static

smat is reference matrix only.

Note
this is a tricky area, before making changes see: #29633, #42444

Definition at line 947 of file transform_mode.cc.

References dot_v3v3(), mat3_to_rot_size(), and size().

Referenced by ElementResize().

◆ uniqueOrientationName()

void blender::ed::transform::uniqueOrientationName ( ListBase * lb,
char * name )
static

◆ UNUSED_FUNCTION()

◆ update_deg_with_temporary_ik()

void blender::ed::transform::update_deg_with_temporary_ik ( Main * bmain,
Object * ob )
static

◆ update_trans_data()

◆ update_transdata_bezt_pointers()

◆ updateSelectedSnapPoint()

◆ usingSnappingNormal()

bool blender::ed::transform::usingSnappingNormal ( const TransInfo * t)

◆ uv_rotation_in_clip_bounds_test()

◆ uv_set_connectivity_distance()

◆ uv_shear_in_clip_bounds_test()

◆ UVsToTransData()

◆ validSnap()

◆ validSnappingNormal()

bool blender::ed::transform::validSnappingNormal ( const TransInfo * t)

◆ vert_slide_apply_elem()

void blender::ed::transform::vert_slide_apply_elem ( const TransDataVertSlideVert & sv,
const float perc,
const bool use_even,
const bool use_flip,
float r_co[3] )
static

◆ vert_slide_snap_apply()

◆ vert_slide_transform_matrix_fn()

◆ vert_slide_update_input()

◆ VertsToTransData()

◆ view2d_edge_pan_loc_compensate()

◆ VIEW3D_GGT_xform_cage()

◆ VIEW3D_GGT_xform_extrude()

◆ VIEW3D_GGT_xform_gizmo()

◆ VIEW3D_GGT_xform_gizmo_context()

◆ VIEW3D_GGT_xform_shear()

◆ view_vector_calc()

◆ viewAxisCorrectCenter()

void blender::ed::transform::viewAxisCorrectCenter ( const TransInfo * t,
float t_con_center[3] )
static

◆ viewRedrawForce()

◆ viewRedrawPost()

◆ visible_retiming_keys_get()

◆ WIDGETGROUP_gizmo_draw_prepare()

◆ WIDGETGROUP_gizmo_invoke_prepare()

◆ WIDGETGROUP_gizmo_message_subscribe()

void blender::ed::transform::WIDGETGROUP_gizmo_message_subscribe ( const bContext * C,
wmGizmoGroup * gzgroup,
wmMsgBus * mbus )
static

◆ WIDGETGROUP_gizmo_poll_context()

◆ WIDGETGROUP_gizmo_poll_generic()

bool blender::ed::transform::WIDGETGROUP_gizmo_poll_generic ( View3D * v3d)
static

◆ WIDGETGROUP_gizmo_poll_tool()

bool blender::ed::transform::WIDGETGROUP_gizmo_poll_tool ( const bContext * C,
wmGizmoGroupType * gzgt )
static

◆ WIDGETGROUP_gizmo_refresh()

◆ WIDGETGROUP_gizmo_setup()

◆ WIDGETGROUP_xform_cage_draw_prepare()

◆ WIDGETGROUP_xform_cage_message_subscribe()

void blender::ed::transform::WIDGETGROUP_xform_cage_message_subscribe ( const bContext * C,
wmGizmoGroup * gzgroup,
wmMsgBus * mbus )
static

◆ WIDGETGROUP_xform_cage_poll()

bool blender::ed::transform::WIDGETGROUP_xform_cage_poll ( const bContext * C,
wmGizmoGroupType * gzgt )
static

◆ WIDGETGROUP_xform_cage_refresh()

◆ WIDGETGROUP_xform_cage_setup()

◆ WIDGETGROUP_xform_shear_draw_prepare()

◆ WIDGETGROUP_xform_shear_message_subscribe()

void blender::ed::transform::WIDGETGROUP_xform_shear_message_subscribe ( const bContext * C,
wmGizmoGroup * gzgroup,
wmMsgBus * mbus )
static

◆ WIDGETGROUP_xform_shear_poll()

bool blender::ed::transform::WIDGETGROUP_xform_shear_poll ( const bContext * C,
wmGizmoGroupType * gzgt )
static

◆ WIDGETGROUP_xform_shear_refresh()

◆ WIDGETGROUP_xform_shear_setup()

Variable Documentation

◆ extrude_arrow_normal_axis_scale

const float blender::ed::transform::extrude_arrow_normal_axis_scale = 0.6666f
static

Definition at line 52 of file transform_gizmo_extrude_3d.cc.

Referenced by gizmo_mesh_extrude_refresh().

◆ extrude_arrow_scale

const float blender::ed::transform::extrude_arrow_scale = 0.7f
static

Definition at line 50 of file transform_gizmo_extrude_3d.cc.

Referenced by gizmo_mesh_extrude_setup().

◆ extrude_arrow_xyz_axis_scale

const float blender::ed::transform::extrude_arrow_xyz_axis_scale = 0.6666f
static

◆ extrude_button_offset_scale

const float blender::ed::transform::extrude_button_offset_scale = 1.5f
static

◆ extrude_button_scale

const float blender::ed::transform::extrude_button_scale = 0.15f
static

◆ extrude_dial_scale

const float blender::ed::transform::extrude_dial_scale = 0.2
static

Definition at line 53 of file transform_gizmo_extrude_3d.cc.

Referenced by gizmo_mesh_extrude_setup().

◆ extrude_outer_scale

const float blender::ed::transform::extrude_outer_scale = 1.2f
static

Definition at line 49 of file transform_gizmo_extrude_3d.cc.

Referenced by gizmo_mesh_extrude_setup().

◆ g_GGT_xform_gizmo

wmGizmoGroupType* blender::ed::transform::g_GGT_xform_gizmo = nullptr
static

◆ g_GGT_xform_gizmo_context

wmGizmoGroupType* blender::ed::transform::g_GGT_xform_gizmo_context = nullptr
static

◆ [struct]

struct { ... } blender::ed::transform::g_tw_axis_range[2]
Initial value:
= {
{0.02f, 0.1f},
{0.175f, 0.25f},
}

Referenced by gizmo_get_axis_color(), and gizmo_is_axis_visible().

◆ max

◆ min

◆ OP_BEND

const char blender::ed::transform::OP_BEND[] = "TRANSFORM_OT_bend"
static

Definition at line 63 of file transform_ops.cc.

Referenced by TRANSFORM_OT_bend().

◆ OP_BONE_SIZE

const char blender::ed::transform::OP_BONE_SIZE[] = "TRANSFORM_OT_bbone_resize"
static

Definition at line 69 of file transform_ops.cc.

Referenced by TRANSFORM_OT_bbone_resize().

◆ OP_EDGE_BWEIGHT

const char blender::ed::transform::OP_EDGE_BWEIGHT[] = "TRANSFORM_OT_edge_bevelweight"
static

Definition at line 74 of file transform_ops.cc.

Referenced by TRANSFORM_OT_edge_bevelweight().

◆ OP_EDGE_CREASE

const char blender::ed::transform::OP_EDGE_CREASE[] = "TRANSFORM_OT_edge_crease"
static

Definition at line 72 of file transform_ops.cc.

Referenced by TRANSFORM_OT_edge_crease().

◆ OP_EDGE_SLIDE

const char blender::ed::transform::OP_EDGE_SLIDE[] = "TRANSFORM_OT_edge_slide"
static

Definition at line 70 of file transform_ops.cc.

Referenced by TRANSFORM_OT_edge_slide(), and transformops_loopsel_hack().

◆ OP_MIRROR

const char blender::ed::transform::OP_MIRROR[] = "TRANSFORM_OT_mirror"
static

Definition at line 68 of file transform_ops.cc.

Referenced by TRANSFORM_OT_mirror().

◆ OP_NORMAL_ROTATION

const char blender::ed::transform::OP_NORMAL_ROTATION[] = "TRANSFORM_OT_rotate_normal"
static

Definition at line 76 of file transform_ops.cc.

Referenced by TRANSFORM_OT_rotate_normal().

◆ OP_PUSH_PULL

const char blender::ed::transform::OP_PUSH_PULL[] = "TRANSFORM_OT_push_pull"
static

Definition at line 65 of file transform_ops.cc.

Referenced by TRANSFORM_OT_push_pull().

◆ OP_RESIZE

const char blender::ed::transform::OP_RESIZE[] = "TRANSFORM_OT_resize"
static

Definition at line 60 of file transform_ops.cc.

Referenced by TRANSFORM_OT_resize().

◆ OP_ROTATION

const char blender::ed::transform::OP_ROTATION[] = "TRANSFORM_OT_rotate"
static

Definition at line 58 of file transform_ops.cc.

Referenced by TRANSFORM_OT_rotate().

◆ OP_SEQ_SLIDE

const char blender::ed::transform::OP_SEQ_SLIDE[] = "TRANSFORM_OT_seq_slide"
static

Definition at line 75 of file transform_ops.cc.

Referenced by TRANSFORM_OT_seq_slide().

◆ OP_SHEAR

const char blender::ed::transform::OP_SHEAR[] = "TRANSFORM_OT_shear"
static

Definition at line 62 of file transform_ops.cc.

Referenced by TRANSFORM_OT_shear().

◆ OP_SHRINK_FATTEN

const char blender::ed::transform::OP_SHRINK_FATTEN[] = "TRANSFORM_OT_shrink_fatten"
static

Definition at line 64 of file transform_ops.cc.

Referenced by TRANSFORM_OT_shrink_fatten().

◆ OP_SKIN_RESIZE

const char blender::ed::transform::OP_SKIN_RESIZE[] = "TRANSFORM_OT_skin_resize"
static

Definition at line 61 of file transform_ops.cc.

Referenced by TRANSFORM_OT_skin_resize().

◆ OP_TILT

const char blender::ed::transform::OP_TILT[] = "TRANSFORM_OT_tilt"
static

Definition at line 66 of file transform_ops.cc.

Referenced by TRANSFORM_OT_tilt().

◆ OP_TOSPHERE

const char blender::ed::transform::OP_TOSPHERE[] = "TRANSFORM_OT_tosphere"
static

Definition at line 59 of file transform_ops.cc.

Referenced by TRANSFORM_OT_tosphere().

◆ OP_TRACKBALL

const char blender::ed::transform::OP_TRACKBALL[] = "TRANSFORM_OT_trackball"
static

Definition at line 67 of file transform_ops.cc.

Referenced by TRANSFORM_OT_trackball().

◆ OP_TRANSLATION

const char blender::ed::transform::OP_TRANSLATION[] = "TRANSFORM_OT_translate"
static

Definition at line 57 of file transform_ops.cc.

Referenced by TRANSFORM_OT_translate().

◆ OP_VERT_CREASE

const char blender::ed::transform::OP_VERT_CREASE[] = "TRANSFORM_OT_vert_crease"
static

Definition at line 73 of file transform_ops.cc.

Referenced by TRANSFORM_OT_vert_crease().

◆ OP_VERT_SLIDE

const char blender::ed::transform::OP_VERT_SLIDE[] = "TRANSFORM_OT_vert_slide"
static

Definition at line 71 of file transform_ops.cc.

Referenced by TRANSFORM_OT_vert_slide().

◆ shape_plus

const uchar blender::ed::transform::shape_plus[]
static
Initial value:
= {
0x73, 0x73, 0x73, 0x36, 0x8c, 0x36, 0x8c, 0x73, 0xc9, 0x73, 0xc9, 0x8c, 0x8c,
0x8c, 0x8c, 0xc9, 0x73, 0xc9, 0x73, 0x8c, 0x36, 0x8c, 0x36, 0x73, 0x36, 0x73,
}

Definition at line 55 of file transform_gizmo_extrude_3d.cc.

Referenced by gizmo_mesh_extrude_setup().

◆ TransConvertType_Action

TransConvertTypeInfo blender::ed::transform::TransConvertType_Action
Initial value:

Definition at line 1390 of file transform_convert_action.cc.

Referenced by convert_type_get(), and init_proportional_edit().

◆ TransConvertType_Cursor3D

TransConvertTypeInfo blender::ed::transform::TransConvertType_Cursor3D
Initial value:
= {
0,
nullptr,
}
static void recalcData_cursor_view3d(TransInfo *t)
static void createTransCursor_view3d(bContext *, TransInfo *t)

Definition at line 204 of file transform_convert_cursor.cc.

Referenced by convert_type_get(), and translate_snap_increment_init().

◆ TransConvertType_CursorImage

TransConvertTypeInfo blender::ed::transform::TransConvertType_CursorImage
Initial value:
= {
nullptr,
}
static void createTransCursor_image(bContext *, TransInfo *t)
static void recalcData_cursor_image(TransInfo *t)

Definition at line 190 of file transform_convert_cursor.cc.

Referenced by convert_type_get().

◆ TransConvertType_CursorSequencer

TransConvertTypeInfo blender::ed::transform::TransConvertType_CursorSequencer
Initial value:
= {
nullptr,
}
static void createTransCursor_sequencer(bContext *, TransInfo *t)
static void recalcData_cursor_sequencer(TransInfo *t)

Definition at line 197 of file transform_convert_cursor.cc.

Referenced by convert_type_get(), and snap_data_build_preview().

◆ TransConvertType_Curve

TransConvertTypeInfo blender::ed::transform::TransConvertType_Curve
Initial value:
= {
nullptr,
}
static void createTransCurveVerts(bContext *, TransInfo *t)
static void recalcData_curve(TransInfo *t)

Definition at line 436 of file transform_convert_curve.cc.

Referenced by convert_type_get(), init_proportional_edit(), init_TransDataContainers(), and initCurveShrinkFatten().

◆ TransConvertType_EditArmature

TransConvertTypeInfo blender::ed::transform::TransConvertType_EditArmature
Initial value:
= {
nullptr,
}
static void recalcData_edit_armature(TransInfo *t)
static void createTransArmatureVerts(bContext *, TransInfo *t)

Definition at line 1726 of file transform_convert_armature.cc.

Referenced by convert_type_get(), and init_TransDataContainers().

◆ TransConvertType_Graph

TransConvertTypeInfo blender::ed::transform::TransConvertType_Graph
Initial value:
= {
}
static void special_aftertrans_update__graph(bContext *C, TransInfo *t)
static void recalcData_graphedit(TransInfo *t)
static void createTransGraphEditData(bContext *C, TransInfo *t)

Definition at line 1035 of file transform_convert_graph.cc.

Referenced by convert_type_get(), and init_proportional_edit().

◆ TransConvertType_Lattice

TransConvertTypeInfo blender::ed::transform::TransConvertType_Lattice
Initial value:
= {
nullptr,
}
static void recalcData_lattice(TransInfo *t)
static void createTransLatticeVerts(bContext *, TransInfo *t)

Definition at line 128 of file transform_convert_lattice.cc.

Referenced by convert_type_get(), init_proportional_edit(), and init_TransDataContainers().

◆ TransConvertType_Mask

TransConvertTypeInfo blender::ed::transform::TransConvertType_Mask
Initial value:
= {
}
static void createTransMaskingData(bContext *C, TransInfo *t)
static void special_aftertrans_update__mask(bContext *C, TransInfo *t)
static void recalcData_mask_common(TransInfo *t)

Definition at line 467 of file transform_convert_mask.cc.

Referenced by convert_type_get(), and init_proportional_edit().

◆ TransConvertType_MBall

TransConvertTypeInfo blender::ed::transform::TransConvertType_MBall
Initial value:
= {
nullptr,
}
static void recalcData_mball(TransInfo *t)
static void createTransMBallVerts(bContext *, TransInfo *t)

Definition at line 140 of file transform_convert_mball.cc.

Referenced by convert_type_get(), init_proportional_edit(), and init_TransDataContainers().

◆ TransConvertType_Mesh

◆ TransConvertType_MeshEdge

TransConvertTypeInfo blender::ed::transform::TransConvertType_MeshEdge
Initial value:
= {
nullptr,
}
static void createTransEdge(bContext *, TransInfo *t)
static void recalcData_mesh_edge(TransInfo *t)

Definition at line 126 of file transform_convert_mesh_edge.cc.

Referenced by convert_type_get(), init_proportional_edit(), and init_TransDataContainers().

◆ TransConvertType_MeshSkin

TransConvertTypeInfo blender::ed::transform::TransConvertType_MeshSkin
Initial value:
= {
nullptr,
}
static void createTransMeshSkin(bContext *, TransInfo *t)
static void recalcData_mesh_skin(TransInfo *t)

Definition at line 292 of file transform_convert_mesh_skin.cc.

Referenced by convert_type_get(), init_proportional_edit(), and init_TransDataContainers().

◆ TransConvertType_MeshUV

TransConvertTypeInfo blender::ed::transform::TransConvertType_MeshUV

◆ TransConvertType_MeshVertCData

TransConvertTypeInfo blender::ed::transform::TransConvertType_MeshVertCData
Initial value:
= {
nullptr,
}
static void createTransMeshVertCData(bContext *, TransInfo *t)
static void recalcData_mesh_cdata(TransInfo *t)

Definition at line 226 of file transform_convert_mesh_vert_cdata.cc.

Referenced by convert_type_get(), init_proportional_edit(), and init_TransDataContainers().

◆ TransConvertType_NLA

TransConvertTypeInfo blender::ed::transform::TransConvertType_NLA
Initial value:
= {
}
static void special_aftertrans_update__nla(bContext *C, TransInfo *t)
static void recalcData_nla(TransInfo *t)
static void createTransNlaData(bContext *C, TransInfo *t)

Definition at line 995 of file transform_convert_nla.cc.

Referenced by convert_type_get().

◆ TransConvertType_Node

TransConvertTypeInfo blender::ed::transform::TransConvertType_Node
Initial value:
= {
}
static void special_aftertrans_update__node(bContext *C, TransInfo *t)
static void createTransNodeData(bContext *C, TransInfo *t)
static void flushTransNodes(TransInfo *t)

Definition at line 416 of file transform_convert_node.cc.

Referenced by convert_type_get(), init_proportional_edit(), and initTransform().

◆ TransConvertType_Object

TransConvertTypeInfo blender::ed::transform::TransConvertType_Object
Initial value:
= {
0,
}
static void special_aftertrans_update__object(bContext *C, TransInfo *t)
static void recalcData_objects(TransInfo *t)
static void createTransObject(bContext *C, TransInfo *t)

Definition at line 995 of file transform_convert_object.cc.

Referenced by convert_type_get(), create_trans_data(), ElementResize(), and init_proportional_edit().

◆ TransConvertType_ObjectTexSpace

TransConvertTypeInfo blender::ed::transform::TransConvertType_ObjectTexSpace
Initial value:
= {
0,
nullptr,
}
static void createTransTexspace(bContext *, TransInfo *t)
static void recalcData_texspace(TransInfo *t)

Definition at line 116 of file transform_convert_object_texspace.cc.

Referenced by convert_type_get(), and ElementResize().

◆ TransConvertType_PaintCurve

TransConvertTypeInfo blender::ed::transform::TransConvertType_PaintCurve
Initial value:
= {
nullptr,
}
static void createTransPaintCurveVerts(bContext *C, TransInfo *t)
static void flushTransPaintCurve(TransInfo *t)

Definition at line 215 of file transform_convert_paintcurve.cc.

Referenced by convert_type_get().

◆ TransConvertType_Particle

TransConvertTypeInfo blender::ed::transform::TransConvertType_Particle
Initial value:
= {
nullptr,
}
static void recalcData_particles(TransInfo *t)
static void createTransParticleVerts(bContext *, TransInfo *t)

Definition at line 253 of file transform_convert_particle.cc.

Referenced by convert_type_get(), and init_proportional_edit().

◆ TransConvertType_Pose

TransConvertTypeInfo blender::ed::transform::TransConvertType_Pose
Initial value:
= {
0,
}
static void special_aftertrans_update__pose(bContext *C, TransInfo *t)
static void recalcData_pose(TransInfo *t)
static void createTransPose(bContext *, TransInfo *t)

Definition at line 1733 of file transform_convert_armature.cc.

Referenced by convert_type_get(), create_trans_data(), ElementResize(), and init_TransDataContainers().

◆ TransConvertType_Sculpt

TransConvertTypeInfo blender::ed::transform::TransConvertType_Sculpt
Initial value:
= {
0,
}
static void recalcData_sculpt(TransInfo *t)
static void createTransSculpt(bContext *C, TransInfo *t)
static void special_aftertrans_update__sculpt(bContext *C, TransInfo *t)

Definition at line 139 of file transform_convert_sculpt.cc.

Referenced by convert_type_get(), and ElementResize().

◆ TransConvertType_Sequencer

TransConvertTypeInfo blender::ed::transform::TransConvertType_Sequencer

◆ TransConvertType_SequencerImage

◆ TransConvertType_SequencerRetiming

TransConvertTypeInfo blender::ed::transform::TransConvertType_SequencerRetiming

◆ TransConvertType_Tracking

TransConvertTypeInfo blender::ed::transform::TransConvertType_Tracking
Initial value:
= {
}
static void recalcData_tracking(TransInfo *t)
static void special_aftertrans_update__movieclip(bContext *C, TransInfo *t)
static void createTransTrackingData(bContext *C, TransInfo *t)

Definition at line 622 of file transform_convert_tracking.cc.

Referenced by convert_type_get(), transform_modal_item_poll(), and transformEvent().

◆ TransConvertType_TrackingCurves

TransConvertTypeInfo blender::ed::transform::TransConvertType_TrackingCurves
Initial value:

Definition at line 302 of file transform_convert_tracking_curves.cc.

Referenced by convert_type_get().

◆ transform_modes

TransformModeItem blender::ed::transform::transform_modes[]
static
Initial value:
= {
{nullptr, 0},
}
static const char OP_SEQ_SLIDE[]
static void TRANSFORM_OT_rotate_normal(wmOperatorType *ot)
static void TRANSFORM_OT_seq_slide(wmOperatorType *ot)
static void TRANSFORM_OT_shrink_fatten(wmOperatorType *ot)
static void TRANSFORM_OT_translate(wmOperatorType *ot)
static const char OP_NORMAL_ROTATION[]
static const char OP_VERT_CREASE[]
static const char OP_BEND[]
static void TRANSFORM_OT_rotate(wmOperatorType *ot)
static void TRANSFORM_OT_skin_resize(wmOperatorType *ot)
static void TRANSFORM_OT_shear(wmOperatorType *ot)
static void TRANSFORM_OT_bbone_resize(wmOperatorType *ot)
static const char OP_TILT[]
static const char OP_BONE_SIZE[]
static const char OP_EDGE_BWEIGHT[]
static void TRANSFORM_OT_trackball(wmOperatorType *ot)
static void TRANSFORM_OT_tosphere(wmOperatorType *ot)
static const char OP_PUSH_PULL[]
static const char OP_EDGE_SLIDE[]
static const char OP_SHRINK_FATTEN[]
static void TRANSFORM_OT_vert_slide(wmOperatorType *ot)
static const char OP_TRACKBALL[]
static void TRANSFORM_OT_resize(wmOperatorType *ot)
static const char OP_EDGE_CREASE[]
static const char OP_ROTATION[]
static const char OP_SKIN_RESIZE[]
static void TRANSFORM_OT_edge_crease(wmOperatorType *ot)
static const char OP_RESIZE[]
static const char OP_VERT_SLIDE[]
static const char OP_MIRROR[]
static void TRANSFORM_OT_vert_crease(wmOperatorType *ot)
static const char OP_TOSPHERE[]
static const char OP_TRANSLATION[]
static void TRANSFORM_OT_push_pull(wmOperatorType *ot)
static void TRANSFORM_OT_tilt(wmOperatorType *ot)
static void TRANSFORM_OT_edge_bevelweight(wmOperatorType *ot)
static void TRANSFORM_OT_edge_slide(wmOperatorType *ot)
static void TRANSFORM_OT_bend(wmOperatorType *ot)
static const char OP_SHEAR[]
static void TRANSFORM_OT_mirror(wmOperatorType *ot)

Definition at line 99 of file transform_ops.cc.

Referenced by keymap_transform(), transform_modal(), transform_operatortypes(), and transformops_mode().

◆ TransMode_align

TransModeInfo blender::ed::transform::TransMode_align
Initial value:
= {
nullptr,
nullptr,
nullptr,
nullptr,
nullptr,
}
static void initAlign(TransInfo *t, wmOperator *)
static void applyAlign(TransInfo *t)

Definition at line 78 of file transform_mode_align.cc.

Referenced by mode_info_get().

◆ TransMode_baketime

TransModeInfo blender::ed::transform::TransMode_baketime
Initial value:
= {
0,
nullptr,
nullptr,
nullptr,
nullptr,
nullptr,
}
static void initBakeTime(TransInfo *t, wmOperator *)
static void applyBakeTime(TransInfo *t)

Definition at line 132 of file transform_mode_baketime.cc.

Referenced by mode_info_get().

◆ TransMode_bboneresize

TransModeInfo blender::ed::transform::TransMode_bboneresize
Initial value:
= {
0,
nullptr,
nullptr,
nullptr,
nullptr,
nullptr,
}
static void applyBoneSize(TransInfo *t)
static void initBoneSize(TransInfo *t, wmOperator *)

Definition at line 177 of file transform_mode_bbone_resize.cc.

Referenced by mode_info_get().

◆ TransMode_bend

TransModeInfo blender::ed::transform::TransMode_bend
Initial value:
= {
nullptr,
nullptr,
nullptr,
nullptr,
}
static void Bend(TransInfo *t)
static eRedrawFlag handleEventBend(TransInfo *, const wmEvent *event)
static void initBend(TransInfo *t, wmOperator *)

Definition at line 325 of file transform_mode_bend.cc.

Referenced by mode_info_get().

◆ TransMode_bevelweight

TransModeInfo blender::ed::transform::TransMode_bevelweight
Initial value:
= {
nullptr,
nullptr,
nullptr,
nullptr,
nullptr,
}
static void applyBevelWeight(TransInfo *t)
static void initBevelWeight(TransInfo *t, wmOperator *)

Definition at line 169 of file transform_mode_customdata.cc.

Referenced by mode_info_get().

◆ TransMode_boneenvelope

TransModeInfo blender::ed::transform::TransMode_boneenvelope
Initial value:
= {
nullptr,
nullptr,
nullptr,
nullptr,
nullptr,
}
static void applyBoneEnvelope(TransInfo *t)
static void initBoneEnvelope(TransInfo *t, wmOperator *)

Definition at line 99 of file transform_mode_boneenvelope.cc.

Referenced by mode_info_get().

◆ TransMode_boneroll

TransModeInfo blender::ed::transform::TransMode_boneroll
Initial value:
= {
nullptr,
nullptr,
nullptr,
nullptr,
nullptr,
}
static void initBoneRoll(TransInfo *t, wmOperator *)
static void applyBoneRoll(TransInfo *t)

Definition at line 96 of file transform_mode_boneroll.cc.

Referenced by mode_info_get().

◆ TransMode_curveshrinkfatten

TransModeInfo blender::ed::transform::TransMode_curveshrinkfatten
Initial value:
= {
nullptr,
nullptr,
nullptr,
nullptr,
nullptr,
}
static void applyCurveShrinkFatten(TransInfo *t)
static void initCurveShrinkFatten(TransInfo *t, wmOperator *)

Definition at line 143 of file transform_mode_curveshrinkfatten.cc.

Referenced by mode_info_get().

◆ TransMode_edgecrease

TransModeInfo blender::ed::transform::TransMode_edgecrease
Initial value:
= {
nullptr,
nullptr,
nullptr,
nullptr,
nullptr,
}
static void initEgdeCrease(TransInfo *t, wmOperator *)
static void applyCrease(TransInfo *t)

Definition at line 147 of file transform_mode_customdata.cc.

Referenced by mode_info_get().

◆ TransMode_edgeslide

TransModeInfo blender::ed::transform::TransMode_edgeslide
Initial value:
= {
}
static void edge_slide_snap_apply(TransInfo *t, float *value)
static void applyEdgeSlide(TransInfo *t)
float transform_snap_distance_len_squared_fn(TransInfo *, const float p1[3], const float p2[3])
static void initEdgeSlide(TransInfo *t, wmOperator *op)
static void drawEdgeSlide(TransInfo *t)
static eRedrawFlag handleEventEdgeSlide(TransInfo *t, const wmEvent *event)
static void edge_slide_transform_matrix_fn(TransInfo *t, float mat_xform[4][4])

Definition at line 987 of file transform_mode_edge_slide.cc.

Referenced by mode_info_get().

◆ TransMode_gpopacity

TransModeInfo blender::ed::transform::TransMode_gpopacity
Initial value:
= {
nullptr,
nullptr,
nullptr,
nullptr,
nullptr,
}
static void initGPOpacity(TransInfo *t, wmOperator *)
static void applyGPOpacity(TransInfo *t)

Definition at line 108 of file transform_mode_gpopacity.cc.

Referenced by mode_info_get().

◆ TransMode_maskshrinkfatten

TransModeInfo blender::ed::transform::TransMode_maskshrinkfatten
Initial value:
= {
nullptr,
nullptr,
nullptr,
nullptr,
nullptr,
}
static void initMaskShrinkFatten(TransInfo *t, wmOperator *)
static void applyMaskShrinkFatten(TransInfo *t)

Definition at line 130 of file transform_mode_maskshrinkfatten.cc.

Referenced by mode_info_get().

◆ TransMode_mirror

TransModeInfo blender::ed::transform::TransMode_mirror
Initial value:
= {
nullptr,
nullptr,
nullptr,
nullptr,
nullptr,
}
static void initMirror(TransInfo *t, wmOperator *)
static void applyMirror(TransInfo *t)

Definition at line 245 of file transform_mode_mirror.cc.

Referenced by mode_info_get().

◆ TransMode_pushpull

TransModeInfo blender::ed::transform::TransMode_pushpull
Initial value:
= {
0,
nullptr,
nullptr,
nullptr,
nullptr,
nullptr,
}
static void applyPushPull(TransInfo *t)
static void initPushPull(TransInfo *t, wmOperator *)

Definition at line 140 of file transform_mode_push_pull.cc.

Referenced by mode_info_get().

◆ TransMode_resize

TransModeInfo blender::ed::transform::TransMode_resize
Initial value:
= {
nullptr,
nullptr,
}
static float ResizeBetween(TransInfo *t, const float p1[3], const float p2[3])
static void applyResize(TransInfo *t)
static void resize_transform_matrix_fn(TransInfo *t, float mat_xform[4][4])
static void ApplySnapResize(TransInfo *t, float vec[3])
static void initResize(TransInfo *t, wmOperator *op)

Definition at line 344 of file transform_mode_resize.cc.

Referenced by mode_info_get().

◆ TransMode_rotate

TransModeInfo blender::ed::transform::TransMode_rotate
Initial value:
= {
0,
nullptr,
nullptr,
}
static float RotationBetween(TransInfo *t, const float p1[3], const float p2[3])
static void ApplySnapRotation(TransInfo *t, float *value)
static void applyRotation(TransInfo *t)
static void initRotation(TransInfo *t, wmOperator *)
static void applyRotationMatrix(TransInfo *t, float mat_xform[4][4])

Definition at line 386 of file transform_mode_rotate.cc.

Referenced by mode_info_get().

◆ TransMode_rotatenormal

TransModeInfo blender::ed::transform::TransMode_rotatenormal
Initial value:
= {
0,
nullptr,
nullptr,
nullptr,
nullptr,
nullptr,
}
static void applyNormalRotation(TransInfo *t)
static void initNormalRotation(TransInfo *t, wmOperator *)

Definition at line 149 of file transform_mode_edge_rotate_normal.cc.

Referenced by mode_info_get().

◆ TransMode_seqslide

TransModeInfo blender::ed::transform::TransMode_seqslide
Initial value:
= {
0,
nullptr,
nullptr,
nullptr,
nullptr,
}
static void applySeqSlide(TransInfo *t)
static void initSeqSlide(TransInfo *t, wmOperator *op)
void snap_sequencer_apply_seqslide(TransInfo *t, float *vec)

Definition at line 159 of file transform_mode_edge_seq_slide.cc.

Referenced by mode_info_get().

◆ TransMode_shear

TransModeInfo blender::ed::transform::TransMode_shear
Initial value:
= {
nullptr,
nullptr,
nullptr,
nullptr,
}
static eRedrawFlag handleEventShear(TransInfo *t, const wmEvent *event)
static void apply_shear(TransInfo *t)
static void initShear(TransInfo *t, wmOperator *op)

Definition at line 358 of file transform_mode_shear.cc.

Referenced by mode_info_get().

◆ TransMode_shrinkfatten

TransModeInfo blender::ed::transform::TransMode_shrinkfatten
Initial value:
= {
nullptr,
nullptr,
nullptr,
nullptr,
}
static void initShrinkFatten(TransInfo *t, wmOperator *op)
static void applyShrinkFatten(TransInfo *t)
static eRedrawFlag shrinkfatten_handleEvent(TransInfo *t, const wmEvent *event)

Definition at line 233 of file transform_mode_shrink_fatten.cc.

Referenced by mode_info_get().

◆ TransMode_skinresize

TransModeInfo blender::ed::transform::TransMode_skinresize
Initial value:
= {
0,
nullptr,
nullptr,
nullptr,
nullptr,
nullptr,
}
static void initSkinResize(TransInfo *t, wmOperator *)
static void applySkinResize(TransInfo *t)

Definition at line 134 of file transform_mode_skin_resize.cc.

Referenced by mode_info_get().

◆ TransMode_snapsource

TransModeInfo blender::ed::transform::TransMode_snapsource
Initial value:
= {
0,
nullptr,
nullptr,
nullptr,
nullptr,
}
static eRedrawFlag snapsource_handle_event_fn(TransInfo *t, const wmEvent *event)
static void snapsource_transform_fn(TransInfo *t)
void transform_mode_snap_source_init(TransInfo *t, wmOperator *op)

Definition at line 265 of file transform_mode_snapsource.cc.

Referenced by transform_mode_snap_source_init().

◆ TransMode_tilt

TransModeInfo blender::ed::transform::TransMode_tilt
Initial value:
= {
nullptr,
nullptr,
nullptr,
nullptr,
nullptr,
}
static void initTilt(TransInfo *t, wmOperator *)
static void applyTilt(TransInfo *t)

Definition at line 105 of file transform_mode_tilt.cc.

Referenced by mode_info_get().

◆ TransMode_timescale

TransModeInfo blender::ed::transform::TransMode_timescale
Initial value:
= {
nullptr,
nullptr,
nullptr,
}
static void timescale_snap_apply_fn(TransInfo *t, float vec[3])
static void timescale_transform_matrix_fn(TransInfo *t, float mat_xform[4][4])
static void initTimeScale(TransInfo *t, wmOperator *)
static void applyTimeScale(TransInfo *t)

Definition at line 159 of file transform_mode_timescale.cc.

Referenced by mode_info_get().

◆ TransMode_timeslide

TransModeInfo blender::ed::transform::TransMode_timeslide
Initial value:
= {
nullptr,
nullptr,
nullptr,
nullptr,
nullptr,
}
static void initTimeSlide(TransInfo *t, wmOperator *)
static void applyTimeSlide(TransInfo *t)

Definition at line 231 of file transform_mode_timeslide.cc.

Referenced by mode_info_get().

◆ TransMode_timetranslate

TransModeInfo blender::ed::transform::TransMode_timetranslate
Initial value:
= {
0,
nullptr,
nullptr,
nullptr,
nullptr,
nullptr,
}
static void applyTimeTranslate(TransInfo *t)
static void initTimeTranslate(TransInfo *t, wmOperator *)

Definition at line 153 of file transform_mode_timetranslate.cc.

Referenced by mode_info_get().

◆ TransMode_tosphere

TransModeInfo blender::ed::transform::TransMode_tosphere
Initial value:
= {
nullptr,
nullptr,
nullptr,
nullptr,
nullptr,
}
static void initToSphere(TransInfo *t, wmOperator *)
static void applyToSphere(TransInfo *t)

Definition at line 224 of file transform_mode_tosphere.cc.

Referenced by mode_info_get().

◆ TransMode_trackball

TransModeInfo blender::ed::transform::TransMode_trackball
Initial value:
= {
nullptr,
nullptr,
nullptr,
nullptr,
}
static void initTrackball(TransInfo *t, wmOperator *)
static void applyTrackball(TransInfo *t)
static void applyTrackballMatrix(TransInfo *t, float mat_xform[4][4])

Definition at line 179 of file transform_mode_trackball.cc.

Referenced by mode_info_get().

◆ TransMode_translate

TransModeInfo blender::ed::transform::TransMode_translate
Initial value:
= {
0,
nullptr,
nullptr,
}
static void applyTranslation(TransInfo *t)
static void applyTranslationMatrix(TransInfo *t, float mat_xform[4][4])
static void ApplySnapTranslation(TransInfo *t, float vec[3])
static void initTranslation(TransInfo *t, wmOperator *)

Definition at line 639 of file transform_mode_translate.cc.

Referenced by mode_info_get(), and snap_target_view3d_fn().

◆ TransMode_vertcrease

TransModeInfo blender::ed::transform::TransMode_vertcrease
Initial value:
= {
nullptr,
nullptr,
nullptr,
nullptr,
nullptr,
}
static void initVertCrease(TransInfo *t, wmOperator *)

Definition at line 158 of file transform_mode_customdata.cc.

Referenced by mode_info_get().

◆ TransMode_vertslide

TransModeInfo blender::ed::transform::TransMode_vertslide
Initial value:
= {
}
static void vert_slide_snap_apply(TransInfo *t, float *value)
static eRedrawFlag handleEventVertSlide(TransInfo *t, const wmEvent *event)
static void vert_slide_transform_matrix_fn(TransInfo *t, float mat_xform[4][4])
static void initVertSlide(TransInfo *t, wmOperator *op)
static void drawVertSlide(TransInfo *t)
static void applyVertSlide(TransInfo *t)

Definition at line 677 of file transform_mode_vert_slide.cc.

Referenced by mode_info_get().

◆ VecOne

const float blender::ed::transform::VecOne[3] = {1, 1, 1}
static

◆ VecZero

const float blender::ed::transform::VecZero[3] = {0, 0, 0}
static

Definition at line 54 of file transform_ops.cc.

Referenced by TRANSFORM_OT_resize().