90 #define MAN_TRANS_X (1 << 0)
91 #define MAN_TRANS_Y (1 << 1)
92 #define MAN_TRANS_Z (1 << 2)
93 #define MAN_TRANS_C (MAN_TRANS_X | MAN_TRANS_Y | MAN_TRANS_Z)
95 #define MAN_ROT_X (1 << 3)
96 #define MAN_ROT_Y (1 << 4)
97 #define MAN_ROT_Z (1 << 5)
98 #define MAN_ROT_C (MAN_ROT_X | MAN_ROT_Y | MAN_ROT_Z)
100 #define MAN_SCALE_X (1 << 8)
101 #define MAN_SCALE_Y (1 << 9)
102 #define MAN_SCALE_Z (1 << 10)
103 #define MAN_SCALE_C (MAN_SCALE_X | MAN_SCALE_Y | MAN_SCALE_Z)
126 #define MAN_AXIS_RANGE_TRANS_START MAN_AXIS_TRANS_X
127 #define MAN_AXIS_RANGE_TRANS_END (MAN_AXIS_TRANS_ZX + 1)
134 #define MAN_AXIS_RANGE_ROT_START MAN_AXIS_ROT_X
135 #define MAN_AXIS_RANGE_ROT_END (MAN_AXIS_ROT_T + 1)
144 #define MAN_AXIS_RANGE_SCALE_START MAN_AXIS_SCALE_X
145 #define MAN_AXIS_RANGE_SCALE_END (MAN_AXIS_SCALE_ZX + 1)
180 #define MAN_ITER_AXES_BEGIN(axis, axis_idx) \
184 for (axis_idx = 0; axis_idx < MAN_AXIS_LAST; axis_idx++) { \
185 axis = gizmo_get_axis_from_index(ggd, axis_idx);
187 #define MAN_ITER_AXES_END \
195 return ggd->
gizmos[axis_idx];
259 bool is_plane =
false;
263 float idot_axis = idot[aidx_norm];
265 idot_axis = 1.0f - idot_axis;
336 const float alpha = 0.6f;
337 const float alpha_hi = 1.0f;
346 bool is_plane =
false;
350 if (axis_idx_norm < 3) {
353 float idot_axis = idot[axis_idx_norm];
355 idot_axis = 1.0f - idot_axis;
357 alpha_fac = ((idot_axis > idot_max) ?
359 (idot_axis < idot_min) ? 0.0f :
360 ((idot_axis - idot_min) / (idot_max - idot_min)));
399 r_col[3] =
alpha * alpha_fac;
400 r_col_hi[3] = alpha_hi * alpha_fac;
425 r_axis[0] = r_axis[1] = 1;
429 r_axis[1] = r_axis[2] = 1;
433 r_axis[2] = r_axis[0] = 1;
447 for (
int i = 0; i < 3; i++) {
459 for (
int i = 0; i < 3; i++) {
468 const bool use_matrix,
469 const float matrix[4][4])
515 short orientation_index)
542 cross_vec[0] = axis[1];
543 cross_vec[1] = axis[2];
544 cross_vec[2] = axis[0];
577 float mat[3][3], tmat[3][3], obmat[3][3];
592 float parent_mat[3][3];
625 float parent_mat[3][3];
660 const short orient_index =
params->orientation_index ?
661 (
params->orientation_index - 1) :
678 C, mat,
scene, rv3d, ob, obedit, orient_index, pivot_point);
687 float diff_mat[3][3];
696 float diff_mat[4][4];
697 const bool use_mat_local =
true;
713 if (gps->editcurve ==
NULL) {
740 for (i = 0, pt = gps->points; i < gps->totpoints; i++, pt++) {
759 #define FOREACH_EDIT_OBJECT_BEGIN(ob_iter, use_mat_local) \
761 invert_m4_m4(obedit->imat, obedit->obmat); \
762 uint objects_len = 0; \
763 Object **objects = BKE_view_layer_array_from_objects_in_edit_mode( \
764 view_layer, CTX_wm_view3d(C), &objects_len); \
765 for (uint ob_index = 0; ob_index < objects_len; ob_index++) { \
766 Object *ob_iter = objects[ob_index]; \
767 const bool use_mat_local = (ob_iter != obedit);
769 #define FOREACH_EDIT_OBJECT_END() \
771 MEM_freeN(objects); \
788 float mat_local[4][4];
808 float mat_local[4][4];
835 Curve *cu = ob_iter->data;
841 float mat_local[4][4];
901 float mat_local[4][4];
921 float mat_local[4][4];
937 #undef FOREACH_EDIT_OBJECT_BEGIN
938 #undef FOREACH_EDIT_OBJECT_END
951 uint objects_len = 0;
954 for (
uint ob_index = 0; ob_index < objects_len; ob_index++) {
955 Object *ob_iter = objects[ob_index];
956 const bool use_mat_local = (ob_iter != ob);
966 float mat_local[4][4];
979 totsel += totsel_iter;
1013 for (k = 0, ek = point->
keys; k < point->totkey; k++, ek++) {
1030 base =
BASACT(view_layer);
1031 ob =
OBACT(view_layer);
1046 if (
params->use_only_center ==
false) {
1050 if (
params->use_only_center || (bb ==
NULL)) {
1054 for (
uint j = 0; j < 8; j++) {
1089 float view_vec[3], axis_vec[3];
1091 for (
int i = 0; i < 3; i++) {
1143 static void gizmo_line_range(
const int twtype,
const short axis_type,
float *r_start,
float *r_len)
1145 const float ofs = 0.2f;
1150 switch (axis_type) {
1153 *r_start = *r_len - ofs + 0.075f;
1161 *r_len -= ofs + 0.025f;
1175 const void *type_fn)
1184 int orient_flag = 0;
1205 extern PropertyRNA rna_Scene_transform_orientation_slots;
1207 &rna_Scene_transform_orientation_slots,
1209 for (
int i = 0; i <
ARRAY_SIZE(props); i++) {
1223 extern PropertyRNA rna_TransformOrientationSlot_type;
1224 extern PropertyRNA rna_TransformOrientationSlot_use;
1226 &rna_TransformOrientationSlot_type,
1227 &rna_TransformOrientationSlot_use,
1229 for (
int i = 0; i <
ARRAY_SIZE(props); i++) {
1232 mbus, &orient_ref_ptr, props[i], &msg_sub_value_gz_tag_refresh, __func__);
1241 extern PropertyRNA rna_ToolSettings_transform_pivot_point;
1243 &rna_ToolSettings_transform_pivot_point,
1245 for (
int i = 0; i <
ARRAY_SIZE(props); i++) {
1247 mbus, &toolsettings_ptr, props[i], &msg_sub_value_gz_tag_refresh, __func__);
1252 extern PropertyRNA rna_ToolSettings_workspace_tool_type;
1254 &rna_ToolSettings_workspace_tool_type,
1256 for (
int i = 0; i <
ARRAY_SIZE(props); i++) {
1258 mbus, &toolsettings_ptr, props[i], &msg_sub_value_gz_tag_refresh, __func__);
1268 extern PropertyRNA rna_SpaceView3D_show_gizmo_object_translate;
1269 extern PropertyRNA rna_SpaceView3D_show_gizmo_object_rotate;
1270 extern PropertyRNA rna_SpaceView3D_show_gizmo_object_scale;
1272 &rna_SpaceView3D_show_gizmo_object_translate,
1273 &rna_SpaceView3D_show_gizmo_object_rotate,
1274 &rna_SpaceView3D_show_gizmo_object_scale,
1276 for (
int i = 0; i <
ARRAY_SIZE(props); i++) {
1309 float mat_basis[4][4];
1310 float mat_final[4][4];
1312 float increment = 0.0f;
1342 mat_basis[2][3] = -
dot_v3v3(mat_basis[2], mat_basis[3]);
1345 t->region, mat_basis[2], (
float[2]){UNPACK2(t->mouse.imval)},
false, mat_basis[1])) {
1356 mat_basis[0][3] = 0.0f;
1357 mat_basis[1][3] = 0.0f;
1358 mat_basis[2][3] = 0.0f;
1359 mat_basis[3][3] = 1.0f;
1384 .angle_delta =
t->values_final[0],
1385 .angle_increment = increment,
1410 #define GIZMO_NEW_ARROW(v, draw_style) \
1412 ggd->gizmos[v] = WM_gizmo_new_ptr(gzt_arrow, gzgroup, NULL); \
1413 RNA_enum_set(ggd->gizmos[v]->ptr, "draw_style", draw_style); \
1416 #define GIZMO_NEW_DIAL(v, draw_options) \
1418 ggd->gizmos[v] = WM_gizmo_new_ptr(gzt_dial, gzgroup, NULL); \
1419 RNA_enum_set(ggd->gizmos[v]->ptr, "draw_options", draw_options); \
1422 #define GIZMO_NEW_PRIM(v, draw_style) \
1424 ggd->gizmos[v] = WM_gizmo_new_ptr(gzt_prim, gzgroup, NULL); \
1425 RNA_enum_set(ggd->gizmos[v]->ptr, "draw_style", draw_style); \
1491 .use_only_center =
true,
1507 } ot_store = {
NULL};
1512 bool constraint_axis[3] = {1, 0, 0};
1528 int draw_options = 0;
1550 const float ofs_ax = 7.0f;
1551 const float ofs[3] = {ofs_ax, ofs_ax, 0.0f};
1578 switch (axis_type) {
1580 if (ot_store.translate ==
NULL) {
1588 if (ot_store.trackball ==
NULL) {
1591 ot_rotate = ot_store.trackball;
1594 if (ot_store.rotate ==
NULL) {
1597 ot_rotate = ot_store.rotate;
1603 if (ot_store.resize ==
NULL) {
1636 if (tref &&
STREQ(tref->
idname,
"builtin.move")) {
1639 else if (tref &&
STREQ(tref->
idname,
"builtin.rotate")) {
1642 else if (tref &&
STREQ(tref->
idname,
"builtin.scale")) {
1645 else if (tref &&
STREQ(tref->
idname,
"builtin.transform")) {
1694 .use_only_center =
true,
1695 .orientation_index = orient_index + 1,
1718 float start_co[3] = {0.0f, 0.0f, 0.0f};
1729 start_co[2] += 0.215f;
1747 const float *y_axis = rv3d->
twmat[aidx_norm - 1 < 0 ? 2 : aidx_norm - 1];
1748 const float *z_axis = rv3d->
twmat[aidx_norm];
1757 float rotate_select_bias = 0.0f;
1759 rotate_select_bias = -2.0f;
1785 float viewinv_m3[3][3];
1813 float color[4], color_hi[4];
1835 switch (orient_slot->
type) {
1901 if (prop_constraint_axis) {
1902 bool constraint[3] = {
false};
1903 constraint[
axis] =
true;
1905 for (
int i = 0; i <
ARRAY_SIZE(constraint); i++) {
1906 constraint[i] = !constraint[i];
1975 gzgt->
name =
"3D View: Transform Gizmo";
1976 gzgt->
idname =
"VIEW3D_GGT_xform_gizmo";
1996 {0,
"NONE", 0,
"None",
""},
2001 rna_enum_gizmo_items,
2010 gzgt->
name =
"3D View: Transform Gizmo Context";
2011 gzgt->
idname =
"VIEW3D_GGT_xform_gizmo_context";
2080 for (
int x = 0;
x < 3;
x++) {
2081 for (
int y = 0;
y < 3;
y++) {
2082 for (
int z = 0;
z < 3;
z++) {
2083 const bool constraint[3] = {
x != 1,
y != 1,
z != 1};
2085 if (prop_release_confirm ==
NULL) {
2120 .use_local_axis =
true,
2121 .orientation_index = orient_index + 1,
2151 float matrix_offset_global[4][4];
2156 float center_global[3];
2158 for (
int x = 0;
x < 3;
x++) {
2160 for (
int y = 0;
y < 3;
y++) {
2162 for (
int z = 0;
z < 3;
z++) {
2165 if (prop_center_override ==
NULL) {
2200 switch (orient_slot->
type) {
2217 gzgt->
name =
"Transform Cage";
2218 gzgt->
idname =
"VIEW3D_GGT_xform_cage";
2270 float axis_color[3][3];
2271 for (
int i = 0; i < 3; i++) {
2275 for (
int i = 0; i < 3; i++) {
2276 for (
int j = 0; j < 2; j++) {
2279 const int i_ortho_a = (i + j + 1) % 3;
2280 const int i_ortho_b = (i + (1 - j) + 1) % 3;
2282 gz->
color[3] = 0.5f;
2285 xgzgroup->
gizmo[i][j] = gz;
2289 for (
int i = 0; i < 4; i++) {
2294 gz->
color[3] = 0.5f;
2336 .use_local_axis =
false,
2337 .orientation_index = orient_index + 1,
2340 for (
int i = 0; i < 3; i++) {
2341 for (
int j = 0; j < 2; j++) {
2347 for (
int i = 0; i < 4; i++) {
2354 for (
int i = 0; i < 3; i++) {
2355 for (
int j = 0; j < 2; j++) {
2361 const int i_ortho_a = (i + j + 1) % 3;
2362 const int i_ortho_b = (i + (1 - j) + 1) % 3;
2377 for (
int i = 0; i < 4; i++) {
2405 switch (orient_slot->
type) {
2419 for (
int i = 0; i < 4; i++) {
2420 const float outer_thin = 0.3f;
2421 const float outer_offset = 1.0f / 0.3f;
2445 float axis_order[3], axis_bias[3];
2460 gzgt->
name =
"Transform Shear";
2461 gzgt->
idname =
"VIEW3D_GGT_xform_shear";
typedef float(TangentPoint)[2]
Blender kernel action and pose functionality.
struct bPoseChannel * BKE_pose_channel_active(struct Object *ob)
struct ScrArea * CTX_wm_area(const bContext *C)
struct Scene * CTX_data_scene(const bContext *C)
struct Object * CTX_data_edit_object(const bContext *C)
struct ViewLayer * CTX_data_view_layer(const bContext *C)
struct bGPdata * CTX_data_gpencil_data(const bContext *C)
struct View3D * CTX_wm_view3d(const bContext *C)
struct Depsgraph * CTX_data_expect_evaluated_depsgraph(const bContext *C)
struct bScreen * CTX_wm_screen(const bContext *C)
struct ARegion * CTX_wm_region(const bContext *C)
struct RegionView3D * CTX_wm_region_view3d(const bContext *C)
struct wmWindow * CTX_wm_window(const bContext *C)
struct ListBase * BKE_curve_editNurbs_get(struct Curve *cu)
BMEditMesh * BKE_editmesh_from_object(struct Object *ob)
Return the BMEditMesh for a given object.
bool BKE_gpencil_layer_is_editable(const struct bGPDlayer *gpl)
void BKE_gpencil_layer_transform_matrix_get(const struct Depsgraph *depsgraph, struct Object *obact, struct bGPDlayer *gpl, float diff_mat[4][4])
General operations, lookup, etc. for blender objects.
struct Object ** BKE_object_pose_array_get(struct ViewLayer *view_layer, struct View3D *v3d, unsigned int *r_objects_len)
struct BoundBox * BKE_object_boundbox_get(struct Object *ob)
int BKE_scene_orientation_slot_get_index(const struct TransformOrientationSlot *orient_slot)
int BKE_scene_orientation_get_index(struct Scene *scene, int slot_index)
struct TransformOrientationSlot * BKE_scene_orientation_slot_get(struct Scene *scene, int slot_index)
struct TransformOrientationSlot * BKE_scene_orientation_slot_get_from_flag(struct Scene *scene, int flag)
int BKE_scene_orientation_get_index_from_flag(struct Scene *scene, int flag)
Generic array manipulation API.
#define BLI_array_findindex(arr, arr_len, p)
#define LISTBASE_FOREACH(type, var, list)
void void BLI_listbase_sort(struct ListBase *listbase, int(*cmp)(const void *, const void *)) ATTR_NONNULL(1
MINLINE float max_ff(float a, float b)
MINLINE float min_ff(float a, float b)
void mul_m3_v3(const float M[3][3], float r[3])
void mul_m4_m4m4(float R[4][4], const float A[4][4], const float B[4][4])
void mul_mat3_m4_fl(float R[4][4], float f)
void copy_m3_m3(float m1[3][3], const float m2[3][3])
void unit_m3(float m[3][3])
void copy_m3_m4(float m1[3][3], const float m2[4][4])
void unit_m4(float m[4][4])
void copy_m4_m3(float m1[4][4], const float m2[3][3])
bool invert_m4_m4(float R[4][4], const float A[4][4])
void normalize_m3(float R[3][3]) ATTR_NONNULL()
bool equals_m3m3(const float mat1[3][3], const float mat2[3][3])
void mul_m4_v3(const float M[4][4], float r[3])
void copy_m4_m4(float m1[4][4], const float m2[4][4])
void mul_v3_m4v3(float r[3], const float M[4][4], const float v[3])
bool invert_m3(float R[3][3])
void mul_m3_m3m3(float R[3][3], const float A[3][3], const float B[3][3])
void axis_angle_to_quat(float r[4], const float axis[3], const float angle)
void mul_qt_v3(const float q[4], float r[3])
void eulO_to_gimbal_axis(float gmat[3][3], const float eul[3], const short order)
MINLINE void copy_v4_v4(float r[4], const float a[4])
void interp_v3_v3v3(float r[3], const float a[3], const float b[3], const float t)
void minmax_v3v3_v3(float min[3], float max[3], const float vec[3])
MINLINE void madd_v3_v3fl(float r[3], const float a[3], float f)
MINLINE float normalize_v3(float r[3])
MINLINE void sub_v3_v3(float r[3], const float a[3])
MINLINE void sub_v3_v3v3(float r[3], const float a[3], const float b[3])
MINLINE void mul_v3_fl(float r[3], float f)
MINLINE void copy_v3_v3(float r[3], const float a[3])
MINLINE void negate_v3_v3(float r[3], const float a[3])
MINLINE float dot_v3v3(const float a[3], const float b[3]) ATTR_WARN_UNUSED_RESULT
MINLINE void cross_v3_v3v3(float r[3], const float a[3], const float b[3])
MINLINE void negate_v3(float r[3])
MINLINE float normalize_v3_v3(float r[3], const float a[3])
MINLINE bool equals_v3v3(const float a[3], const float b[3]) ATTR_WARN_UNUSED_RESULT
void mid_v3_v3v3(float r[3], const float a[3], const float b[3])
void ortho_basis_v3v3_v3(float r_n1[3], float r_n2[3], const float n[3])
MINLINE void copy_v3_fl(float r[3], float f)
MINLINE void zero_v3(float r[3])
MINLINE void add_v3_v3(float r[3], const float a[3])
#define INIT_MINMAX(min, max)
#define ARRAY_SET_ITEMS(...)
#define IN_RANGE_INCL(a, b, c)
struct Depsgraph Depsgraph
#define BEZT_ISSEL_IDX(bezt, i)
@ GP_DATA_STROKE_EDITMODE
#define GPENCIL_ANY_MODE(gpd)
#define GPENCIL_CURVE_EDIT_SESSIONS_ON(gpd)
#define OB_MODE_ALL_PAINT
#define OB_MODE_ALL_SCULPT
#define BASE_SELECTED_EDITABLE(v3d, base)
@ SCE_WORKSPACE_TOOL_FALLBACK
#define BASACT(_view_layer)
#define OBACT(_view_layer)
#define SCE_SNAP_MODE_GRID
#define SCE_SNAP_MODE_INCREMENT
@ V3D_AROUND_CENTER_BOUNDS
@ V3D_AROUND_CENTER_MEDIAN
@ V3D_AROUND_LOCAL_ORIGINS
@ V3D_GIZMO_SHOW_OBJECT_ROTATE
@ V3D_GIZMO_SHOW_OBJECT_SCALE
@ V3D_GIZMO_SHOW_OBJECT_TRANSLATE
#define EBONE_VISIBLE(arm, ebone)
@ ED_GIZMO_PRIMITIVE_STYLE_PLANE
@ ED_GIZMO_ARROW_DRAW_FLAG_STEM
@ ED_GIZMO_ARROW_STYLE_BOX
@ ED_GIZMO_ARROW_STYLE_NORMAL
@ ED_GIZMO_CAGE2D_XFORM_FLAG_TRANSLATE
@ ED_GIZMO_CAGE2D_XFORM_FLAG_SCALE
@ ED_GIZMO_DIAL_DRAW_FLAG_FILL_SELECT
@ ED_GIZMO_DIAL_DRAW_FLAG_FILL
@ ED_GIZMO_DIAL_DRAW_FLAG_NOP
@ ED_GIZMO_DIAL_DRAW_FLAG_ANGLE_VALUE
@ ED_GIZMO_DIAL_DRAW_FLAG_CLIP
@ ED_GIZMO_CAGE3D_PART_SCALE_MIN_X_MIN_Y_MIN_Z
bool ED_gizmo_poll_or_unlink_delayed_from_tool(const struct bContext *C, struct wmGizmoGroupType *gzgt)
bool ED_object_calc_active_center(struct Object *ob, const bool select_only, float r_center[3])
struct PTCacheEdit * PE_get_current(struct Depsgraph *depsgraph, struct Scene *scene, struct Object *ob)
void ED_region_tag_redraw_editor_overlays(struct ARegion *region)
bool ED_view3d_win_to_3d_on_plane(const struct ARegion *region, const float plane[4], const float mval[2], const bool do_clip, float r_out[3])
float ED_view3d_pixel_size(const struct RegionView3D *rv3d, const float co[3])
float ED_view3d_pixel_size_no_ui_scale(const struct RegionView3D *rv3d, const float co[3])
void ED_view3d_global_to_vector(const struct RegionView3D *rv3d, const float coord[3], float vec[3])
NSNotificationCenter * center
_GL_VOID GLfloat value _GL_VOID_RET _GL_VOID const GLuint GLboolean *residences _GL_BOOL_RET _GL_VOID GLsizei GLfloat GLfloat GLfloat GLfloat const GLubyte *bitmap _GL_VOID_RET _GL_VOID GLenum const void *lists _GL_VOID_RET _GL_VOID const GLdouble *equation _GL_VOID_RET _GL_VOID GLdouble GLdouble blue _GL_VOID_RET _GL_VOID GLfloat GLfloat blue _GL_VOID_RET _GL_VOID GLint GLint blue _GL_VOID_RET _GL_VOID GLshort GLshort blue _GL_VOID_RET _GL_VOID GLubyte GLubyte blue _GL_VOID_RET _GL_VOID GLuint GLuint blue _GL_VOID_RET _GL_VOID GLushort GLushort blue _GL_VOID_RET _GL_VOID GLbyte GLbyte GLbyte alpha _GL_VOID_RET _GL_VOID GLdouble GLdouble GLdouble alpha _GL_VOID_RET _GL_VOID GLfloat GLfloat GLfloat alpha _GL_VOID_RET _GL_VOID GLint GLint GLint alpha _GL_VOID_RET _GL_VOID GLshort GLshort GLshort alpha _GL_VOID_RET _GL_VOID GLubyte GLubyte GLubyte alpha _GL_VOID_RET _GL_VOID GLuint GLuint GLuint alpha _GL_VOID_RET _GL_VOID GLushort GLushort GLushort alpha _GL_VOID_RET _GL_VOID GLenum mode _GL_VOID_RET _GL_VOID GLint GLsizei GLsizei GLenum type _GL_VOID_RET _GL_VOID GLsizei GLenum GLenum const void *pixels _GL_VOID_RET _GL_VOID const void *pointer _GL_VOID_RET _GL_VOID GLdouble v _GL_VOID_RET _GL_VOID GLfloat v _GL_VOID_RET _GL_VOID GLint GLint i2 _GL_VOID_RET _GL_VOID GLint j _GL_VOID_RET _GL_VOID GLfloat param _GL_VOID_RET _GL_VOID GLint param _GL_VOID_RET _GL_VOID GLdouble GLdouble GLdouble GLdouble GLdouble zFar _GL_VOID_RET _GL_UINT GLdouble *equation _GL_VOID_RET _GL_VOID GLenum GLint *params _GL_VOID_RET _GL_VOID GLenum GLfloat *v _GL_VOID_RET _GL_VOID GLenum GLfloat *params _GL_VOID_RET _GL_VOID GLfloat *values _GL_VOID_RET _GL_VOID GLushort *values _GL_VOID_RET _GL_VOID GLenum GLfloat *params _GL_VOID_RET _GL_VOID GLenum GLdouble *params _GL_VOID_RET _GL_VOID GLenum GLint *params _GL_VOID_RET _GL_VOID GLsizei const void *pointer _GL_VOID_RET _GL_VOID GLsizei const void *pointer _GL_VOID_RET _GL_BOOL GLfloat param _GL_VOID_RET _GL_VOID GLint param _GL_VOID_RET _GL_VOID GLenum GLfloat param _GL_VOID_RET _GL_VOID GLenum GLint param _GL_VOID_RET _GL_VOID GLushort pattern _GL_VOID_RET _GL_VOID GLdouble GLdouble GLint GLint const GLdouble *points _GL_VOID_RET _GL_VOID GLdouble GLdouble GLint GLint GLdouble GLdouble GLint GLint const GLdouble *points _GL_VOID_RET _GL_VOID GLdouble GLdouble u2 _GL_VOID_RET _GL_VOID GLdouble GLdouble GLint GLdouble GLdouble v2 _GL_VOID_RET _GL_VOID GLenum GLfloat param _GL_VOID_RET _GL_VOID GLenum GLint param _GL_VOID_RET _GL_VOID GLenum mode _GL_VOID_RET _GL_VOID GLdouble GLdouble nz _GL_VOID_RET _GL_VOID GLfloat GLfloat nz _GL_VOID_RET _GL_VOID GLint GLint nz _GL_VOID_RET _GL_VOID GLshort GLshort nz _GL_VOID_RET _GL_VOID GLsizei const void *pointer _GL_VOID_RET _GL_VOID GLsizei const GLfloat *values _GL_VOID_RET _GL_VOID GLsizei const GLushort *values _GL_VOID_RET _GL_VOID GLint param _GL_VOID_RET _GL_VOID const GLuint const GLclampf *priorities _GL_VOID_RET _GL_VOID GLdouble y _GL_VOID_RET _GL_VOID GLfloat y _GL_VOID_RET _GL_VOID GLint y _GL_VOID_RET _GL_VOID GLshort y _GL_VOID_RET _GL_VOID GLdouble GLdouble z _GL_VOID_RET _GL_VOID GLfloat GLfloat z _GL_VOID_RET _GL_VOID GLint GLint z _GL_VOID_RET _GL_VOID GLshort GLshort z _GL_VOID_RET _GL_VOID GLdouble GLdouble z
_GL_VOID GLfloat value _GL_VOID_RET _GL_VOID const GLuint GLboolean *residences _GL_BOOL_RET _GL_VOID GLsizei GLfloat GLfloat GLfloat GLfloat const GLubyte *bitmap _GL_VOID_RET _GL_VOID GLenum const void *lists _GL_VOID_RET _GL_VOID const GLdouble *equation _GL_VOID_RET _GL_VOID GLdouble GLdouble blue _GL_VOID_RET _GL_VOID GLfloat GLfloat blue _GL_VOID_RET _GL_VOID GLint GLint blue _GL_VOID_RET _GL_VOID GLshort GLshort blue _GL_VOID_RET _GL_VOID GLubyte GLubyte blue _GL_VOID_RET _GL_VOID GLuint GLuint blue _GL_VOID_RET _GL_VOID GLushort GLushort blue _GL_VOID_RET _GL_VOID GLbyte GLbyte GLbyte alpha _GL_VOID_RET _GL_VOID GLdouble GLdouble GLdouble alpha _GL_VOID_RET _GL_VOID GLfloat GLfloat GLfloat alpha _GL_VOID_RET _GL_VOID GLint GLint GLint alpha _GL_VOID_RET _GL_VOID GLshort GLshort GLshort alpha _GL_VOID_RET _GL_VOID GLubyte GLubyte GLubyte alpha _GL_VOID_RET _GL_VOID GLuint GLuint GLuint alpha _GL_VOID_RET _GL_VOID GLushort GLushort GLushort alpha _GL_VOID_RET _GL_VOID GLenum mode _GL_VOID_RET _GL_VOID GLint y
_GL_VOID GLfloat value _GL_VOID_RET _GL_VOID const GLuint GLboolean *residences _GL_BOOL_RET _GL_VOID GLsizei GLfloat GLfloat GLfloat GLfloat const GLubyte *bitmap _GL_VOID_RET _GL_VOID GLenum const void *lists _GL_VOID_RET _GL_VOID const GLdouble *equation _GL_VOID_RET _GL_VOID GLdouble GLdouble blue _GL_VOID_RET _GL_VOID GLfloat GLfloat blue _GL_VOID_RET _GL_VOID GLint GLint blue _GL_VOID_RET _GL_VOID GLshort GLshort blue _GL_VOID_RET _GL_VOID GLubyte GLubyte blue _GL_VOID_RET _GL_VOID GLuint GLuint blue _GL_VOID_RET _GL_VOID GLushort GLushort blue _GL_VOID_RET _GL_VOID GLbyte GLbyte GLbyte alpha _GL_VOID_RET _GL_VOID GLdouble GLdouble GLdouble alpha _GL_VOID_RET _GL_VOID GLfloat GLfloat GLfloat alpha _GL_VOID_RET _GL_VOID GLint GLint GLint alpha _GL_VOID_RET _GL_VOID GLshort GLshort GLshort alpha _GL_VOID_RET _GL_VOID GLubyte GLubyte GLubyte alpha _GL_VOID_RET _GL_VOID GLuint GLuint GLuint alpha _GL_VOID_RET _GL_VOID GLushort GLushort GLushort alpha _GL_VOID_RET _GL_VOID GLenum mode _GL_VOID_RET _GL_VOID GLint GLsizei GLsizei GLenum type _GL_VOID_RET _GL_VOID GLsizei GLenum GLenum const void *pixels _GL_VOID_RET _GL_VOID const void *pointer _GL_VOID_RET _GL_VOID GLdouble v _GL_VOID_RET _GL_VOID GLfloat v _GL_VOID_RET _GL_VOID GLint GLint i2 _GL_VOID_RET _GL_VOID GLint j _GL_VOID_RET _GL_VOID GLfloat param _GL_VOID_RET _GL_VOID GLint param _GL_VOID_RET _GL_VOID GLdouble GLdouble GLdouble GLdouble GLdouble zFar _GL_VOID_RET _GL_UINT GLdouble *equation _GL_VOID_RET _GL_VOID GLenum GLint *params _GL_VOID_RET _GL_VOID GLenum GLfloat *v _GL_VOID_RET _GL_VOID GLenum GLfloat *params _GL_VOID_RET _GL_VOID GLfloat *values _GL_VOID_RET _GL_VOID GLushort *values _GL_VOID_RET _GL_VOID GLenum GLfloat *params _GL_VOID_RET _GL_VOID GLenum GLdouble *params _GL_VOID_RET _GL_VOID GLenum GLint *params _GL_VOID_RET _GL_VOID GLsizei const void *pointer _GL_VOID_RET _GL_VOID GLsizei const void *pointer _GL_VOID_RET _GL_BOOL GLfloat param _GL_VOID_RET _GL_VOID GLint param _GL_VOID_RET _GL_VOID GLenum GLfloat param _GL_VOID_RET _GL_VOID GLenum GLint param _GL_VOID_RET _GL_VOID GLushort pattern _GL_VOID_RET _GL_VOID GLdouble GLdouble GLint GLint const GLdouble *points _GL_VOID_RET _GL_VOID GLdouble GLdouble GLint GLint GLdouble GLdouble GLint GLint const GLdouble *points _GL_VOID_RET _GL_VOID GLdouble GLdouble u2 _GL_VOID_RET _GL_VOID GLdouble GLdouble GLint GLdouble GLdouble v2 _GL_VOID_RET _GL_VOID GLenum GLfloat param _GL_VOID_RET _GL_VOID GLenum GLint param _GL_VOID_RET _GL_VOID GLenum mode _GL_VOID_RET _GL_VOID GLdouble GLdouble nz _GL_VOID_RET _GL_VOID GLfloat GLfloat nz _GL_VOID_RET _GL_VOID GLint GLint nz _GL_VOID_RET _GL_VOID GLshort GLshort nz _GL_VOID_RET _GL_VOID GLsizei const void *pointer _GL_VOID_RET _GL_VOID GLsizei const GLfloat *values _GL_VOID_RET _GL_VOID GLsizei const GLushort *values _GL_VOID_RET _GL_VOID GLint param _GL_VOID_RET _GL_VOID const GLuint const GLclampf *priorities _GL_VOID_RET _GL_VOID GLdouble y _GL_VOID_RET _GL_VOID GLfloat y _GL_VOID_RET _GL_VOID GLint y _GL_VOID_RET _GL_VOID GLshort y _GL_VOID_RET _GL_VOID GLdouble GLdouble z _GL_VOID_RET _GL_VOID GLfloat GLfloat z _GL_VOID_RET _GL_VOID GLint GLint z _GL_VOID_RET _GL_VOID GLshort GLshort z _GL_VOID_RET _GL_VOID GLdouble GLdouble GLdouble w _GL_VOID_RET _GL_VOID GLfloat GLfloat GLfloat w _GL_VOID_RET _GL_VOID GLint GLint GLint w _GL_VOID_RET _GL_VOID GLshort GLshort GLshort w _GL_VOID_RET _GL_VOID GLdouble GLdouble GLdouble y2 _GL_VOID_RET _GL_VOID GLfloat GLfloat GLfloat y2 _GL_VOID_RET _GL_VOID GLint GLint GLint y2 _GL_VOID_RET _GL_VOID GLshort GLshort GLshort y2 _GL_VOID_RET _GL_VOID GLdouble GLdouble GLdouble z _GL_VOID_RET _GL_VOID GLdouble GLdouble z _GL_VOID_RET _GL_VOID GLuint *buffer _GL_VOID_RET _GL_VOID GLdouble t _GL_VOID_RET _GL_VOID GLfloat t _GL_VOID_RET _GL_VOID GLint t _GL_VOID_RET _GL_VOID GLshort t _GL_VOID_RET _GL_VOID GLdouble t
void GPU_blend(eGPUBlend blend)
void GPU_line_smooth(bool enable)
void GPU_depth_test(eGPUDepthTest test)
Read Guarded memory(de)allocation.
StructRNA RNA_SpaceView3D
StructRNA RNA_View3DCursor
StructRNA RNA_TransformOrientationSlot
StructRNA RNA_ToolSettings
void UI_GetThemeColor3fv(int colorid, float col[3])
void UI_GetThemeColor4fv(int colorid, float col[4])
eWM_GizmoFlagTweak
Gizmo tweak flag. Bitflag passed to gizmo while tweaking.
@ WM_GIZMO_DRAW_OFFSET_SCALE
@ WM_GIZMO_SELECT_BACKGROUND
@ WM_GIZMOGROUPTYPE_TOOL_FALLBACK_KEYMAP
@ WM_GIZMOGROUPTYPE_DELAY_REFRESH_FOR_TWEAK
@ WM_GIZMOGROUPTYPE_PERSISTENT
#define BM_elem_flag_test(ele, hflag)
#define BM_ITER_MESH(ele, iter, bm, itype)
ATTR_WARN_UNUSED_RESULT BMesh * bm
SIMD_FORCE_INLINE btScalar angle(const btVector3 &v) const
Return the angle between this and another vector.
SIMD_FORCE_INLINE btVector3 rotate(const btVector3 &wAxis, const btScalar angle) const
Return a rotated version of this vector.
const Depsgraph * depsgraph
static CCL_NAMESPACE_BEGIN const double alpha
void ED_gizmotypes_dial_3d_draw_util(const float matrix_basis[4][4], const float matrix_final[4][4], const float line_width, const float color[4], const bool select, struct Dial3dParams *params)
bool ED_gpencil_stroke_can_use(const bContext *C, const bGPDstroke *gps)
void(* MEM_freeN)(void *vmemh)
void *(* MEM_callocN)(size_t len, const char *str)
void *(* MEM_mallocN)(size_t len, const char *str)
static void area(int d1, int d2, int e1, int e2, float weights[2])
void RNA_pointer_create(ID *id, StructRNA *type, void *data, PointerRNA *r_ptr)
void RNA_id_pointer_create(ID *id, PointerRNA *r_ptr)
void RNA_boolean_set(PointerRNA *ptr, const char *name, bool value)
void RNA_property_enum_set(PointerRNA *ptr, PropertyRNA *prop, int value)
PropertyRNA * RNA_struct_find_property(PointerRNA *ptr, const char *identifier)
void RNA_property_boolean_set(PointerRNA *ptr, PropertyRNA *prop, bool value)
void RNA_float_set(PointerRNA *ptr, const char *name, float value)
void RNA_property_float_set_array(PointerRNA *ptr, PropertyRNA *prop, const float *values)
void RNA_enum_set(PointerRNA *ptr, const char *name, int value)
void RNA_float_set_array(PointerRNA *ptr, const char *name, const float *values)
void RNA_property_unset(PointerRNA *ptr, PropertyRNA *prop)
void RNA_property_boolean_set_array(PointerRNA *ptr, PropertyRNA *prop, const bool *values)
PropertyRNA * RNA_def_enum(StructOrFunctionRNA *cont_, const char *identifier, const EnumPropertyItem *items, int default_value, const char *ui_name, const char *ui_description)
struct wmGizmo * gizmos[MAN_AXIS_LAST]
struct GizmoGroup::@582 prev
struct EditLatt * editlatt
struct SculptSession * sculpt
struct PTCacheEditKey * keys
PTCacheEditPoint * points
float tw_axis_matrix[3][3]
struct ToolSettings * toolsettings
TransformOrientationSlot orientation_slots[4]
bGPDcurve_point * curve_points
struct bPoseChannel * parent
struct bPoseChannel * next
wmGizmoGroupFnSetupKeymap setup_keymap
wmGizmoGroupFnMsgBusSubscribe message_subscribe
wmGizmoGroupFnRefresh refresh
wmGizmoGroupFnInvokePrepare invoke_prepare
eWM_GizmoFlagGroupTypeFlag flag
struct wmGizmoMapType_Params gzmap_params
wmGizmoGroupFnDrawPrepare draw_prepare
struct wmGizmoMap * parent_gzmap
float matrix_offset[4][4]
union wmGizmo::@1148 temp
struct wmEvent * eventstate
void WM_gizmo_set_matrix_offset_location(wmGizmo *gz, const float offset[3])
void WM_gizmo_set_fn_custom_modal(struct wmGizmo *gz, wmGizmoFnModal fn)
PointerRNA * WM_gizmo_operator_set(wmGizmo *gz, int part_index, wmOperatorType *ot, IDProperty *properties)
void WM_gizmo_set_color_highlight(wmGizmo *gz, const float color_hi[4])
void WM_gizmo_set_line_width(wmGizmo *gz, const float line_width)
void WM_gizmo_set_matrix_rotation_from_yz_axis(wmGizmo *gz, const float y_axis[3], const float z_axis[3])
wmGizmo * WM_gizmo_new_ptr(const wmGizmoType *gzt, wmGizmoGroup *gzgroup, PointerRNA *properties)
void WM_gizmo_set_scale(wmGizmo *gz, const float scale)
void WM_gizmo_set_matrix_location(wmGizmo *gz, const float origin[3])
void WM_gizmo_set_flag(wmGizmo *gz, const int flag, const bool enable)
void WM_gizmo_set_matrix_rotation_from_z_axis(wmGizmo *gz, const float z_axis[3])
struct wmGizmoOpElem * WM_gizmo_operator_get(wmGizmo *gz, int part_index)
void WM_gizmo_set_color(wmGizmo *gz, const float color[4])
int WM_gizmo_cmp_temp_fl_reverse(const void *gz_a_ptr, const void *gz_b_ptr)
wmKeyMap * WM_gizmogroup_setup_keymap_generic_maybe_drag(const wmGizmoGroupType *UNUSED(gzgt), wmKeyConfig *kc)
wmGizmo * wm_gizmomap_modal_get(wmGizmoMap *gzmap)
void WM_gizmo_do_msg_notify_tag_refresh(bContext *UNUSED(C), wmMsgSubscribeKey *UNUSED(msg_key), wmMsgSubscribeValue *msg_val)
const wmGizmoType * WM_gizmotype_find(const char *idname, bool quiet)
#define WM_msg_subscribe_rna_anon_prop(mbus, type_, prop_, value)
void WM_msg_subscribe_rna(struct wmMsgBus *mbus, PointerRNA *ptr, const PropertyRNA *prop, const wmMsgSubscribeValue *msg_val_params, const char *id_repr)
wmOperatorType * WM_operatortype_find(const char *idname, bool quiet)