Blender V4.3
transform.hh
Go to the documentation of this file.
1/* SPDX-FileCopyrightText: 2001-2002 NaN Holding BV. All rights reserved.
2 *
3 * SPDX-License-Identifier: GPL-2.0-or-later */
4
9#pragma once
10
12
13#include "ED_numinput.hh"
14#include "ED_transform.hh"
15#include "ED_view3d.hh"
16
17#include "DNA_listBase.h"
18#include "DNA_object_enums.h"
19#include "DNA_scene_types.h"
20
21#include "DEG_depsgraph.hh"
22
23#include "transform_data.hh"
24
25/* -------------------------------------------------------------------- */
29struct ARegion;
30struct Depsgraph;
31struct NumInput;
32struct Object;
33struct RNG;
34struct ReportList;
35struct Scene;
36struct ScrArea;
40struct TransInfo;
41struct TransModeInfo;
42struct TransSeqSnapData;
43struct TransSnap;
44struct ViewLayer;
45struct ViewOpsData;
46struct bContext;
47struct wmEvent;
48struct wmKeyConfig;
49struct wmKeyMap;
50struct wmMsgBus;
51struct wmOperator;
52struct wmTimer;
53
56/* -------------------------------------------------------------------- */
63
64 /* These are similar to TransInfo::data_type. */
65 CTX_CAMERA = (1 << 0),
66 CTX_CURSOR = (1 << 1),
67 CTX_EDGE_DATA = (1 << 2),
69 CTX_MASK = (1 << 4),
70 CTX_MOVIECLIP = (1 << 5),
71 CTX_OBJECT = (1 << 6),
72 CTX_PAINT_CURVE = (1 << 7),
73 CTX_POSE_BONE = (1 << 8),
76
77 CTX_NO_PET = (1 << 11),
78 CTX_AUTOCONFIRM = (1 << 12),
85};
87
88
89enum eTFlag {
91 T_EDIT = 1 << 0,
93 T_POINTS = 1 << 1,
96 T_NULL_ONE = 1 << 3,
97
98 T_PROP_EDIT = 1 << 4,
101
102 T_V3D_ALIGN = 1 << 7,
104 T_2D_EDIT = 1 << 8,
105 T_CLIP_UV = 1 << 9,
106
108 T_AUTOIK = 1 << 10,
109
111 T_NO_MIRROR = 1 << 11,
112
116
118 T_MODAL = 1 << 13,
119
121 T_NO_PROJECT = 1 << 14,
122
124
127
130
132
134
136 T_AUTOMERGE = 1 << 20,
138 T_AUTOSPLIT = 1 << 21,
139
142
145
147 T_NO_GIZMO = 1 << 24,
148
150
153};
155
156#define T_ALL_RESTRICTIONS (T_NO_CONSTRAINT | T_NULL_ONE)
157#define T_PROP_EDIT_ALL (T_PROP_EDIT | T_PROP_CONNECTED | T_PROP_PROJECTED)
158
171
172
173enum eTSnap {
176 /* Special flag for snap to grid. */
179};
181
182
184 DIR_GLOBAL_X = (1 << 0),
185 DIR_GLOBAL_Y = (1 << 1),
186 DIR_GLOBAL_Z = (1 << 2),
187};
189
190
193 CON_APPLY = 1 << 0,
195 CON_AXIS0 = 1 << 1,
196 CON_AXIS1 = 1 << 2,
197 CON_AXIS2 = 1 << 3,
198 CON_SELECT = 1 << 4,
200 CON_NOFLIP = 1 << 5,
201 CON_USER = 1 << 6,
202};
204
205
212
220
221
231
237
240/* -------------------------------------------------------------------- */
246enum {
264
265 /* 18 and 19 used by number-input, defined in `ED_numinput.hh`. */
266 // NUM_MODAL_INCREMENT_UP = 18,
267 // NUM_MODAL_INCREMENT_DOWN = 19,
268
273
276
281
284
286
290
293
295};
296
299/* -------------------------------------------------------------------- */
305 float co[3];
306};
307
308struct TransSnap {
309 /* Snapping options stored as flags. */
311 /* Method(s) used for snapping source to target. */
313 /* Part of source to snap to target. */
315 /* Determines which objects are possible target. */
319 /* Snapped Element Type (currently for objects only). */
322 /* For independent snapping in different directions (currently used only by VSE preview). */
325 float snap_source[3];
327 float snap_target[3];
328 float snapNormal[3];
332 double last;
333 void (*snap_target_fn)(TransInfo *, float *);
335
339 union {
342 };
343};
344
345struct TransCon {
347 char text[50];
349 float pmtx[3][3];
352 void (*drawExtra)(TransInfo *t);
353
354 /* NOTE: if 'tc' is NULL, 'td' must also be NULL.
355 * For constraints that needs to draw differently from the other
356 * uses this instead of the generic draw function. */
357
360 void (*applyVec)(const TransInfo *t,
361 const TransDataContainer *tc,
362 const TransData *td,
363 const float in[3],
364 float r_out[3]);
366 void (*applySize)(const TransInfo *t,
367 const TransDataContainer *tc,
368 const TransData *td,
369 float r_smat[3][3]);
371 void (*applyRot)(const TransInfo *t,
372 const TransDataContainer *tc,
373 const TransData *td,
374 float r_axis[3],
375 float *r_angle);
376};
377
379 void (*apply)(TransInfo *t, MouseInput *mi, const double mval[2], float output[3]);
380 void (*post)(TransInfo *t, float values[3]);
381
385 float factor;
388
390 void *data;
391
401 struct {
402 double prev[2];
403 double accum[2];
405};
406
408 void *data;
410 unsigned int use_free : 1;
411};
412
427#define TRANS_CUSTOM_DATA_ELEM_MAX (sizeof(TransCustomDataContainer) / sizeof(TransCustomData))
428
452
459
461
462 float mat[4][4];
463 float imat[4][4];
465 float mat3[3][3];
466 float imat3[3][3];
467
469 float mat3_unit[3][3];
470
473
475 float center_local[3];
476
482
489
491 union {
492 struct {
496 };
497 /* For easy checking. */
499 };
500
502};
503
504struct TransInfo {
507
511
514
519
532
535
538
541
544
548 char proptext[20];
553 float aspect[3];
557 float center2d[2];
559 short idx_max;
561 float snap[2];
563 float snap_spatial[3];
571
573 float viewmat[4][4];
575 float viewinv[4][4];
577 float persmat[4][4];
578 float persinv[4][4];
579 short persp;
580 short around;
585
587 float vec[3];
589 float mat[3][3];
590
592 float spacemtx[3][3];
593 float spacemtx_inv[3][3];
595 char spacename[64];
596
597 /*************** NEW STUFF *********************/
605
607
608 struct {
609 short type;
610 float matrix[3][3];
611 } orient[3];
612
614
620
622
624 float values[4];
625
628
632 float values_final[4];
633
636
637 /* Axis members for modes that use an axis separate from the orientation (rotate & shear). */
638
643
646
647 void *view;
653 Depsgraph *depsgraph;
665 float zfac;
669
672
674
677
678 /* Needed for sculpt transform. */
679 const char *undo_name;
680};
681
684/* -------------------------------------------------------------------- */
693bool initTransform(bContext *C, TransInfo *t, wmOperator *op, const wmEvent *event, int mode);
698int transformEvent(TransInfo *t, wmOperator *op, const wmEvent *event);
701
703void setTransformViewAspect(TransInfo *t, float r_aspect[3]);
704void convertViewVec(TransInfo *t, float r_vec[3], double dx, double dy);
705void projectIntViewEx(TransInfo *t, const float vec[3], int adr[2], eV3DProjTest flag);
706void projectIntView(TransInfo *t, const float vec[3], int adr[2]);
707void projectFloatViewEx(TransInfo *t, const float vec[3], float adr[2], eV3DProjTest flag);
708void projectFloatView(TransInfo *t, const float vec[3], float adr[2]);
709
710void applyAspectRatio(TransInfo *t, float vec[2]);
711void removeAspectRatio(TransInfo *t, float vec[2]);
712
717
721bool transform_apply_matrix(TransInfo *t, float mat[4][4]);
722void transform_final_value_get(const TransInfo *t, float *value, int value_num);
723
726/* -------------------------------------------------------------------- */
731void transform_view_vector_calc(const TransInfo *t, const float focus[3], float r_vec[3]);
732bool transdata_check_local_islands(TransInfo *t, short around);
733
736/* -------------------------------------------------------------------- */
756
758 MouseInput *mi,
759 const blender::float2 &center,
760 const blender::float2 &mval,
761 bool precision);
763void applyMouseInput(TransInfo *t, MouseInput *mi, const blender::float2 &mval, float output[3]);
764void transform_input_update(TransInfo *t, const float fac);
767
768void setCustomPoints(TransInfo *t, MouseInput *mi, const int mval_start[2], const int mval_end[2]);
770void setInputPostFct(MouseInput *mi, void (*post)(TransInfo *t, float values[3]));
771
774/* -------------------------------------------------------------------- */
785void initTransInfo(bContext *C, TransInfo *t, wmOperator *op, const wmEvent *event);
794void postTrans(bContext *C, TransInfo *t);
800
801/* DRAWLINE options flags. */
802#define DRAWLIGHT 1
803
806
808void calculateCenterLocal(TransInfo *t, const float center_global[3]);
809
816
817/* API functions for getting center points. */
818void calculateCenterBound(TransInfo *t, float r_center[3]);
819void calculateCenterMedian(TransInfo *t, float r_center[3]);
820void calculateCenterCursor(TransInfo *t, float r_center[3]);
821void calculateCenterCursor2D(TransInfo *t, float r_center[2]);
822void calculateCenterCursorGraph2D(TransInfo *t, float r_center[2]);
826bool calculateCenterActive(TransInfo *t, bool select_only, float r_center[3]);
827
829
835void transform_data_ext_rotate(TransData *td, float mat[3][3], bool use_drot);
836
838
840
841/* TODO: move to: `transform_query.c`. */
843
844#define TRANSFORM_SNAP_MAX_PX 100.0f
845#define TRANSFORM_DIST_INVALID -FLT_MAX
846
847/* Temp macros. */
848
849#define TRANS_DATA_CONTAINER_FIRST_OK(t) (&(t)->data_container[0])
850/* For cases we _know_ there is only one handle. */
851#define TRANS_DATA_CONTAINER_FIRST_SINGLE(t) \
852 (BLI_assert((t)->data_container_len == 1), (&(t)->data_container[0]))
853
854#define FOREACH_TRANS_DATA_CONTAINER(t, th) \
855 for (TransDataContainer *tc = (t)->data_container, \
856 *tc_end = (t)->data_container + (t)->data_container_len; \
857 th != tc_end; \
858 th++)
859
860#define FOREACH_TRANS_DATA_CONTAINER_INDEX(t, th, i) \
861 for (TransDataContainer *tc = ((i = 0), (t)->data_container), \
862 *tc_end = (t)->data_container + (t)->data_container_len; \
863 th != tc_end; \
864 th++, i++)
865
unsigned int uint
#define ENUM_OPERATORS(_type, _max)
These structs are the foundation for all linked lists in the library system.
eSnapSourceOP
eSnapTargetOP
eTfmMode
eV3DProjTest
Definition ED_view3d.hh:265
blender::float2 imval
Definition transform.hh:383
bool use_virtual_mval
Definition transform.hh:400
double accum[2]
Definition transform.hh:403
void(* post)(TransInfo *t, float values[3])
Definition transform.hh:380
blender::float2 center
Definition transform.hh:384
double prev[2]
Definition transform.hh:402
struct MouseInput::@558 virtual_mval
float precision_factor
Definition transform.hh:386
float factor
Definition transform.hh:385
void * data
Definition transform.hh:390
bool precision
Definition transform.hh:387
Definition rand.cc:33
void(* applySize)(const TransInfo *t, const TransDataContainer *tc, const TransData *td, float r_smat[3][3])
Definition transform.hh:366
void(* applyRot)(const TransInfo *t, const TransDataContainer *tc, const TransData *td, float r_axis[3], float *r_angle)
Definition transform.hh:371
float pmtx[3][3]
Definition transform.hh:349
void(* applyVec)(const TransInfo *t, const TransDataContainer *tc, const TransData *td, const float in[3], float r_out[3])
Definition transform.hh:360
eTConstraint mode
Definition transform.hh:351
void(* drawExtra)(TransInfo *t)
Definition transform.hh:352
TransCustomData type
Definition transform.hh:425
TransCustomData mode
Definition transform.hh:423
TransCustomData first_elem
Definition transform.hh:423
unsigned int use_free
Definition transform.hh:410
void(* free_cb)(TransInfo *, TransDataContainer *tc, TransCustomData *custom_data)
Definition transform.hh:409
float mat3_unit[3][3]
Definition transform.hh:469
TransCustomDataContainer custom
Definition transform.hh:501
float mat3[3][3]
Definition transform.hh:465
float mat[4][4]
Definition transform.hh:462
float center_local[3]
Definition transform.hh:475
TransData * data
Definition transform.hh:445
TransDataExtension * data_ext
Definition transform.hh:447
float imat3[3][3]
Definition transform.hh:466
TransDataMirror * data_mirror
Definition transform.hh:451
float imat[4][4]
Definition transform.hh:463
TransData2D * data_2d
Definition transform.hh:449
float snap_spatial_precision
Definition transform.hh:568
struct TransInfo::@565 orient[3]
eTfmMode mode
Definition transform.hh:517
short around
Definition transform.hh:580
TransModeInfo * mode_info
Definition transform.hh:518
wmMsgBus * mbus
Definition transform.hh:650
const char * undo_name
Definition transform.hh:679
void * view
Definition transform.hh:647
char spacetype
Definition transform.hh:582
float viewinv[4][4]
Definition transform.hh:575
int orient_axis
Definition transform.hh:640
short persp
Definition transform.hh:579
ViewOpsData * vod
Definition transform.hh:673
float snap[2]
Definition transform.hh:561
eRedrawFlag redraw
Definition transform.hh:529
int data_len_all
Definition transform.hh:510
float spacemtx_inv[3][3]
Definition transform.hh:593
wmTimer * animtimer
Definition transform.hh:657
float snap_spatial[3]
Definition transform.hh:563
float prop_size
Definition transform.hh:546
void * draw_handle_cursor
Definition transform.hh:668
float center2d[2]
Definition transform.hh:557
char frame_side
Definition transform.hh:570
ReportList * reports
Definition transform.hh:661
char proptext[20]
Definition transform.hh:548
TransSnap tsnap
Definition transform.hh:537
float zfac
Definition transform.hh:665
short idx_max
Definition transform.hh:559
float values_modal_offset[4]
Definition transform.hh:627
eTState state
Definition transform.hh:527
ToolSettings * settings
Definition transform.hh:656
eTModifier modifiers
Definition transform.hh:525
NumInput num
Definition transform.hh:540
TransCustomDataContainer custom
Definition transform.hh:676
float aspect[3]
Definition transform.hh:553
short prop_mode
Definition transform.hh:621
Scene * scene
Definition transform.hh:654
eTOType orient_curr
Definition transform.hh:613
float vec[3]
Definition transform.hh:587
eTHelpline helpline
Definition transform.hh:531
bool remove_on_cancel
Definition transform.hh:645
ViewLayer * view_layer
Definition transform.hh:655
int data_container_len
Definition transform.hh:506
eTFlag flag
Definition transform.hh:523
ARegion * region
Definition transform.hh:652
MouseInput mouse
Definition transform.hh:543
float persmat[4][4]
Definition transform.hh:577
RNG * rng
Definition transform.hh:671
int orient_type_mask
Definition transform.hh:619
short obedit_type
Definition transform.hh:584
TransDataContainer * data_container
Definition transform.hh:505
float viewmat[4][4]
Definition transform.hh:573
char spacename[64]
Definition transform.hh:595
void * draw_handle_pixel
Definition transform.hh:667
Depsgraph * depsgraph
Definition transform.hh:653
float values_final[4]
Definition transform.hh:632
bool is_orient_default_overwrite
Definition transform.hh:606
float mat[3][3]
Definition transform.hh:589
TransCon con
Definition transform.hh:534
bContext * context
Definition transform.hh:649
bool is_launch_event_drag
Definition transform.hh:604
wmKeyMap * keymap
Definition transform.hh:659
short launch_event
Definition transform.hh:599
float center_global[3]
Definition transform.hh:555
blender::float2 mval
Definition transform.hh:663
float spacemtx[3][3]
Definition transform.hh:592
int orient_axis_ortho
Definition transform.hh:642
float values_inside_constraints[4]
Definition transform.hh:635
TransConvertTypeInfo * data_type
Definition transform.hh:513
eTContext options
Definition transform.hh:521
float persinv[4][4]
Definition transform.hh:578
ScrArea * area
Definition transform.hh:651
short type
Definition transform.hh:609
void * draw_handle_view
Definition transform.hh:666
TransSnapPoint * next
Definition transform.hh:304
TransSnapPoint * prev
Definition transform.hh:304
TransSeqSnapData * seq_context
Definition transform.hh:341
void(* snap_target_fn)(TransInfo *, float *)
Definition transform.hh:333
float snapNormal[3]
Definition transform.hh:328
eSnapFlag flag
Definition transform.hh:310
TransSnapPoint * selectedPoint
Definition transform.hh:331
eTSnap status
Definition transform.hh:318
ListBase points
Definition transform.hh:330
SnapObjectContext * object_context
Definition transform.hh:340
float snap_target[3]
Definition transform.hh:327
eSnapSourceOP source_operation
Definition transform.hh:314
char snapNodeBorder
Definition transform.hh:329
float snap_source[3]
Definition transform.hh:325
void(* snap_source_fn)(TransInfo *)
Definition transform.hh:334
eSnapMode mode
Definition transform.hh:312
double last
Definition transform.hh:332
short face_nearest_steps
Definition transform.hh:317
eSnapMode target_type
Definition transform.hh:321
eSnapMode source_type
Definition transform.hh:320
eSnapTargetOP target_operation
Definition transform.hh:316
eSnapDir direction
Definition transform.hh:323
void calculateCenter(TransInfo *t)
void postTrans(bContext *C, TransInfo *t)
void transform_input_virtual_mval_reset(TransInfo *t)
MouseInputMode
Definition transform.hh:740
@ INPUT_TRACKBALL
Definition transform.hh:748
@ INPUT_VERTICAL_ABSOLUTE
Definition transform.hh:752
@ INPUT_SPRING
Definition transform.hh:743
@ INPUT_VECTOR
Definition transform.hh:742
@ INPUT_ANGLE_SPRING
Definition transform.hh:747
@ INPUT_CUSTOM_RATIO_FLIP
Definition transform.hh:754
@ INPUT_HORIZONTAL_RATIO
Definition transform.hh:749
@ INPUT_VERTICAL_RATIO
Definition transform.hh:751
@ INPUT_CUSTOM_RATIO
Definition transform.hh:753
@ INPUT_HORIZONTAL_ABSOLUTE
Definition transform.hh:750
@ INPUT_SPRING_DELTA
Definition transform.hh:745
@ INPUT_NONE
Definition transform.hh:741
@ INPUT_ANGLE
Definition transform.hh:746
@ INPUT_SPRING_FLIP
Definition transform.hh:744
bool calculateCenterActive(TransInfo *t, bool select_only, float r_center[3])
void transform_data_ext_rotate(TransData *td, float mat[3][3], bool use_drot)
eTSnap
Definition transform.hh:173
@ SNAP_TARGET_FOUND
Definition transform.hh:177
@ SNAP_RESETTED
Definition transform.hh:174
@ SNAP_SOURCE_FOUND
Definition transform.hh:175
@ SNAP_MULTI_POINTS
Definition transform.hh:178
void applyMouseInput(TransInfo *t, MouseInput *mi, const blender::float2 &mval, float output[3])
void initTransInfo(bContext *C, TransInfo *t, wmOperator *op, const wmEvent *event)
void projectIntViewEx(TransInfo *t, const float vec[3], int adr[2], eV3DProjTest flag)
eTConstraint
Definition transform.hh:191
@ CON_NOFLIP
Definition transform.hh:200
@ CON_APPLY
Definition transform.hh:193
@ CON_SELECT
Definition transform.hh:198
@ CON_AXIS1
Definition transform.hh:196
@ CON_USER
Definition transform.hh:201
@ CON_AXIS0
Definition transform.hh:195
@ CON_AXIS2
Definition transform.hh:197
void calculateCenterCursor2D(TransInfo *t, float r_center[2])
eTContext
Definition transform.hh:61
@ CTX_MOVIECLIP
Definition transform.hh:70
@ CTX_PAINT_CURVE
Definition transform.hh:72
@ CTX_AUTOCONFIRM
Definition transform.hh:78
@ CTX_SEQUENCER_IMAGE
Definition transform.hh:75
@ CTX_CURSOR
Definition transform.hh:66
@ CTX_OBMODE_XFORM_OBDATA
Definition transform.hh:80
@ CTX_POSE_BONE
Definition transform.hh:73
@ CTX_OBMODE_XFORM_SKIP_CHILDREN
Definition transform.hh:82
@ CTX_OBJECT
Definition transform.hh:71
@ CTX_EDGE_DATA
Definition transform.hh:67
@ CTX_NONE
Definition transform.hh:62
@ CTX_GPENCIL_STROKES
Definition transform.hh:68
@ CTX_MASK
Definition transform.hh:69
@ CTX_TEXTURE_SPACE
Definition transform.hh:74
@ CTX_VIEW2D_EDGE_PAN
Definition transform.hh:84
@ CTX_NO_PET
Definition transform.hh:77
@ CTX_CAMERA
Definition transform.hh:65
eTModifier
Definition transform.hh:160
@ MOD_SNAP_INVERT
Definition transform.hh:164
@ MOD_EDIT_SNAP_SOURCE
Definition transform.hh:168
@ MOD_CONSTRAINT_SELECT_AXIS
Definition transform.hh:161
@ MOD_NODE_ATTACH
Definition transform.hh:166
@ MOD_PRECISION
Definition transform.hh:162
@ MOD_SNAP_FORCED
Definition transform.hh:167
@ MOD_CONSTRAINT_SELECT_PLANE
Definition transform.hh:165
@ MOD_SNAP
Definition transform.hh:163
bool checkUseAxisMatrix(TransInfo *t)
void transformApply(bContext *C, TransInfo *t)
void resetTransRestrictions(TransInfo *t)
void setCustomPointsFromDirection(TransInfo *t, MouseInput *mi, const blender::float2 &dir)
void calculateCenter2D(TransInfo *t)
void initMouseInput(TransInfo *t, MouseInput *mi, const blender::float2 &center, const blender::float2 &mval, bool precision)
void transformViewUpdate(TransInfo *t)
void calculateCenterCursorGraph2D(TransInfo *t, float r_center[2])
eRedrawFlag
Definition transform.hh:214
@ TREDRAW_NOTHING
Definition transform.hh:215
@ TREDRAW_SOFT
Definition transform.hh:216
@ TREDRAW_HARD
Definition transform.hh:217
void freeCustomNormalArray(TransInfo *t, TransDataContainer *tc, TransCustomData *custom_data)
void calculateCenterMedian(TransInfo *t, float r_center[3])
@ TFM_MODAL_EDIT_SNAP_SOURCE_OFF
Definition transform.hh:292
@ TFM_MODAL_AUTOIK_LEN_INC
Definition transform.hh:271
@ TFM_MODAL_PROPSIZE
Definition transform.hh:278
@ TFM_MODAL_AXIS_Y
Definition transform.hh:256
@ TFM_MODAL_RESIZE
Definition transform.hh:251
@ TFM_MODAL_AUTOCONSTRAINT
Definition transform.hh:282
@ TFM_MODAL_CONFIRM
Definition transform.hh:248
@ TFM_MODAL_ADD_SNAP
Definition transform.hh:262
@ TFM_MODAL_SNAP_TOGGLE
Definition transform.hh:254
@ TFM_MODAL_PLANE_X
Definition transform.hh:258
@ TFM_MODAL_TRACKBALL
Definition transform.hh:288
@ TFM_MODAL_REMOVE_SNAP
Definition transform.hh:263
@ TFM_MODAL_ROTATE_NORMALS
Definition transform.hh:289
@ TFM_MODAL_PASSTHROUGH_NAVIGATE
Definition transform.hh:294
@ TFM_MODAL_CONS_OFF
Definition transform.hh:261
@ TFM_MODAL_AUTOCONSTRAINTPLANE
Definition transform.hh:283
@ TFM_MODAL_VERT_EDGE_SLIDE
Definition transform.hh:287
@ TFM_MODAL_AXIS_X
Definition transform.hh:255
@ TFM_MODAL_ROTATE
Definition transform.hh:250
@ TFM_MODAL_AUTOIK_LEN_DEC
Definition transform.hh:272
@ TFM_MODAL_PROPSIZE_UP
Definition transform.hh:269
@ TFM_MODAL_PLANE_Y
Definition transform.hh:259
@ TFM_MODAL_SNAP_INV_ON
Definition transform.hh:252
@ TFM_MODAL_AXIS_Z
Definition transform.hh:257
@ TFM_MODAL_INSERTOFS_TOGGLE_DIR
Definition transform.hh:280
@ TFM_MODAL_PLANE_Z
Definition transform.hh:260
@ TFM_MODAL_NODE_ATTACH_OFF
Definition transform.hh:275
@ TFM_MODAL_CANCEL
Definition transform.hh:247
@ TFM_MODAL_NODE_ATTACH_ON
Definition transform.hh:274
@ TFM_MODAL_PROPSIZE_DOWN
Definition transform.hh:270
@ TFM_MODAL_PRECISION
Definition transform.hh:285
@ TFM_MODAL_TRANSLATE
Definition transform.hh:249
@ TFM_MODAL_SNAP_INV_OFF
Definition transform.hh:253
@ TFM_MODAL_EDIT_SNAP_SOURCE_ON
Definition transform.hh:291
void transform_input_update(TransInfo *t, const float fac)
void setTransformViewAspect(TransInfo *t, float r_aspect[3])
eSnapDir
Definition transform.hh:183
@ DIR_GLOBAL_Y
Definition transform.hh:185
@ DIR_GLOBAL_X
Definition transform.hh:184
@ DIR_GLOBAL_Z
Definition transform.hh:186
eTOType
Definition transform.hh:232
@ O_DEFAULT
Definition transform.hh:233
@ O_SCENE
Definition transform.hh:234
@ O_SET
Definition transform.hh:235
eTFlag
Definition transform.hh:89
@ T_OVERRIDE_CENTER
Definition transform.hh:129
@ T_RELEASE_CONFIRM
Definition transform.hh:123
@ T_CLNOR_REBUILD
Definition transform.hh:133
@ T_MODAL
Definition transform.hh:118
@ T_AUTOSPLIT
Definition transform.hh:138
@ T_AUTOIK
Definition transform.hh:108
@ T_PROP_CONNECTED
Definition transform.hh:99
@ T_ALT_TRANSFORM
Definition transform.hh:126
@ T_NO_PROJECT
Definition transform.hh:121
@ T_AUTOMERGE
Definition transform.hh:136
@ T_NO_MIRROR
Definition transform.hh:111
@ T_PROP_EDIT
Definition transform.hh:98
@ T_INPUT_IS_VALUES_FINAL
Definition transform.hh:115
@ T_V3D_ALIGN
Definition transform.hh:102
@ T_2D_EDIT
Definition transform.hh:104
@ T_NO_CURSOR_WRAP
Definition transform.hh:144
@ T_DRAW_SNAP_SOURCE
Definition transform.hh:149
@ T_POINTS
Definition transform.hh:93
@ T_NO_GIZMO
Definition transform.hh:147
@ T_EVENT_DRAG_START
Definition transform.hh:141
@ T_NO_CONSTRAINT
Definition transform.hh:95
@ T_NULL_ONE
Definition transform.hh:96
@ T_CLIP_UV
Definition transform.hh:105
@ T_EDIT
Definition transform.hh:91
@ T_MODAL_CURSOR_SET
Definition transform.hh:131
@ T_PROP_PROJECTED
Definition transform.hh:100
@ T_DUPLICATED_KEYFRAMES
Definition transform.hh:152
void calculateCenterCursor(TransInfo *t, float r_center[3])
Object * transform_object_deform_pose_armature_get(const TransInfo *t, Object *ob)
void resetTransModal(TransInfo *t)
bool transdata_check_local_islands(TransInfo *t, short around)
void saveTransform(bContext *C, TransInfo *t, wmOperator *op)
void restoreTransObjects(TransInfo *t)
void projectFloatViewEx(TransInfo *t, const float vec[3], float adr[2], eV3DProjTest flag)
eTState
Definition transform.hh:206
@ TRANS_CONFIRM
Definition transform.hh:209
@ TRANS_STARTING
Definition transform.hh:207
@ TRANS_RUNNING
Definition transform.hh:208
@ TRANS_CANCEL
Definition transform.hh:210
bool initTransform(bContext *C, TransInfo *t, wmOperator *op, const wmEvent *event, int mode)
void convertViewVec(TransInfo *t, float r_vec[3], double dx, double dy)
void removeAspectRatio(TransInfo *t, float vec[2])
wmKeyMap * transform_modal_keymap(wmKeyConfig *keyconf)
void calculatePropRatio(TransInfo *t)
bool transform_apply_matrix(TransInfo *t, float mat[4][4])
void applyTransObjects(TransInfo *t)
void setTransformViewMatrices(TransInfo *t)
void transform_final_value_get(const TransInfo *t, float *value, int value_num)
void setInputPostFct(MouseInput *mi, void(*post)(TransInfo *t, float values[3]))
void transform_input_reset(TransInfo *t, const blender::float2 &mval)
void calculateCenterLocal(TransInfo *t, const float center_global[3])
void freeTransCustomDataForMode(TransInfo *t)
void projectFloatView(TransInfo *t, const float vec[3], float adr[2])
void setCustomPoints(TransInfo *t, MouseInput *mi, const int mval_start[2], const int mval_end[2])
void initMouseInputMode(TransInfo *t, MouseInput *mi, MouseInputMode mode)
void transform_view_vector_calc(const TransInfo *t, const float focus[3], float r_vec[3])
int transformEvent(TransInfo *t, wmOperator *op, const wmEvent *event)
eTHelpline
Definition transform.hh:222
@ HLP_HARROW
Definition transform.hh:226
@ HLP_ANGLE
Definition transform.hh:225
@ HLP_SPRING
Definition transform.hh:224
@ HLP_CARROW
Definition transform.hh:228
@ HLP_TRACKBALL
Definition transform.hh:229
@ HLP_NONE
Definition transform.hh:223
@ HLP_VARROW
Definition transform.hh:227
void projectIntView(TransInfo *t, const float vec[3], int adr[2])
void applyAspectRatio(TransInfo *t, float vec[2])
void calculateCenterBound(TransInfo *t, float r_center[3])
int transformEnd(bContext *C, TransInfo *t)
uint8_t flag
Definition wm_window.cc:138