diff options
author | Campbell Barton <ideasman42@gmail.com> | 2019-04-17 07:17:24 +0300 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2019-04-17 07:21:24 +0300 |
commit | e12c08e8d170b7ca40f204a5b0423c23a9fbc2c1 (patch) | |
tree | 8cf3453d12edb177a218ef8009357518ec6cab6a /source/blender/makesrna/intern/rna_mesh_api.c | |
parent | b3dabc200a4b0399ec6b81f2ff2730d07b44fcaa (diff) |
ClangFormat: apply to source, most of intern
Apply clang format as proposed in T53211.
For details on usage and instructions for migrating branches
without conflicts, see:
https://wiki.blender.org/wiki/Tools/ClangFormat
Diffstat (limited to 'source/blender/makesrna/intern/rna_mesh_api.c')
-rw-r--r-- | source/blender/makesrna/intern/rna_mesh_api.c | 431 |
1 files changed, 236 insertions, 195 deletions
diff --git a/source/blender/makesrna/intern/rna_mesh_api.c b/source/blender/makesrna/intern/rna_mesh_api.c index 7bedd110947..9a8487ad659 100644 --- a/source/blender/makesrna/intern/rna_mesh_api.c +++ b/source/blender/makesrna/intern/rna_mesh_api.c @@ -21,7 +21,6 @@ * \ingroup RNA */ - #include <stdlib.h> #include <stdio.h> @@ -33,275 +32,317 @@ #include "BLI_utildefines.h" -#include "rna_internal.h" /* own include */ +#include "rna_internal.h" /* own include */ #ifdef RNA_RUNTIME -#include "DNA_mesh_types.h" +# include "DNA_mesh_types.h" -#include "BKE_mesh.h" -#include "BKE_mesh_tangent.h" -#include "BKE_mesh_mapping.h" -#include "BKE_mesh_runtime.h" -#include "ED_mesh.h" +# include "BKE_mesh.h" +# include "BKE_mesh_tangent.h" +# include "BKE_mesh_mapping.h" +# include "BKE_mesh_runtime.h" +# include "ED_mesh.h" static const char *rna_Mesh_unit_test_compare(struct Mesh *mesh, struct Mesh *mesh2) { - const char *ret = BKE_mesh_cmp(mesh, mesh2, FLT_EPSILON * 60); + const char *ret = BKE_mesh_cmp(mesh, mesh2, FLT_EPSILON * 60); - if (!ret) - ret = "Same"; + if (!ret) + ret = "Same"; - return ret; + return ret; } static void rna_Mesh_create_normals_split(Mesh *mesh) { - if (!CustomData_has_layer(&mesh->ldata, CD_NORMAL)) { - CustomData_add_layer(&mesh->ldata, CD_NORMAL, CD_CALLOC, NULL, mesh->totloop); - CustomData_set_layer_flag(&mesh->ldata, CD_NORMAL, CD_FLAG_TEMPORARY); - } + if (!CustomData_has_layer(&mesh->ldata, CD_NORMAL)) { + CustomData_add_layer(&mesh->ldata, CD_NORMAL, CD_CALLOC, NULL, mesh->totloop); + CustomData_set_layer_flag(&mesh->ldata, CD_NORMAL, CD_FLAG_TEMPORARY); + } } static void rna_Mesh_free_normals_split(Mesh *mesh) { - CustomData_free_layers(&mesh->ldata, CD_NORMAL, mesh->totloop); + CustomData_free_layers(&mesh->ldata, CD_NORMAL, mesh->totloop); } static void rna_Mesh_calc_tangents(Mesh *mesh, ReportList *reports, const char *uvmap) { - float (*r_looptangents)[4]; - - if (CustomData_has_layer(&mesh->ldata, CD_MLOOPTANGENT)) { - r_looptangents = CustomData_get_layer(&mesh->ldata, CD_MLOOPTANGENT); - memset(r_looptangents, 0, sizeof(float[4]) * mesh->totloop); - } - else { - r_looptangents = CustomData_add_layer(&mesh->ldata, CD_MLOOPTANGENT, CD_CALLOC, NULL, mesh->totloop); - CustomData_set_layer_flag(&mesh->ldata, CD_MLOOPTANGENT, CD_FLAG_TEMPORARY); - } - - /* Compute loop normals if needed. */ - if (!CustomData_has_layer(&mesh->ldata, CD_NORMAL)) { - BKE_mesh_calc_normals_split(mesh); - } - - BKE_mesh_calc_loop_tangent_single(mesh, uvmap, r_looptangents, reports); + float(*r_looptangents)[4]; + + if (CustomData_has_layer(&mesh->ldata, CD_MLOOPTANGENT)) { + r_looptangents = CustomData_get_layer(&mesh->ldata, CD_MLOOPTANGENT); + memset(r_looptangents, 0, sizeof(float[4]) * mesh->totloop); + } + else { + r_looptangents = CustomData_add_layer( + &mesh->ldata, CD_MLOOPTANGENT, CD_CALLOC, NULL, mesh->totloop); + CustomData_set_layer_flag(&mesh->ldata, CD_MLOOPTANGENT, CD_FLAG_TEMPORARY); + } + + /* Compute loop normals if needed. */ + if (!CustomData_has_layer(&mesh->ldata, CD_NORMAL)) { + BKE_mesh_calc_normals_split(mesh); + } + + BKE_mesh_calc_loop_tangent_single(mesh, uvmap, r_looptangents, reports); } static void rna_Mesh_free_tangents(Mesh *mesh) { - CustomData_free_layers(&mesh->ldata, CD_MLOOPTANGENT, mesh->totloop); + CustomData_free_layers(&mesh->ldata, CD_MLOOPTANGENT, mesh->totloop); } static void rna_Mesh_calc_looptri(Mesh *mesh) { - BKE_mesh_runtime_looptri_ensure(mesh); + BKE_mesh_runtime_looptri_ensure(mesh); } -static void rna_Mesh_calc_smooth_groups(Mesh *mesh, bool use_bitflags, int *r_poly_group_len, - int **r_poly_group, int *r_group_total) +static void rna_Mesh_calc_smooth_groups( + Mesh *mesh, bool use_bitflags, int *r_poly_group_len, int **r_poly_group, int *r_group_total) { - *r_poly_group_len = mesh->totpoly; - *r_poly_group = BKE_mesh_calc_smoothgroups( - mesh->medge, mesh->totedge, - mesh->mpoly, mesh->totpoly, - mesh->mloop, mesh->totloop, - r_group_total, use_bitflags); + *r_poly_group_len = mesh->totpoly; + *r_poly_group = BKE_mesh_calc_smoothgroups(mesh->medge, + mesh->totedge, + mesh->mpoly, + mesh->totpoly, + mesh->mloop, + mesh->totloop, + r_group_total, + use_bitflags); } -static void rna_Mesh_normals_split_custom_do(Mesh *mesh, float (*custom_loopnors)[3], const bool use_vertices) +static void rna_Mesh_normals_split_custom_do(Mesh *mesh, + float (*custom_loopnors)[3], + const bool use_vertices) { - if (use_vertices) { - BKE_mesh_set_custom_normals_from_vertices(mesh, custom_loopnors); - } - else { - BKE_mesh_set_custom_normals(mesh, custom_loopnors); - } + if (use_vertices) { + BKE_mesh_set_custom_normals_from_vertices(mesh, custom_loopnors); + } + else { + BKE_mesh_set_custom_normals(mesh, custom_loopnors); + } } -static void rna_Mesh_normals_split_custom_set(Mesh *mesh, ReportList *reports, int normals_len, float *normals) +static void rna_Mesh_normals_split_custom_set(Mesh *mesh, + ReportList *reports, + int normals_len, + float *normals) { - float (*loopnors)[3] = (float (*)[3])normals; - const int numloops = mesh->totloop; + float(*loopnors)[3] = (float(*)[3])normals; + const int numloops = mesh->totloop; - if (normals_len != numloops * 3) { - BKE_reportf(reports, RPT_ERROR, - "Number of custom normals is not number of loops (%f / %d)", - (float)normals_len / 3.0f, numloops); - return; - } + if (normals_len != numloops * 3) { + BKE_reportf(reports, + RPT_ERROR, + "Number of custom normals is not number of loops (%f / %d)", + (float)normals_len / 3.0f, + numloops); + return; + } - rna_Mesh_normals_split_custom_do(mesh, loopnors, false); + rna_Mesh_normals_split_custom_do(mesh, loopnors, false); - DEG_id_tag_update(&mesh->id, 0); + DEG_id_tag_update(&mesh->id, 0); } -static void rna_Mesh_normals_split_custom_set_from_vertices( - Mesh *mesh, ReportList *reports, int normals_len, float *normals) +static void rna_Mesh_normals_split_custom_set_from_vertices(Mesh *mesh, + ReportList *reports, + int normals_len, + float *normals) { - float (*vertnors)[3] = (float (*)[3])normals; - const int numverts = mesh->totvert; + float(*vertnors)[3] = (float(*)[3])normals; + const int numverts = mesh->totvert; - if (normals_len != numverts * 3) { - BKE_reportf(reports, RPT_ERROR, - "Number of custom normals is not number of vertices (%f / %d)", - (float)normals_len / 3.0f, numverts); - return; - } + if (normals_len != numverts * 3) { + BKE_reportf(reports, + RPT_ERROR, + "Number of custom normals is not number of vertices (%f / %d)", + (float)normals_len / 3.0f, + numverts); + return; + } - rna_Mesh_normals_split_custom_do(mesh, vertnors, true); + rna_Mesh_normals_split_custom_do(mesh, vertnors, true); - DEG_id_tag_update(&mesh->id, 0); + DEG_id_tag_update(&mesh->id, 0); } static void rna_Mesh_transform(Mesh *mesh, float *mat, bool shape_keys) { - BKE_mesh_transform(mesh, (float (*)[4])mat, shape_keys); + BKE_mesh_transform(mesh, (float(*)[4])mat, shape_keys); - DEG_id_tag_update(&mesh->id, 0); + DEG_id_tag_update(&mesh->id, 0); } static void rna_Mesh_flip_normals(Mesh *mesh) { - BKE_mesh_polygons_flip(mesh->mpoly, mesh->mloop, &mesh->ldata, mesh->totpoly); - BKE_mesh_tessface_clear(mesh); - BKE_mesh_calc_normals(mesh); - BKE_mesh_runtime_clear_geometry(mesh); + BKE_mesh_polygons_flip(mesh->mpoly, mesh->mloop, &mesh->ldata, mesh->totpoly); + BKE_mesh_tessface_clear(mesh); + BKE_mesh_calc_normals(mesh); + BKE_mesh_runtime_clear_geometry(mesh); - DEG_id_tag_update(&mesh->id, 0); + DEG_id_tag_update(&mesh->id, 0); } static void rna_Mesh_split_faces(Mesh *mesh, bool free_loop_normals) { - BKE_mesh_split_faces(mesh, free_loop_normals != 0); + BKE_mesh_split_faces(mesh, free_loop_normals != 0); } static void rna_Mesh_update_gpu_tag(Mesh *mesh) { - BKE_mesh_batch_cache_dirty_tag(mesh, BKE_MESH_BATCH_DIRTY_ALL); + BKE_mesh_batch_cache_dirty_tag(mesh, BKE_MESH_BATCH_DIRTY_ALL); } static void rna_Mesh_count_selected_items(Mesh *mesh, int r_count[3]) { - BKE_mesh_count_selected_items(mesh, r_count); + BKE_mesh_count_selected_items(mesh, r_count); } - #else void RNA_api_mesh(StructRNA *srna) { - FunctionRNA *func; - PropertyRNA *parm; - const int normals_array_dim[] = {1, 3}; - - func = RNA_def_function(srna, "transform", "rna_Mesh_transform"); - RNA_def_function_ui_description(func, "Transform mesh vertices by a matrix " - "(Warning: inverts normals if matrix is negative)"); - parm = RNA_def_float_matrix(func, "matrix", 4, 4, NULL, 0.0f, 0.0f, "", "Matrix", 0.0f, 0.0f); - RNA_def_parameter_flags(parm, 0, PARM_REQUIRED); - RNA_def_boolean(func, "shape_keys", 0, "", "Transform Shape Keys"); - - func = RNA_def_function(srna, "flip_normals", "rna_Mesh_flip_normals"); - RNA_def_function_ui_description(func, "Invert winding of all polygons " - "(clears tessellation, does not handle custom normals)"); - - func = RNA_def_function(srna, "calc_normals", "BKE_mesh_calc_normals"); - RNA_def_function_ui_description(func, "Calculate vertex normals"); - - func = RNA_def_function(srna, "create_normals_split", "rna_Mesh_create_normals_split"); - RNA_def_function_ui_description(func, "Empty split vertex normals"); - - func = RNA_def_function(srna, "calc_normals_split", "BKE_mesh_calc_normals_split"); - RNA_def_function_ui_description(func, "Calculate split vertex normals, which preserve sharp edges"); - - func = RNA_def_function(srna, "free_normals_split", "rna_Mesh_free_normals_split"); - RNA_def_function_ui_description(func, "Free split vertex normals"); - - func = RNA_def_function(srna, "split_faces", "rna_Mesh_split_faces"); - RNA_def_function_ui_description(func, "Split faces based on the edge angle"); - RNA_def_boolean(func, "free_loop_normals", 1, "Free Loop Notmals", - "Free loop normals custom data layer"); - - func = RNA_def_function(srna, "calc_tangents", "rna_Mesh_calc_tangents"); - RNA_def_function_flag(func, FUNC_USE_REPORTS); - RNA_def_function_ui_description(func, - "Compute tangents and bitangent signs, to be used together with the split normals " - "to get a complete tangent space for normal mapping " - "(split normals are also computed if not yet present)"); - parm = RNA_def_string(func, "uvmap", NULL, MAX_CUSTOMDATA_LAYER_NAME, "", - "Name of the UV map to use for tangent space computation"); - - func = RNA_def_function(srna, "free_tangents", "rna_Mesh_free_tangents"); - RNA_def_function_ui_description(func, "Free tangents"); - - func = RNA_def_function(srna, "calc_loop_triangles", "rna_Mesh_calc_looptri"); - RNA_def_function_ui_description(func, "Calculate loop triangle tessellation (supports editmode too)"); - - func = RNA_def_function(srna, "calc_smooth_groups", "rna_Mesh_calc_smooth_groups"); - RNA_def_function_ui_description(func, "Calculate smooth groups from sharp edges"); - RNA_def_boolean(func, "use_bitflags", false, "", "Produce bitflags groups instead of simple numeric values"); - /* return values */ - parm = RNA_def_int_array(func, "poly_groups", 1, NULL, 0, 0, "", "Smooth Groups", 0, 0); - RNA_def_parameter_flags(parm, PROP_DYNAMIC, PARM_OUTPUT); - parm = RNA_def_int(func, "groups", 0, 0, INT_MAX, "groups", "Total number of groups", 0, INT_MAX); - RNA_def_parameter_flags(parm, 0, PARM_OUTPUT); - - func = RNA_def_function(srna, "normals_split_custom_set", "rna_Mesh_normals_split_custom_set"); - RNA_def_function_ui_description(func, - "Define custom split normals of this mesh " - "(use zero-vectors to keep auto ones)"); - RNA_def_function_flag(func, FUNC_USE_REPORTS); - /* TODO, see how array size of 0 works, this shouldnt be used */ - parm = RNA_def_float_array(func, "normals", 1, NULL, -1.0f, 1.0f, "", "Normals", 0.0f, 0.0f); - RNA_def_property_multi_array(parm, 2, normals_array_dim); - RNA_def_parameter_flags(parm, PROP_DYNAMIC, PARM_REQUIRED); - - func = RNA_def_function(srna, "normals_split_custom_set_from_vertices", - "rna_Mesh_normals_split_custom_set_from_vertices"); - RNA_def_function_ui_description(func, - "Define custom split normals of this mesh, from vertices' normals " - "(use zero-vectors to keep auto ones)"); - RNA_def_function_flag(func, FUNC_USE_REPORTS); - /* TODO, see how array size of 0 works, this shouldnt be used */ - parm = RNA_def_float_array(func, "normals", 1, NULL, -1.0f, 1.0f, "", "Normals", 0.0f, 0.0f); - RNA_def_property_multi_array(parm, 2, normals_array_dim); - RNA_def_parameter_flags(parm, PROP_DYNAMIC, PARM_REQUIRED); - - func = RNA_def_function(srna, "update", "ED_mesh_update"); - RNA_def_boolean(func, "calc_edges", 0, "Calculate Edges", "Force recalculation of edges"); - RNA_def_boolean(func, "calc_edges_loose", 0, "Calculate Loose Edges", "Calculate the loose state of each edge"); - RNA_def_boolean(func, "calc_loop_triangles", 0, "Calculate Triangules", "Force recalculation of triangle tessellation"); - RNA_def_function_flag(func, FUNC_USE_CONTEXT); - - RNA_def_function(srna, "update_gpu_tag", "rna_Mesh_update_gpu_tag"); - - func = RNA_def_function(srna, "unit_test_compare", "rna_Mesh_unit_test_compare"); - RNA_def_pointer(func, "mesh", "Mesh", "", "Mesh to compare to"); - /* return value */ - parm = RNA_def_string(func, "result", "nothing", 64, "Return value", "String description of result of comparison"); - RNA_def_function_return(func, parm); - - func = RNA_def_function(srna, "validate", "BKE_mesh_validate"); - RNA_def_function_ui_description(func, "Validate geometry, return True when the mesh has had " - "invalid geometry corrected/removed"); - RNA_def_boolean(func, "verbose", false, "Verbose", "Output information about the errors found"); - RNA_def_boolean(func, "clean_customdata", true, "Clean Custom Data", - "Remove temp/cached custom-data layers, like e.g. normals..."); - parm = RNA_def_boolean(func, "result", 0, "Result", ""); - RNA_def_function_return(func, parm); - - func = RNA_def_function(srna, "validate_material_indices", "BKE_mesh_validate_material_indices"); - RNA_def_function_ui_description(func, "Validate material indices of polygons, return True when the mesh has had " - "invalid indices corrected (to default 0)"); - parm = RNA_def_boolean(func, "result", 0, "Result", ""); - RNA_def_function_return(func, parm); - - func = RNA_def_function(srna, "count_selected_items", "rna_Mesh_count_selected_items "); - RNA_def_function_ui_description(func, "Return the number of selected items (vert, edge, face)"); - parm = RNA_def_int_vector(func, "result", 3, NULL, 0, INT_MAX, "Result", NULL, 0, INT_MAX); - RNA_def_function_output(func, parm); + FunctionRNA *func; + PropertyRNA *parm; + const int normals_array_dim[] = {1, 3}; + + func = RNA_def_function(srna, "transform", "rna_Mesh_transform"); + RNA_def_function_ui_description(func, + "Transform mesh vertices by a matrix " + "(Warning: inverts normals if matrix is negative)"); + parm = RNA_def_float_matrix(func, "matrix", 4, 4, NULL, 0.0f, 0.0f, "", "Matrix", 0.0f, 0.0f); + RNA_def_parameter_flags(parm, 0, PARM_REQUIRED); + RNA_def_boolean(func, "shape_keys", 0, "", "Transform Shape Keys"); + + func = RNA_def_function(srna, "flip_normals", "rna_Mesh_flip_normals"); + RNA_def_function_ui_description(func, + "Invert winding of all polygons " + "(clears tessellation, does not handle custom normals)"); + + func = RNA_def_function(srna, "calc_normals", "BKE_mesh_calc_normals"); + RNA_def_function_ui_description(func, "Calculate vertex normals"); + + func = RNA_def_function(srna, "create_normals_split", "rna_Mesh_create_normals_split"); + RNA_def_function_ui_description(func, "Empty split vertex normals"); + + func = RNA_def_function(srna, "calc_normals_split", "BKE_mesh_calc_normals_split"); + RNA_def_function_ui_description(func, + "Calculate split vertex normals, which preserve sharp edges"); + + func = RNA_def_function(srna, "free_normals_split", "rna_Mesh_free_normals_split"); + RNA_def_function_ui_description(func, "Free split vertex normals"); + + func = RNA_def_function(srna, "split_faces", "rna_Mesh_split_faces"); + RNA_def_function_ui_description(func, "Split faces based on the edge angle"); + RNA_def_boolean( + func, "free_loop_normals", 1, "Free Loop Notmals", "Free loop normals custom data layer"); + + func = RNA_def_function(srna, "calc_tangents", "rna_Mesh_calc_tangents"); + RNA_def_function_flag(func, FUNC_USE_REPORTS); + RNA_def_function_ui_description( + func, + "Compute tangents and bitangent signs, to be used together with the split normals " + "to get a complete tangent space for normal mapping " + "(split normals are also computed if not yet present)"); + parm = RNA_def_string(func, + "uvmap", + NULL, + MAX_CUSTOMDATA_LAYER_NAME, + "", + "Name of the UV map to use for tangent space computation"); + + func = RNA_def_function(srna, "free_tangents", "rna_Mesh_free_tangents"); + RNA_def_function_ui_description(func, "Free tangents"); + + func = RNA_def_function(srna, "calc_loop_triangles", "rna_Mesh_calc_looptri"); + RNA_def_function_ui_description(func, + "Calculate loop triangle tessellation (supports editmode too)"); + + func = RNA_def_function(srna, "calc_smooth_groups", "rna_Mesh_calc_smooth_groups"); + RNA_def_function_ui_description(func, "Calculate smooth groups from sharp edges"); + RNA_def_boolean( + func, "use_bitflags", false, "", "Produce bitflags groups instead of simple numeric values"); + /* return values */ + parm = RNA_def_int_array(func, "poly_groups", 1, NULL, 0, 0, "", "Smooth Groups", 0, 0); + RNA_def_parameter_flags(parm, PROP_DYNAMIC, PARM_OUTPUT); + parm = RNA_def_int( + func, "groups", 0, 0, INT_MAX, "groups", "Total number of groups", 0, INT_MAX); + RNA_def_parameter_flags(parm, 0, PARM_OUTPUT); + + func = RNA_def_function(srna, "normals_split_custom_set", "rna_Mesh_normals_split_custom_set"); + RNA_def_function_ui_description(func, + "Define custom split normals of this mesh " + "(use zero-vectors to keep auto ones)"); + RNA_def_function_flag(func, FUNC_USE_REPORTS); + /* TODO, see how array size of 0 works, this shouldnt be used */ + parm = RNA_def_float_array(func, "normals", 1, NULL, -1.0f, 1.0f, "", "Normals", 0.0f, 0.0f); + RNA_def_property_multi_array(parm, 2, normals_array_dim); + RNA_def_parameter_flags(parm, PROP_DYNAMIC, PARM_REQUIRED); + + func = RNA_def_function(srna, + "normals_split_custom_set_from_vertices", + "rna_Mesh_normals_split_custom_set_from_vertices"); + RNA_def_function_ui_description( + func, + "Define custom split normals of this mesh, from vertices' normals " + "(use zero-vectors to keep auto ones)"); + RNA_def_function_flag(func, FUNC_USE_REPORTS); + /* TODO, see how array size of 0 works, this shouldnt be used */ + parm = RNA_def_float_array(func, "normals", 1, NULL, -1.0f, 1.0f, "", "Normals", 0.0f, 0.0f); + RNA_def_property_multi_array(parm, 2, normals_array_dim); + RNA_def_parameter_flags(parm, PROP_DYNAMIC, PARM_REQUIRED); + + func = RNA_def_function(srna, "update", "ED_mesh_update"); + RNA_def_boolean(func, "calc_edges", 0, "Calculate Edges", "Force recalculation of edges"); + RNA_def_boolean(func, + "calc_edges_loose", + 0, + "Calculate Loose Edges", + "Calculate the loose state of each edge"); + RNA_def_boolean(func, + "calc_loop_triangles", + 0, + "Calculate Triangules", + "Force recalculation of triangle tessellation"); + RNA_def_function_flag(func, FUNC_USE_CONTEXT); + + RNA_def_function(srna, "update_gpu_tag", "rna_Mesh_update_gpu_tag"); + + func = RNA_def_function(srna, "unit_test_compare", "rna_Mesh_unit_test_compare"); + RNA_def_pointer(func, "mesh", "Mesh", "", "Mesh to compare to"); + /* return value */ + parm = RNA_def_string( + func, "result", "nothing", 64, "Return value", "String description of result of comparison"); + RNA_def_function_return(func, parm); + + func = RNA_def_function(srna, "validate", "BKE_mesh_validate"); + RNA_def_function_ui_description(func, + "Validate geometry, return True when the mesh has had " + "invalid geometry corrected/removed"); + RNA_def_boolean(func, "verbose", false, "Verbose", "Output information about the errors found"); + RNA_def_boolean(func, + "clean_customdata", + true, + "Clean Custom Data", + "Remove temp/cached custom-data layers, like e.g. normals..."); + parm = RNA_def_boolean(func, "result", 0, "Result", ""); + RNA_def_function_return(func, parm); + + func = RNA_def_function(srna, "validate_material_indices", "BKE_mesh_validate_material_indices"); + RNA_def_function_ui_description( + func, + "Validate material indices of polygons, return True when the mesh has had " + "invalid indices corrected (to default 0)"); + parm = RNA_def_boolean(func, "result", 0, "Result", ""); + RNA_def_function_return(func, parm); + + func = RNA_def_function(srna, "count_selected_items", "rna_Mesh_count_selected_items "); + RNA_def_function_ui_description(func, "Return the number of selected items (vert, edge, face)"); + parm = RNA_def_int_vector(func, "result", 3, NULL, 0, INT_MAX, "Result", NULL, 0, INT_MAX); + RNA_def_function_output(func, parm); } #endif |