54 {
BMO_DELIM_UV,
"UV", 0,
"UVs",
"Delimit by UV coordinates"},
59 {
REMESH_VOXEL,
"VOXEL", 0,
"Voxel",
"Use the voxel remesher"},
60 {
REMESH_QUAD,
"QUAD", 0,
"Quad",
"Use the quad remesher"},
121 return rna_mesh_vdata_helper(me);
127 return rna_mesh_edata_helper(me);
133 return rna_mesh_pdata_helper(me);
139 return rna_mesh_ldata_helper(me);
159 # define TEST_CDL(cmd) \
160 if ((
void)(cd = cmd(me)),
ARRAY_HAS_ITEM(cdl, cd->layers, cd->totlayer)) { \
165 TEST_CDL(rna_mesh_vdata_helper);
166 TEST_CDL(rna_mesh_edata_helper);
167 TEST_CDL(rna_mesh_pdata_helper);
168 TEST_CDL(rna_mesh_ldata_helper);
169 TEST_CDL(rna_mesh_fdata_helper);
177 static void rna_MeshVertexLayer_name_set(
PointerRNA *
ptr,
const char *value)
182 static void rna_MeshEdgeLayer_name_set(
PointerRNA *
ptr,
const char *value)
187 static void rna_MeshPolyLayer_name_set(
PointerRNA *
ptr,
const char *value)
191 static void rna_MeshLoopLayer_name_set(
PointerRNA *
ptr,
const char *value)
196 static void rna_MeshAnyLayer_name_set(
PointerRNA *
ptr,
const char *value)
226 rna_Mesh_update_data(bmain,
scene,
ptr);
233 rna_Mesh_update_data(bmain,
scene,
ptr);
280 static void rna_MeshVertex_normal_get(
PointerRNA *
ptr,
float *value)
286 static void rna_MeshVertex_normal_set(
PointerRNA *
ptr,
const float *value)
296 static float rna_MeshVertex_bevel_weight_get(
PointerRNA *
ptr)
299 return mvert->
bweight / 255.0f;
302 static void rna_MeshVertex_bevel_weight_set(
PointerRNA *
ptr,
float value)
311 return medge->
bweight / 255.0f;
314 static void rna_MEdge_bevel_weight_set(
PointerRNA *
ptr,
float value)
323 return medge->
crease / 255.0f;
326 static void rna_MEdge_crease_set(
PointerRNA *
ptr,
float value)
332 static void rna_MeshLoop_normal_get(
PointerRNA *
ptr,
float *values)
346 static void rna_MeshLoop_normal_set(
PointerRNA *
ptr,
const float *values)
357 static void rna_MeshLoop_tangent_get(
PointerRNA *
ptr,
float *values)
371 static float rna_MeshLoop_bitangent_sign_get(
PointerRNA *
ptr)
377 return (vec) ? (*vec)[3] : 0.0f;
380 static void rna_MeshLoop_bitangent_get(
PointerRNA *
ptr,
float *values)
396 static void rna_MeshPolygon_normal_get(
PointerRNA *
ptr,
float *values)
404 static void rna_MeshPolygon_center_get(
PointerRNA *
ptr,
float *values)
420 static void rna_MeshPolygon_flip(
ID *
id,
MPoly *mp)
429 static void rna_MeshLoopTriangle_verts_get(
PointerRNA *
ptr,
int *values)
438 static void rna_MeshLoopTriangle_normal_get(
PointerRNA *
ptr,
float *values)
444 unsigned int v3 = me->
mloop[lt->
tri[2]].
v;
449 static void rna_MeshLoopTriangle_split_normals_get(
PointerRNA *
ptr,
float *values)
473 unsigned int v3 = me->
mloop[lt->
tri[2]].
v;
478 static void rna_MeshLoopColor_color_get(
PointerRNA *
ptr,
float *values)
482 values[0] = mlcol->
r / 255.0f;
483 values[1] = mlcol->
g / 255.0f;
484 values[2] = mlcol->
b / 255.0f;
485 values[3] = mlcol->
a / 255.0f;
488 static void rna_MeshLoopColor_color_set(
PointerRNA *
ptr,
const float *values)
504 static void rna_Mesh_texspace_size_get(
PointerRNA *
ptr,
float values[3])
513 static void rna_Mesh_texspace_loc_get(
PointerRNA *
ptr,
float values[3])
538 static void rna_MeshVertex_undeformed_co_get(
PointerRNA *
ptr,
float values[3])
546 float loc[3],
size[3];
575 static void rna_CustomDataLayer_active_set(
606 static bool rna_MEdge_freestyle_edge_mark_get(
PointerRNA *
ptr)
615 static void rna_MEdge_freestyle_edge_mark_set(
PointerRNA *
ptr,
bool value)
632 static bool rna_MPoly_freestyle_face_mark_get(
PointerRNA *
ptr)
641 static void rna_MPoly_freestyle_face_mark_set(
PointerRNA *
ptr,
int value)
664 uv_layer, ldata,
CD_MLOOPUV, stencil, MeshUVLoopLayer)
672 char name_esc[
sizeof(cdl->
name) * 2];
691 static bool rna_MeshUVLoopLayer_active_render_get(
PointerRNA *
ptr)
693 return rna_CustomDataLayer_active_get(
ptr, rna_mesh_ldata(
ptr),
CD_MLOOPUV, 1);
698 return rna_CustomDataLayer_active_get(
ptr, rna_mesh_ldata(
ptr),
CD_MLOOPUV, 0);
706 static void rna_MeshUVLoopLayer_active_render_set(
PointerRNA *
ptr,
bool value)
708 rna_CustomDataLayer_active_set(
ptr, rna_mesh_ldata(
ptr), value,
CD_MLOOPUV, 1);
711 static void rna_MeshUVLoopLayer_active_set(
PointerRNA *
ptr,
bool value)
713 rna_CustomDataLayer_active_set(
ptr, rna_mesh_ldata(
ptr), value,
CD_MLOOPUV, 0);
716 static void rna_MeshUVLoopLayer_clone_set(
PointerRNA *
ptr,
bool value)
735 static int rna_MeshLoopColorLayer_data_length(
PointerRNA *
ptr)
741 static bool rna_MeshLoopColorLayer_active_render_get(
PointerRNA *
ptr)
746 static bool rna_MeshLoopColorLayer_active_get(
PointerRNA *
ptr)
751 static void rna_MeshLoopColorLayer_active_render_set(
PointerRNA *
ptr,
bool value)
756 static void rna_MeshLoopColorLayer_active_set(
PointerRNA *
ptr,
bool value)
775 static int rna_MeshVertColorLayer_data_length(
PointerRNA *
ptr)
781 static bool rna_MeshVertColorLayer_active_render_get(
PointerRNA *
ptr)
786 static bool rna_MeshVertColorLayer_active_get(
PointerRNA *
ptr)
791 static void rna_MeshVertColorLayer_active_render_set(
PointerRNA *
ptr,
bool value)
796 static void rna_MeshVertColorLayer_active_set(
PointerRNA *
ptr,
bool value)
815 rna_float_layer_check);
825 rna_float_layer_check);
828 static int rna_Mesh_vertex_float_layers_length(
PointerRNA *
ptr)
832 static int rna_Mesh_polygon_float_layers_length(
PointerRNA *
ptr)
851 rna_int_layer_check);
861 rna_int_layer_check);
864 static int rna_Mesh_vertex_int_layers_length(
PointerRNA *
ptr)
868 static int rna_Mesh_polygon_int_layers_length(
PointerRNA *
ptr)
887 rna_string_layer_check);
897 rna_string_layer_check);
900 static int rna_Mesh_vertex_string_layers_length(
PointerRNA *
ptr)
904 static int rna_Mesh_polygon_string_layers_length(
PointerRNA *
ptr)
915 char name_esc[
sizeof(cdl->
name) * 2];
920 static char *rna_VertCustomData_data_path(
PointerRNA *
ptr,
const char *collection,
int type);
933 static int rna_MeshSkinVertexLayer_data_length(
PointerRNA *
ptr)
947 char name_esc[
sizeof(cdl->
name) * 2];
949 return BLI_sprintfN(
"vertex_paint_masks[\"%s\"]", name_esc);
954 return rna_VertCustomData_data_path(
ptr,
"vertex_paint_masks",
CD_PAINT_MASK);
965 static int rna_MeshPaintMaskLayer_data_length(
PointerRNA *
ptr)
982 char name_esc[
sizeof(cdl->
name) * 2];
1008 CustomData *pdata = rna_mesh_pdata_helper(me);
1013 rna_cd_layer_name_set(pdata, cdl, name);
1020 static void rna_Mesh_face_map_remove(
struct Mesh *me,
1026 CustomData *pdata = rna_mesh_pdata_helper(me);
1030 if (layer != layer_test) {
1054 static void rna_MeshPoly_vertices_get(
PointerRNA *
ptr,
int *values)
1060 for (i = mp->
totloop; i > 0; i--, values++, ml++) {
1065 static void rna_MeshPoly_vertices_set(
PointerRNA *
ptr,
const int *values)
1071 for (i = mp->
totloop; i > 0; i--, values++, ml++) {
1078 static void rna_MeshPoly_material_index_range(
1108 static int rna_MeshLoopTriangle_material_index_get(
PointerRNA *
ptr)
1115 static bool rna_MeshLoopTriangle_use_smooth_get(
PointerRNA *
ptr)
1145 for (
a = 0, dvert = me->
dvert; a < me->totvert;
a++, dvert++) {
1146 for (b = 0; b < dvert->totweight; b++) {
1147 if (dw == &dvert->dw[b]) {
1182 static char *rna_VertCustomData_data_path(
PointerRNA *
ptr,
const char *collection,
int type)
1189 for (cdl = vdata->
layers,
a = 0; a < vdata->totlayer; cdl++,
a++) {
1192 if (b >= 0 && b < totvert) {
1193 char name_esc[
sizeof(cdl->
name) * 2];
1195 return BLI_sprintfN(
"%s[\"%s\"].data[%d]", collection, name_esc, b);
1203 static char *rna_PolyCustomData_data_path(
PointerRNA *
ptr,
const char *collection,
int type)
1210 for (cdl = pdata->
layers,
a = 0; a < pdata->totlayer; cdl++,
a++) {
1213 if (b >= 0 && b < totpoly) {
1214 char name_esc[
sizeof(cdl->
name) * 2];
1216 return BLI_sprintfN(
"%s[\"%s\"].data[%d]", collection, name_esc, b);
1224 static char *rna_LoopCustomData_data_path(
PointerRNA *
ptr,
const char *collection,
int type)
1231 for (cdl = ldata->
layers,
a = 0; a < ldata->totlayer; cdl++,
a++) {
1234 if (b >= 0 && b < totloop) {
1235 char name_esc[
sizeof(cdl->
name) * 2];
1237 return BLI_sprintfN(
"%s[\"%s\"].data[%d]", collection, name_esc, b);
1247 return rna_LoopCustomData_data_path(
ptr,
"uv_layers",
CD_MLOOPUV);
1253 char name_esc[
sizeof(cdl->
name) * 2];
1255 return BLI_sprintfN(
"vertex_colors[\"%s\"]", name_esc);
1260 return rna_LoopCustomData_data_path(
ptr,
"vertex_colors",
CD_MLOOPCOL);
1266 char name_esc[
sizeof(cdl->
name) * 2];
1268 return BLI_sprintfN(
"sculpt_vertex_colors[\"%s\"]", name_esc);
1273 return rna_VertCustomData_data_path(
ptr,
"sculpt_vertex_colors",
CD_PROP_COLOR);
1277 static char *rna_MeshVertexFloatPropertyLayer_path(
PointerRNA *
ptr)
1280 char name_esc[
sizeof(cdl->
name) * 2];
1282 return BLI_sprintfN(
"vertex_float_layers[\"%s\"]", name_esc);
1284 static char *rna_MeshPolygonFloatPropertyLayer_path(
PointerRNA *
ptr)
1287 char name_esc[
sizeof(cdl->
name) * 2];
1289 return BLI_sprintfN(
"polygon_float_layers[\"%s\"]", name_esc);
1292 static char *rna_MeshVertexFloatProperty_path(
PointerRNA *
ptr)
1294 return rna_VertCustomData_data_path(
ptr,
"vertex_layers_float",
CD_PROP_FLOAT);
1296 static char *rna_MeshPolygonFloatProperty_path(
PointerRNA *
ptr)
1298 return rna_PolyCustomData_data_path(
ptr,
"polygon_layers_float",
CD_PROP_FLOAT);
1316 static int rna_MeshVertexFloatPropertyLayer_data_length(
PointerRNA *
ptr)
1321 static int rna_MeshPolygonFloatPropertyLayer_data_length(
PointerRNA *
ptr)
1328 static char *rna_MeshVertexIntPropertyLayer_path(
PointerRNA *
ptr)
1331 char name_esc[
sizeof(cdl->
name) * 2];
1333 return BLI_sprintfN(
"vertex_int_layers[\"%s\"]", name_esc);
1335 static char *rna_MeshPolygonIntPropertyLayer_path(
PointerRNA *
ptr)
1338 char name_esc[
sizeof(cdl->
name) * 2];
1340 return BLI_sprintfN(
"polygon_int_layers[\"%s\"]", name_esc);
1343 static char *rna_MeshVertexIntProperty_path(
PointerRNA *
ptr)
1345 return rna_VertCustomData_data_path(
ptr,
"vertex_layers_int",
CD_PROP_INT32);
1347 static char *rna_MeshPolygonIntProperty_path(
PointerRNA *
ptr)
1349 return rna_PolyCustomData_data_path(
ptr,
"polygon_layers_int",
CD_PROP_INT32);
1367 static int rna_MeshVertexIntPropertyLayer_data_length(
PointerRNA *
ptr)
1372 static int rna_MeshPolygonIntPropertyLayer_data_length(
PointerRNA *
ptr)
1379 static char *rna_MeshVertexStringPropertyLayer_path(
PointerRNA *
ptr)
1382 char name_esc[
sizeof(cdl->
name) * 2];
1384 return BLI_sprintfN(
"vertex_string_layers[\"%s\"]", name_esc);
1386 static char *rna_MeshPolygonStringPropertyLayer_path(
PointerRNA *
ptr)
1389 char name_esc[
sizeof(cdl->
name) * 2];
1391 return BLI_sprintfN(
"polygon_string_layers[\"%s\"]", name_esc);
1394 static char *rna_MeshVertexStringProperty_path(
PointerRNA *
ptr)
1396 return rna_VertCustomData_data_path(
ptr,
"vertex_layers_string",
CD_PROP_STRING);
1398 static char *rna_MeshPolygonStringProperty_path(
PointerRNA *
ptr)
1400 return rna_PolyCustomData_data_path(
ptr,
"polygon_layers_string",
CD_PROP_STRING);
1418 static int rna_MeshVertexStringPropertyLayer_data_length(
PointerRNA *
ptr)
1423 static int rna_MeshPolygonStringPropertyLayer_data_length(
PointerRNA *
ptr)
1431 void rna_MeshStringProperty_s_get(
PointerRNA *
ptr,
char *value)
1443 void rna_MeshStringProperty_s_set(
PointerRNA *
ptr,
const char *value)
1451 return rna_PolyCustomData_data_path(
ptr,
"face_maps",
CD_FACEMAP);
1472 static PointerRNA rna_Mesh_vertex_color_new(
struct Mesh *me,
const char *name,
const bool do_init)
1480 ldata = rna_mesh_ldata_helper(me);
1488 static void rna_Mesh_vertex_color_remove(
struct Mesh *me,
1497 static PointerRNA rna_Mesh_sculpt_vertex_color_new(
struct Mesh *me,
1507 vdata = rna_mesh_vdata_helper(me);
1515 static void rna_Mesh_sculpt_vertex_color_remove(
struct Mesh *me,
1524 # define DEFINE_CUSTOMDATA_PROPERTY_API( \
1525 elemname, datatype, cd_prop_type, cdata, countvar, layertype) \
1526 static PointerRNA rna_Mesh_##elemname##_##datatype##_property_new(struct Mesh *me, \
1530 CustomDataLayer *cdl = NULL; \
1533 CustomData_add_layer_named(&me->cdata, cd_prop_type, CD_DEFAULT, NULL, me->countvar, name); \
1534 index = CustomData_get_named_layer_index(&me->cdata, cd_prop_type, name); \
1536 cdl = (index == -1) ? NULL : &(me->cdata.layers[index]); \
1538 RNA_pointer_create(&me->id, &RNA_##layertype, cdl, &ptr); \
1542 DEFINE_CUSTOMDATA_PROPERTY_API(
1543 vertex,
float,
CD_PROP_FLOAT, vdata, totvert, MeshVertexFloatPropertyLayer)
1544 DEFINE_CUSTOMDATA_PROPERTY_API(
1545 vertex,
int,
CD_PROP_INT32, vdata, totvert, MeshVertexIntPropertyLayer)
1546 DEFINE_CUSTOMDATA_PROPERTY_API(
1547 vertex,
string,
CD_PROP_STRING, vdata, totvert, MeshVertexStringPropertyLayer)
1548 DEFINE_CUSTOMDATA_PROPERTY_API(
1549 polygon,
float,
CD_PROP_FLOAT, pdata, totpoly, MeshPolygonFloatPropertyLayer)
1550 DEFINE_CUSTOMDATA_PROPERTY_API(
1551 polygon,
int,
CD_PROP_INT32, pdata, totpoly, MeshPolygonIntPropertyLayer)
1552 DEFINE_CUSTOMDATA_PROPERTY_API(
1553 polygon,
string,
CD_PROP_STRING, pdata, totpoly, MeshPolygonStringPropertyLayer)
1554 # undef DEFINE_CUSTOMDATA_PROPERTY_API
1556 static PointerRNA rna_Mesh_uv_layers_new(
struct Mesh *me,
const char *name,
const bool do_init)
1564 ldata = rna_mesh_ldata_helper(me);
1589 (void)rna_Mesh_skin_vertice_index_range;
1590 (void)rna_Mesh_vertex_paint_mask_index_range;
1591 (void)rna_Mesh_uv_layer_render_get;
1592 (void)rna_Mesh_uv_layer_render_index_get;
1593 (void)rna_Mesh_uv_layer_render_index_set;
1594 (void)rna_Mesh_uv_layer_render_set;
1595 (void)rna_Mesh_face_map_index_range;
1596 (void)rna_Mesh_face_map_active_index_set;
1597 (void)rna_Mesh_face_map_active_index_get;
1598 (void)rna_Mesh_face_map_active_set;
1613 srna,
"Vertex Group Element",
"Weight value of a vertex in a vertex group");
1650 prop,
"rna_MeshVertex_normal_get",
"rna_MeshVertex_normal_set",
NULL);
1665 prop,
"rna_MeshVertex_bevel_weight_get",
"rna_MeshVertex_bevel_weight_set",
NULL);
1667 prop,
"Bevel Weight",
"Weight used by the Bevel modifier 'Only Vertices' option");
1672 "rna_MeshVertex_groups_begin",
1673 "rna_iterator_array_next",
1674 "rna_iterator_array_end",
1675 "rna_iterator_array_get",
1682 prop,
"Groups",
"Weights for the vertex groups this vertex is member of");
1693 "Undeformed Location",
1694 "For meshes with modifiers applied, the coordinate of the vertex with no deforming "
1695 "modifiers applied, as used for generated texture coordinates");
1720 prop,
"Crease",
"Weight used by the Subdivision Surface modifier for creasing");
1725 prop,
"rna_MEdge_bevel_weight_get",
"rna_MEdge_bevel_weight_set",
NULL);
1755 prop,
"rna_MEdge_freestyle_edge_mark_get",
"rna_MEdge_freestyle_edge_mark_set");
1769 const int splitnor_dim[] = {3, 3};
1791 prop,
"Polygon",
"Index of mesh polygon that the triangle is a part of");
1800 prop,
"Triangle Normal",
"Local space unit length normal vector for this triangle");
1810 "Local space unit length split normals vectors of the vertices of this triangle "
1811 "(must be computed beforehand using calc_normals_split or calc_tangents)");
1865 "Local space unit length split normal vector of this vertex for this polygon "
1866 "(must be computed beforehand using calc_normals_split or calc_tangents)");
1876 "Local space unit length tangent vector of this vertex for this polygon "
1877 "(must be computed beforehand using calc_tangents)");
1886 "Sign of the bitangent vector of this vertex for this polygon (must be computed "
1887 "beforehand using calc_tangents, bitangent = bitangent_sign * cross(normal, tangent))");
1897 "Bitangent vector of this vertex for this polygon (must be computed beforehand using "
1898 "calc_tangents, use it only if really needed, slower access than bitangent_sign)");
1959 prop,
"rna_MPoly_freestyle_face_mark_get",
"rna_MPoly_freestyle_face_mark_set");
1969 prop,
"Polygon Normal",
"Local space unit length normal vector for this polygon");
2005 "rna_MeshUVLoopLayer_data_begin",
2006 "rna_iterator_array_next",
2007 "rna_iterator_array_end",
2008 "rna_iterator_array_get",
2009 "rna_MeshUVLoopLayer_data_length",
2022 prop,
"rna_MeshUVLoopLayer_active_get",
"rna_MeshUVLoopLayer_active_set");
2029 prop,
"rna_MeshUVLoopLayer_active_render_get",
"rna_MeshUVLoopLayer_active_render_set");
2036 prop,
"rna_MeshUVLoopLayer_clone_get",
"rna_MeshUVLoopLayer_clone_set");
2063 srna,
"Mesh Vertex Color Layer",
"Layer of vertex colors in a Mesh data-block");
2076 prop,
"rna_MeshLoopColorLayer_active_get",
"rna_MeshLoopColorLayer_active_set");
2083 "rna_MeshLoopColorLayer_active_render_get",
2084 "rna_MeshLoopColorLayer_active_render_set");
2092 "rna_MeshLoopColorLayer_data_begin",
2093 "rna_iterator_array_next",
2094 "rna_iterator_array_end",
2095 "rna_iterator_array_get",
2096 "rna_MeshLoopColorLayer_data_length",
2110 prop,
"rna_MeshLoopColor_color_get",
"rna_MeshLoopColor_color_set",
NULL);
2122 "Mesh Sculpt Vertex Color Layer",
2123 "Layer of sculpt vertex colors in a Mesh data-block");
2136 prop,
"rna_MeshVertColorLayer_active_get",
"rna_MeshVertColorLayer_active_set");
2138 prop,
"Active",
"Sets the sculpt vertex color layer as active for display and editing");
2144 "rna_MeshVertColorLayer_active_render_get",
2145 "rna_MeshVertColorLayer_active_render_set");
2147 prop,
"Active Render",
"Sets the sculpt vertex color layer as active for rendering");
2154 "rna_MeshVertColorLayer_data_begin",
2155 "rna_iterator_array_next",
2156 "rna_iterator_array_end",
2157 "rna_iterator_array_get",
2158 "rna_MeshVertColorLayer_data_length",
2180 # define MESH_FLOAT_PROPERTY_LAYER(elemname) \
2181 srna = RNA_def_struct(brna, "Mesh" elemname "FloatPropertyLayer", NULL); \
2182 RNA_def_struct_sdna(srna, "CustomDataLayer"); \
2183 RNA_def_struct_ui_text(srna, \
2184 "Mesh " elemname " Float Property Layer", \
2185 "User defined layer of floating-point number values"); \
2186 RNA_def_struct_path_func(srna, "rna_Mesh" elemname "FloatPropertyLayer_path"); \
2188 prop = RNA_def_property(srna, "name", PROP_STRING, PROP_NONE); \
2189 RNA_def_struct_name_property(srna, prop); \
2190 RNA_def_property_string_funcs(prop, NULL, NULL, "rna_MeshAnyLayer_name_set"); \
2191 RNA_def_property_ui_text(prop, "Name", ""); \
2192 RNA_def_property_update(prop, 0, "rna_Mesh_update_data"); \
2194 prop = RNA_def_property(srna, "data", PROP_COLLECTION, PROP_NONE); \
2195 RNA_def_property_struct_type(prop, "Mesh" elemname "FloatProperty"); \
2196 RNA_def_property_ui_text(prop, "Data", ""); \
2197 RNA_def_property_collection_funcs(prop, \
2198 "rna_Mesh" elemname "FloatPropertyLayer_data_begin", \
2199 "rna_iterator_array_next", \
2200 "rna_iterator_array_end", \
2201 "rna_iterator_array_get", \
2202 "rna_Mesh" elemname "FloatPropertyLayer_data_length", \
2207 srna = RNA_def_struct(brna, "Mesh" elemname "FloatProperty", NULL); \
2208 RNA_def_struct_sdna(srna, "MFloatProperty"); \
2209 RNA_def_struct_ui_text( \
2211 "Mesh " elemname " Float Property", \
2212 "User defined floating-point number value in a float properties layer"); \
2213 RNA_def_struct_path_func(srna, "rna_Mesh" elemname "FloatProperty_path"); \
2215 prop = RNA_def_property(srna, "value", PROP_FLOAT, PROP_NONE); \
2216 RNA_def_property_float_sdna(prop, NULL, "f"); \
2217 RNA_def_property_ui_text(prop, "Value", ""); \
2218 RNA_def_property_update(prop, 0, "rna_Mesh_update_data"); \
2222 # define MESH_INT_PROPERTY_LAYER(elemname) \
2223 srna = RNA_def_struct(brna, "Mesh" elemname "IntPropertyLayer", NULL); \
2224 RNA_def_struct_sdna(srna, "CustomDataLayer"); \
2225 RNA_def_struct_ui_text(srna, \
2226 "Mesh " elemname " Int Property Layer", \
2227 "User defined layer of integer number values"); \
2228 RNA_def_struct_path_func(srna, "rna_Mesh" elemname "IntPropertyLayer_path"); \
2230 prop = RNA_def_property(srna, "name", PROP_STRING, PROP_NONE); \
2231 RNA_def_struct_name_property(srna, prop); \
2232 RNA_def_property_string_funcs(prop, NULL, NULL, "rna_MeshAnyLayer_name_set"); \
2233 RNA_def_property_ui_text(prop, "Name", ""); \
2234 RNA_def_property_update(prop, 0, "rna_Mesh_update_data"); \
2236 prop = RNA_def_property(srna, "data", PROP_COLLECTION, PROP_NONE); \
2237 RNA_def_property_struct_type(prop, "Mesh" elemname "IntProperty"); \
2238 RNA_def_property_ui_text(prop, "Data", ""); \
2239 RNA_def_property_collection_funcs(prop, \
2240 "rna_Mesh" elemname "IntPropertyLayer_data_begin", \
2241 "rna_iterator_array_next", \
2242 "rna_iterator_array_end", \
2243 "rna_iterator_array_get", \
2244 "rna_Mesh" elemname "IntPropertyLayer_data_length", \
2249 srna = RNA_def_struct(brna, "Mesh" elemname "IntProperty", NULL); \
2250 RNA_def_struct_sdna(srna, "MIntProperty"); \
2251 RNA_def_struct_ui_text(srna, \
2252 "Mesh " elemname " Int Property", \
2253 "User defined integer number value in an integer properties layer"); \
2254 RNA_def_struct_path_func(srna, "rna_Mesh" elemname "IntProperty_path"); \
2256 prop = RNA_def_property(srna, "value", PROP_INT, PROP_NONE); \
2257 RNA_def_property_int_sdna(prop, NULL, "i"); \
2258 RNA_def_property_ui_text(prop, "Value", ""); \
2259 RNA_def_property_update(prop, 0, "rna_Mesh_update_data"); \
2263 # define MESH_STRING_PROPERTY_LAYER(elemname) \
2264 srna = RNA_def_struct(brna, "Mesh" elemname "StringPropertyLayer", NULL); \
2265 RNA_def_struct_sdna(srna, "CustomDataLayer"); \
2266 RNA_def_struct_ui_text(srna, \
2267 "Mesh " elemname " String Property Layer", \
2268 "User defined layer of string text values"); \
2269 RNA_def_struct_path_func(srna, "rna_Mesh" elemname "StringPropertyLayer_path"); \
2271 prop = RNA_def_property(srna, "name", PROP_STRING, PROP_NONE); \
2272 RNA_def_struct_name_property(srna, prop); \
2273 RNA_def_property_string_funcs(prop, NULL, NULL, "rna_MeshAnyLayer_name_set"); \
2274 RNA_def_property_ui_text(prop, "Name", ""); \
2275 RNA_def_property_update(prop, 0, "rna_Mesh_update_data"); \
2277 prop = RNA_def_property(srna, "data", PROP_COLLECTION, PROP_NONE); \
2278 RNA_def_property_struct_type(prop, "Mesh" elemname "StringProperty"); \
2279 RNA_def_property_ui_text(prop, "Data", ""); \
2280 RNA_def_property_collection_funcs(prop, \
2281 "rna_Mesh" elemname "StringPropertyLayer_data_begin", \
2282 "rna_iterator_array_next", \
2283 "rna_iterator_array_end", \
2284 "rna_iterator_array_get", \
2285 "rna_Mesh" elemname "StringPropertyLayer_data_length", \
2290 srna = RNA_def_struct(brna, "Mesh" elemname "StringProperty", NULL); \
2291 RNA_def_struct_sdna(srna, "MStringProperty"); \
2292 RNA_def_struct_ui_text(srna, \
2293 "Mesh " elemname " String Property", \
2294 "User defined string text value in a string properties layer"); \
2295 RNA_def_struct_path_func(srna, "rna_Mesh" elemname "StringProperty_path"); \
2298 prop = RNA_def_property(srna, "value", PROP_STRING, PROP_BYTESTRING); \
2299 RNA_def_property_string_sdna(prop, NULL, "s"); \
2300 RNA_def_property_string_funcs(prop, \
2301 "rna_MeshStringProperty_s_get", \
2302 "rna_MeshStringProperty_s_length", \
2303 "rna_MeshStringProperty_s_set"); \
2304 RNA_def_property_ui_text(prop, "Value", ""); \
2305 RNA_def_property_update(prop, 0, "rna_Mesh_update_data");
2313 # undef MESH_PROPERTY_LAYER
2325 "Auto Texture Space",
2326 "Adjust active object's texture space automatically when transforming object");
2371 func,
"count", 0, 0, INT_MAX,
"Count",
"Number of vertices to add", 0, INT_MAX);
2376 RNA_def_int(func,
"count", 0, 0, INT_MAX,
"Count",
"Number of vertices to remove", 0, INT_MAX);
2396 parm =
RNA_def_int(func,
"count", 0, 0, INT_MAX,
"Count",
"Number of edges to add", 0, INT_MAX);
2401 RNA_def_int(func,
"count", 0, 0, INT_MAX,
"Count",
"Number of edges to remove", 0, INT_MAX);
2414 srna,
"Mesh Loop Triangles",
"Tessellation of mesh polygons into triangles");
2434 parm =
RNA_def_int(func,
"count", 0, 0, INT_MAX,
"Count",
"Number of loops to add", 0, INT_MAX);
2460 func,
"count", 0, 0, INT_MAX,
"Count",
"Number of polygons to add", 0, INT_MAX);
2484 "Whether new layer's data should be initialized by copying current active one");
2485 parm =
RNA_def_pointer(func,
"layer",
"MeshLoopColorLayer",
"",
"The newly created layer");
2492 parm =
RNA_def_pointer(func,
"layer",
"MeshLoopColorLayer",
"",
"The layer to remove");
2499 prop,
"rna_Mesh_vertex_color_active_get",
"rna_Mesh_vertex_color_active_set",
NULL,
NULL);
2506 "rna_Mesh_vertex_color_active_index_get",
2507 "rna_Mesh_vertex_color_active_index_set",
2508 "rna_Mesh_vertex_color_index_range");
2528 RNA_def_string(func,
"name",
"Col", 0,
"",
"Sculpt Vertex color name");
2533 "Whether new layer's data should be initialized by copying current active one");
2534 parm =
RNA_def_pointer(func,
"layer",
"MeshVertColorLayer",
"",
"The newly created layer");
2538 func =
RNA_def_function(srna,
"remove",
"rna_Mesh_sculpt_vertex_color_remove");
2541 parm =
RNA_def_pointer(func,
"layer",
"MeshVertColorLayer",
"",
"The layer to remove");
2548 "rna_Mesh_sculpt_vertex_color_active_get",
2549 "rna_Mesh_sculpt_vertex_color_active_set",
2554 prop,
"Active Sculpt Vertex Color Layer",
"Active sculpt vertex color layer");
2559 "rna_Mesh_sculpt_vertex_color_active_index_get",
2560 "rna_Mesh_sculpt_vertex_color_active_index_set",
2561 "rna_Mesh_sculpt_vertex_color_index_range");
2563 prop,
"Active Sculpt Vertex Color Index",
"Active sculpt vertex color index");
2587 "Whether new layer's data should be initialized by copying current active one, "
2588 "or if none is active, with a default UVmap");
2589 parm =
RNA_def_pointer(func,
"layer",
"MeshUVLoopLayer",
"",
"The newly created layer");
2596 parm =
RNA_def_pointer(func,
"layer",
"MeshUVLoopLayer",
"",
"The layer to remove");
2602 prop,
"rna_Mesh_uv_layer_active_get",
"rna_Mesh_uv_layer_active_set",
NULL,
NULL);
2609 "rna_Mesh_uv_layer_active_index_get",
2610 "rna_Mesh_uv_layer_active_index_set",
2611 "rna_Mesh_uv_layer_index_range");
2629 func =
RNA_def_function(srna,
"new",
"rna_Mesh_vertex_float_property_new");
2631 RNA_def_string(func,
"name",
"Float Prop", 0,
"",
"Float property name");
2633 func,
"layer",
"MeshVertexFloatPropertyLayer",
"",
"The newly created layer");
2653 RNA_def_string(func,
"name",
"Int Prop", 0,
"",
"Int property name");
2655 func,
"layer",
"MeshVertexIntPropertyLayer",
"",
"The newly created layer");
2673 func =
RNA_def_function(srna,
"new",
"rna_Mesh_vertex_string_property_new");
2675 RNA_def_string(func,
"name",
"String Prop", 0,
"",
"String property name");
2677 func,
"layer",
"MeshVertexStringPropertyLayer",
"",
"The newly created layer");
2695 func =
RNA_def_function(srna,
"new",
"rna_Mesh_polygon_float_property_new");
2697 RNA_def_string(func,
"name",
"Float Prop", 0,
"",
"Float property name");
2699 func,
"layer",
"MeshPolygonFloatPropertyLayer",
"",
"The newly created layer");
2719 RNA_def_string(func,
"name",
"Int Prop", 0,
"",
"Int property name");
2721 func,
"layer",
"MeshPolygonIntPropertyLayer",
"",
"The newly created layer");
2739 func =
RNA_def_function(srna,
"new",
"rna_Mesh_polygon_string_property_new");
2741 RNA_def_string(func,
"name",
"String Prop", 0,
"",
"String property name");
2743 func,
"layer",
"MeshPolygonStringPropertyLayer",
"",
"The newly created layer");
2755 srna,
"Mesh Skin Vertex Layer",
"Per-vertex skin data for use with the Skin modifier");
2769 "rna_MeshSkinVertexLayer_data_begin",
2770 "rna_iterator_array_next",
2771 "rna_iterator_array_end",
2772 "rna_iterator_array_get",
2773 "rna_MeshSkinVertexLayer_data_length",
2782 srna,
"Skin Vertex",
"Per-vertex skin data for use with the Skin modifier");
2797 "Vertex is a root for rotation calculations and armature generation, "
2798 "setting this flag does not clear other roots in the same mesh island");
2804 prop,
"Loose",
"If vertex has multiple adjacent edges, it is hulled to them directly");
2823 "rna_MeshPaintMaskLayer_data_begin",
2824 "rna_iterator_array_next",
2825 "rna_iterator_array_end",
2826 "rna_iterator_array_get",
2827 "rna_MeshPaintMaskLayer_data_length",
2863 "rna_MeshFaceMapLayer_data_begin",
2864 "rna_iterator_array_next",
2865 "rna_iterator_array_end",
2866 "rna_iterator_array_get",
2867 "rna_MeshFaceMapLayer_data_length",
2908 RNA_def_string(func,
"name",
"Face Map", 0,
"",
"Face map name");
2909 parm =
RNA_def_pointer(func,
"layer",
"MeshFaceMapLayer",
"",
"The newly created layer");
2916 parm =
RNA_def_pointer(func,
"layer",
"MeshFaceMapLayer",
"",
"The layer to remove");
2973 "Use another mesh for texture indices (vertex indices must be aligned)");
2979 "rna_Mesh_uv_layers_begin",
2983 "rna_Mesh_uv_layers_length",
2995 prop,
"rna_Mesh_uv_layer_clone_get",
"rna_Mesh_uv_layer_clone_set",
NULL,
NULL);
2998 prop,
"Clone UV Loop Layer",
"UV loop layer to be used as cloning source");
3002 "rna_Mesh_uv_layer_clone_index_get",
3003 "rna_Mesh_uv_layer_clone_index_set",
3004 "rna_Mesh_uv_layer_index_range");
3010 prop,
"rna_Mesh_uv_layer_stencil_get",
"rna_Mesh_uv_layer_stencil_set",
NULL,
NULL);
3016 "rna_Mesh_uv_layer_stencil_index_get",
3017 "rna_Mesh_uv_layer_stencil_index_set",
3018 "rna_Mesh_uv_layer_index_range");
3027 "rna_Mesh_vertex_colors_begin",
3031 "rna_Mesh_vertex_colors_length",
3045 "rna_Mesh_sculpt_vertex_colors_begin",
3049 "rna_Mesh_sculpt_vertex_colors_length",
3061 "rna_Mesh_vertex_float_layers_begin",
3065 "rna_Mesh_vertex_float_layers_length",
3077 "rna_Mesh_vertex_int_layers_begin",
3081 "rna_Mesh_vertex_int_layers_length",
3093 "rna_Mesh_vertex_string_layers_begin",
3097 "rna_Mesh_vertex_string_layers_length",
3109 "rna_Mesh_polygon_float_layers_begin",
3113 "rna_Mesh_polygon_float_layers_length",
3125 "rna_Mesh_polygon_int_layers_begin",
3129 "rna_Mesh_polygon_int_layers_length",
3141 "rna_Mesh_polygon_string_layers_begin",
3145 "rna_Mesh_polygon_string_layers_length",
3158 "rna_Mesh_face_maps_begin",
3162 "rna_Mesh_face_maps_length",
3175 "rna_Mesh_skin_vertices_begin",
3179 "rna_Mesh_skin_vertices_length",
3193 "rna_Mesh_vertex_paint_masks_begin",
3197 "rna_Mesh_vertex_paint_masks_length",
3217 "Size of the voxel in object space used for volume evaluation. Lower "
3218 "values preserve finer details");
3228 "Reduces the final face count by simplifying geometry where detail is not needed, "
3229 "generating triangles. A value greater than 0 disables Fix Poles");
3247 "Projects the mesh to preserve the volume and details of the original mesh");
3260 prop,
"Preserve Face Sets",
"Keep the current Face Sets on the new mesh");
3267 prop,
"Preserve Vertex Colors",
"Keep the current vertex colors on the new mesh");
3297 "Mirror Vertex Groups",
3298 "Mirror the left/right vertex groups when painting. The symmetry axis "
3299 "is determined by the symmetry settings");
3308 "Auto smooth (based on smooth/sharp faces/edges and angle between faces), "
3309 "or use custom split normals data if available");
3316 "Auto Smooth Angle",
3317 "Maximum angle between face normals that will be considered as smooth "
3318 "(unused if custom split normals data are available)");
3326 prop,
"Has Custom Normals",
"True if there are custom split normals data in this mesh");
3335 prop,
"Texture Space Mesh",
"Derive texture coordinates from another mesh");
3348 "Auto Texture Space",
3349 "Adjust active object's texture space automatically when transforming object");
3358 prop,
"rna_Mesh_texspace_loc_get",
"rna_Mesh_texspace_loc_set",
NULL);
3367 "Use topology based mirroring "
3368 "(for when both sides of mesh have matching, unique topology)");
typedef float(TangentPoint)[2]
CustomData interface, see also DNA_customdata_types.h.
int CustomData_get_active_layer_index(const struct CustomData *data, int type)
int CustomData_number_of_layers(const struct CustomData *data, int type)
void CustomData_set_layer_active(struct CustomData *data, int type, int n)
int CustomData_get_render_layer_index(const struct CustomData *data, int type)
void CustomData_set_layer_unique_name(struct CustomData *data, int index)
int CustomData_get_layer_index_n(const struct CustomData *data, int type, int n)
void CustomData_set_layer_render(struct CustomData *data, int type, int n)
void CustomData_set_layer_clone_index(struct CustomData *data, int type, int n)
int CustomData_get_layer_index(const struct CustomData *data, int type)
void * CustomData_get_layer(const struct CustomData *data, int type)
int CustomData_sizeof(int type)
int CustomData_get_clone_layer_index(const struct CustomData *data, int type)
void * CustomData_add_layer(struct CustomData *data, int type, eCDAllocType alloctype, void *layer, int totelem)
void * CustomData_get(const struct CustomData *data, int index, int type)
bool BKE_mesh_clear_facemap_customdata(struct Mesh *me)
void BKE_mesh_tessface_clear(struct Mesh *mesh)
bool BKE_mesh_has_custom_loop_normals(struct Mesh *me)
void BKE_mesh_calc_poly_center(const struct MPoly *mpoly, const struct MLoop *loopstart, const struct MVert *mvarray, float r_cent[3])
bool BKE_mesh_ensure_facemap_customdata(struct Mesh *me)
void BKE_mesh_calc_poly_normal(const struct MPoly *mpoly, const struct MLoop *loopstart, const struct MVert *mvarray, float r_no[3])
void BKE_mesh_batch_cache_dirty_tag(struct Mesh *me, eMeshBatchDirtyMode mode)
void BKE_mesh_update_customdata_pointers(struct Mesh *me, const bool do_ensure_tess_cd)
void BKE_mesh_texspace_ensure(struct Mesh *me)
void BKE_mesh_texspace_get(struct Mesh *me, float r_loc[3], float r_size[3])
float BKE_mesh_calc_poly_area(const struct MPoly *mpoly, const struct MLoop *loopstart, const struct MVert *mvarray)
void BKE_mesh_polygon_flip(struct MPoly *mpoly, struct MLoop *mloop, struct CustomData *ldata)
void BKE_mesh_runtime_clear_geometry(struct Mesh *mesh)
@ BKE_MESH_BATCH_DIRTY_ALL
void BKE_report(ReportList *reports, ReportType type, const char *message)
void BKE_reportf(ReportList *reports, ReportType type, const char *format,...) ATTR_PRINTF_FORMAT(3
MINLINE int max_ii(int a, int b)
MINLINE unsigned char round_fl_to_uchar_clamp(float a)
float area_tri_v3(const float v1[3], const float v2[3], const float v3[3])
float normal_tri_v3(float n[3], const float v1[3], const float v2[3], const float v3[3])
MINLINE void madd_v3_v3v3v3(float r[3], const float a[3], const float b[3], const float c[3])
MINLINE void normal_float_to_short_v3(short r[3], const float n[3])
MINLINE float normalize_v3(float r[3])
MINLINE void normal_short_to_float_v3(float r[3], const short n[3])
MINLINE void mul_v3_fl(float r[3], float f)
MINLINE void copy_v3_v3(float r[3], const float a[3])
MINLINE void cross_v3_v3v3(float r[3], const float a[3], const float b[3])
MINLINE float normalize_v3_v3(float r[3], const float a[3])
MINLINE void zero_v3(float r[3])
size_t size_t char * BLI_sprintfN(const char *__restrict format,...) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL(1) ATTR_MALLOC ATTR_PRINTF_FORMAT(1
size_t size_t char size_t BLI_str_escape(char *__restrict dst, const char *__restrict src, const size_t dst_maxncpy) ATTR_NONNULL()
char * BLI_strncpy(char *__restrict dst, const char *__restrict src, const size_t maxncpy) ATTR_NONNULL()
char * BLI_strncpy_utf8(char *__restrict dst, const char *__restrict src, size_t maxncpy) ATTR_NONNULL()
#define UNUSED_FUNCTION(x)
#define ARRAY_HAS_ITEM(arr_item, arr_start, arr_len)
void DEG_id_tag_update(struct ID *id, int flag)
@ ME_REMESH_REPROJECT_VOLUME
@ ME_REMESH_REPROJECT_VERTEX_COLORS
@ ME_REMESH_REPROJECT_SCULPT_FACE_SETS
@ ME_REMESH_SMOOTH_NORMALS
@ ME_REMESH_REPROJECT_PAINT_MASK
@ ME_EDIT_MIRROR_VERTEX_GROUPS
Object is a sort of wrapper for general info.
bool ED_mesh_sculpt_color_remove_named(struct Mesh *me, const char *name)
int ED_mesh_color_add(struct Mesh *me, const char *name, const bool active_set, const bool do_init)
bool ED_mesh_uv_texture_remove_named(struct Mesh *me, const char *name)
bool ED_mesh_color_remove_named(struct Mesh *me, const char *name)
int ED_mesh_sculpt_color_add(struct Mesh *me, const char *name, const bool active_set, const bool do_init)
int ED_mesh_uv_texture_add(struct Mesh *me, const char *name, const bool active_set, const bool do_init)
_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
_GL_VOID GLfloat value _GL_VOID_RET _GL_VOID const GLuint GLboolean *residences _GL_BOOL_RET _GL_VOID GLsizei GLfloat GLfloat GLfloat GLfloat const GLubyte *bitmap _GL_VOID_RET _GL_VOID GLenum const void *lists _GL_VOID_RET _GL_VOID const GLdouble *equation _GL_VOID_RET _GL_VOID GLdouble GLdouble blue _GL_VOID_RET _GL_VOID GLfloat GLfloat blue _GL_VOID_RET _GL_VOID GLint GLint blue _GL_VOID_RET _GL_VOID GLshort GLshort blue _GL_VOID_RET _GL_VOID GLubyte GLubyte blue _GL_VOID_RET _GL_VOID GLuint GLuint blue _GL_VOID_RET _GL_VOID GLushort GLushort blue _GL_VOID_RET _GL_VOID GLbyte GLbyte GLbyte alpha _GL_VOID_RET _GL_VOID GLdouble GLdouble GLdouble alpha _GL_VOID_RET _GL_VOID GLfloat GLfloat GLfloat alpha _GL_VOID_RET _GL_VOID GLint GLint GLint alpha _GL_VOID_RET _GL_VOID GLshort GLshort GLshort alpha _GL_VOID_RET _GL_VOID GLubyte GLubyte GLubyte alpha _GL_VOID_RET _GL_VOID GLuint GLuint GLuint alpha _GL_VOID_RET _GL_VOID GLushort GLushort GLushort alpha _GL_VOID_RET _GL_VOID GLenum mode _GL_VOID_RET _GL_VOID GLint GLsizei GLsizei GLenum type _GL_VOID_RET _GL_VOID GLsizei GLenum GLenum const void *pixels _GL_VOID_RET _GL_VOID const void *pointer _GL_VOID_RET _GL_VOID GLdouble v _GL_VOID_RET _GL_VOID GLfloat v _GL_VOID_RET _GL_VOID GLint GLint i2 _GL_VOID_RET _GL_VOID GLint j _GL_VOID_RET _GL_VOID GLfloat param _GL_VOID_RET _GL_VOID GLint param _GL_VOID_RET _GL_VOID GLdouble GLdouble GLdouble GLdouble GLdouble zFar _GL_VOID_RET _GL_UINT GLdouble *equation _GL_VOID_RET _GL_VOID GLenum GLint *params _GL_VOID_RET _GL_VOID GLenum GLfloat *v _GL_VOID_RET _GL_VOID GLenum GLfloat *params _GL_VOID_RET _GL_VOID GLfloat *values _GL_VOID_RET _GL_VOID GLushort *values _GL_VOID_RET _GL_VOID GLenum GLfloat *params _GL_VOID_RET _GL_VOID GLenum GLdouble *params _GL_VOID_RET _GL_VOID GLenum GLint *params _GL_VOID_RET _GL_VOID GLsizei const void *pointer _GL_VOID_RET _GL_VOID GLsizei const void *pointer _GL_VOID_RET _GL_BOOL GLfloat param _GL_VOID_RET _GL_VOID GLint param _GL_VOID_RET _GL_VOID GLenum GLfloat param _GL_VOID_RET _GL_VOID GLenum GLint param _GL_VOID_RET _GL_VOID GLushort pattern _GL_VOID_RET _GL_VOID GLdouble GLdouble GLint GLint const GLdouble *points _GL_VOID_RET _GL_VOID GLdouble GLdouble GLint GLint GLdouble v1
Read Guarded memory(de)allocation.
StructRNA RNA_MeshVertColorLayer
StructRNA RNA_MeshLoopColorLayer
#define RNA_MAX_ARRAY_DIMENSION
@ PROPOVERRIDE_OVERRIDABLE_LIBRARY
return(oflags[bm->toolflag_index].f &oflag) !=0
ATTR_WARN_UNUSED_RESULT const BMVert * v2
static DBVT_INLINE btScalar size(const btDbvtVolume &a)
SIMD_FORCE_INLINE btScalar length(const btQuaternion &q)
Return the length of a quaternion.
bool active
all scheduled work for the GPU.
void RNA_pointer_create(ID *id, StructRNA *type, void *data, PointerRNA *r_ptr)
const PointerRNA PointerRNA_NULL
void rna_iterator_array_begin(CollectionPropertyIterator *iter, void *ptr, int itemsize, int length, bool free_ptr, IteratorSkipFunc skip)
void rna_def_animdata_common(StructRNA *srna)
void rna_def_attributes_common(StructRNA *srna)
void RNA_def_property_pointer_sdna(PropertyRNA *prop, const char *structname, const char *propname)
void RNA_def_struct_path_func(StructRNA *srna, const char *path)
PropertyRNA * RNA_def_boolean(StructOrFunctionRNA *cont_, const char *identifier, bool default_value, const char *ui_name, const char *ui_description)
PropertyRNA * RNA_def_pointer(StructOrFunctionRNA *cont_, const char *identifier, const char *type, const char *ui_name, const char *ui_description)
void RNA_def_property_boolean_sdna(PropertyRNA *prop, const char *structname, const char *propname, int64_t bit)
void RNA_def_property_string_funcs(PropertyRNA *prop, const char *get, const char *length, const char *set)
void RNA_def_function_return(FunctionRNA *func, PropertyRNA *ret)
void RNA_def_property_float_funcs(PropertyRNA *prop, const char *get, const char *set, const char *range)
void RNA_define_verify_sdna(bool verify)
void RNA_def_property_ui_text(PropertyRNA *prop, const char *name, const char *description)
void RNA_def_property_ui_icon(PropertyRNA *prop, int icon, int consecutive)
FunctionRNA * RNA_def_function(StructRNA *srna, const char *identifier, const char *call)
void RNA_def_property_srna(PropertyRNA *prop, const char *type)
void RNA_def_property_collection_funcs(PropertyRNA *prop, const char *begin, const char *next, const char *end, const char *get, const char *length, const char *lookupint, const char *lookupstring, const char *assignint)
void RNA_def_struct_ui_text(StructRNA *srna, const char *name, const char *description)
void RNA_def_property_boolean_default(PropertyRNA *prop, bool value)
void RNA_def_property_boolean_funcs(PropertyRNA *prop, const char *get, const char *set)
void RNA_def_property_dynamic_array_funcs(PropertyRNA *prop, const char *getlength)
void RNA_def_property_multi_array(PropertyRNA *prop, int dimension, const int length[])
void RNA_def_property_enum_items(PropertyRNA *prop, const EnumPropertyItem *item)
void RNA_def_struct_sdna(StructRNA *srna, const char *structname)
void RNA_def_property_array(PropertyRNA *prop, int length)
void RNA_def_property_range(PropertyRNA *prop, double min, double max)
void RNA_def_property_struct_type(PropertyRNA *prop, const char *type)
void RNA_def_property_collection_sdna(PropertyRNA *prop, const char *structname, const char *propname, const char *lengthpropname)
void RNA_def_function_ui_description(FunctionRNA *func, const char *description)
void RNA_def_property_update(PropertyRNA *prop, int noteflag, const char *func)
void RNA_def_property_editable_func(PropertyRNA *prop, const char *editable)
PropertyRNA * RNA_def_property(StructOrFunctionRNA *cont_, const char *identifier, int type, int subtype)
void RNA_def_struct_name_property(struct StructRNA *srna, struct PropertyRNA *prop)
void RNA_def_function_flag(FunctionRNA *func, int flag)
void RNA_def_property_clear_flag(PropertyRNA *prop, PropertyFlag flag)
void RNA_def_property_pointer_funcs(PropertyRNA *prop, const char *get, const char *set, const char *type_fn, const char *poll)
StructRNA * RNA_def_struct(BlenderRNA *brna, const char *identifier, const char *from)
void RNA_def_property_enum_sdna(PropertyRNA *prop, const char *structname, const char *propname)
void RNA_def_property_int_funcs(PropertyRNA *prop, const char *get, const char *set, const char *range)
void RNA_def_struct_ui_icon(StructRNA *srna, int icon)
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_flag(PropertyRNA *prop, PropertyFlag flag)
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_property_float_sdna(PropertyRNA *prop, const char *structname, const char *propname)
void RNA_def_property_ui_range(PropertyRNA *prop, double min, double max, double step, int precision)
void RNA_def_property_int_sdna(PropertyRNA *prop, const char *structname, const char *propname)
void RNA_def_property_override_flag(PropertyRNA *prop, PropertyOverrideFlag flag)
void RNA_def_parameter_flags(PropertyRNA *prop, PropertyFlag flag_property, ParameterFlag flag_parameter)
void rna_Mesh_update_draw(struct Main *bmain, struct Scene *scene, struct PointerRNA *ptr)
void RNA_api_mesh(struct StructRNA *srna)
void rna_def_texmat_common(StructRNA *srna, const char *texspace_editable)
#define MESH_INT_PROPERTY_LAYER(elemname)
static void rna_def_mesh_edges(BlenderRNA *brna, PropertyRNA *cprop)
static void rna_def_mvert(BlenderRNA *brna)
#define MESH_STRING_PROPERTY_LAYER(elemname)
static void rna_def_mloopuv(BlenderRNA *brna)
static void rna_def_mlooptri(BlenderRNA *brna)
static void rna_def_uv_layers(BlenderRNA *brna, PropertyRNA *cprop)
static void rna_def_mpolygon(BlenderRNA *brna)
static void rna_def_mesh_looptris(BlenderRNA *brna, PropertyRNA *cprop)
static void rna_def_face_map(BlenderRNA *brna)
static void rna_def_mesh_vertices(BlenderRNA *brna, PropertyRNA *cprop)
static void rna_def_vertex_int_layers(BlenderRNA *brna, PropertyRNA *cprop)
static void rna_def_polygon_string_layers(BlenderRNA *brna, PropertyRNA *cprop)
static void rna_def_mesh_polygons(BlenderRNA *brna, PropertyRNA *cprop)
#define MESH_FLOAT_PROPERTY_LAYER(elemname)
static void rna_def_mloopcol(BlenderRNA *brna)
static void rna_def_polygon_float_layers(BlenderRNA *brna, PropertyRNA *cprop)
void RNA_def_mesh(BlenderRNA *brna)
static void rna_def_vertex_float_layers(BlenderRNA *brna, PropertyRNA *cprop)
static void rna_def_vertex_string_layers(BlenderRNA *brna, PropertyRNA *cprop)
static void rna_def_paint_mask(BlenderRNA *brna, PropertyRNA *UNUSED(cprop))
static void rna_def_loop_colors(BlenderRNA *brna, PropertyRNA *cprop)
static void rna_def_MPropCol(BlenderRNA *brna)
const EnumPropertyItem rna_enum_mesh_delimit_mode_items[]
static void rna_def_vert_colors(BlenderRNA *brna, PropertyRNA *cprop)
static void rna_def_face_maps(BlenderRNA *brna, PropertyRNA *cprop)
static void rna_def_mproperties(BlenderRNA *brna)
static void rna_def_mesh(BlenderRNA *brna)
static void rna_def_mvert_group(BlenderRNA *brna)
static void rna_def_polygon_int_layers(BlenderRNA *brna, PropertyRNA *cprop)
static void rna_def_skin_vertices(BlenderRNA *brna, PropertyRNA *UNUSED(cprop))
static const EnumPropertyItem rna_enum_mesh_remesh_mode_items[]
static void rna_def_medge(BlenderRNA *brna)
static void rna_def_mloop(BlenderRNA *brna)
static void rna_def_mesh_loops(BlenderRNA *brna, PropertyRNA *cprop)
#define DEFINE_CUSTOMDATA_LAYER_COLLECTION(collection_name, customdata_type, layer_type)
#define DEFINE_CUSTOMDATA_LAYER_COLLECTION_ACTIVEITEM(collection_name, customdata_type, layer_type, active_type, layer_rna_type)
struct MLoopTri_Store looptris
struct BMEditMesh * edit_mesh
struct CustomData pdata ldata
struct MDeformVert * dvert
struct CustomData vdata edata fdata
void WM_main_add_notifier(unsigned int type, void *reference)