206 float eul[3], oldeul[3], quat1[4] = {0};
219 eul[0] = eul[1] = eul[2] = 0.0f;
234 if ((quat1[0] < 0.0f && ob->
quat[0] > 0.0f) || (quat1[0] > 0.0f && ob->
quat[0] < 0.0f)) {
295 void (*clear_func)(
Object *,
const bool),
296 const char default_ksName[])
310 uint objects_len = 0;
320 if (objects ==
NULL) {
332 if (use_transform_skip_children) {
336 xcs, view_layer, objects, objects_len);
338 if (use_transform_data_origin) {
346 for (
uint ob_index = 0; ob_index < objects_len; ob_index++) {
347 Object *ob = objects[ob_index];
349 if (use_transform_data_origin) {
354 clear_func(ob, clear_delta);
363 if (use_transform_skip_children) {
368 if (use_transform_data_origin) {
393 ot->
name =
"Clear Location";
395 ot->
idname =
"OBJECT_OT_location_clear";
410 "Clear delta location in addition to clearing the normal location transform");
427 ot->
name =
"Clear Rotation";
429 ot->
idname =
"OBJECT_OT_rotation_clear";
444 "Clear delta rotation in addition to clearing the normal rotation transform");
463 ot->
idname =
"OBJECT_OT_scale_clear";
478 "Clear delta scale in addition to clearing the normal scale transform");
496 v3 = ob->parentinv[3];
515 ot->
name =
"Clear Origin";
517 ot->
idname =
"OBJECT_OT_origin_clear";
544 if (ob_child->
parent == ob) {
570 root_object, object->
parent, sorted_objects, object_index);
573 sorted_objects[*object_index] = object;
591 if (num_objects == 0) {
598 int object_index = 0;
607 *r_num_objects = num_objects;
609 return sorted_objects;
622 float rsmat[3][3], obmat[3][3], iobmat[3][3], mat[4][4], scale;
636 ID *obdata = ob->data;
640 "Cannot apply to a multi user: Object \"%s\", %s \"%s\", aborting",
650 "Cannot apply to library data: Object \"%s\", %s \"%s\", aborting",
659 ID *obdata = ob->data;
664 if (((ob->type ==
OB_CURVE) && !(cu->
flag &
CU_3D)) && (apply_rot || apply_loc)) {
668 "Rotation/Location can't apply to a 2D curve: Object \"%s\", %s \"%s\", aborting",
677 "Can't apply to a curve with shape-keys: Object \"%s\", %s \"%s\", aborting",
686 if (apply_rot || apply_loc) {
688 reports,
RPT_ERROR,
"Font's can only have scale applied: \"%s\"", ob->id.name + 2);
698 bool has_unparented_layers =
false;
703 if (gpl->parent ==
NULL) {
704 has_unparented_layers =
true;
709 if (has_unparented_layers ==
false) {
712 "Can't apply to a GP datablock where all layers are parented: Object "
713 "\"%s\", %s \"%s\", aborting",
725 "Can't apply to GP datablock with no layers: Object \"%s\", %s \"%s\", aborting",
734 Light *la = ob->data;
736 if (apply_rot || apply_loc) {
739 "Area Lights can only have scale applied: \"%s\"",
757 if (objects ==
NULL) {
761 for (
int object_index = 0; object_index < num_objects; object_index++) {
762 Object *ob = objects[object_index];
765 if (apply_scale && apply_rot) {
768 else if (apply_scale) {
771 else if (apply_rot) {
772 float tmat[3][3], timat[3][3];
793 if (!(apply_scale && apply_rot)) {
840 for (
int i = 0; i < cu->
totbox; i++) {
883 if ((apply_loc ==
false) && (apply_rot ==
false) && (apply_scale ==
true)) {
961 bool changed =
false;
987 ot->
name =
"Apply Visual Transform";
988 ot->
description =
"Apply the object's visual transformation to its data";
989 ot->
idname =
"OBJECT_OT_visual_transform_apply";
1006 if (loc ||
rot || sca) {
1016 ot->
name =
"Apply Object Transform";
1017 ot->
description =
"Apply the object's transformation to its data";
1018 ot->
idname =
"OBJECT_OT_transform_apply";
1034 "Modify properties such as curve vertex radius, font size and bone envelope");
1059 float cent[3], cent_neg[3], centn[3];
1064 int tot_change = 0, tot_lib_error = 0, tot_multiuser_arm_error = 0;
1133 if (objects ==
NULL) {
1138 for (
int object_index = 0; object_index < num_objects; object_index++) {
1139 Object *ob = objects[object_index];
1144 memmove(&objects[1], objects, object_index *
sizeof(
Object *));
1158 for (
int object_index = 0; object_index < num_objects; object_index++) {
1159 Object *ob = objects[object_index];
1162 bool do_inverse_offset =
false;
1196 do_inverse_offset =
true;
1204 if (obedit ==
NULL) {
1228 do_inverse_offset =
true;
1254 do_inverse_offset =
true;
1283 cu->
xof = cu->
xof - cent[0];
1284 cu->
yof = cu->
yof - cent[1];
1288 do_inverse_offset =
true;
1299 tot_multiuser_arm_error++;
1342 do_inverse_offset =
true;
1369 do_inverse_offset =
true;
1385 float imat[3][3], bmat[3][3];
1386 float offset_global[3];
1387 float offset_local[3];
1396 float diff_mat[4][4];
1397 float inverse_diff_mat[4][4];
1408 for (i = 0, pt = gps->points; i < gps->totpoints; i++, pt++) {
1426 do_inverse_offset =
true;
1431 "Grease Pencil Object does not support this set origin option");
1465 for (
int other_object_index = 0; other_object_index < num_objects; other_object_index++) {
1466 Object *ob_other = objects[other_object_index];
1512 if (tot_lib_error + tot_multiuser_arm_error) {
1515 "%i object(s) not centered, %i changed:",
1516 tot_lib_error + tot_multiuser_arm_error,
1518 if (tot_lib_error) {
1521 if (tot_multiuser_arm_error) {
1523 op->
reports,
RPT_WARNING,
"|%i multiuser armature object(s)", tot_multiuser_arm_error);
1536 "Geometry to Origin",
1537 "Move object geometry to object origin"},
1541 "Origin to Geometry",
1542 "Calculate the center of geometry based on the current pivot point (median, otherwise "
1547 "Origin to 3D Cursor",
1548 "Move object origin to position of the 3D cursor"},
1551 "ORIGIN_CENTER_OF_MASS",
1553 "Origin to Center of Mass (Surface)",
1554 "Calculate the center of mass from the surface area"},
1556 "ORIGIN_CENTER_OF_VOLUME",
1558 "Origin to Center of Mass (Volume)",
1559 "Calculate the center of mass from the volume (must be manifold geometry with consistent "
1573 "Set the object's origin, by either moving the data, or set to center of data, or use 3D "
1575 ot->
idname =
"OBJECT_OT_origin_set";
1601 #define USE_RELATIVE_ROTATION
1603 #define USE_RENDER_OVERRIDE
1608 #define USE_FAKE_DEPTH_INIT
1617 #ifdef USE_RELATIVE_ROTATION
1639 #ifdef USE_FAKE_DEPTH_INIT
1644 float view_co_a[3], view_co_b[3];
1645 const float mval_fl[2] = {
UNPACK2(mval)};
1648 float center[3] = {0.0f};
1652 const float *ob_co_a =
ob->
obmat[3];
1655 float view_isect[3], ob_isect[3];
1656 if (
isect_line_line_v3(view_co_a, view_co_b, ob_co_a, ob_co_b, view_isect, ob_isect)) {
1663 float center_proj[3];
1693 #ifdef USE_RENDER_OVERRIDE
1736 const float rot_orig[3][3],
1737 const float axis[3],
1738 const float location[3],
1749 float delta_rot[3][3];
1750 float final_rot[3][3];
1787 #ifdef USE_RENDER_OVERRIDE
1794 #ifdef USE_RENDER_OVERRIDE
1810 xfd->
vc.
mval[0] =
event->mval[0];
1811 xfd->
vc.
mval[1] =
event->mval[1];
1851 float full_mat3[3][3];
1874 if (depths && ((
uint)
event->mval[0] < depths->
w) && ((
uint)
event->mval[1] < depths->
h)) {
1875 float depth_fl = 1.0f;
1877 float location_world[3];
1878 if (depth_fl == 1.0f) {
1884 #ifdef USE_FAKE_DEPTH_INIT
1886 if (depth_fl == 1.0f) {
1904 bool normal_found =
false;
1906 normal_found =
true;
1910 for (
int x = -ofs;
x <= ofs;
x += ofs / 2) {
1911 for (
int y = -ofs;
y <= ofs;
y += ofs / 2) {
1912 if (
x != 0 &&
y != 0) {
1913 const int mval_ofs[2] = {
event->mval[0] +
x,
event->mval[1] +
y};
1925 normal_found =
true;
1929 #ifdef USE_RELATIVE_ROTATION
1931 float xform_rot_offset_inv_first[3][3];
1943 xform_rot_offset_inv_first);
1952 if (is_translate_init) {
1963 float target_normal[3];
1972 #ifdef USE_RELATIVE_ROTATION
2023 bool is_finished =
false;
2051 ot->
name =
"Interactive Light Track to Cursor";
2052 ot->
description =
"Interactively point cameras and lights to a location (Ctrl translates)";
2053 ot->
idname =
"OBJECT_OT_transform_axis_target";
2065 #undef USE_RELATIVE_ROTATION
typedef float(TangentPoint)[2]
void BKE_armature_transform(struct bArmature *arm, const float mat[4][4], const bool do_props)
void BKE_pose_where_is(struct Depsgraph *depsgraph, struct Scene *scene, struct Object *ob)
void BKE_armature_copy_bone_transforms(struct bArmature *armature_dst, const struct bArmature *armature_src)
struct Scene * CTX_data_scene(const bContext *C)
struct Object * CTX_data_edit_object(const bContext *C)
#define CTX_DATA_BEGIN(C, Type, instance, member)
struct ViewLayer * CTX_data_view_layer(const bContext *C)
struct Depsgraph * CTX_data_ensure_evaluated_depsgraph(const bContext *C)
struct Object * CTX_data_active_object(const bContext *C)
struct View3D * CTX_wm_view3d(const bContext *C)
struct Depsgraph * CTX_data_depsgraph_pointer(const bContext *C)
struct Main * CTX_data_main(const bContext *C)
bool BKE_curve_center_median(struct Curve *cu, float cent[3])
void BKE_curve_transform_ex(struct Curve *cu, const float mat[4][4], const bool do_keys, const bool do_props, const float unit_scale)
bool BKE_curve_center_bounds(struct Curve *cu, float cent[3])
void BKE_curve_translate(struct Curve *cu, const float offset[3], const bool do_keys)
void BKE_gpencil_layer_transform_matrix_get(const struct Depsgraph *depsgraph, struct Object *obact, struct bGPDlayer *gpl, float diff_mat[4][4])
void BKE_gpencil_centroid_3d(struct bGPdata *gpd, float r_centroid[3])
void BKE_gpencil_stroke_geometry_update(struct bGPdata *gpd, struct bGPDstroke *gps)
void BKE_gpencil_transform(struct bGPdata *gpd, const float mat[4][4])
const char * BKE_idtype_idcode_to_name(const short idcode)
void BKE_lattice_translate(struct Lattice *lt, const float offset[3], bool do_keys)
void BKE_lattice_center_bounds(struct Lattice *lt, float cent[3])
void BKE_lattice_center_median(struct Lattice *lt, float cent[3])
void BKE_lattice_transform(struct Lattice *lt, const float mat[4][4], bool do_keys)
#define FOREACH_SELECTED_EDITABLE_OBJECT_END
#define FOREACH_SELECTED_EDITABLE_OBJECT_BEGIN(_view_layer, _v3d, _instance)
void BKE_main_id_tag_all(struct Main *mainvar, const int tag, const bool value)
bool BKE_mball_center_median(const struct MetaBall *mb, float r_cent[3])
void BKE_mball_translate(struct MetaBall *mb, const float offset[3])
bool BKE_mball_center_bounds(const struct MetaBall *mb, float r_cent[3])
void BKE_mball_transform(struct MetaBall *mb, const float mat[4][4], const bool do_props)
bool BKE_mesh_center_of_volume(const struct Mesh *me, float r_cent[3])
bool BKE_mesh_center_median(const struct Mesh *me, float r_cent[3])
void BKE_mesh_calc_normals(struct Mesh *me)
bool BKE_mesh_center_of_surface(const struct Mesh *me, float r_cent[3])
bool BKE_mesh_center_bounds(const struct Mesh *me, float r_cent[3])
void BKE_mesh_transform(struct Mesh *me, const float mat[4][4], bool do_keys)
void BKE_mesh_translate(struct Mesh *me, const float offset[3], const bool do_keys)
void multiresModifier_scale_disp(struct Depsgraph *depsgraph, struct Scene *scene, struct Object *ob)
General operations, lookup, etc. for blender objects.
void BKE_object_batch_cache_dirty_tag(struct Object *ob)
struct MovieClip * BKE_object_movieclip_get(struct Scene *scene, struct Object *ob, bool use_default)
void BKE_object_tfm_restore(struct Object *ob, void *obtfm_pt)
bool BKE_object_minmax_dupli(struct Depsgraph *depsgraph, struct Scene *scene, struct Object *ob, float r_min[3], float r_max[3], const bool use_hidden)
void * BKE_object_tfm_backup(struct Object *ob)
void BKE_object_where_is_calc(struct Depsgraph *depsgraph, struct Scene *scene, struct Object *ob)
void BKE_object_transform_copy(struct Object *ob_tar, const struct Object *ob_src)
void BKE_object_rot_to_mat3(const struct Object *ob, float r_mat[3][3], bool use_drot)
void BKE_object_to_mat3(struct Object *ob, float r_mat[3][3])
void BKE_object_to_mat4(struct Object *ob, float r_mat[4][4])
void BKE_object_workob_calc_parent(struct Depsgraph *depsgraph, struct Scene *scene, struct Object *ob, struct Object *workob)
void BKE_object_scale_to_mat3(struct Object *ob, float r_mat[3][3])
void BKE_object_eval_transform_all(struct Depsgraph *depsgraph, struct Scene *scene, struct Object *object)
void BKE_object_apply_mat4(struct Object *ob, const float mat[4][4], const bool use_compat, const bool use_parent)
void BKE_report(ReportList *reports, ReportType type, const char *message)
void BKE_reportf(ReportList *reports, ReportType type, const char *format,...) ATTR_PRINTF_FORMAT(3
void BKE_scene_graph_evaluated_ensure(struct Depsgraph *depsgraph, struct Main *bmain)
void BKE_tracking_reconstruction_scale(struct MovieTracking *tracking, float scale[3])
A (mainly) macro array library.
#define BLI_array_append(arr, item)
#define BLI_array_append_ret(arr)
#define BLI_array_declare(arr)
#define BLI_array_len(arr)
#define LISTBASE_FOREACH(type, var, list)
MINLINE float max_fff(float a, float b, float c)
MINLINE int compare_ff_relative(float a, float b, const float max_diff, const int max_ulps)
int isect_line_line_v3(const float v1[3], const float v2[3], const float v3[3], const float v4[3], float r_i1[3], float r_i2[3])
void mul_m3_v3(const float M[3][3], float r[3])
void unit_m3(float m[3][3])
void copy_m3_m4(float m1[3][3], const float m2[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()
void mul_m4_v3(const float M[4][4], float r[3])
float mat3_to_scale(const float M[3][3])
bool invert_m3_m3(float R[3][3], const float A[3][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])
void mul_v3_m3v3(float r[3], const float M[3][3], const float a[3])
void mul_m3_m3m3(float R[3][3], const float A[3][3], const float B[3][3])
void mul_v3_mat3_m4v3(float r[3], const float M[4][4], const float v[3])
void eulO_to_axis_angle(float axis[3], float *angle, const float eul[3], const short order)
void mul_qt_fl(float q[4], const float f)
void eul_to_quat(float quat[4], const float eul[3])
void quat_to_eul(float eul[3], const float quat[4])
void axis_angle_to_eulO(float eul[3], const short order, const float axis[3], const float angle)
void rotation_between_vecs_to_mat3(float m[3][3], const float v1[3], const float v2[3])
void unit_axis_angle(float axis[3], float *angle)
void copy_qt_qt(float q[4], const float a[4])
MINLINE float len_v3v3(const float a[3], const float b[3]) ATTR_WARN_UNUSED_RESULT
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 float len_squared_v3v3(const float a[3], const float b[3]) ATTR_WARN_UNUSED_RESULT
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 add_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])
void mid_v3_v3v3(float r[3], const float a[3], const float b[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)
typedef double(DMatrix)[4][4]
struct Depsgraph Depsgraph
void DEG_id_tag_update(struct ID *id, int flag)
struct Object * DEG_get_evaluated_object(const struct Depsgraph *depsgraph, struct Object *object)
struct Scene * DEG_get_evaluated_scene(const struct Depsgraph *graph)
@ ID_RECALC_COPY_ON_WRITE
#define ID_IS_LINKED(_id)
#define ID_REAL_USERS(id)
Object groups, one object can be in many groups at once.
Object is a sort of wrapper for general info.
@ SCE_XFORM_SKIP_CHILDREN
@ V3D_AROUND_CENTER_BOUNDS
@ V3D_AROUND_CENTER_MEDIAN
#define V3D_HIDE_OVERLAYS
#define ANIM_KS_LOCATION_ID
#define ANIM_KS_SCALING_ID
#define ANIM_KS_ROTATION_ID
void EDBM_mesh_normals_update(struct BMEditMesh *em)
void ED_object_xform_skip_child_container_item_ensure_from_array(struct XFormObjectSkipChild_Container *xcs, struct ViewLayer *view_layer, struct Object **objects, uint objects_len)
void ED_object_xform_skip_child_container_update_all(struct XFormObjectSkipChild_Container *xcs, struct Main *bmain, struct Depsgraph *depsgraph)
void ED_object_xform_skip_child_container_destroy(struct XFormObjectSkipChild_Container *xcs)
struct XFormObjectSkipChild_Container * ED_object_xform_skip_child_container_create(void)
void ED_object_data_xform_container_destroy(struct XFormObjectData_Container *xds)
void ED_object_data_xform_container_item_ensure(struct XFormObjectData_Container *xds, struct Object *ob)
void ED_object_data_xform_container_update_all(struct XFormObjectData_Container *xds, struct Main *bmain, struct Depsgraph *depsgraph)
struct XFormObjectData_Container * ED_object_data_xform_container_create(void)
void ED_region_tag_redraw(struct ARegion *region)
bool ED_operator_objectmode(struct bContext *C)
bool ED_operator_scene_editable(struct bContext *C)
bool ED_operator_region_view3d_active(struct bContext *C)
bool ED_view3d_depth_read_cached(const ViewDepths *vd, const int mval[2], int margin, float *r_depth)
void ED_view3d_viewcontext_init(struct bContext *C, struct ViewContext *vc, struct Depsgraph *depsgraph)
void ED_view3d_win_to_ray(const struct ARegion *region, const float mval[2], float r_ray_start[3], float r_ray_normal[3])
bool ED_view3d_depth_read_cached_normal(const ViewContext *vc, const int mval[2], float r_normal[3])
bool ED_view3d_depth_unproject(const struct ARegion *region, const int mval[2], const double depth, float r_location_world[3])
void ED_view3d_project(const struct ARegion *region, const float world[3], float r_region_co[3])
void ED_view3d_depth_override(struct Depsgraph *depsgraph, struct ARegion *region, struct View3D *v3d, struct Object *obact, eV3DDepthOverrideMode mode, bool update_cache)
void view3d_operator_needs_opengl(const struct bContext *C)
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 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 v1
Read Guarded memory(de)allocation.
#define MEM_reallocN(vmemh, len)
void ED_armature_origin_set(Main *bmain, Object *ob, const float cursor[3], int centermode, int around)
#define BM_ITER_MESH(ele, iter, bm, itype)
static DBVT_INLINE btScalar size(const btDbvtVolume &a)
const Depsgraph * depsgraph
IconTextureDrawCall normal
bool ED_autokeyframe_object(bContext *C, Scene *scene, Object *ob, KeyingSet *ks)
KeyingSet * ANIM_get_keyingset_for_autokeying(const Scene *scene, const char *transformKSName)
void *(* MEM_malloc_arrayN)(size_t len, size_t size, const char *str)
void(* MEM_freeN)(void *vmemh)
void *(* MEM_callocN)(size_t len, const char *str)
bool RNA_property_is_set(PointerRNA *ptr, PropertyRNA *prop)
void RNA_property_enum_set(PointerRNA *ptr, PropertyRNA *prop, int value)
PropertyRNA * RNA_struct_find_property(PointerRNA *ptr, const char *identifier)
int RNA_property_enum_get(PointerRNA *ptr, PropertyRNA *prop)
bool RNA_boolean_get(PointerRNA *ptr, const char *name)
int RNA_enum_get(PointerRNA *ptr, const char *name)
PropertyRNA * RNA_def_boolean(StructOrFunctionRNA *cont_, const char *identifier, bool default_value, const char *ui_name, const char *ui_description)
PropertyRNA * RNA_def_enum(StructOrFunctionRNA *cont_, const char *identifier, const EnumPropertyItem *items, int default_value, const char *ui_name, const char *ui_description)
struct BMEditMesh * edit_mesh
struct MovieTracking tracking
struct Collection * instance_collection
struct ViewDepths * depths
struct ToolSettings * toolsettings
struct Depsgraph * depsgraph
struct RegionView3D * rv3d
int(* invoke)(struct bContext *, struct wmOperator *, const struct wmEvent *) ATTR_WARN_UNUSED_RESULT
int(* modal)(struct bContext *, struct wmOperator *, const struct wmEvent *) ATTR_WARN_UNUSED_RESULT
bool(* poll)(struct bContext *) ATTR_WARN_UNUSED_RESULT
void(* cancel)(struct bContext *, struct wmOperator *)
int(* exec)(struct bContext *, struct wmOperator *) ATTR_WARN_UNUSED_RESULT
struct ReportList * reports
int WM_userdef_event_type_from_keymap_type(int kmitype)
wmEventHandler_Op * WM_event_add_modal_handler(bContext *C, wmOperator *op)
void WM_event_add_notifier(const bContext *C, uint type, void *reference)
#define ISMOUSE(event_type)
int WM_menu_invoke(bContext *C, wmOperator *op, const wmEvent *UNUSED(event))