199 float eul[3], oldeul[3], quat1[4] = {0};
212 eul[0] = eul[1] = eul[2] = 0.0f;
227 if ((quat1[0] < 0.0f && ob->
quat[0] > 0.0f) || (quat1[0] > 0.0f && ob->
quat[0] < 0.0f)) {
288 void (*clear_func)(
Object *,
const bool),
289 const char default_ksName[])
320 if (use_transform_skip_children) {
324 xcs, view_layer, objects.
data(), objects.
size());
326 if (use_transform_data_origin) {
334 for (
Object *ob : objects) {
335 if (use_transform_data_origin) {
340 clear_func(ob, clear_delta);
348 if (use_transform_skip_children) {
353 if (use_transform_data_origin) {
378 ot->
name =
"Clear Location";
380 ot->
idname =
"OBJECT_OT_location_clear";
395 "Clear delta location in addition to clearing the normal location transform");
412 ot->
name =
"Clear Rotation";
414 ot->
idname =
"OBJECT_OT_rotation_clear";
429 "Clear delta rotation in addition to clearing the normal rotation transform");
448 ot->
idname =
"OBJECT_OT_scale_clear";
463 "Clear delta scale in addition to clearing the normal scale transform");
481 v3 = ob->parentinv[3];
500 ot->
name =
"Clear Origin";
502 ot->
idname =
"OBJECT_OT_origin_clear";
528 if (ob_child->parent == ob) {
552 if (!
ELEM(object->
parent,
nullptr, root_object)) {
554 root_object, object->
parent, sorted_objects, object_index);
557 sorted_objects[*object_index] = object;
575 if (num_objects == 0) {
581 int object_index = 0;
590 return sorted_objects;
600 if (
ELEM(
nullptr, obact, obact->
data)) {
608 bool all_objects_same_data =
true;
609 bool obact_selected =
false;
612 if (ob->data != obact->
data) {
613 all_objects_same_data =
false;
618 obact_selected =
true;
623 return all_objects_same_data && obact_selected;
652 float rsmat[3][3], obmat[3][3], iobmat[3][3], mat[4][4], scale;
655 float obact_invmat[4][4], obact_parent[4][4], obact_parentinv[4][4];
659 bool make_single_user =
false;
671 if (do_single_user) {
672 make_single_user =
true;
675 ID *obact_data =
static_cast<ID *
>(obact->
data);
678 R
"(Cannot apply to a multi user: Object "%s", %s "%s", aborting)",
681 obact_data->name + 2);
699 ID *obdata =
static_cast<ID *
>(ob->data);
703 R
"(Cannot apply to a multi user: Object "%s", %s "%s", aborting)",
713 R
"(Cannot apply to library or override data: Object "%s", %s "%s", aborting)",
722 ID *obdata =
static_cast<ID *
>(ob->data);
729 R
"(Rotation/Location can't apply to a 2D curve: Object "%s", %s "%s", aborting)",
738 R
"(Can't apply to a curve with shape-keys: Object "%s", %s "%s", aborting)",
747 if (apply_rot || apply_loc) {
749 reports,
RPT_ERROR,
"Font's can only have scale applied: \"%s\"", ob->id.name + 2);
759 bool has_unparented_layers =
false;
764 if (gpl->parent ==
nullptr) {
765 has_unparented_layers =
true;
770 if (has_unparented_layers ==
false) {
773 "Can't apply to a GP data-block where all layers are parented: Object "
774 "\"%s\", %s \"%s\", aborting",
786 R
"(Can't apply to GP data-block with no layers: Object "%s", %s "%s", aborting)",
797 if (apply_rot || apply_loc) {
800 "Area Lights can only have scale applied: \"%s\"",
817 if (make_single_user) {
830 for (
Object *ob : objects) {
832 if (apply_scale && apply_rot) {
835 else if (apply_scale) {
838 else if (apply_rot) {
839 float tmat[3][3], timat[3][3];
860 if (!(apply_scale && apply_rot)) {
871 if (do_multi_user && ob != obact) {
875 ob->data = obact->
data;
878 else if (ob->type ==
OB_MESH) {
879 Mesh *me =
static_cast<Mesh *
>(ob->data);
906 else if (ob->type ==
OB_FONT) {
911 for (
int i = 0; i < cu->
totbox; i++) {
959 if ((apply_loc ==
false) && (apply_rot ==
false) && (apply_scale ==
true)) {
961 ob->empty_drawsize *= max_scale;
964 else if (ob->type ==
OB_LAMP) {
988 if (do_multi_user && ob != obact) {
989 float _obmat[4][4], _iobmat[4][4];
1000 if (apply_loc && apply_scale && apply_rot) {
1004 Object ob_temp = blender::dna::shallow_copy(*ob);
1073 bool changed =
false;
1099 ot->
name =
"Apply Visual Transform";
1100 ot->
description =
"Apply the object's visual transformation to its data";
1101 ot->
idname =
"OBJECT_OT_visual_transform_apply";
1119 if (loc ||
rot || sca) {
1133 if ((ob !=
nullptr) && (ob->
data !=
nullptr) && need_single_user) {
1140 C, op,
"Create new object-data users and apply transformation");
1149 ot->
name =
"Apply Object Transform";
1150 ot->
description =
"Apply the object's transformation to its data";
1151 ot->
idname =
"OBJECT_OT_transform_apply";
1168 "Modify properties such as curve vertex radius, font size and bone envelope");
1172 "Isolate Multi User Data",
1173 "Create new object-data users if needed");
1187 if (ob->parent ==
nullptr) {
1204 ot->
name =
"Apply Parent Inverse";
1205 ot->
description =
"Apply the object's parent inverse to its data";
1206 ot->
idname =
"OBJECT_OT_parent_inverse_apply";
1237 float3 cent, cent_neg, centn;
1242 int tot_change = 0, tot_lib_error = 0, tot_multiuser_arm_error = 0;
1315 for (
const int object_index : objects.
index_range()) {
1316 Object *ob = objects[object_index];
1320 if (ob == obact && objects.
size() > 1) {
1321 memmove(&objects[1], objects.
data(), object_index *
sizeof(
Object *));
1330 if (tob->instance_collection) {
1335 for (
Object *ob : objects) {
1340 bool do_inverse_offset =
false;
1349 if (ob->data ==
nullptr) {
1352 (ob->instance_collection->id.tag &
LIB_TAG_DOIT) == 0) {
1370 add_v3_v3(ob->instance_collection->instance_offset, cent);
1374 do_inverse_offset =
true;
1381 else if (ob->type ==
OB_MESH) {
1382 if (obedit ==
nullptr) {
1383 Mesh *me =
static_cast<Mesh *
>(ob->data);
1406 do_inverse_offset =
true;
1432 do_inverse_offset =
true;
1441 else if (ob->type ==
OB_FONT) {
1455 cent[0] = 0.5f * (ob->runtime.bb->vec[4][0] + ob->runtime.bb->vec[0][0]);
1456 cent[1] = 0.5f * (ob->runtime.bb->vec[0][1] + ob->runtime.bb->vec[2][1]);
1461 cu->
xof = cu->
xof - cent[0];
1462 cu->
yof = cu->
yof - cent[1];
1466 do_inverse_offset =
true;
1477 tot_multiuser_arm_error++;
1521 do_inverse_offset =
true;
1548 do_inverse_offset =
true;
1564 float imat[3][3], bmat[3][3];
1565 float offset_global[3];
1566 float offset_local[3];
1569 sub_v3_v3v3(offset_global, gpcenter, ob->obmat[3]);
1575 float diff_mat[4][4];
1576 float inverse_diff_mat[4][4];
1587 for (i = 0, pt = gps->points; i < gps->totpoints; i++, pt++) {
1595 if (gps->editcurve !=
nullptr) {
1596 for (i = 0; i < gps->editcurve->tot_curve_points; i++) {
1597 BezTriple *bezt = &gps->editcurve->curve_points[i].bezt;
1598 for (
int j = 0; j < 3; j++) {
1618 do_inverse_offset =
true;
1623 "Grease Pencil Object does not support this set origin option");
1634 op->
reports,
RPT_WARNING,
"Curves Object does not support this set origin operation");
1638 if (
curves.points_num() == 0) {
1661 do_inverse_offset =
true;
1694 for (
Object *ob_other : objects) {
1695 if ((ob_other->flag &
OB_DONE) == 0 &&
1696 ((ob->data && (ob->data == ob_other->data)) ||
1697 (ob->instance_collection == ob_other->instance_collection &&
1727 else if (tob->instance_collection && tob->instance_collection->id.tag &
LIB_TAG_DOIT) {
1738 if (tot_lib_error + tot_multiuser_arm_error) {
1741 "%i object(s) not centered, %i changed:",
1742 tot_lib_error + tot_multiuser_arm_error,
1744 if (tot_lib_error) {
1747 if (tot_multiuser_arm_error) {
1749 op->
reports,
RPT_WARNING,
"|%i multiuser armature object(s)", tot_multiuser_arm_error);
1762 "Geometry to Origin",
1763 "Move object geometry to object origin"},
1767 "Origin to Geometry",
1768 "Calculate the center of geometry based on the current pivot point (median, otherwise "
1773 "Origin to 3D Cursor",
1774 "Move object origin to position of the 3D cursor"},
1777 "ORIGIN_CENTER_OF_MASS",
1779 "Origin to Center of Mass (Surface)",
1780 "Calculate the center of mass from the surface area"},
1782 "ORIGIN_CENTER_OF_VOLUME",
1784 "Origin to Center of Mass (Volume)",
1785 "Calculate the center of mass from the volume (must be manifold geometry with consistent "
1787 {0,
nullptr, 0,
nullptr,
nullptr},
1793 {0,
nullptr, 0,
nullptr,
nullptr},
1799 "Set the object's origin, by either moving the data, or set to center of data, or use 3D "
1801 ot->
idname =
"OBJECT_OT_origin_set";
1827 #define USE_RELATIVE_ROTATION
1829 #define USE_RENDER_OVERRIDE
1834 #define USE_FAKE_DEPTH_INIT
1843 #ifdef USE_RELATIVE_ROTATION
1865 #ifdef USE_FAKE_DEPTH_INIT
1868 float view_co_a[3], view_co_b[3];
1869 const float2 mval_fl = {
static_cast<float>(mval[0]),
static_cast<float>(mval[1])};
1872 float center[3] = {0.0f};
1876 const float *ob_co_a = ob->
obmat[3];
1879 float view_isect[3], ob_isect[3];
1880 if (
isect_line_line_v3(view_co_a, view_co_b, ob_co_a, ob_co_b, view_isect, ob_isect)) {
1887 float center_proj[3];
1916 #ifdef USE_RENDER_OVERRIDE
1947 Object ob_prev = blender::dna::shallow_copy(*ob);
1953 *ob = blender::dna::shallow_copy(ob_prev);
1958 const float rot_orig[3][3],
1959 const float axis[3],
1960 const float location[3],
1971 float delta_rot[3][3];
1972 float final_rot[3][3];
2008 #ifdef USE_RENDER_OVERRIDE
2017 #ifdef USE_RENDER_OVERRIDE
2021 if (depths ==
nullptr) {
2034 xfd->
vc.
mval[0] =
event->mval[0];
2035 xfd->
vc.
mval[1] =
event->mval[1];
2060 float full_mat3[3][3];
2077 const bool is_translate =
event->modifier &
KM_CTRL;
2078 const bool is_translate_init = is_translate && (xfd->
is_translate != is_translate);
2082 if (depths && ((
uint)event->
mval[0] < depths->
w) && ((
uint)event->
mval[1] < depths->
h)) {
2083 float depth_fl = 1.0f;
2085 float location_world[3];
2086 if (depth_fl == 1.0f) {
2092 #ifdef USE_FAKE_DEPTH_INIT
2094 if (depth_fl == 1.0f) {
2104 double depth = (
double)depth_fl;
2112 bool normal_found =
false;
2114 normal_found =
true;
2118 for (
int x = -ofs;
x <= ofs;
x += ofs / 2) {
2119 for (
int y = -ofs;
y <= ofs;
y += ofs / 2) {
2120 if (
x != 0 &&
y != 0) {
2121 const int mval_ofs[2] = {
event->mval[0] +
x,
event->mval[1] +
y};
2133 normal_found =
true;
2137 #ifdef USE_RELATIVE_ROTATION
2139 float xform_rot_offset_inv_first[3][3];
2159 if (is_translate_init) {
2170 float target_normal[3];
2179 #ifdef USE_RELATIVE_ROTATION
2226 bool is_finished =
false;
2254 ot->
name =
"Interactive Light Track to Cursor";
2255 ot->
description =
"Interactively point cameras and lights to a location (Ctrl translates)";
2256 ot->
idname =
"OBJECT_OT_transform_axis_target";
2268 #undef USE_RELATIVE_ROTATION
typedef float(TangentPoint)[2]
void BKE_armature_transform(struct bArmature *arm, const float mat[4][4], 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)
#define CTX_DATA_COUNT(C, member)
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_translate(struct Curve *cu, const float offset[3], bool do_keys)
void BKE_curve_transform_ex(struct Curve *cu, const float mat[4][4], bool do_keys, bool do_props, float unit_scale)
bool BKE_curve_center_bounds(struct Curve *cu, float cent[3])
Low-level operations for curves.
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(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_newptr_and_tag_clear(struct Main *bmain)
void BKE_main_id_tag_all(struct Main *mainvar, int tag, bool value)
bool BKE_id_is_editable(const struct Main *bmain, const struct ID *id)
void id_us_min(struct ID *id)
void id_us_plus(struct ID *id)
bool BKE_mball_center_median(const struct MetaBall *mb, float r_cent[3])
void BKE_mball_transform(struct MetaBall *mb, const float mat[4][4], bool do_props)
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_mesh_translate(struct Mesh *me, const float offset[3], bool do_keys)
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])
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 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)
bool BKE_object_minmax_dupli(struct Depsgraph *depsgraph, struct Scene *scene, struct Object *ob, float r_min[3], float r_max[3], bool use_hidden)
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)
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_apply_parent_inverse(struct Object *ob)
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_apply_mat4(struct Object *ob, const float mat[4][4], bool use_compat, bool use_parent)
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_reportf(ReportList *reports, eReportType type, const char *format,...) ATTR_PRINTF_FORMAT(3
void BKE_report(ReportList *reports, eReportType type, const char *message)
void BKE_scene_graph_evaluated_ensure(struct Depsgraph *depsgraph, struct Main *bmain)
void BKE_tracking_reconstruction_scale(struct MovieTracking *tracking, float scale[3])
#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, float max_diff, 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_m4_m4_post(float R[4][4], const float B[4][4])
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], short order)
void mul_qt_fl(float q[4], 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], short order, const float axis[3], 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 void copy_v4_v4(float r[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)
void DEG_relations_tag_update(struct Main *bmain)
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)
#define ID_IS_OVERRIDE_LIBRARY(_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_single_obdata_user(struct Main *bmain, struct Scene *scene, struct Object *ob)
void ED_object_xform_skip_child_container_destroy(struct XFormObjectSkipChild_Container *xcs)
struct XFormObjectSkipChild_Container * ED_object_xform_skip_child_container_create(void)
struct Object * ED_object_active_context(const struct bContext *C)
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_project_v3(const struct ARegion *region, const float world[3], float r_region_co[3])
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 struct ARegion *region, const ViewDepths *depths, const int mval[2], float r_normal[3])
void ED_view3d_depths_free(ViewDepths *depths)
bool ED_view3d_depth_unproject_v3(const struct ARegion *region, const int mval[2], double depth, float r_location_world[3])
void view3d_operator_needs_opengl(const struct bContext *C)
void ED_view3d_depth_override(struct Depsgraph *depsgraph, struct ARegion *region, struct View3D *v3d, struct Object *obact, eV3DDepthOverrideMode mode, struct ViewDepths **r_depths)
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.
Group Output data from inside of a node group A color picker Mix two input colors RGB to Convert a color s luminance to a grayscale value Generate a normal vector and a dot product Bright Control the brightness and contrast of the input color Vector Map an input vectors to curves
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)
IndexRange index_range() const
void append(const T &value)
const T & last(const int64_t n=0) const
IndexRange index_range() const
static CurvesGeometry & wrap(::CurvesGeometry &dna_struct)
void transform(const float4x4 &matrix)
void calculate_bezier_auto_handles()
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_freeN)(void *vmemh)
T midpoint(const T &a, const T &b)
vec_base< float, 3 > float3
vec_base< float, 2 > float2
MutableSpan< float3 > positions
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)
bool RNA_property_boolean_get(PointerRNA *ptr, PropertyRNA *prop)
void RNA_property_boolean_set(PointerRNA *ptr, PropertyRNA *prop, bool value)
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)
void RNA_def_property_flag(PropertyRNA *prop, PropertyFlag flag)
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 ToolSettings * toolsettings
struct Depsgraph * depsgraph
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_BUTTON(event_type)
int WM_operator_confirm_message(bContext *C, wmOperator *op, const char *message)
int WM_menu_invoke(bContext *C, wmOperator *op, const wmEvent *UNUSED(event))