131 {
LA_LOCAL,
"POINT", ICON_LIGHT_POINT,
"Point",
"Omnidirectional point light source"},
132 {
LA_SUN,
"SUN", ICON_LIGHT_SUN,
"Sun",
"Constant direction parallel ray light source"},
133 {
LA_SPOT,
"SPOT", ICON_LIGHT_SPOT,
"Spot",
"Directional cone light source"},
134 {
LA_AREA,
"AREA", ICON_LIGHT_AREA,
"Area",
"Directional area light source"},
135 {0,
nullptr, 0,
nullptr,
nullptr},
141 {
PFIELD_WIND,
"WIND", ICON_FORCE_WIND,
"Wind",
""},
143 {
PFIELD_MAGNET,
"MAGNET", ICON_FORCE_MAGNETIC,
"Magnetic",
""},
146 {
PFIELD_LENNARDJ,
"LENNARDJ", ICON_FORCE_LENNARDJONES,
"Lennard-Jones",
""},
148 {
PFIELD_GUIDE,
"GUIDE", ICON_FORCE_CURVE,
"Curve Guide",
""},
149 {
PFIELD_BOID,
"BOID", ICON_FORCE_BOID,
"Boid",
""},
151 {
PFIELD_DRAG,
"DRAG", ICON_FORCE_DRAG,
"Drag",
""},
153 {0,
nullptr, 0,
nullptr,
nullptr},
159 ICON_LIGHTPROBE_CUBEMAP,
160 "Reflection Cubemap",
161 "Reflection probe with spherical or cubic attenuation"},
164 ICON_LIGHTPROBE_PLANAR,
166 "Planar reflection probe"},
169 ICON_LIGHTPROBE_GRID,
171 "Irradiance probe to capture diffuse indirect lighting"},
172 {0,
nullptr, 0,
nullptr,
nullptr},
182 {
ALIGN_WORLD,
"WORLD", 0,
"World",
"Align the new object to the world"},
183 {
ALIGN_VIEW,
"VIEW", 0,
"View",
"Align the new object to the view"},
184 {
ALIGN_CURSOR,
"CURSOR", 0,
"3D Cursor",
"Use the 3D cursor orientation for the new object"},
185 {0,
nullptr, 0,
nullptr,
nullptr},
208 "X-coordinate (screen space) to place the new object under",
218 "Y-coordinate (screen space) to place the new object under",
276 BLI_assert(align_axis >=
'X' && align_axis <=
'Z');
278 switch (align_axis) {
281 const float axis_y[4] = {0.0f, 1.0f, 0.0f};
282 float quat_y[4], quat[4];
303 BLI_assert(align_axis >=
'X' && align_axis <=
'Z');
307 viewquat[0] *= -1.0f;
332 const float scale[3],
333 float r_primmat[4][4])
337 float mat[3][3], rmat[3][3], cmat[3][3], imat[3][3];
356 if (scale !=
nullptr) {
408 "Enter edit mode when adding this object");
423 "Location for the newly added object",
434 "Rotation for the newly added object",
446 "Scale for the newly added object",
459 const char view_align_axis,
463 bool *r_enter_editmode,
464 ushort *r_local_view_bits,
465 bool *r_is_view_aligned)
469 bool _enter_editmode;
470 if (!r_enter_editmode) {
471 r_enter_editmode = &_enter_editmode;
475 *r_enter_editmode =
false;
478 if (prop !=
nullptr) {
489 if (r_local_view_bits) {
512 bool _is_view_aligned;
514 if (!r_is_view_aligned) {
515 r_is_view_aligned = &_is_view_aligned;
525 *r_is_view_aligned =
false;
540 if (*r_is_view_aligned) {
584 if (prop !=
nullptr) {
603 const bool enter_editmode,
604 const ushort local_view_bits,
613 if (obedit !=
nullptr) {
620 if (obdata !=
nullptr) {
624 if (materials_len_p && *materials_len_p > 0) {
636 if (ob_base_act !=
nullptr) {
650 if (ob->
data !=
nullptr) {
654 if (enter_editmode) {
673 const bool enter_editmode,
674 const ushort local_view_bits)
677 C,
type, name, loc,
rot, enter_editmode, local_view_bits,
nullptr);
685 float loc[3],
rot[3], radius;
688 C, op,
'Z', loc,
rot,
nullptr, &enter_editmode, &local_view_bits,
nullptr)) {
754 float loc[3],
rot[3];
757 C, op,
'Z', loc,
rot,
nullptr, &enter_editmode, &local_view_bits,
nullptr)) {
777 ot->
name =
"Add Light Probe";
779 ot->
idname =
"OBJECT_OT_lightprobe_add";
846 float loc[3],
rot[3];
849 C, op,
'Z', loc,
rot,
nullptr, &enter_editmode, &local_view_bits,
nullptr)) {
871 if (!enter_editmode) {
892 ot->
name =
"Add Effector";
893 ot->
description =
"Add an empty object with a physics effector to the scene";
894 ot->
idname =
"OBJECT_OT_effector_add";
926 float loc[3],
rot[3];
928 C, op,
'Z', loc,
rot,
nullptr, &enter_editmode, &local_view_bits,
nullptr)) {
934 if (v3d->
camera ==
nullptr) {
956 ot->
idname =
"OBJECT_OT_camera_add";
986 float loc[3],
rot[3];
989 C, op,
'Z', loc,
rot,
nullptr, &enter_editmode, &local_view_bits,
nullptr)) {
1013 if (newob && !enter_editmode) {
1027 ot->
name =
"Add Metaball";
1029 ot->
idname =
"OBJECT_OT_metaball_add";
1054 bool enter_editmode;
1056 float loc[3],
rot[3];
1060 C, op,
'Z', loc,
rot,
nullptr, &enter_editmode, &local_view_bits,
nullptr)) {
1107 bool enter_editmode;
1109 float loc[3],
rot[3], dia;
1114 C, op,
'Z', loc,
rot,
nullptr, &enter_editmode, &local_view_bits,
nullptr)) {
1126 if (obedit ==
nullptr) {
1135 if (newob && !enter_editmode) {
1145 ot->
name =
"Add Armature";
1147 ot->
idname =
"OBJECT_OT_armature_add";
1172 float loc[3],
rot[3];
1176 C, op,
'Z', loc,
rot,
nullptr,
nullptr, &local_view_bits,
nullptr)) {
1192 ot->
idname =
"OBJECT_OT_empty_add";
1213 Image *ima =
nullptr;
1237 C, op,
'Z',
nullptr,
rot,
nullptr,
nullptr, &local_view_bits,
nullptr)) {
1262 ot->
name =
"Add Empty Image/Drop Image to Empty";
1263 ot->
description =
"Add an empty image type to scene with data";
1264 ot->
idname =
"OBJECT_OT_drop_named_image";
1280 "Select the file relative to the blend file");
1320 const int stroke_depth_order =
RNA_enum_get(op->
ptr,
"stroke_depth_order");
1321 const float stroke_depth_offset =
RNA_float_get(op->
ptr,
"stroke_depth_offset");
1324 float loc[3],
rot[3];
1330 C, op,
'Y', loc,
rot,
nullptr,
nullptr, &local_view_bits,
nullptr)) {
1335 const char *ob_name =
nullptr;
1481 uiItemR(layout, op->
ptr,
"radius", 0,
nullptr, ICON_NONE);
1482 uiItemR(layout, op->
ptr,
"align", 0,
nullptr, ICON_NONE);
1483 uiItemR(layout, op->
ptr,
"location", 0,
nullptr, ICON_NONE);
1484 uiItemR(layout, op->
ptr,
"rotation", 0,
nullptr, ICON_NONE);
1485 uiItemR(layout, op->
ptr,
"type", 0,
nullptr, ICON_NONE);
1489 uiItemR(layout, op->
ptr,
"use_lights", 0,
nullptr, ICON_NONE);
1490 uiItemR(layout, op->
ptr,
"use_in_front", 0,
nullptr, ICON_NONE);
1494 uiItemR(
col, op->
ptr,
"stroke_depth_offset", 0,
nullptr, ICON_NONE);
1495 uiItemR(
col, op->
ptr,
"stroke_depth_order", 0,
nullptr, ICON_NONE);
1504 "Display strokes using grease pencil layers to define order"},
1505 {
GP_DRAWMODE_3D,
"3D", 0,
"3D Location",
"Display strokes using real 3D position in 3D space"},
1506 {0,
nullptr, 0,
nullptr,
nullptr},
1512 ot->
name =
"Add Grease Pencil";
1513 ot->
description =
"Add a Grease Pencil object to the scene";
1514 ot->
idname =
"OBJECT_OT_gpencil_add";
1536 "Show line art grease pencil in front of everything");
1538 "stroke_depth_offset",
1543 "Stroke offset for the line art modifier",
1547 ot->
srna,
"use_lights",
false,
"Use Lights",
"Use lights for this grease pencil object");
1550 "stroke_depth_order",
1553 "Stroke Depth Order",
1554 "Defines how the strokes are ordered in 3D space for objects not displayed 'In Front')");
1585 float loc[3],
rot[3];
1589 C, op,
'Z', loc,
rot,
nullptr,
nullptr, &local_view_bits,
nullptr)) {
1624 ot->
idname =
"OBJECT_OT_light_add";
1669 add_info.collection =
reinterpret_cast<Collection *
>(
1672 bool update_location_if_necessary =
false;
1673 if (add_info.collection) {
1674 update_location_if_necessary =
true;
1677 add_info.collection =
static_cast<Collection *
>(
1681 if (update_location_if_necessary) {
1690 if (add_info.collection ==
nullptr) {
1691 return std::nullopt;
1701 &add_info.local_view_bits,
1703 return std::nullopt;
1726 add_info->collection->id.name + 2,
1730 add_info->local_view_bits);
1757 ot->
name =
"Add Collection Instance";
1759 ot->
idname =
"OBJECT_OT_collection_instance_add";
1771 ot->
srna,
"name",
"Collection",
MAX_ID_NAME - 2,
"Name",
"Collection name to add");
1820 add_info->collection->id.name + 2,
1824 add_info->local_view_bits);
1832 float delta_mat[4][4];
1835 const float scale[3] = {1.0f, 1.0f, 1.0f};
1847 view_layer,
nullptr, &objects_len, &
params);
1862 ot->
name =
"Add Collection";
1863 ot->
description =
"Add the dragged collection to the scene";
1864 ot->
idname =
"OBJECT_OT_collection_external_asset_drop";
1885 "Add the dropped collection as collection instance");
1909 float loc[3],
rot[3];
1917 if (
id ==
nullptr) {
1921 if (object_type == -1) {
1933 C, op,
'Z', loc,
rot,
nullptr,
nullptr, &local_view_bits,
nullptr)) {
1938 C, object_type,
id->
name + 2, loc,
rot,
false, local_view_bits,
id);
1946 ot->
name =
"Add Object Data Instance";
1948 ot->
idname =
"OBJECT_OT_data_instance_add";
1979 float loc[3],
rot[3];
1981 C, op,
'Z', loc,
rot,
nullptr,
nullptr, &local_view_bits,
nullptr)) {
2013 ot->
name =
"Add Speaker";
2015 ot->
idname =
"OBJECT_OT_speaker_add";
2038 float loc[3],
rot[3];
2040 C, op,
'Z', loc,
rot,
nullptr,
nullptr, &local_view_bits,
nullptr)) {
2046 Curves *curves_id =
static_cast<Curves *
>(
object->data);
2055 ot->
name =
"Add Random Curves";
2056 ot->
description =
"Add a curves object with random curves to the scene";
2057 ot->
idname =
"OBJECT_OT_curves_random_add";
2075 C, op,
'Z',
nullptr,
nullptr,
nullptr,
nullptr, &local_view_bits,
nullptr)) {
2083 C,
OB_CURVES,
nullptr,
nullptr,
nullptr,
false, local_view_bits);
2088 curves_id->
surface = surface_ob;
2095 Mesh *surface_mesh =
static_cast<Mesh *
>(surface_ob->
data);
2097 if (uv_name !=
nullptr) {
2126 ot->
name =
"Add Empty Curves";
2127 ot->
description =
"Add an empty curve object to the scene with the selected mesh as surface";
2128 ot->
idname =
"OBJECT_OT_curves_empty_hair_add";
2146 if (!
U.experimental.use_new_point_cloud_type) {
2155 float loc[3],
rot[3];
2157 C, op,
'Z', loc,
rot,
nullptr,
nullptr, &local_view_bits,
nullptr)) {
2170 ot->
name =
"Add Point Cloud";
2172 ot->
idname =
"OBJECT_OT_pointcloud_add";
2196 "WARNING, undeletable object '%s', should have been caught before reaching this "
2225 uint changed_count = 0;
2226 uint tagged_count = 0;
2239 "Cannot delete indirectly linked object '%s'",
2247 "Cannot delete object '%s' as it is used by override collections",
2256 "Cannot delete object '%s' from scene '%s', indirectly used objects need at "
2283 if (gpl->parent !=
nullptr) {
2284 if (gpl->parent == ob) {
2285 gpl->parent =
nullptr;
2294 if ((changed_count + tagged_count) == 0) {
2298 if (tagged_count > 0) {
2342 ot->
srna,
"use_global",
false,
"Delete Globally",
"Remove object from all scenes");
2443 if (
a->ob !=
b->ob) {
2447 if (
a->type !=
b->type) {
2453 if (
a->persistent_id[i] !=
b->persistent_id[i]) {
2456 if (
a->persistent_id[i] == INT_MAX) {
2462 if (
a->persistent_id[0] !=
b->persistent_id[0]) {
2478 if (
a->persistent_id[i] !=
b->persistent_id[i]) {
2481 if (
a->persistent_id[i] == INT_MAX) {
2494 const bool use_base_parent,
2495 const bool use_hierarchy)
2499 GHash *parent_gh =
nullptr, *instancer_gh =
nullptr;
2516 if (use_hierarchy) {
2519 if (use_base_parent) {
2533 if (ob_dst->
mat ==
nullptr) {
2548 ob_dst->
adt =
nullptr;
2550 ob_dst->
parent =
nullptr;
2573 if (is_dupli_instancer && instancer_gh) {
2583 Object *ob_src = dob->ob;
2591 if (use_hierarchy) {
2594 Object *ob_dst_par =
nullptr;
2601 dob_key.
ob = ob_src_par;
2602 dob_key.
type = dob->type;
2605 &dob->persistent_id[1],
2624 ob_dst->
parent = ob_dst_par;
2627 if (use_base_parent && ob_dst->
parent ==
nullptr) {
2628 Object *ob_dst_par =
nullptr;
2630 if (instancer_gh !=
nullptr) {
2638 &dob->persistent_id[1],
2643 if (ob_dst_par ==
nullptr) {
2646 ob_dst_par = base->
object;
2649 ob_dst->
parent = ob_dst_par;
2716 ot->
name =
"Make Instances Real";
2717 ot->
description =
"Make instanced objects attached to this object real";
2718 ot->
idname =
"OBJECT_OT_duplicates_make_real";
2732 "Parent newly created objects to the original instancer");
2734 ot->
srna,
"use_hierarchy",
false,
"Keep Hierarchy",
"Maintain parent child relationships");
2746 ICON_OUTLINER_OB_CURVE,
2748 "Curve from Mesh or Text objects"},
2751 ICON_OUTLINER_OB_MESH,
2753 #ifdef WITH_POINT_CLOUD
2754 "Mesh from Curve, Surface, Metaball, Text, or Point Cloud objects"},
2756 "Mesh from Curve, Surface, Metaball, or Text objects"},
2760 ICON_OUTLINER_OB_GREASEPENCIL,
2762 "Grease Pencil from Curve or Mesh objects"},
2763 #ifdef WITH_POINT_CLOUD
2766 ICON_OUTLINER_OB_POINTCLOUD,
2768 "Point Cloud from Mesh objects"},
2770 {
OB_CURVES,
"CURVES", ICON_OUTLINER_OB_CURVES,
"Curves",
"Curves from evaluated curve data"},
2771 {0,
nullptr, 0,
nullptr,
nullptr},
2799 if (
mesh ==
nullptr) {
2816 if (other_object->data ==
curve) {
2820 other_object->data = ob->
data;
2845 if (ob ==
nullptr) {
2864 void *obdata = obn->
data;
2867 obn->
data =
nullptr;
2899 Base *basen =
nullptr, *basact =
nullptr;
2911 int a, mballConverted = 0;
2912 bool gpencilConverted =
false;
2913 bool gpencilCurveConverted =
false;
2948 Base *base =
static_cast<Base *
>(link->ptr.data);
2960 keep_original =
true;
2963 "Converting some non-editable object/object data, enforcing 'Keep Original' "
2978 Base *base =
static_cast<Base *
>(link->ptr.data);
2982 if (ob->
type != target) {
3003 if (keep_original) {
3032 float loc[3],
size[3],
rot[3][3], eul[3];
3061 int actcol = ob_gpencil->
actcol;
3062 for (
int slot = 1; slot <= ob_gpencil->
totcol; slot++) {
3064 ob_gpencil->
actcol = slot;
3067 if (actcol >= slot) {
3072 ob_gpencil->
actcol = actcol;
3084 if (keep_original) {
3103 newob->
data = new_curves;
3121 if (keep_original) {
3146 if (keep_original) {
3176 if (do_merge_customdata) {
3188 if (keep_original) {
3219 cu->
vfont =
nullptr;
3234 if (!keep_original) {
3268 gpencilConverted =
true;
3269 gpencilCurveConverted =
true;
3277 if (keep_original) {
3311 gpencilConverted =
true;
3362 if (keep_original) {
3417 if (!keep_original) {
3418 if (mballConverted) {
3423 Object *ob_basis =
nullptr;
3433 if (ob_mball->flag &
OB_DONE) {
3443 if (gpencilConverted) {
3446 if (ob_delete->flag &
OB_DONE) {
3456 if (gpencilCurveConverted) {
3472 BASACT(view_layer) = basact;
3494 uiItemR(layout, op->
ptr,
"target", 0,
nullptr, ICON_NONE);
3495 uiItemR(layout, op->
ptr,
"keep_original", 0,
nullptr, ICON_NONE);
3499 uiItemR(layout, op->
ptr,
"merge_customdata", 0,
nullptr, ICON_NONE);
3502 uiItemR(layout, op->
ptr,
"thickness", 0,
nullptr, ICON_NONE);
3503 uiItemR(layout, op->
ptr,
"angle", 0,
nullptr, ICON_NONE);
3504 uiItemR(layout, op->
ptr,
"offset", 0,
nullptr, ICON_NONE);
3505 uiItemR(layout, op->
ptr,
"seams", 0,
nullptr, ICON_NONE);
3506 uiItemR(layout, op->
ptr,
"faces", 0,
nullptr, ICON_NONE);
3516 ot->
description =
"Convert selected objects to another type";
3535 "Keep original objects instead of replacing them");
3542 "Merge UV coordinates that share a vertex to account for imprecision in some modifiers");
3551 "Threshold to determine ends of the strokes",
3565 "Offset strokes from fill",
3589 Base *base, *basen =
nullptr;
3596 obn =
static_cast<Object *
>(
3613 if (base !=
nullptr && basen !=
nullptr) {
3646 if (basen ==
nullptr) {
3661 if (ob->
data !=
nullptr) {
3692 Object *ob_new_active =
nullptr;
3703 if (ob_new ==
nullptr) {
3706 source_bases_new_objects.
append({base, ob_new});
3713 if (
BASACT(view_layer) == base) {
3714 ob_new_active = ob_new;
3720 if (source_bases_new_objects.
is_empty()) {
3728 for (
const auto &item : source_bases_new_objects) {
3729 Object *ob_new = item.second;
3730 Base *base_source = item.first;
3732 if (base_new ==
nullptr) {
3736 if (ob_new == ob_new_active) {
3766 ot->
name =
"Duplicate Objects";
3768 ot->
idname =
"OBJECT_OT_duplicate";
3782 "Duplicate object but not object data, linking to the original data");
3811 if (ob ==
nullptr) {
3831 if (basen ==
nullptr) {
3881 ot->
idname =
"OBJECT_OT_add_named";
3896 "Duplicate object but not object data, linking to the original data");
3901 ot->
srna,
"matrix", 4, 4,
nullptr, 0.0f, 0.0f,
"Matrix",
"", 0.0f, 0.0f);
3925 ob =
OBACT(view_layer);
3928 if (ob ==
nullptr) {
3947 view_layer,
nullptr, &objects_len, &
params);
3952 float mat_src_unit[4][4];
3953 float mat_dst_unit[4][4];
3954 float final_delta[4][4];
3959 mul_m4_m4m4(final_delta, mat_dst_unit, mat_src_unit);
3990 ot->
name =
"Place Object Under Mouse";
3991 ot->
description =
"Snap selected item(s) to the mouse location";
3992 ot->
idname =
"OBJECT_OT_transform_to_mouse";
4009 "Object name to place (uses the active object when this and 'session_uuid' are unset)");
4017 "Session UUID of the object to place (uses the active object when this and "
4018 "'name' are unset)",
4024 ot->
srna,
"matrix", 4, 4,
nullptr, 0.0f, 0.0f,
"Matrix",
"", 0.0f, 0.0f);
4067 "Cannot edit object '%s' as it is used by override collections",
4110 float imat_test[4][4];
4114 "Active object final transform has one or more zero scaled axes");
4125 ot->
description =
"Join selected objects into active object";
4174 "Cannot edit object '%s' as it is used by override collections",
4189 ot->
name =
"Join as Shapes";
4190 ot->
description =
"Copy the current resulting shape of another selected object to this one";
4191 ot->
idname =
"OBJECT_OT_join_shapes";
typedef float(TangentPoint)[2]
Blender kernel action and pose functionality.
void BKE_animdata_free(struct ID *id, bool do_id_user)
struct AnimData * BKE_animdata_ensure_id(struct ID *id)
Camera data-block and utility functions.
bool BKE_collection_cycle_find(struct Collection *new_ancestor, struct Collection *collection)
#define FOREACH_SCENE_OBJECT_END
void BKE_collection_object_add_from(struct Main *bmain, struct Scene *scene, struct Object *ob_src, struct Object *ob_dst)
bool BKE_collection_object_add(struct Main *bmain, struct Collection *collection, struct Object *ob)
bool BKE_collection_has_object(struct Collection *collection, const struct Object *ob)
bool BKE_collection_child_remove(struct Main *bmain, struct Collection *parent, struct Collection *child)
bool BKE_scene_collections_object_remove(struct Main *bmain, struct Scene *scene, struct Object *object, bool free_us)
#define FOREACH_SCENE_OBJECT_BEGIN(scene, _instance)
void BKE_constraints_free(struct ListBase *list)
struct Scene * CTX_data_scene(const bContext *C)
struct Object * CTX_data_edit_object(const bContext *C)
int CTX_data_selected_editable_bases(const bContext *C, ListBase *list)
struct Base * CTX_data_active_base(const bContext *C)
struct LayerCollection * CTX_data_layer_collection(const bContext *C)
struct wmWindowManager * CTX_wm_manager(const bContext *C)
#define CTX_DATA_BEGIN(C, Type, instance, member)
struct ViewLayer * CTX_data_view_layer(const bContext *C)
struct Collection * CTX_data_collection(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 ARegion * CTX_wm_region(const bContext *C)
void CTX_wm_operator_poll_msg_set(struct bContext *C, const char *msg)
struct Main * CTX_data_main(const bContext *C)
struct RegionView3D * CTX_wm_region_view3d(const bContext *C)
void BKE_curve_dimension_update(struct Curve *cu)
Low-level operations for curves that cannot be defined in the C++ header yet.
void CustomData_MeshMasks_update(CustomData_MeshMasks *mask_dst, const CustomData_MeshMasks *mask_src)
const char * CustomData_get_active_layer_name(const struct CustomData *data, int type)
const CustomData_MeshMasks CD_MASK_MESH
display list (or rather multi purpose list) stuff.
void BKE_displist_make_curveTypes(struct Depsgraph *depsgraph, const struct Scene *scene, struct Object *ob, bool for_render)
void BKE_displist_make_mball(struct Depsgraph *depsgraph, struct Scene *scene, struct Object *ob)
struct ListBase * object_duplilist(struct Depsgraph *depsgraph, struct Scene *sce, struct Object *ob)
void free_object_duplilist(struct ListBase *lb)
struct PartDeflect * BKE_partdeflect_new(int type)
bool BKE_object_has_geometry_set_instances(const struct Object *ob)
void BKE_gpencil_convert_curve(struct Main *bmain, struct Scene *scene, struct Object *ob_gp, struct Object *ob_cu, bool use_collections, float scale_thickness, float sample)
bool BKE_gpencil_convert_mesh(struct Main *bmain, struct Depsgraph *depsgraph, struct Scene *scene, struct Object *ob_gp, struct Object *ob_mesh, float angle, int thickness, float offset, const float matrix[4][4], int frame_offset, bool use_seams, bool use_faces, bool use_vgroups)
bool BKE_gpencil_modifier_unique_name(struct ListBase *modifiers, struct GpencilModifierData *gmd)
struct GpencilModifierData * BKE_gpencil_modifier_new(int type)
void BKE_base_eval_flags(struct Base *base)
struct LayerCollection * BKE_layer_collection_get_active(struct ViewLayer *view_layer)
void BKE_main_collection_sync(const struct Main *bmain)
void BKE_layer_collection_resync_allow(void)
struct LayerCollection * BKE_layer_collection_activate_parent(struct ViewLayer *view_layer, struct LayerCollection *lc)
struct Base * BKE_view_layer_base_find(struct ViewLayer *view_layer, struct Object *ob)
struct Object ** BKE_view_layer_array_selected_objects_params(struct ViewLayer *view_layer, const struct View3D *v3d, uint *r_len, const struct ObjectsInViewLayerParams *params)
void BKE_layer_collection_resync_forbid(void)
struct ID * BKE_id_copy(struct Main *bmain, const struct ID *id)
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)
void * BKE_id_new(struct Main *bmain, short type, const char *name)
void BKE_main_id_tag_listbase(struct ListBase *lb, int tag, bool value)
size_t BKE_id_multi_tagged_delete(struct Main *bmain) ATTR_NONNULL()
@ LIB_ID_DUPLICATE_IS_ROOT_ID
@ LIB_ID_DUPLICATE_IS_SUBPROCESS
bool BKE_lib_override_library_id_is_user_deletable(struct Main *bmain, struct ID *id)
bool BKE_library_ID_is_indirectly_used(struct Main *bmain, void *idv)
@ ID_REMAP_FORCE_OBDATA_IN_EDITMODE
void BKE_libblock_relink_to_newid(struct Main *bmain, struct ID *id, int remap_flag) ATTR_NONNULL()
General operations, lookup, etc. for blender lights.
General operations for probes.
void BKE_lightprobe_type_set(struct LightProbe *probe, short lightprobe_type)
#define FOREACH_MAIN_ID_END
#define FOREACH_MAIN_ID_BEGIN(_bmain, _id)
General operations, lookup, etc. for materials.
bool BKE_object_material_slot_remove(struct Main *bmain, struct Object *ob)
bool BKE_object_material_slot_used(struct Object *object, short actcol)
struct Material * BKE_gpencil_material(struct Object *ob, short act)
void BKE_object_materials_test(struct Main *bmain, struct Object *ob, struct ID *id)
short * BKE_id_material_len_p(struct ID *id)
void BKE_object_material_from_eval_data(struct Main *bmain, struct Object *ob_orig, const struct ID *data_eval)
struct Object * BKE_mball_basis_find(struct Scene *scene, struct Object *ob)
bool BKE_mball_is_basis(const struct Object *ob)
struct Mesh * BKE_mesh_copy_for_eval(const struct Mesh *source, bool reference)
struct Mesh * BKE_mesh_new_from_object_to_bmain(struct Main *bmain, struct Depsgraph *depsgraph, struct Object *object, bool preserve_all_data_layers)
void BKE_mesh_edges_set_draw_render(struct Mesh *me)
void BKE_mesh_nomain_to_mesh(struct Mesh *mesh_src, struct Mesh *mesh_dst, struct Object *ob, const struct CustomData_MeshMasks *mask, bool take_ownership)
void BKE_pointcloud_to_mesh(struct Main *bmain, struct Depsgraph *depsgraph, struct Scene *scene, struct Object *ob)
void BKE_mesh_from_metaball(struct ListBase *lb, struct Mesh *me)
struct Mesh * BKE_mesh_add(struct Main *bmain, const char *name)
void BKE_mesh_to_pointcloud(struct Main *bmain, struct Depsgraph *depsgraph, struct Scene *scene, struct Object *ob)
void BKE_mesh_merge_customdata_for_apply_modifier(struct Mesh *me)
void BKE_mesh_to_curve(struct Main *bmain, struct Depsgraph *depsgraph, struct Scene *scene, struct Object *ob)
struct Mesh * mesh_get_eval_final(struct Depsgraph *depsgraph, const struct Scene *scene, struct Object *ob, const struct CustomData_MeshMasks *dataMask)
void BKE_nlastrip_validate_name(struct AnimData *adt, struct NlaStrip *strip)
bool BKE_nlatrack_add_strip(struct NlaTrack *nlt, struct NlaStrip *strip, bool is_liboverride)
struct NlaStrip * BKE_nla_add_soundstrip(struct Main *bmain, struct Scene *scene, struct Speaker *speaker)
struct NlaTrack * BKE_nlatrack_add(struct AnimData *adt, struct NlaTrack *prev, bool is_liboverride)
General operations, lookup, etc. for blender objects.
void BKE_object_empty_draw_type_set(struct Object *ob, int value)
void BKE_object_free_modifiers(struct Object *ob, int flag)
bool BKE_object_obdata_is_libdata(const struct Object *ob)
void BKE_object_obdata_size_init(struct Object *ob, float size)
struct Object * BKE_object_add(struct Main *bmain, struct ViewLayer *view_layer, int type, const char *name) ATTR_NONNULL(1
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_free_derived_caches(struct Object *ob)
void BKE_object_free_curve_cache(struct Object *ob)
void BKE_object_free_shaderfx(struct Object *ob, int flag)
int BKE_object_obdata_to_type(const struct ID *id) ATTR_NONNULL(1)
struct Object * BKE_object_duplicate(struct Main *bmain, struct Object *ob, uint dupflag, uint duplicate_options)
struct Object * BKE_object_add_for_data(struct Main *bmain, struct ViewLayer *view_layer, int type, const char *name, struct ID *data, bool do_id_user) ATTR_RETURNS_NONNULL
bool BKE_object_is_in_editmode(const struct Object *ob)
General operations for point clouds.
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_update_tagged(struct Depsgraph *depsgraph, struct Main *bmain)
void BKE_scene_cursor_rot_to_mat3(const struct View3DCursor *cursor, float mat[3][3])
void BKE_scene_object_base_flag_sync_from_base(struct Base *base)
General operations for speakers.
bool BKE_vfont_to_curve_ex(struct Object *ob, struct Curve *cu, int mode, struct ListBase *r_nubase, const char32_t **r_text, int *r_text_len, bool *r_text_free, struct CharTrans **r_chartransdata)
unsigned int BLI_ghashutil_ptrhash(const void *key)
GHash * BLI_ghash_new(GHashHashFP hashfp, GHashCmpFP cmpfp, const char *info) ATTR_MALLOC ATTR_WARN_UNUSED_RESULT
void * BLI_ghash_lookup(const GHash *gh, const void *key) ATTR_WARN_UNUSED_RESULT
void BLI_ghash_insert(GHash *gh, void *key, void *val)
void BLI_ghash_free(GHash *gh, GHashKeyFreeFP keyfreefp, GHashValFreeFP valfreefp)
GHash * BLI_ghash_ptr_new(const char *info) ATTR_MALLOC ATTR_WARN_UNUSED_RESULT
bool BLI_ghash_ensure_p(GHash *gh, void *key, void ***r_val) ATTR_WARN_UNUSED_RESULT
#define BLI_ghashutil_inthash(key)
BLI_INLINE bool BLI_listbase_is_empty(const struct ListBase *lb)
#define LISTBASE_FOREACH(type, var, list)
void void BLI_freelistN(struct ListBase *listbase) ATTR_NONNULL(1)
void BLI_addtail(struct ListBase *listbase, void *vlink) ATTR_NONNULL(1)
void * BLI_findlink(const struct ListBase *listbase, int number) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL(1)
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)
bool invert_m4(float R[4][4])
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])
void translate_m4(float mat[4][4], float tx, float ty, float tz)
bool invert_m4_m4(float R[4][4], const float A[4][4])
void mat4_to_loc_rot_size(float loc[3], float rot[3][3], float size[3], const float wmat[4][4])
void rescale_m4(float mat[4][4], const float scale[3])
void normalize_m4_m4(float R[4][4], const float M[4][4]) ATTR_NONNULL()
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])
bool invert_m3(float R[3][3])
void loc_eul_size_to_mat4(float R[4][4], const float loc[3], const float eul[3], const float size[3])
void mul_m3_m3m3(float R[3][3], const float A[3][3], const float B[3][3])
void eul_to_mat3(float mat[3][3], const float eul[3])
void axis_angle_to_quat(float r[4], const float axis[3], float angle)
void quat_to_eul(float eul[3], const float quat[4])
void mat3_normalized_to_eul(float eul[3], const float mat[3][3])
void mul_qt_qtqt(float q[4], const float a[4], const float b[4])
void mat3_to_eul(float eul[3], const float mat[3][3])
void copy_qt_qt(float q[4], const float a[4])
MINLINE void sub_v3_v3v3(float r[3], const float a[3], const float b[3])
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 void copy_v3_fl(float r[3], float f)
MINLINE void zero_v3(float r[3])
char * BLI_strdup(const char *str) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL() ATTR_MALLOC
char * BLI_strncpy(char *__restrict dst, const char *__restrict src, size_t maxncpy) ATTR_NONNULL()
#define BLT_I18NCONTEXT_ID_ID
#define BLT_I18NCONTEXT_ID_GPENCIL
#define BLT_I18NCONTEXT_ID_LIGHT
#define BLT_I18NCONTEXT_ID_OBJECT
#define CTX_DATA_(context, msgid)
struct Depsgraph Depsgraph
void DEG_id_type_tag(struct Main *bmain, short id_type)
void DEG_id_tag_update_ex(struct Main *bmain, struct ID *id, int flag)
void DEG_id_tag_update(struct ID *id, int flag)
void DEG_graph_tag_relations_update(struct Depsgraph *graph)
void DEG_relations_tag_update(struct Main *bmain)
struct Object * DEG_get_original_object(struct Object *object)
struct ID * DEG_get_evaluated_id(const struct Depsgraph *depsgraph, struct ID *id)
struct Object * DEG_get_evaluated_object(const struct Depsgraph *depsgraph, struct Object *object)
#define ID_EXTRA_USERS(id)
@ ID_RECALC_COPY_ON_WRITE
#define ID_IS_LINKED(_id)
#define ID_REAL_USERS(id)
#define ID_IS_OVERRIDE_LIBRARY(_id)
#define ID_NEW_SET(_id, _idn)
Object groups, one object can be in many groups at once.
@ eGpencilModifierType_Lineart
#define GPENCIL_ANY_MODE(gpd)
Object is a sort of wrapper for general info.
@ OB_MODIFIER_FLAG_ADD_REST_POSITION
#define OBEDIT_FROM_VIEW_LAYER(view_layer)
#define BASACT(_view_layer)
#define OBACT(_view_layer)
struct MetaElem * ED_mball_add_primitive(struct bContext *C, struct Object *obedit, bool obedit_is_new, float mat[4][4], float dia, int type)
int ED_mesh_shapes_join_objects_exec(struct bContext *C, struct wmOperator *op)
int ED_mesh_join_objects_exec(struct bContext *C, struct wmOperator *op)
void ED_object_base_select(struct Base *base, eObjectSelect_Mode mode)
bool ED_object_editmode_exit_ex(struct Main *bmain, struct Scene *scene, struct Object *obedit, int flag)
#define OBJECT_ADD_SIZE_MAXF
bool ED_object_editmode_enter_ex(struct Main *bmain, struct Scene *scene, struct Object *ob, int flag)
void ED_object_base_activate(struct bContext *C, struct Base *base)
void ED_object_xform_array_m4(struct Object **objects, uint objects_len, const float matrix[4][4])
bool ED_object_base_deselect_all(struct ViewLayer *view_layer, struct View3D *v3d, int action)
bool ED_object_parent_set(struct ReportList *reports, const struct bContext *C, struct Scene *scene, struct Object *const ob, struct Object *const par, int partype, bool xmirror, bool keep_transform, const int vert_par[3])
void ED_outliner_select_sync_from_object_tag(struct bContext *C)
void ED_rigidbody_object_remove(struct Main *bmain, struct Scene *scene, struct Object *ob)
bool ED_operator_screenactive(struct bContext *C)
bool ED_operator_objectmode(struct bContext *C)
bool ED_operator_objectmode_poll_msg(struct bContext *C)
bool ED_operator_scene_editable(struct bContext *C)
bool ED_view3d_snap_selected_to_location(struct bContext *C, const float snap_target_global[3], int pivot_point)
float ED_scene_grid_scale(const struct Scene *scene, const char **r_grid_unit)
float ED_view3d_grid_scale(const struct Scene *scene, struct View3D *v3d, const char **r_grid_unit)
void ED_view3d_cursor3d_position(struct bContext *C, const int mval[2], bool use_depth, float r_cursor_co[3])
struct Object * ED_view3d_give_object_under_cursor(struct bContext *C, const int mval[2])
_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 type
Read Guarded memory(de)allocation.
const EnumPropertyItem * RNA_collection_itemf(struct bContext *C, struct PointerRNA *ptr, struct PropertyRNA *prop, bool *r_free)
void uiLayoutSetActive(uiLayout *layout, bool active)
uiLayout * uiLayoutColumn(uiLayout *layout, bool align)
void uiLayoutSetPropSep(uiLayout *layout, bool is_sep)
void uiItemR(uiLayout *layout, struct PointerRNA *ptr, const char *propname, int flag, const char *name, int icon)
EditBone * ED_armature_ebone_add_primitive(Object *obedit_arm, float length, bool view_aligned)
int ED_armature_join_objects_exec(bContext *C, wmOperator *op)
int main(int argc, char *argv[])
static DBVT_INLINE btScalar size(const btDbvtVolume &a)
SIMD_FORCE_INLINE btScalar angle(const btVector3 &v) const
Return the angle between this and another vector.
const Curves * get_for_read() const
void append(const T &value)
static CurvesGeometry & wrap(::CurvesGeometry &dna_struct)
const Depsgraph * depsgraph
int ED_curve_join_objects_exec(bContext *C, wmOperator *op)
Nurb * ED_curve_add_nurbs_primitive(bContext *C, Object *obedit, float mat[4][4], int type, int newob)
void ED_gpencil_create_blank(bContext *C, Object *ob, float UNUSED(mat[4][4]))
void ED_gpencil_create_lineart(bContext *C, Object *ob)
void ED_gpencil_create_monkey(bContext *C, Object *ob, float mat[4][4])
void ED_gpencil_create_stroke(bContext *C, Object *ob, float mat[4][4])
int ED_gpencil_join_objects_exec(bContext *C, wmOperator *op)
Object * ED_gpencil_add_object(bContext *C, const float loc[3], ushort local_view_bits)
void ED_gpencil_add_defaults(bContext *C, Object *ob)
ccl_gpu_kernel_postfix ccl_global float int int int int float bool int offset
void(* MEM_freeN)(void *vmemh)
void *(* MEM_dupallocN)(const void *vmemh)
MutableAttributeAccessor mesh_attributes_for_write(Mesh &mesh)
bke::CurvesGeometry primitive_random_sphere(const int curves_size, const int points_per_curve)
void ensure_surface_deformation_node_exists(bContext &C, Object &curves_ob)
vec_base< float, 3 > float3
static const pxr::TfToken b("b", pxr::TfToken::Immortal)
static void object_add_ui(bContext *UNUSED(C), wmOperator *op)
static void view_align_update(struct Main *UNUSED(main), struct Scene *UNUSED(scene), struct PointerRNA *ptr)
static bool object_gpencil_add_poll(bContext *C)
void ED_object_add_unit_props_size(wmOperatorType *ot)
void OBJECT_OT_curves_empty_hair_add(wmOperatorType *ot)
static uint dupliobject_hash(const void *ptr)
static const EnumPropertyItem convert_target_items[]
static int object_delete_exec(bContext *C, wmOperator *op)
static bool object_convert_poll(bContext *C)
void OBJECT_OT_drop_named_image(wmOperatorType *ot)
static const EnumPropertyItem align_options[]
void OBJECT_OT_convert(wmOperatorType *ot)
void OBJECT_OT_speaker_add(wmOperatorType *ot)
static int object_curves_empty_hair_add_exec(bContext *C, wmOperator *op)
static int collection_instance_add_exec(bContext *C, wmOperator *op)
static int empty_drop_named_image_invoke(bContext *C, wmOperator *op, const wmEvent *event)
static int object_add_drop_xy_generic_invoke(bContext *C, wmOperator *op, const wmEvent *event)
static int object_instance_add_invoke(bContext *C, wmOperator *op, const wmEvent *event)
void OBJECT_OT_transform_to_mouse(wmOperatorType *ot)
static bool dupliobject_instancer_cmp(const void *a_, const void *b_)
void ED_object_rotation_from_view(bContext *C, float rot[3], const char align_axis)
void OBJECT_OT_metaball_add(wmOperatorType *ot)
void OBJECT_OT_add_named(wmOperatorType *ot)
void OBJECT_OT_duplicate(wmOperatorType *ot)
void OBJECT_OT_effector_add(wmOperatorType *ot)
static int join_shapes_exec(bContext *C, wmOperator *op)
void OBJECT_OT_light_add(wmOperatorType *ot)
Object * ED_object_add_type(bContext *C, const int type, const char *name, const float loc[3], const float rot[3], const bool enter_editmode, const ushort local_view_bits)
static bool dupliobject_cmp(const void *a_, const void *b_)
void ED_object_base_init_transform_on_add(Object *object, const float loc[3], const float rot[3])
void OBJECT_OT_delete(wmOperatorType *ot)
static void object_data_convert_ensure_curve_cache(Depsgraph *depsgraph, Scene *scene, Object *ob)
void ED_object_add_unit_props_radius_ex(wmOperatorType *ot, float default_value)
static const char * get_effector_defname(ePFieldType type)
void OBJECT_OT_empty_add(wmOperatorType *ot)
void OBJECT_OT_lightprobe_add(wmOperatorType *ot)
static int object_add_named_exec(bContext *C, wmOperator *op)
Object * ED_object_add_type_with_obdata(bContext *C, const int type, const char *name, const float loc[3], const float rot[3], const bool enter_editmode, const ushort local_view_bits, ID *obdata)
void ED_object_base_free_and_unlink(Main *bmain, Scene *scene, Object *ob)
static int object_pointcloud_add_exec(bContext *C, wmOperator *op)
static void object_add_drop_xy_props(wmOperatorType *ot)
static const char * get_lightprobe_defname(int type)
static bool object_add_drop_xy_get(bContext *C, wmOperator *op, int(*r_mval)[2])
static int collection_drop_exec(bContext *C, wmOperator *op)
void OBJECT_OT_duplicates_make_real(wmOperatorType *ot)
static int object_transform_to_mouse_exec(bContext *C, wmOperator *op)
static int object_add_text_exec(bContext *C, wmOperator *op)
void OBJECT_OT_text_add(wmOperatorType *ot)
void ED_object_location_from_view(bContext *C, float loc[3])
void OBJECT_OT_add(wmOperatorType *ot)
static int object_add_exec(bContext *C, wmOperator *op)
static int lightprobe_add_exec(bContext *C, wmOperator *op)
static uint dupliobject_instancer_hash(const void *ptr)
static int object_light_add_exec(bContext *C, wmOperator *op)
void OBJECT_OT_pointcloud_add(wmOperatorType *ot)
static bool object_curves_empty_hair_add_poll(bContext *C)
static int object_empty_add_exec(bContext *C, wmOperator *op)
static int object_speaker_add_exec(bContext *C, wmOperator *op)
static int object_join_exec(bContext *C, wmOperator *op)
static bool object_add_drop_xy_is_set(const wmOperator *op)
const EnumPropertyItem rna_enum_light_type_items[]
void OBJECT_OT_curves_random_add(wmOperatorType *ot)
static int object_duplicates_make_real_exec(bContext *C, wmOperator *op)
static EnumPropertyItem lightprobe_type_items[]
static int object_curves_random_add_exec(bContext *C, wmOperator *op)
static Base * object_add_duplicate_internal(Main *bmain, Scene *scene, ViewLayer *view_layer, Object *ob, const eDupli_ID_Flags dupflag, const eLibIDDuplicateFlags duplicate_options, Object **r_ob_new)
static std::optional< CollectionAddInfo > collection_add_info_get_from_op(bContext *C, wmOperator *op)
static void make_object_duplilist_real(bContext *C, Depsgraph *depsgraph, Scene *scene, Base *base, const bool use_base_parent, const bool use_hierarchy)
void ED_object_base_free_and_unlink_no_indirect_check(Main *bmain, Scene *scene, Object *ob)
static bool join_shapes_poll(bContext *C)
static int object_data_instance_add_exec(bContext *C, wmOperator *op)
void ED_object_rotation_from_quat(float rot[3], const float viewquat[4], const char align_axis)
static int duplicate_exec(bContext *C, wmOperator *op)
static const EnumPropertyItem field_type_items[]
static int object_armature_add_exec(bContext *C, wmOperator *op)
static int object_metaball_add_exec(bContext *C, wmOperator *op)
void OBJECT_OT_collection_external_asset_drop(wmOperatorType *ot)
bool ED_object_add_generic_get_opts(bContext *C, wmOperator *op, const char view_align_axis, float r_loc[3], float r_rot[3], float r_scale[3], bool *r_enter_editmode, ushort *r_local_view_bits, bool *r_is_view_aligned)
float ED_object_new_primitive_matrix(bContext *C, Object *obedit, const float loc[3], const float rot[3], const float scale[3], float r_primmat[4][4])
static void object_convert_ui(bContext *UNUSED(C), wmOperator *op)
static int object_camera_add_exec(bContext *C, wmOperator *op)
static int object_convert_exec(bContext *C, wmOperator *op)
Base * ED_object_add_duplicate(Main *bmain, Scene *scene, ViewLayer *view_layer, Base *base, const eDupli_ID_Flags dupflag)
void OBJECT_OT_join(wmOperatorType *ot)
static int effector_add_exec(bContext *C, wmOperator *op)
void OBJECT_OT_collection_instance_add(wmOperatorType *ot)
void OBJECT_OT_armature_add(wmOperatorType *ot)
static void copy_object_set_idnew(bContext *C)
void OBJECT_OT_camera_add(wmOperatorType *ot)
static void object_data_convert_curve_to_mesh(Main *bmain, Depsgraph *depsgraph, Object *ob)
void ED_object_add_mesh_props(wmOperatorType *ot)
static EnumPropertyItem rna_enum_gpencil_add_stroke_depth_order_items[]
static Base * duplibase_for_convert(Main *bmain, Depsgraph *depsgraph, Scene *scene, ViewLayer *view_layer, Base *base, Object *ob)
static bool object_pointcloud_add_poll(bContext *C)
void OBJECT_OT_join_shapes(wmOperatorType *ot)
static int object_gpencil_add_exec(bContext *C, wmOperator *op)
void ED_object_add_generic_props(wmOperatorType *ot, bool do_editmode)
static bool object_join_poll(bContext *C)
void OBJECT_OT_gpencil_add(wmOperatorType *ot)
void ED_object_add_unit_props_radius(wmOperatorType *ot)
static const char * get_light_defname(int type)
void OBJECT_OT_data_instance_add(wmOperatorType *ot)
const EnumPropertyItem rna_enum_id_type_items[]
void RNA_property_float_get_array(PointerRNA *ptr, PropertyRNA *prop, float *values)
bool RNA_property_is_set(PointerRNA *ptr, PropertyRNA *prop)
void RNA_int_set(PointerRNA *ptr, const char *name, int value)
void RNA_property_enum_set(PointerRNA *ptr, PropertyRNA *prop, int value)
PropertyRNA * RNA_struct_find_property(PointerRNA *ptr, const char *identifier)
void RNA_float_get_array(PointerRNA *ptr, const char *name, float *values)
bool RNA_property_boolean_get(PointerRNA *ptr, PropertyRNA *prop)
int RNA_int_get(PointerRNA *ptr, const char *name)
PropertyRNA * RNA_struct_type_find_property(StructRNA *srna, const char *identifier)
void RNA_property_boolean_set(PointerRNA *ptr, PropertyRNA *prop, bool value)
float RNA_float_get(PointerRNA *ptr, const char *name)
void RNA_property_float_set_array(PointerRNA *ptr, PropertyRNA *prop, const float *values)
int RNA_property_enum_get(PointerRNA *ptr, PropertyRNA *prop)
bool RNA_struct_property_is_set(PointerRNA *ptr, const char *identifier)
bool RNA_struct_idprops_unset(PointerRNA *ptr, const char *identifier)
bool RNA_boolean_get(PointerRNA *ptr, const char *name)
void RNA_enum_set(PointerRNA *ptr, const char *name, int value)
void RNA_float_set_array(PointerRNA *ptr, const char *name, const float *values)
int RNA_enum_get(PointerRNA *ptr, const char *name)
PropertyRNA * RNA_def_float(StructOrFunctionRNA *cont_, const char *identifier, float default_value, float hardmin, float hardmax, const char *ui_name, const char *ui_description, float softmin, float softmax)
PropertyRNA * RNA_def_boolean(StructOrFunctionRNA *cont_, const char *identifier, bool default_value, const char *ui_name, const char *ui_description)
void RNA_def_property_float_default(PropertyRNA *prop, float value)
PropertyRNA * RNA_def_float_matrix(StructOrFunctionRNA *cont_, const char *identifier, int rows, int columns, const float *default_value, float hardmin, float hardmax, const char *ui_name, const char *ui_description, float softmin, float softmax)
PropertyRNA * RNA_def_float_distance(StructOrFunctionRNA *cont_, const char *identifier, float default_value, float hardmin, float hardmax, const char *ui_name, const char *ui_description, float softmin, float softmax)
PropertyRNA * RNA_def_string(StructOrFunctionRNA *cont_, const char *identifier, const char *default_value, int maxlen, const char *ui_name, const char *ui_description)
void RNA_def_property_translation_context(PropertyRNA *prop, const char *context)
PropertyRNA * RNA_def_float_vector_xyz(StructOrFunctionRNA *cont_, const char *identifier, int len, const float *default_value, float hardmin, float hardmax, const char *ui_name, const char *ui_description, float softmin, float softmax)
void RNA_def_property_flag(PropertyRNA *prop, PropertyFlag flag)
void RNA_def_property_update_runtime(PropertyRNA *prop, const void *func)
PropertyRNA * RNA_def_int(StructOrFunctionRNA *cont_, const char *identifier, int default_value, int hardmin, int hardmax, const char *ui_name, const char *ui_description, int softmin, int softmax)
void RNA_def_enum_funcs(PropertyRNA *prop, EnumPropertyItemFunc itemfunc)
PropertyRNA * RNA_def_float_rotation(StructOrFunctionRNA *cont_, const char *identifier, int len, const float *default_value, float hardmin, float hardmax, const char *ui_name, const char *ui_description, float softmin, float softmax)
PropertyRNA * RNA_def_enum(StructOrFunctionRNA *cont_, const char *identifier, const EnumPropertyItem *items, int default_value, const char *ui_name, const char *ui_description)
const EnumPropertyItem rna_enum_object_empty_drawtype_items[]
const EnumPropertyItem rna_enum_metaelem_type_items[]
const EnumPropertyItem rna_enum_object_gpencil_type_items[]
const EnumPropertyItem rna_enum_object_type_items[]
const EnumPropertyItem DummyRNA_NULL_items[]
unsigned short local_view_bits
const GeometryComponent * get_component_for_read(GeometryComponentType component_type) const
struct Collection * collection
struct Collection * source_collection
struct Material * target_material
struct Object * source_object
float stroke_depth_offset
struct CurveCache * curve_cache
struct GeometrySet * geometry_set_eval
struct Collection * instance_collection
struct RigidBodyOb * rigidbody_object
ListBase greasepencil_modifiers
struct RigidBodyCon * rigidbody_constraint
struct CustomData_MeshMasks customdata_mask
unsigned short local_view_uuid
int(* invoke)(struct bContext *, struct wmOperator *, const struct wmEvent *) ATTR_WARN_UNUSED_RESULT
bool(* poll)(struct bContext *) ATTR_WARN_UNUSED_RESULT
void(* ui)(struct bContext *, struct wmOperator *)
int(* exec)(struct bContext *, struct wmOperator *) ATTR_WARN_UNUSED_RESULT
struct ReportList * reports
struct wmOperatorType * type
void WM_main_add_notifier(unsigned int type, void *reference)
void WM_event_add_notifier(const bContext *C, uint type, void *reference)
void WM_operator_properties_confirm_or_exec(wmOperatorType *ot)
ID * WM_operator_properties_id_lookup_from_name_or_session_uuid(Main *bmain, PointerRNA *ptr, const ID_Type type)
bool WM_operator_properties_id_lookup_is_set(PointerRNA *ptr)
void WM_operator_properties_id_lookup(wmOperatorType *ot, const bool add_name_prop)
int WM_operator_confirm_or_exec(bContext *C, wmOperator *op, const wmEvent *UNUSED(event))
int WM_menu_invoke(bContext *C, wmOperator *op, const wmEvent *UNUSED(event))
ID * WM_operator_drop_load_path(struct bContext *C, wmOperator *op, const short idcode)
int WM_enum_search_invoke(bContext *C, wmOperator *op, const wmEvent *UNUSED(event))
void WM_operator_view3d_unit_defaults(struct bContext *C, struct wmOperator *op)
Scene * WM_window_get_active_scene(const wmWindow *win)