25#define MESH_DM_INFO_STR_MAX 16384
33 "The pose space of a bone (its armature's object space)"},
38 "The rest pose local space of a bone (this matrix includes parent transforms)"},
40 {0,
nullptr, 0,
nullptr,
nullptr},
74static Base *find_view_layer_base_with_synced_ensure(
79 if (view_layer_ptr->
data) {
87 if (r_scene !=
nullptr) {
90 if (r_view_layer !=
nullptr) {
91 *r_view_layer = view_layer;
98static void rna_Object_select_set(
103 Base *base = find_view_layer_base_with_synced_ensure(ob,
C, view_layer_ptr, &scene, &view_layer);
109 "Object '%s' cannot be selected because it is not in View Layer '%s'!",
126 Base *base = find_view_layer_base_with_synced_ensure(ob,
C, view_layer_ptr,
nullptr,
nullptr);
134static void rna_Object_hide_set(
139 Base *base = find_view_layer_base_with_synced_ensure(ob,
C, view_layer_ptr, &scene, &view_layer);
144 "Object '%s' cannot be hidden because it is not in View Layer '%s'!",
165 Base *base = find_view_layer_base_with_synced_ensure(ob,
C, view_layer_ptr,
nullptr,
nullptr);
173static bool rna_Object_visible_get(
Object *ob,
178 Base *base = find_view_layer_base_with_synced_ensure(ob,
C, view_layer_ptr,
nullptr,
nullptr);
179 if (v3d ==
nullptr) {
192 Base *base = find_view_layer_base_with_synced_ensure(ob,
C, view_layer_ptr,
nullptr,
nullptr);
202 Base *base = find_view_layer_base_with_synced_ensure(ob,
C, view_layer_ptr,
nullptr,
nullptr);
210static Base *rna_Object_local_view_property_helper(
bScreen *screen,
223 if (view_layer ==
nullptr) {
230 if (base ==
nullptr) {
234 if (r_scene !=
nullptr && win !=
nullptr) {
235 *r_scene = win->
scene;
250static void rna_Object_local_view_set(
Object *ob,
258 Base *base = rna_Object_local_view_property_helper(screen, v3d,
nullptr, ob, reports, &scene);
259 if (base ==
nullptr) {
273static bool rna_Object_visible_in_viewport_get(
Object *ob,
View3D *v3d)
280static void rna_Object_mat_convert_space(
Object *ob,
288 copy_m4_m4((
float (*)[4])mat_ret, (
float (*)[4])mat);
294 if (pchan ==
nullptr) {
296 const char *identifier =
nullptr;
300 "'from_space' '%s' is invalid when no pose bone is given!",
305 const char *identifier =
nullptr;
309 "'to_space' '%s' is invalid when no pose bone is given!",
316 const char *identifier =
nullptr;
320 "'from_space' '%s' is invalid when no custom space is given!",
325 const char *identifier =
nullptr;
329 "'to_space' '%s' is invalid when no custom space is given!",
337static void rna_Object_calc_matrix_camera(
Object *ob,
359static void rna_Object_camera_fit_coords(
Object *ob,
367 depsgraph, (
const float (*)[3])
cos, cos_num / 3, ob, co_ret, scale_ret);
370static void rna_Object_crazyspace_eval(
Object *
object,
378static void rna_Object_crazyspace_displacement_to_deformed(
Object *
object,
380 const int vertex_index,
381 const float displacement[3],
382 float r_displacement_deformed[3])
385 object, reports, vertex_index, displacement, r_displacement_deformed);
388static void rna_Object_crazyspace_displacement_to_original(
Object *
object,
390 const int vertex_index,
391 const float displacement_deformed[3],
392 float r_displacement[3])
395 object, reports, vertex_index, displacement_deformed, r_displacement);
398static void rna_Object_crazyspace_eval_clear(
Object *
object)
404static Mesh *rna_Object_to_mesh(
Object *
object,
406 bool preserve_all_data_layers,
411 switch (object->
type) {
426static void rna_Object_to_mesh_clear(
Object *
object)
434 bool apply_modifiers)
449static void rna_Object_to_curve_clear(
Object *
object)
480static void rna_Object_shape_key_remove(
Object *ob,
504static void rna_Object_shape_key_clear(
Object *ob,
Main *bmain)
513static void rna_Mesh_assign_verts_to_group(
523 if (group_index == -1) {
535 create_dverts(&mesh->id);
539 for (
i = 0;
i < totindex;
i++) {
545 add_vert_defnr(ob, group_index,
i, weight, assignmode);
551static int mesh_corner_tri_to_face_index(
Mesh *mesh_eval,
const int tri_index)
554 const int face_i = tri_faces[tri_index];
555 const int *index_face_to_orig =
static_cast<const int *
>(
557 return index_face_to_orig ? index_face_to_orig[face_i] : face_i;
567 if (ob->
runtime->data_eval ==
nullptr) {
569 Depsgraph *
depsgraph = rnaptr_depsgraph !=
nullptr ?
570 static_cast<Depsgraph *
>(rnaptr_depsgraph->
data) :
580 reports,
RPT_ERROR,
"Object '%s' has no evaluated mesh data", ob_orig->
id.
name + 2);
587static void rna_Object_ray_cast(
Object *ob,
590 const float origin[3],
591 const float direction[3],
599 bool success =
false;
603 if ((ob = eval_object_ensure(ob,
C, reports, rnaptr_depsgraph)) ==
nullptr) {
610 const std::optional<blender::Bounds<blender::float3>>
bounds = mesh_eval->bounds_min_max();
617 float direction_unit[3];
621 origin, direction_unit,
bounds->min,
bounds->max, &distmin,
nullptr) &&
630 if (treeData.
tree !=
nullptr) {
645 *r_success = success =
true;
649 *r_index = mesh_corner_tri_to_face_index(mesh_eval, hit.
index);
654 if (success ==
false) {
663static void rna_Object_closest_point_on_mesh(
Object *ob,
666 const float origin[3],
675 if ((ob = eval_object_ensure(ob,
C, reports, rnaptr_depsgraph)) ==
nullptr) {
684 if (treeData.
tree ==
nullptr) {
687 "Object '%s' could not create internal data for finding nearest point",
704 *r_index = mesh_corner_tri_to_face_index(mesh_eval, nearest.
index);
716static bool rna_Object_is_modified(
Object *ob,
Scene *scene,
int settings)
721static bool rna_Object_is_deform_modified(
Object *ob,
Scene *scene,
int settings)
730void rna_Object_me_eval_info(
733 const Mesh *mesh_eval =
nullptr;
741 if ((ob = eval_object_ensure(ob,
C,
nullptr, rnaptr_depsgraph)) ==
nullptr) {
749 mesh_eval =
static_cast<Mesh *
>(ob->
data);
769void rna_Object_me_eval_info(
Object * ,
779static bool rna_Object_update_from_editmode(
Object *ob,
Main *bmain)
801 {0,
nullptr, 0,
nullptr,
nullptr},
806 {0,
"SOURCE", 0,
"Source",
"Source mesh"},
807 {1,
"DEFORM", 0,
"Deform",
"Objects deform mesh"},
808 {2,
"FINAL", 0,
"Final",
"Objects final mesh"},
809 {0,
nullptr, 0,
nullptr,
nullptr},
816 func,
"Test if the object is selected. The selection state is per view layer.");
819 func,
"view_layer",
"ViewLayer",
"",
"Use this instead of the active view layer");
826 func,
"Select or deselect the object. The selection state is per view layer.");
828 parm =
RNA_def_boolean(func,
"state",
false,
"",
"Selection state to define");
831 func,
"view_layer",
"ViewLayer",
"",
"Use this instead of the active view layer");
837 "Test if the object is hidden for viewport editing. This hiding state is per view layer.");
840 func,
"view_layer",
"ViewLayer",
"",
"Use this instead of the active view layer");
847 func,
"Hide the object for viewport editing. This hiding state is per view layer.");
849 parm =
RNA_def_boolean(func,
"state",
false,
"",
"Hide state to define");
852 func,
"view_layer",
"ViewLayer",
"",
"Use this instead of the active view layer");
857 "Test if the object is visible in the 3D viewport, taking into "
858 "account all visibility settings");
861 func,
"view_layer",
"ViewLayer",
"",
"Use this instead of the active view layer");
864 func,
"viewport",
"SpaceView3D",
"",
"Use this instead of the active 3D viewport");
872 func,
"view_layer",
"ViewLayer",
"",
"Use this instead of the active view layer");
877 func =
RNA_def_function(srna,
"indirect_only_get",
"rna_Object_indirect_only_get");
879 "Test if object is set to contribute only indirectly (through "
880 "shadows and reflections) in the view layer");
883 func,
"view_layer",
"ViewLayer",
"",
"Use this instead of the active view layer");
885 parm =
RNA_def_boolean(func,
"result",
false,
"",
"Object indirect only");
889 func =
RNA_def_function(srna,
"local_view_get",
"rna_Object_local_view_get");
892 parm =
RNA_def_pointer(func,
"viewport",
"SpaceView3D",
"",
"Viewport in local view");
894 parm =
RNA_def_boolean(func,
"result",
false,
"",
"Object local view state");
897 func =
RNA_def_function(srna,
"local_view_set",
"rna_Object_local_view_set");
900 parm =
RNA_def_pointer(func,
"viewport",
"SpaceView3D",
"",
"Viewport in local view");
902 parm =
RNA_def_boolean(func,
"state",
false,
"",
"Local view state to define");
906 func =
RNA_def_function(srna,
"visible_in_viewport_get",
"rna_Object_visible_in_viewport_get");
908 func,
"Check for local view and local collections for this viewport and object");
909 parm =
RNA_def_pointer(func,
"viewport",
"SpaceView3D",
"",
"Viewport in local collections");
911 parm =
RNA_def_boolean(func,
"result",
false,
"",
"Object viewport visibility");
915 func =
RNA_def_function(srna,
"convert_space",
"rna_Object_mat_convert_space");
917 func,
"Convert (transform) the given matrix from one space to another");
924 "Bone to use to define spaces (may be None, in which case only the two 'WORLD' and "
925 "'LOCAL' spaces are usable)");
938 "The space in which 'matrix' is currently");
944 "The space to which you want to transform 'matrix'");
947 func =
RNA_def_function(srna,
"calc_matrix_camera",
"rna_Object_calc_matrix_camera");
949 "Generate the camera projection matrix of this object "
950 "(mostly useful for Camera and Light types)");
952 func,
"depsgraph",
"Depsgraph",
"",
"Depsgraph to get evaluated data from");
958 parm =
RNA_def_int(func,
"x", 1, 0, INT_MAX,
"",
"Width of the render area", 0, 10000);
959 parm =
RNA_def_int(func,
"y", 1, 0, INT_MAX,
"",
"Height of the render area", 0, 10000);
961 func,
"scale_x", 1.0f, 1.0e-6f,
FLT_MAX,
"",
"Width scaling factor", 1.0e-2f, 100.0f);
963 func,
"scale_y", 1.0f, 1.0e-6f,
FLT_MAX,
"",
"Height scaling factor", 1.0e-2f, 100.0f);
965 func =
RNA_def_function(srna,
"camera_fit_coords",
"rna_Object_camera_fit_coords");
967 "Compute the coordinate (and scale for ortho cameras) "
968 "given object should be to 'see' all given coordinates");
970 func,
"depsgraph",
"Depsgraph",
"",
"Depsgraph to get evaluated data from");
979 "Coordinates to fit in",
989 parm,
"",
"The ortho scale to aim to be able to see all given points (if relevant)");
994 func =
RNA_def_function(srna,
"crazyspace_eval",
"rna_Object_crazyspace_eval");
997 "Compute orientation mapping between vertices of an original object and object with shape "
998 "keys and deforming modifiers applied."
999 "The evaluation is to be freed with the crazyspace_eval_free function");
1002 func,
"depsgraph",
"Depsgraph",
"Dependency Graph",
"Evaluated dependency graph");
1004 parm =
RNA_def_pointer(func,
"scene",
"Scene",
"Scene",
"Scene of the object");
1008 "crazyspace_displacement_to_deformed",
1009 "rna_Object_crazyspace_displacement_to_deformed");
1011 func,
"Convert displacement vector from non-deformed object space to deformed object space");
1022 "crazyspace_displacement_to_original",
1023 "rna_Object_crazyspace_displacement_to_original");
1025 func,
"Convert displacement vector from deformed object space to non-deformed object space");
1035 RNA_def_function(srna,
"crazyspace_eval_clear",
"rna_Object_crazyspace_eval_clear");
1042 "Create a Mesh data-block from the current state of the object. The object owns the "
1043 "data-block. To force free it use to_mesh_clear(). "
1044 "The result is temporary and cannot be used by objects from the main database.");
1047 "preserve_all_data_layers",
1050 "Preserve all data layers in the mesh, like UV maps and vertex groups. "
1051 "By default Blender only computes the subset of data layers needed for viewport "
1052 "display and rendering, for better performance.");
1058 "Evaluated dependency graph which is required when preserve_all_data_layers is true");
1059 parm =
RNA_def_pointer(func,
"mesh",
"Mesh",
"",
"Mesh created from object");
1062 func =
RNA_def_function(srna,
"to_mesh_clear",
"rna_Object_to_mesh_clear");
1069 "Create a Curve data-block from the current state of the object. This only works for curve "
1070 "and text objects. The object owns the data-block. To force free it, use to_curve_clear(). "
1071 "The result is temporary and cannot be used by objects from the main database.");
1074 func,
"depsgraph",
"Depsgraph",
"Dependency Graph",
"Evaluated dependency graph");
1080 "Apply the deform modifiers on the control points of the curve. This is only "
1081 "supported for curve objects.");
1082 parm =
RNA_def_pointer(func,
"curve",
"Curve",
"",
"Curve created from object");
1085 func =
RNA_def_function(srna,
"to_curve_clear",
"rna_Object_to_curve_clear");
1089 func =
RNA_def_function(srna,
"find_armature",
"BKE_modifiers_is_deformed_by_armature");
1091 func,
"Find armature influencing this object as a parent or via a modifier");
1093 func,
"ob_arm",
"Object",
"",
"Armature object influencing this object or nullptr");
1097 func =
RNA_def_function(srna,
"shape_key_add",
"rna_Object_shape_key_add");
1100 RNA_def_string(func,
"name",
"Key", 0,
"",
"Unique name for the new key-block");
1101 RNA_def_boolean(func,
"from_mix",
true,
"",
"Create new shape from existing mix of shapes");
1102 parm =
RNA_def_pointer(func,
"key",
"ShapeKey",
"",
"New shape key-block");
1106 func =
RNA_def_function(srna,
"shape_key_remove",
"rna_Object_shape_key_remove");
1109 parm =
RNA_def_pointer(func,
"key",
"ShapeKey",
"",
"Key-block to be removed");
1113 func =
RNA_def_function(srna,
"shape_key_clear",
"rna_Object_shape_key_clear");
1121 "Cast a ray onto evaluated geometry, in object space "
1122 "(using context's or provided depsgraph to get evaluated mesh if needed)");
1133 "Origin of the ray, in object space",
1144 "Direction of the ray, in object space",
1162 "Depsgraph to use to get evaluated data, when called from original object "
1163 "(only needed if current Context's depsgraph is not suitable)");
1168 func,
"result",
false,
"",
"Whether the ray successfully hit the geometry");
1177 "The hit location of this ray cast",
1189 "The face normal at the ray cast hit location",
1195 func,
"index", 0, 0, 0,
"",
"The face index, -1 when original data isn't available", 0, 0);
1199 func =
RNA_def_function(srna,
"closest_point_on_mesh",
"rna_Object_closest_point_on_mesh");
1202 "Find the nearest point on evaluated geometry, in object space "
1203 "(using context's or provided depsgraph to get evaluated mesh if needed)");
1214 "Point to find closest geometry from (in object space)",
1220 func,
"distance", 1.844674352395373e+19, 0.0,
FLT_MAX,
"",
"Maximum distance", 0.0,
FLT_MAX);
1226 "Depsgraph to use to get evaluated data, when called from original object "
1227 "(only needed if current Context's depsgraph is not suitable)");
1231 parm =
RNA_def_boolean(func,
"result",
false,
"",
"Whether closest point on geometry was found");
1240 "The location on the object closest to the point",
1252 "The face normal at the closest point",
1259 func,
"index", 0, 0, 0,
"",
"The face index, -1 when original data isn't available", 0, 0);
1267 "Determine if this object is modified from the base mesh data");
1268 parm =
RNA_def_pointer(func,
"scene",
"Scene",
"",
"Scene in which to check the object");
1270 parm =
RNA_def_enum(func,
"settings", mesh_type_items, 0,
"",
"Modifier settings to apply");
1272 parm =
RNA_def_boolean(func,
"result",
false,
"",
"Whether the object is modified");
1275 func =
RNA_def_function(srna,
"is_deform_modified",
"rna_Object_is_deform_modified");
1277 func,
"Determine if this object is modified by a deformation from the base mesh data");
1278 parm =
RNA_def_pointer(func,
"scene",
"Scene",
"",
"Scene in which to check the object");
1280 parm =
RNA_def_enum(func,
"settings", mesh_type_items, 0,
"",
"Modifier settings to apply");
1282 parm =
RNA_def_boolean(func,
"result",
false,
"",
"Whether the object is deform-modified");
1290 "Returns a string for original/evaluated mesh data (debug builds only, "
1291 "using context's or provided depsgraph to get evaluated mesh if needed)");
1294 parm =
RNA_def_enum(func,
"type", mesh_dm_info_items, 0,
"",
"Modifier settings to apply");
1301 "Depsgraph to use to get evaluated data, when called from original object "
1302 "(only needed if current Context's depsgraph is not suitable)");
1312 func =
RNA_def_function(srna,
"update_from_editmode",
"rna_Object_update_from_editmode");
1320 "Release memory used by caches associated with this object. "
1321 "Intended to be used by render engines only.");
void BKE_camera_params_init(CameraParams *params)
bool BKE_camera_view_frame_fit_to_coords(const struct Depsgraph *depsgraph, const float(*cos)[3], int num_cos, struct Object *camera_ob, float r_co[3], float *r_scale)
void BKE_camera_params_from_object(CameraParams *params, const struct Object *cam_ob)
void BKE_camera_params_compute_viewplane(CameraParams *params, int winx, int winy, float aspx, float aspy)
void BKE_camera_params_compute_matrix(CameraParams *params)
void BKE_constraint_mat_convertspace(struct Object *ob, struct bPoseChannel *pchan, struct bConstraintOb *cob, float mat[4][4], short from, short to, bool keep_scale)
Depsgraph * CTX_data_ensure_evaluated_depsgraph(const bContext *C)
Scene * CTX_data_scene(const bContext *C)
Main * CTX_data_main(const bContext *C)
View3D * CTX_wm_view3d(const bContext *C)
ViewLayer * CTX_data_view_layer(const bContext *C)
void BKE_crazyspace_api_eval(Depsgraph *depsgraph, Scene *scene, Object *object, ReportList *reports)
void BKE_crazyspace_api_displacement_to_original(Object *object, ReportList *reports, int vertex_index, const float displacement_deformed[3], float r_displacement[3])
void BKE_crazyspace_api_eval_clear(Object *object)
void BKE_crazyspace_api_displacement_to_deformed(Object *object, ReportList *reports, int vertex_index, const float displacement[3], float r_displacement_deformed[3])
CustomData interface, see also DNA_customdata_types.h.
const void * CustomData_get_layer(const CustomData *data, eCustomDataType type)
Key * BKE_key_from_object(Object *ob)
void BKE_view_layer_synced_ensure(const Scene *scene, ViewLayer *view_layer)
bool BKE_object_is_visible_in_viewport(const View3D *v3d, const Object *ob)
void BKE_view_layer_need_resync_tag(ViewLayer *view_layer)
Base * BKE_view_layer_base_find(ViewLayer *view_layer, Object *ob)
char * BKE_mesh_debug_info(const Mesh *mesh) ATTR_NONNULL(1) ATTR_MALLOC ATTR_WARN_UNUSED_RESULT
General operations, lookup, etc. for blender objects.
void BKE_object_to_mesh_clear(Object *object)
void BKE_object_to_curve_clear(Object *object)
KeyBlock * BKE_object_shapekey_insert(Main *bmain, Object *ob, const char *name, bool from_mix)
Mesh * BKE_object_get_evaluated_mesh(const Object *object_eval)
bool BKE_object_shapekey_free(Main *bmain, Object *ob)
int BKE_object_is_deform_modified(Scene *scene, Object *ob)
bool BKE_object_shapekey_remove(Main *bmain, Object *ob, KeyBlock *kb)
const Mesh * BKE_object_get_mesh_deform_eval(const Object *object)
Mesh * BKE_object_to_mesh(Depsgraph *depsgraph, Object *object, bool preserve_all_data_layers)
Curve * BKE_object_to_curve(Object *object, Depsgraph *depsgraph, bool apply_modifiers)
int BKE_object_is_modified(Scene *scene, Object *ob)
void BKE_reportf(ReportList *reports, eReportType type, const char *format,...) ATTR_PRINTF_FORMAT(3
void BKE_report(ReportList *reports, eReportType type, const char *message)
#define BVH_RAYCAST_DIST_MAX
int BLI_bvhtree_find_nearest(const BVHTree *tree, const float co[3], BVHTreeNearest *nearest, BVHTree_NearestPointCallback callback, void *userdata)
int BLI_bvhtree_ray_cast(const BVHTree *tree, const float co[3], const float dir[3], float radius, BVHTreeRayHit *hit, BVHTree_RayCastCallback callback, void *userdata)
int BLI_findindex(const ListBase *listbase, const void *vlink) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL(1)
void * BLI_findlink(const ListBase *listbase, int number) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL(1)
bool isect_ray_aabb_v3_simple(const float orig[3], const float dir[3], const float bb_min[3], const float bb_max[3], float *tmin, float *tmax)
void copy_m4_m4(float m1[4][4], const float m2[4][4])
MINLINE void copy_v3_v3(float r[3], const float a[3])
MINLINE float normalize_v3_v3(float r[3], const float a[3])
MINLINE void zero_v3(float r[3])
char * BLI_strncpy(char *__restrict dst, const char *__restrict src, size_t dst_maxncpy) ATTR_NONNULL(1
#define SET_FLAG_FROM_TEST(value, test, flag)
void DEG_id_tag_update(ID *id, unsigned int flags)
void DEG_relations_tag_update(Main *bmain)
T * DEG_get_evaluated(const Depsgraph *depsgraph, T *id)
@ CONSTRAINT_SPACE_CUSTOM
@ CONSTRAINT_SPACE_OWNLOCAL
@ CONSTRAINT_SPACE_PARLOCAL
#define BASE_SELECTED(v3d, base)
#define BASE_VISIBLE(v3d, base)
void ED_outliner_select_sync_from_object_tag(bContext *C)
void ED_area_tag_redraw(ScrArea *area)
wmWindow * ED_screen_window_find(const bScreen *screen, const wmWindowManager *wm)
ScrArea * ED_screen_area_find_with_spacedata(const bScreen *screen, const SpaceLink *sl, bool only_visible)
Read Guarded memory(de)allocation.
BPy_StructRNA * depsgraph
static btDbvtVolume bounds(btDbvtNode **leaves, int count)
float distance(VecOp< float, D >, VecOp< float, D >) RET
void MEM_freeN(void *vmemh)
void base_select(Base *base, eObjectSelect_Mode mode)
bool editmode_load(Main *bmain, Object *obedit)
const PointerRNA PointerRNA_NULL
bool RNA_enum_identifier(const EnumPropertyItem *item, const int value, const char **r_identifier)
PointerRNA RNA_pointer_create_discrete(ID *id, StructRNA *type, void *data)
PropertyRNA * RNA_def_string(StructOrFunctionRNA *cont_, const char *identifier, const char *default_value, const int maxlen, const char *ui_name, const char *ui_description)
void RNA_def_parameter_clear_flags(PropertyRNA *prop, PropertyFlag flag_property, ParameterFlag flag_parameter)
void RNA_def_function_return(FunctionRNA *func, PropertyRNA *ret)
void RNA_def_property_ui_text(PropertyRNA *prop, const char *name, const char *description)
PropertyRNA * RNA_def_float(StructOrFunctionRNA *cont_, const char *identifier, const float default_value, const float hardmin, const float hardmax, const char *ui_name, const char *ui_description, const float softmin, const float softmax)
PropertyRNA * RNA_def_float_vector(StructOrFunctionRNA *cont_, const char *identifier, const int len, const float *default_value, const float hardmin, const float hardmax, const char *ui_name, const char *ui_description, const float softmin, const float softmax)
void RNA_def_property_multi_array(PropertyRNA *prop, int dimension, const int length[])
PropertyRNA * RNA_def_enum(StructOrFunctionRNA *cont_, const char *identifier, const EnumPropertyItem *items, const int default_value, const char *ui_name, const char *ui_description)
FunctionRNA * RNA_def_function(StructRNA *srna, const char *identifier, const char *call)
void RNA_def_property_array(PropertyRNA *prop, int length)
PropertyRNA * RNA_def_pointer(StructOrFunctionRNA *cont_, const char *identifier, const char *type, const char *ui_name, const char *ui_description)
void RNA_def_function_ui_description(FunctionRNA *func, const char *description)
const int rna_matrix_dimsize_4x4[]
PropertyRNA * RNA_def_property(StructOrFunctionRNA *cont_, const char *identifier, int type, int subtype)
void RNA_def_function_flag(FunctionRNA *func, int flag)
PropertyRNA * RNA_def_float_array(StructOrFunctionRNA *cont_, const char *identifier, const int len, const float *default_value, const float hardmin, const float hardmax, const char *ui_name, const char *ui_description, const float softmin, const float softmax)
PropertyRNA * RNA_def_boolean(StructOrFunctionRNA *cont_, const char *identifier, const bool default_value, const char *ui_name, const char *ui_description)
void RNA_def_function_output(FunctionRNA *, PropertyRNA *ret)
PropertyRNA * RNA_def_int(StructOrFunctionRNA *cont_, const char *identifier, const int default_value, const int hardmin, const int hardmax, const char *ui_name, const char *ui_description, const int softmin, const int softmax)
void RNA_def_parameter_flags(PropertyRNA *prop, PropertyFlag flag_property, ParameterFlag flag_parameter)
#define MESH_DM_INFO_STR_MAX
static const EnumPropertyItem space_items[]
void RNA_api_object(StructRNA *srna)
unsigned short local_view_bits
ObjectRuntimeHandle * runtime
unsigned short base_local_view_bits
unsigned short local_view_uid
BVHTree_NearestPointCallback nearest_callback
BVHTree_RayCastCallback raycast_callback
void WM_main_add_notifier(uint type, void *reference)
void WM_event_add_notifier(const bContext *C, uint type, void *reference)
ViewLayer * WM_window_get_active_view_layer(const wmWindow *win)
Scene * WM_window_get_active_scene(const wmWindow *win)