34#define MESH_DM_INFO_STR_MAX 16384
42 "The pose space of a bone (its armature's object space)"},
47 "The rest pose local space of a bone (this matrix includes parent transforms)"},
49 {0,
nullptr, 0,
nullptr,
nullptr},
83static Base *find_view_layer_base_with_synced_ensure(
88 if (view_layer_ptr->
data) {
96 if (r_scene !=
nullptr) {
99 if (r_view_layer !=
nullptr) {
100 *r_view_layer = view_layer;
107static void rna_Object_select_set(
112 Base *base = find_view_layer_base_with_synced_ensure(ob, C, view_layer_ptr, &scene, &view_layer);
118 "Object '%s' can't be selected because it is not in View Layer '%s'!",
135 Base *base = find_view_layer_base_with_synced_ensure(ob, C, view_layer_ptr,
nullptr,
nullptr);
143static void rna_Object_hide_set(
148 Base *base = find_view_layer_base_with_synced_ensure(ob, C, view_layer_ptr, &scene, &view_layer);
153 "Object '%s' can't be hidden because it is not in View Layer '%s'!",
164 base->
flag &= ~BASE_HIDDEN;
174 Base *base = find_view_layer_base_with_synced_ensure(ob, C, view_layer_ptr,
nullptr,
nullptr);
182static bool rna_Object_visible_get(
Object *ob,
187 Base *base = find_view_layer_base_with_synced_ensure(ob, C, view_layer_ptr,
nullptr,
nullptr);
188 if (v3d ==
nullptr) {
201 Base *base = find_view_layer_base_with_synced_ensure(ob, C, view_layer_ptr,
nullptr,
nullptr);
211 Base *base = find_view_layer_base_with_synced_ensure(ob, C, view_layer_ptr,
nullptr,
nullptr);
219static Base *rna_Object_local_view_property_helper(
bScreen *screen,
232 if (view_layer ==
nullptr) {
239 if (base ==
nullptr) {
243 if (r_scene !=
nullptr && win !=
nullptr) {
244 *r_scene = win->
scene;
259static void rna_Object_local_view_set(
Object *ob,
267 Base *base = rna_Object_local_view_property_helper(screen, v3d,
nullptr, ob, reports, &scene);
268 if (base ==
nullptr) {
282static bool rna_Object_visible_in_viewport_get(
Object *ob,
View3D *v3d)
289static void rna_Object_mat_convert_space(
Object *ob,
297 copy_m4_m4((
float(*)[4])mat_ret, (
float(*)[4])mat);
303 if (pchan ==
nullptr) {
305 const char *identifier =
nullptr;
309 "'from_space' '%s' is invalid when no pose bone is given!",
314 const char *identifier =
nullptr;
318 "'to_space' '%s' is invalid when no pose bone is given!",
325 const char *identifier =
nullptr;
329 "'from_space' '%s' is invalid when no custom space is given!",
334 const char *identifier =
nullptr;
338 "'to_space' '%s' is invalid when no custom space is given!",
346static void rna_Object_calc_matrix_camera(
Object *ob,
368static void rna_Object_camera_fit_coords(
Object *ob,
376 depsgraph, (
const float(*)[3])
cos, cos_num / 3, ob, co_ret, scale_ret);
379static void rna_Object_crazyspace_eval(
Object *
object,
387static void rna_Object_crazyspace_displacement_to_deformed(
Object *
object,
389 const int vertex_index,
390 const float displacement[3],
391 float r_displacement_deformed[3])
394 object, reports, vertex_index, displacement, r_displacement_deformed);
397static void rna_Object_crazyspace_displacement_to_original(
Object *
object,
399 const int vertex_index,
400 const float displacement_deformed[3],
401 float r_displacement[3])
404 object, reports, vertex_index, displacement_deformed, r_displacement);
407static void rna_Object_crazyspace_eval_clear(
Object *
object)
413static Mesh *rna_Object_to_mesh(
Object *
object,
415 bool preserve_all_data_layers,
420 switch (object->type) {
435static void rna_Object_to_mesh_clear(
Object *
object)
443 bool apply_modifiers)
458static void rna_Object_to_curve_clear(
Object *
object)
484static void rna_Object_shape_key_remove(
Object *ob,
508static void rna_Object_shape_key_clear(
Object *ob,
Main *bmain)
517static void rna_Mesh_assign_verts_to_group(
518 Object *ob,
bDeformGroup *group,
int *indices,
int totindex,
float weight,
int assignmode)
527 if (group_index == -1) {
539 create_dverts(&mesh->id);
543 for (i = 0; i < totindex; i++) {
544 if (i < 0 || i >= mesh->verts_num) {
549 add_vert_defnr(ob, group_index, i, weight, assignmode);
555static int mesh_corner_tri_to_face_index(
Mesh *mesh_eval,
const int tri_index)
558 const int face_i = tri_faces[tri_index];
559 const int *index_face_to_orig =
static_cast<const int *
>(
561 return index_face_to_orig ? index_face_to_orig[face_i] : face_i;
571 if (ob->
runtime->data_eval ==
nullptr) {
573 Depsgraph *
depsgraph = rnaptr_depsgraph !=
nullptr ?
574 static_cast<Depsgraph *
>(rnaptr_depsgraph->
data) :
584 reports,
RPT_ERROR,
"Object '%s' has no evaluated mesh data", ob_orig->
id.
name + 2);
591static void rna_Object_ray_cast(
Object *ob,
594 const float origin[3],
595 const float direction[3],
603 bool success =
false;
607 if ((ob = eval_object_ensure(ob, C, reports, rnaptr_depsgraph)) ==
nullptr) {
614 const std::optional<blender::Bounds<blender::float3>>
bounds = mesh_eval->bounds_min_max();
621 float direction_unit[3];
625 origin, direction_unit,
bounds->min,
bounds->max, &distmin,
nullptr) &&
626 distmin <= distance))
635 if (treeData.
tree !=
nullptr) {
649 if (hit.dist <= distance) {
650 *r_success = success =
true;
654 *r_index = mesh_corner_tri_to_face_index(mesh_eval, hit.index);
661 if (success ==
false) {
670static void rna_Object_closest_point_on_mesh(
Object *ob,
673 const float origin[3],
683 if ((ob = eval_object_ensure(ob, C, reports, rnaptr_depsgraph)) ==
nullptr) {
692 if (treeData.
tree ==
nullptr) {
695 "Object '%s' could not create internal data for finding nearest point",
703 nearest.dist_sq = distance *
distance;
712 *r_index = mesh_corner_tri_to_face_index(mesh_eval, nearest.index);
728static bool rna_Object_is_modified(
Object *ob,
Scene *scene,
int settings)
733static bool rna_Object_is_deform_modified(
Object *ob,
Scene *scene,
int settings)
742void rna_Object_me_eval_info(
745 const Mesh *mesh_eval =
nullptr;
753 if ((ob = eval_object_ensure(ob, C,
nullptr, rnaptr_depsgraph)) ==
nullptr) {
761 mesh_eval =
static_cast<Mesh *
>(ob->
data);
781void rna_Object_me_eval_info(
Object * ,
791static bool rna_Object_update_from_editmode(
Object *ob,
Main *bmain)
813 {0,
nullptr, 0,
nullptr,
nullptr},
818 {0,
"SOURCE", 0,
"Source",
"Source mesh"},
819 {1,
"DEFORM", 0,
"Deform",
"Objects deform mesh"},
820 {2,
"FINAL", 0,
"Final",
"Objects final mesh"},
821 {0,
nullptr, 0,
nullptr,
nullptr},
828 func,
"Test if the object is selected. The selection state is per view layer.");
831 func,
"view_layer",
"ViewLayer",
"",
"Use this instead of the active view layer");
838 func,
"Select or deselect the object. The selection state is per view layer.");
840 parm =
RNA_def_boolean(func,
"state",
false,
"",
"Selection state to define");
843 func,
"view_layer",
"ViewLayer",
"",
"Use this instead of the active view layer");
849 "Test if the object is hidden for viewport editing. This hiding state is per view layer.");
852 func,
"view_layer",
"ViewLayer",
"",
"Use this instead of the active view layer");
859 func,
"Hide the object for viewport editing. This hiding state is per view layer.");
861 parm =
RNA_def_boolean(func,
"state",
false,
"",
"Hide state to define");
864 func,
"view_layer",
"ViewLayer",
"",
"Use this instead of the active view layer");
869 "Test if the object is visible in the 3D viewport, taking into "
870 "account all visibility settings");
873 func,
"view_layer",
"ViewLayer",
"",
"Use this instead of the active view layer");
876 func,
"viewport",
"SpaceView3D",
"",
"Use this instead of the active 3D viewport");
884 func,
"view_layer",
"ViewLayer",
"",
"Use this instead of the active view layer");
889 func =
RNA_def_function(srna,
"indirect_only_get",
"rna_Object_indirect_only_get");
891 "Test if object is set to contribute only indirectly (through "
892 "shadows and reflections) in the view layer");
895 func,
"view_layer",
"ViewLayer",
"",
"Use this instead of the active view layer");
897 parm =
RNA_def_boolean(func,
"result",
false,
"",
"Object indirect only");
901 func =
RNA_def_function(srna,
"local_view_get",
"rna_Object_local_view_get");
904 parm =
RNA_def_pointer(func,
"viewport",
"SpaceView3D",
"",
"Viewport in local view");
906 parm =
RNA_def_boolean(func,
"result",
false,
"",
"Object local view state");
909 func =
RNA_def_function(srna,
"local_view_set",
"rna_Object_local_view_set");
912 parm =
RNA_def_pointer(func,
"viewport",
"SpaceView3D",
"",
"Viewport in local view");
914 parm =
RNA_def_boolean(func,
"state",
false,
"",
"Local view state to define");
918 func =
RNA_def_function(srna,
"visible_in_viewport_get",
"rna_Object_visible_in_viewport_get");
920 func,
"Check for local view and local collections for this viewport and object");
921 parm =
RNA_def_pointer(func,
"viewport",
"SpaceView3D",
"",
"Viewport in local collections");
923 parm =
RNA_def_boolean(func,
"result",
false,
"",
"Object viewport visibility");
927 func =
RNA_def_function(srna,
"convert_space",
"rna_Object_mat_convert_space");
929 func,
"Convert (transform) the given matrix from one space to another");
936 "Bone to use to define spaces (may be None, in which case only the two 'WORLD' and "
937 "'LOCAL' spaces are usable)");
950 "The space in which 'matrix' is currently");
956 "The space to which you want to transform 'matrix'");
959 func =
RNA_def_function(srna,
"calc_matrix_camera",
"rna_Object_calc_matrix_camera");
961 "Generate the camera projection matrix of this object "
962 "(mostly useful for Camera and Light types)");
964 func,
"depsgraph",
"Depsgraph",
"",
"Depsgraph to get evaluated data from");
970 parm =
RNA_def_int(func,
"x", 1, 0, INT_MAX,
"",
"Width of the render area", 0, 10000);
971 parm =
RNA_def_int(func,
"y", 1, 0, INT_MAX,
"",
"Height of the render area", 0, 10000);
973 func,
"scale_x", 1.0f, 1.0e-6f,
FLT_MAX,
"",
"Width scaling factor", 1.0e-2f, 100.0f);
975 func,
"scale_y", 1.0f, 1.0e-6f,
FLT_MAX,
"",
"Height scaling factor", 1.0e-2f, 100.0f);
977 func =
RNA_def_function(srna,
"camera_fit_coords",
"rna_Object_camera_fit_coords");
979 "Compute the coordinate (and scale for ortho cameras) "
980 "given object should be to 'see' all given coordinates");
982 func,
"depsgraph",
"Depsgraph",
"",
"Depsgraph to get evaluated data from");
991 "Coordinates to fit in",
1001 parm,
"",
"The ortho scale to aim to be able to see all given points (if relevant)");
1006 func =
RNA_def_function(srna,
"crazyspace_eval",
"rna_Object_crazyspace_eval");
1009 "Compute orientation mapping between vertices of an original object and object with shape "
1010 "keys and deforming modifiers applied."
1011 "The evaluation is to be freed with the crazyspace_eval_free function");
1014 func,
"depsgraph",
"Depsgraph",
"Dependency Graph",
"Evaluated dependency graph");
1016 parm =
RNA_def_pointer(func,
"scene",
"Scene",
"Scene",
"Scene of the object");
1020 "crazyspace_displacement_to_deformed",
1021 "rna_Object_crazyspace_displacement_to_deformed");
1023 func,
"Convert displacement vector from non-deformed object space to deformed object space");
1034 "crazyspace_displacement_to_original",
1035 "rna_Object_crazyspace_displacement_to_original");
1037 func,
"Convert displacement vector from deformed object space to non-deformed object space");
1047 RNA_def_function(srna,
"crazyspace_eval_clear",
"rna_Object_crazyspace_eval_clear");
1054 "Create a Mesh data-block from the current state of the object. The object owns the "
1055 "data-block. To force free it use to_mesh_clear(). "
1056 "The result is temporary and cannot be used by objects from the main database.");
1059 "preserve_all_data_layers",
1062 "Preserve all data layers in the mesh, like UV maps and vertex groups. "
1063 "By default Blender only computes the subset of data layers needed for viewport "
1064 "display and rendering, for better performance.");
1070 "Evaluated dependency graph which is required when preserve_all_data_layers is true");
1071 parm =
RNA_def_pointer(func,
"mesh",
"Mesh",
"",
"Mesh created from object");
1074 func =
RNA_def_function(srna,
"to_mesh_clear",
"rna_Object_to_mesh_clear");
1081 "Create a Curve data-block from the current state of the object. This only works for curve "
1082 "and text objects. The object owns the data-block. To force free it, use to_curve_clear(). "
1083 "The result is temporary and cannot be used by objects from the main database.");
1086 func,
"depsgraph",
"Depsgraph",
"Dependency Graph",
"Evaluated dependency graph");
1092 "Apply the deform modifiers on the control points of the curve. This is only "
1093 "supported for curve objects.");
1094 parm =
RNA_def_pointer(func,
"curve",
"Curve",
"",
"Curve created from object");
1097 func =
RNA_def_function(srna,
"to_curve_clear",
"rna_Object_to_curve_clear");
1101 func =
RNA_def_function(srna,
"find_armature",
"BKE_modifiers_is_deformed_by_armature");
1103 func,
"Find armature influencing this object as a parent or via a modifier");
1105 func,
"ob_arm",
"Object",
"",
"Armature object influencing this object or nullptr");
1109 func =
RNA_def_function(srna,
"shape_key_add",
"rna_Object_shape_key_add");
1112 RNA_def_string(func,
"name",
"Key", 0,
"",
"Unique name for the new keyblock");
1113 RNA_def_boolean(func,
"from_mix",
true,
"",
"Create new shape from existing mix of shapes");
1114 parm =
RNA_def_pointer(func,
"key",
"ShapeKey",
"",
"New shape keyblock");
1118 func =
RNA_def_function(srna,
"shape_key_remove",
"rna_Object_shape_key_remove");
1121 parm =
RNA_def_pointer(func,
"key",
"ShapeKey",
"",
"Keyblock to be removed");
1125 func =
RNA_def_function(srna,
"shape_key_clear",
"rna_Object_shape_key_clear");
1133 "Cast a ray onto evaluated geometry, in object space "
1134 "(using context's or provided depsgraph to get evaluated mesh if needed)");
1145 "Origin of the ray, in object space",
1156 "Direction of the ray, in object space",
1174 "Depsgraph to use to get evaluated data, when called from original object "
1175 "(only needed if current Context's depsgraph is not suitable)");
1180 func,
"result",
false,
"",
"Whether the ray successfully hit the geometry");
1189 "The hit location of this ray cast",
1201 "The face normal at the ray cast hit location",
1207 func,
"index", 0, 0, 0,
"",
"The face index, -1 when original data isn't available", 0, 0);
1211 func =
RNA_def_function(srna,
"closest_point_on_mesh",
"rna_Object_closest_point_on_mesh");
1214 "Find the nearest point on evaluated geometry, in object space "
1215 "(using context's or provided depsgraph to get evaluated mesh if needed)");
1226 "Point to find closest geometry from (in object space)",
1232 func,
"distance", 1.844674352395373e+19, 0.0,
FLT_MAX,
"",
"Maximum distance", 0.0,
FLT_MAX);
1238 "Depsgraph to use to get evaluated data, when called from original object "
1239 "(only needed if current Context's depsgraph is not suitable)");
1243 parm =
RNA_def_boolean(func,
"result",
false,
"",
"Whether closest point on geometry was found");
1252 "The location on the object closest to the point",
1264 "The face normal at the closest point",
1271 func,
"index", 0, 0, 0,
"",
"The face index, -1 when original data isn't available", 0, 0);
1279 "Determine if this object is modified from the base mesh data");
1280 parm =
RNA_def_pointer(func,
"scene",
"Scene",
"",
"Scene in which to check the object");
1282 parm =
RNA_def_enum(func,
"settings", mesh_type_items, 0,
"",
"Modifier settings to apply");
1284 parm =
RNA_def_boolean(func,
"result",
false,
"",
"Whether the object is modified");
1287 func =
RNA_def_function(srna,
"is_deform_modified",
"rna_Object_is_deform_modified");
1289 func,
"Determine if this object is modified by a deformation from the base mesh data");
1290 parm =
RNA_def_pointer(func,
"scene",
"Scene",
"",
"Scene in which to check the object");
1292 parm =
RNA_def_enum(func,
"settings", mesh_type_items, 0,
"",
"Modifier settings to apply");
1294 parm =
RNA_def_boolean(func,
"result",
false,
"",
"Whether the object is deform-modified");
1302 "Returns a string for original/evaluated mesh data (debug builds only, "
1303 "using context's or provided depsgraph to get evaluated mesh if needed)");
1306 parm =
RNA_def_enum(func,
"type", mesh_dm_info_items, 0,
"",
"Modifier settings to apply");
1313 "Depsgraph to use to get evaluated data, when called from original object "
1314 "(only needed if current Context's depsgraph is not suitable)");
1324 func =
RNA_def_function(srna,
"update_from_editmode",
"rna_Object_update_from_editmode");
1332 "Release memory used by caches associated with this object. "
1333 "Intended to be used by render engines only.");
void free_bvhtree_from_mesh(BVHTreeFromMesh *data)
BVHTree * BKE_bvhtree_from_mesh_get(BVHTreeFromMesh *data, const Mesh *mesh, BVHCacheType bvh_cache_type, int tree_type)
@ BVHTREE_FROM_CORNER_TRIS
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)
void * BLI_findlink(const struct ListBase *listbase, int number) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL(1)
int BLI_findindex(const struct ListBase *listbase, const void *vlink) 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)
Object * DEG_get_evaluated_object(const Depsgraph *depsgraph, Object *object)
@ CONSTRAINT_SPACE_CUSTOM
@ CONSTRAINT_SPACE_OWNLOCAL
@ CONSTRAINT_SPACE_PARLOCAL
Object is a sort of wrapper for general info.
#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.
#define RNA_POINTER_INVALIDATE(ptr)
constexpr PointerRNA PointerRNA_NULL
static btDbvtVolume bounds(btDbvtNode **leaves, int count)
const Depsgraph * depsgraph
void MEM_freeN(void *vmemh)
ccl_device_inline float3 cos(float3 v)
ccl_device_inline float4 select(const int4 mask, const float4 a, const float4 b)
void base_select(Base *base, eObjectSelect_Mode mode)
bool editmode_load(Main *bmain, Object *obedit)
float distance(float a, float b)
bool RNA_enum_identifier(const EnumPropertyItem *item, const int value, const char **r_identifier)
PointerRNA RNA_pointer_create(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)
BVHTree_RayCastCallback raycast_callback
BVHTree_NearestPointCallback nearest_callback
unsigned short local_view_bits
ObjectRuntimeHandle * runtime
unsigned short base_local_view_bits
unsigned short local_view_uid
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)