41 {
BMO_DELIM_UV,
"UV", 0,
"UVs",
"Delimit by UV coordinates"},
46 {
REMESH_VOXEL,
"VOXEL", 0,
"Voxel",
"Use the voxel remesher"},
47 {
REMESH_QUAD,
"QUAD", 0,
"Quad",
"Use the quad remesher"},
109 return rna_mesh_vdata_helper(me);
115 return rna_mesh_edata_helper(me);
121 return rna_mesh_pdata_helper(me);
127 return rna_mesh_ldata_helper(me);
151 if ((
void)(cd = cmd(me)),
ARRAY_HAS_ITEM(cdl, cd->layers, cd->totlayer)) { \
156 TEST_CDL(rna_mesh_vdata_helper);
157 TEST_CDL(rna_mesh_edata_helper);
158 TEST_CDL(rna_mesh_pdata_helper);
159 TEST_CDL(rna_mesh_ldata_helper);
160 TEST_CDL(rna_mesh_fdata_helper);
168 static void rna_MeshVertexLayer_name_set(
PointerRNA *
ptr,
const char *value)
176 rna_cd_layer_name_set(rna_mesh_vdata(
ptr), layer, value);
180 static void rna_MeshEdgeLayer_name_set(
PointerRNA *
ptr,
const char *value)
188 rna_cd_layer_name_set(rna_mesh_edata(
ptr), layer, value);
192 static void rna_MeshPolyLayer_name_set(
PointerRNA *
ptr,
const char *value)
200 rna_cd_layer_name_set(rna_mesh_pdata(
ptr), layer, value);
203 static void rna_MeshLoopLayer_name_set(
PointerRNA *
ptr,
const char *value)
211 rna_cd_layer_name_set(rna_mesh_ldata(
ptr), layer, value);
215 static void rna_MeshAnyLayer_name_set(
PointerRNA *
ptr,
const char *value)
224 rna_cd_layer_name_set(cd, layer, value);
251 static void rna_Mesh_update_data_legacy_deg_tag_all(
Main *
UNUSED(bmain),
264 static void rna_Mesh_update_geom_and_params(
Main *
UNUSED(bmain),
281 rna_Mesh_update_data_legacy_deg_tag_all(bmain,
scene,
ptr);
288 rna_Mesh_update_data_legacy_deg_tag_all(bmain,
scene,
ptr);
338 rna_Mesh_update_data_legacy_deg_tag_all(bmain,
scene,
ptr);
347 static void rna_MeshVertex_normal_get(
PointerRNA *
ptr,
float *value)
359 static float rna_MeshVertex_bevel_weight_get(
PointerRNA *
ptr)
362 return mvert->
bweight / 255.0f;
365 static void rna_MeshVertex_bevel_weight_set(
PointerRNA *
ptr,
float value)
374 return medge->
bweight / 255.0f;
377 static void rna_MEdge_bevel_weight_set(
PointerRNA *
ptr,
float value)
386 return medge->
crease / 255.0f;
389 static void rna_MEdge_crease_set(
PointerRNA *
ptr,
float value)
395 static void rna_MeshLoop_normal_get(
PointerRNA *
ptr,
float *values)
409 static void rna_MeshLoop_normal_set(
PointerRNA *
ptr,
const float *values)
420 static void rna_MeshLoop_tangent_get(
PointerRNA *
ptr,
float *values)
434 static float rna_MeshLoop_bitangent_sign_get(
PointerRNA *
ptr)
440 return (vec) ? (*vec)[3] : 0.0f;
443 static void rna_MeshLoop_bitangent_get(
PointerRNA *
ptr,
float *values)
459 static void rna_MeshPolygon_normal_get(
PointerRNA *
ptr,
float *values)
467 static void rna_MeshPolygon_center_get(
PointerRNA *
ptr,
float *values)
483 static void rna_MeshPolygon_flip(
ID *
id,
MPoly *mp)
493 static void rna_MeshLoopTriangle_verts_get(
PointerRNA *
ptr,
int *values)
502 static void rna_MeshLoopTriangle_normal_get(
PointerRNA *
ptr,
float *values)
508 unsigned int v3 = me->
mloop[lt->
tri[2]].
v;
513 static void rna_MeshLoopTriangle_split_normals_get(
PointerRNA *
ptr,
float *values)
537 unsigned int v3 = me->
mloop[lt->
tri[2]].
v;
542 static void rna_MeshLoopColor_color_get(
PointerRNA *
ptr,
float *values)
546 values[0] = mlcol->
r / 255.0f;
547 values[1] = mlcol->
g / 255.0f;
548 values[2] = mlcol->
b / 255.0f;
549 values[3] = mlcol->
a / 255.0f;
552 static void rna_MeshLoopColor_color_set(
PointerRNA *
ptr,
const float *values)
568 static void rna_Mesh_texspace_size_get(
PointerRNA *
ptr,
float values[3])
577 static void rna_Mesh_texspace_loc_get(
PointerRNA *
ptr,
float values[3])
602 static void rna_MeshVertex_undeformed_co_get(
PointerRNA *
ptr,
float values[3])
610 float loc[3],
size[3];
639 static void rna_CustomDataLayer_active_set(
670 static bool rna_MEdge_freestyle_edge_mark_get(
PointerRNA *
ptr)
672 const Mesh *me = rna_mesh(
ptr);
680 static void rna_MEdge_freestyle_edge_mark_set(
PointerRNA *
ptr,
bool value)
697 static bool rna_MPoly_freestyle_face_mark_get(
PointerRNA *
ptr)
699 const Mesh *me = rna_mesh(
ptr);
707 static void rna_MPoly_freestyle_face_mark_set(
PointerRNA *
ptr,
int value)
730 uv_layer, ldata,
CD_MLOOPUV, stencil, MeshUVLoopLayer)
738 char name_esc[
sizeof(cdl->
name) * 2];
757 static bool rna_MeshUVLoopLayer_active_render_get(
PointerRNA *
ptr)
759 return rna_CustomDataLayer_active_get(
ptr, rna_mesh_ldata(
ptr),
CD_MLOOPUV, 1);
764 return rna_CustomDataLayer_active_get(
ptr, rna_mesh_ldata(
ptr),
CD_MLOOPUV, 0);
772 static void rna_MeshUVLoopLayer_active_render_set(
PointerRNA *
ptr,
bool value)
774 rna_CustomDataLayer_active_set(
ptr, rna_mesh_ldata(
ptr), value,
CD_MLOOPUV, 1);
777 static void rna_MeshUVLoopLayer_active_set(
PointerRNA *
ptr,
bool value)
779 rna_CustomDataLayer_active_set(
ptr, rna_mesh_ldata(
ptr), value,
CD_MLOOPUV, 0);
782 static void rna_MeshUVLoopLayer_clone_set(
PointerRNA *
ptr,
bool value)
801 static int rna_MeshLoopColorLayer_data_length(
PointerRNA *
ptr)
807 static bool rna_MeshLoopColorLayer_active_render_get(
PointerRNA *
ptr)
812 static bool rna_MeshLoopColorLayer_active_get(
PointerRNA *
ptr)
817 static void rna_MeshLoopColorLayer_active_render_set(
PointerRNA *
ptr,
bool value)
822 static void rna_MeshLoopColorLayer_active_set(
PointerRNA *
ptr,
bool value)
841 static int rna_MeshVertColorLayer_data_length(
PointerRNA *
ptr)
847 static bool rna_MeshVertColorLayer_active_render_get(
PointerRNA *
ptr)
852 static bool rna_MeshVertColorLayer_active_get(
PointerRNA *
ptr)
857 static void rna_MeshVertColorLayer_active_render_set(
PointerRNA *
ptr,
bool value)
862 static void rna_MeshVertColorLayer_active_set(
PointerRNA *
ptr,
bool value)
881 rna_float_layer_check);
891 rna_float_layer_check);
894 static int rna_Mesh_vertex_float_layers_length(
PointerRNA *
ptr)
898 static int rna_Mesh_polygon_float_layers_length(
PointerRNA *
ptr)
917 rna_int_layer_check);
927 rna_int_layer_check);
930 static int rna_Mesh_vertex_int_layers_length(
PointerRNA *
ptr)
934 static int rna_Mesh_polygon_int_layers_length(
PointerRNA *
ptr)
953 rna_string_layer_check);
963 rna_string_layer_check);
966 static int rna_Mesh_vertex_string_layers_length(
PointerRNA *
ptr)
970 static int rna_Mesh_polygon_string_layers_length(
PointerRNA *
ptr)
978 static char *rna_MeshSkinVertexLayer_path(
const PointerRNA *
ptr)
981 char name_esc[
sizeof(cdl->
name) * 2];
986 static char *rna_VertCustomData_data_path(
const PointerRNA *
ptr,
const char *collection,
int type);
999 static int rna_MeshSkinVertexLayer_data_length(
PointerRNA *
ptr)
1010 static char *rna_MeshVertexCreaseLayer_path(
const PointerRNA *
ptr)
1012 return rna_VertCustomData_data_path(
ptr,
"vertex_creases",
CD_CREASE);
1022 static int rna_MeshVertexCreaseLayer_data_length(
PointerRNA *
ptr)
1033 static char *rna_MeshPaintMaskLayer_path(
const PointerRNA *
ptr)
1036 char name_esc[
sizeof(cdl->
name) * 2];
1038 return BLI_sprintfN(
"vertex_paint_masks[\"%s\"]", name_esc);
1043 return rna_VertCustomData_data_path(
ptr,
"vertex_paint_masks",
CD_PAINT_MASK);
1054 static int rna_MeshPaintMaskLayer_data_length(
PointerRNA *
ptr)
1068 static char *rna_MeshFaceMapLayer_path(
const PointerRNA *
ptr)
1071 char name_esc[
sizeof(cdl->
name) * 2];
1084 static int rna_MeshFaceMapLayer_data_length(
PointerRNA *
ptr)
1097 CustomData *pdata = rna_mesh_pdata_helper(me);
1102 rna_cd_layer_name_set(pdata, cdl, name);
1109 static void rna_Mesh_face_map_remove(
struct Mesh *me,
1115 CustomData *pdata = rna_mesh_pdata_helper(me);
1119 if (layer != layer_test) {
1135 static int rna_MeshPoly_vertices_get_length(
const PointerRNA *
ptr,
1144 static void rna_MeshPoly_vertices_get(
PointerRNA *
ptr,
int *values)
1150 for (i = mp->
totloop; i > 0; i--, values++, ml++) {
1155 static void rna_MeshPoly_vertices_set(
PointerRNA *
ptr,
const int *values)
1161 for (i = mp->
totloop; i > 0; i--, values++, ml++) {
1168 static void rna_MeshPoly_material_index_range(
1198 static int rna_MeshLoopTriangle_material_index_get(
PointerRNA *
ptr)
1205 static bool rna_MeshLoopTriangle_use_smooth_get(
PointerRNA *
ptr)
1228 static char *rna_VertexGroupElement_path(
const PointerRNA *
ptr)
1230 const Mesh *me = rna_mesh(
ptr);
1235 for (
a = 0, dvert = me->
dvert; a < me->totvert;
a++, dvert++) {
1236 for (
b = 0;
b < dvert->totweight;
b++) {
1237 if (dw == &dvert->dw[
b]) {
1251 static char *rna_MeshLoopTriangle_path(
const PointerRNA *
ptr)
1272 static char *rna_VertCustomData_data_path(
const PointerRNA *
ptr,
const char *collection,
int type)
1275 const Mesh *me = rna_mesh(
ptr);
1279 for (cdl = vdata->
layers,
a = 0; a < vdata->totlayer; cdl++,
a++) {
1282 if (
b >= 0 &&
b < totvert) {
1283 char name_esc[
sizeof(cdl->
name) * 2];
1285 return BLI_sprintfN(
"%s[\"%s\"].data[%d]", collection, name_esc,
b);
1293 static char *rna_PolyCustomData_data_path(
const PointerRNA *
ptr,
const char *collection,
int type)
1296 const Mesh *me = rna_mesh(
ptr);
1300 for (cdl = pdata->
layers,
a = 0; a < pdata->totlayer; cdl++,
a++) {
1303 if (
b >= 0 &&
b < totpoly) {
1304 char name_esc[
sizeof(cdl->
name) * 2];
1306 return BLI_sprintfN(
"%s[\"%s\"].data[%d]", collection, name_esc,
b);
1314 static char *rna_LoopCustomData_data_path(
const PointerRNA *
ptr,
const char *collection,
int type)
1317 const Mesh *me = rna_mesh(
ptr);
1321 for (cdl = ldata->
layers,
a = 0; a < ldata->totlayer; cdl++,
a++) {
1324 if (
b >= 0 &&
b < totloop) {
1325 char name_esc[
sizeof(cdl->
name) * 2];
1327 return BLI_sprintfN(
"%s[\"%s\"].data[%d]", collection, name_esc,
b);
1363 return rna_LoopCustomData_data_path(
ptr,
"uv_layers",
CD_MLOOPUV);
1366 static char *rna_MeshLoopColorLayer_path(
const PointerRNA *
ptr)
1369 char name_esc[
sizeof(cdl->
name) * 2];
1371 return BLI_sprintfN(
"vertex_colors[\"%s\"]", name_esc);
1379 static char *rna_MeshVertColorLayer_path(
const PointerRNA *
ptr)
1382 char name_esc[
sizeof(cdl->
name) * 2];
1384 return BLI_sprintfN(
"sculpt_vertex_colors[\"%s\"]", name_esc);
1389 return rna_VertCustomData_data_path(
ptr,
"sculpt_vertex_colors",
CD_PROP_COLOR);
1393 static char *rna_MeshVertexFloatPropertyLayer_path(
const PointerRNA *
ptr)
1396 char name_esc[
sizeof(cdl->
name) * 2];
1398 return BLI_sprintfN(
"vertex_float_layers[\"%s\"]", name_esc);
1400 static char *rna_MeshPolygonFloatPropertyLayer_path(
const PointerRNA *
ptr)
1403 char name_esc[
sizeof(cdl->
name) * 2];
1405 return BLI_sprintfN(
"polygon_float_layers[\"%s\"]", name_esc);
1408 static char *rna_MeshVertexFloatProperty_path(
const PointerRNA *
ptr)
1410 return rna_VertCustomData_data_path(
ptr,
"vertex_layers_float",
CD_PROP_FLOAT);
1412 static char *rna_MeshPolygonFloatProperty_path(
const PointerRNA *
ptr)
1414 return rna_PolyCustomData_data_path(
ptr,
"polygon_layers_float",
CD_PROP_FLOAT);
1432 static int rna_MeshVertexFloatPropertyLayer_data_length(
PointerRNA *
ptr)
1437 static int rna_MeshPolygonFloatPropertyLayer_data_length(
PointerRNA *
ptr)
1444 static char *rna_MeshVertexIntPropertyLayer_path(
const PointerRNA *
ptr)
1447 char name_esc[
sizeof(cdl->
name) * 2];
1449 return BLI_sprintfN(
"vertex_int_layers[\"%s\"]", name_esc);
1451 static char *rna_MeshPolygonIntPropertyLayer_path(
const PointerRNA *
ptr)
1454 char name_esc[
sizeof(cdl->
name) * 2];
1456 return BLI_sprintfN(
"polygon_int_layers[\"%s\"]", name_esc);
1459 static char *rna_MeshVertexIntProperty_path(
const PointerRNA *
ptr)
1461 return rna_VertCustomData_data_path(
ptr,
"vertex_layers_int",
CD_PROP_INT32);
1463 static char *rna_MeshPolygonIntProperty_path(
const PointerRNA *
ptr)
1465 return rna_PolyCustomData_data_path(
ptr,
"polygon_layers_int",
CD_PROP_INT32);
1483 static int rna_MeshVertexIntPropertyLayer_data_length(
PointerRNA *
ptr)
1488 static int rna_MeshPolygonIntPropertyLayer_data_length(
PointerRNA *
ptr)
1495 static char *rna_MeshVertexStringPropertyLayer_path(
const PointerRNA *
ptr)
1498 char name_esc[
sizeof(cdl->
name) * 2];
1500 return BLI_sprintfN(
"vertex_string_layers[\"%s\"]", name_esc);
1502 static char *rna_MeshPolygonStringPropertyLayer_path(
const PointerRNA *
ptr)
1505 char name_esc[
sizeof(cdl->
name) * 2];
1507 return BLI_sprintfN(
"polygon_string_layers[\"%s\"]", name_esc);
1510 static char *rna_MeshVertexStringProperty_path(
const PointerRNA *
ptr)
1512 return rna_VertCustomData_data_path(
ptr,
"vertex_layers_string",
CD_PROP_STRING);
1514 static char *rna_MeshPolygonStringProperty_path(
const PointerRNA *
ptr)
1516 return rna_PolyCustomData_data_path(
ptr,
"polygon_layers_string",
CD_PROP_STRING);
1534 static int rna_MeshVertexStringPropertyLayer_data_length(
PointerRNA *
ptr)
1539 static int rna_MeshPolygonStringPropertyLayer_data_length(
PointerRNA *
ptr)
1547 void rna_MeshStringProperty_s_get(
PointerRNA *
ptr,
char *value)
1559 void rna_MeshStringProperty_s_set(
PointerRNA *
ptr,
const char *value)
1567 return rna_PolyCustomData_data_path(
ptr,
"face_maps",
CD_FACEMAP);
1599 ldata = rna_mesh_ldata_helper(me);
1607 static void rna_Mesh_vertex_color_remove(
struct Mesh *me,
1616 static PointerRNA rna_Mesh_sculpt_vertex_color_new(
struct Mesh *me,
1627 vdata = rna_mesh_vdata_helper(me);
1635 static void rna_Mesh_sculpt_vertex_color_remove(
struct Mesh *me,
1644 # define DEFINE_CUSTOMDATA_PROPERTY_API( \
1645 elemname, datatype, cd_prop_type, cdata, countvar, layertype) \
1646 static PointerRNA rna_Mesh_##elemname##_##datatype##_property_new(struct Mesh *me, \
1650 CustomDataLayer *cdl = NULL; \
1653 CustomData_add_layer_named(&me->cdata, cd_prop_type, CD_DEFAULT, NULL, me->countvar, name); \
1654 index = CustomData_get_named_layer_index(&me->cdata, cd_prop_type, name); \
1656 cdl = (index == -1) ? NULL : &(me->cdata.layers[index]); \
1658 RNA_pointer_create(&me->id, &RNA_##layertype, cdl, &ptr); \
1662 DEFINE_CUSTOMDATA_PROPERTY_API(
1663 vertex,
float,
CD_PROP_FLOAT, vdata, totvert, MeshVertexFloatPropertyLayer)
1664 DEFINE_CUSTOMDATA_PROPERTY_API(
1665 vertex,
int,
CD_PROP_INT32, vdata, totvert, MeshVertexIntPropertyLayer)
1666 DEFINE_CUSTOMDATA_PROPERTY_API(
1667 vertex,
string,
CD_PROP_STRING, vdata, totvert, MeshVertexStringPropertyLayer)
1668 DEFINE_CUSTOMDATA_PROPERTY_API(
1669 polygon,
float,
CD_PROP_FLOAT, pdata, totpoly, MeshPolygonFloatPropertyLayer)
1670 DEFINE_CUSTOMDATA_PROPERTY_API(
1671 polygon,
int,
CD_PROP_INT32, pdata, totpoly, MeshPolygonIntPropertyLayer)
1672 DEFINE_CUSTOMDATA_PROPERTY_API(
1673 polygon,
string,
CD_PROP_STRING, pdata, totpoly, MeshPolygonStringPropertyLayer)
1674 # undef DEFINE_CUSTOMDATA_PROPERTY_API
1687 ldata = rna_mesh_ldata_helper(me);
1712 (
void)rna_Mesh_skin_vertice_index_range;
1713 (
void)rna_Mesh_vertex_paint_mask_index_range;
1714 (
void)rna_Mesh_uv_layer_render_get;
1715 (
void)rna_Mesh_uv_layer_render_index_get;
1716 (
void)rna_Mesh_uv_layer_render_index_set;
1717 (
void)rna_Mesh_uv_layer_render_set;
1718 (
void)rna_Mesh_face_map_index_range;
1719 (
void)rna_Mesh_face_map_active_index_set;
1720 (
void)rna_Mesh_face_map_active_index_get;
1721 (
void)rna_Mesh_face_map_active_set;
1722 (
void)rna_Mesh_vertex_crease_index_range;
1726 static bool rna_Mesh_materials_override_apply(
Main *bmain,
1733 const int UNUSED(len_dst),
1734 const int UNUSED(len_src),
1735 const int UNUSED(len_storage),
1742 "Unsupported RNA override operation on collections' objects");
1755 if (mat_src == mat_dst) {
1759 bool is_modified =
false;
1760 for (
int i = 0; i < mesh_dst->
totcol; i++) {
1761 if (mesh_dst->
mat[i] == mat_dst) {
1763 mesh_dst->
mat[i] = mat_src;
1793 srna,
"Vertex Group Element",
"Weight value of a vertex in a vertex group");
1843 prop,
"rna_MeshVertex_bevel_weight_get",
"rna_MeshVertex_bevel_weight_set",
NULL);
1845 prop,
"Bevel Weight",
"Weight used by the Bevel modifier 'Only Vertices' option");
1850 "rna_MeshVertex_groups_begin",
1851 "rna_iterator_array_next",
1852 "rna_iterator_array_end",
1853 "rna_iterator_array_get",
1860 prop,
"Groups",
"Weights for the vertex groups this vertex is member of");
1871 "Undeformed Location",
1872 "For meshes with modifiers applied, the coordinate of the vertex with no deforming "
1873 "modifiers applied, as used for generated texture coordinates");
1898 prop,
"Crease",
"Weight used by the Subdivision Surface modifier for creasing");
1903 prop,
"rna_MEdge_bevel_weight_get",
"rna_MEdge_bevel_weight_set",
NULL);
1933 prop,
"rna_MEdge_freestyle_edge_mark_get",
"rna_MEdge_freestyle_edge_mark_set");
1947 const int splitnor_dim[] = {3, 3};
1969 prop,
"Polygon",
"Index of mesh polygon that the triangle is a part of");
1978 prop,
"Triangle Normal",
"Local space unit length normal vector for this triangle");
1988 "Local space unit length split normals vectors of the vertices of this triangle "
1989 "(must be computed beforehand using calc_normals_split or calc_tangents)");
2043 "Local space unit length split normal vector of this vertex for this polygon "
2044 "(must be computed beforehand using calc_normals_split or calc_tangents)");
2054 "Local space unit length tangent vector of this vertex for this polygon "
2055 "(must be computed beforehand using calc_tangents)");
2064 "Sign of the bitangent vector of this vertex for this polygon (must be computed "
2065 "beforehand using calc_tangents, bitangent = bitangent_sign * cross(normal, tangent))");
2075 "Bitangent vector of this vertex for this polygon (must be computed beforehand using "
2076 "calc_tangents, use it only if really needed, slower access than bitangent_sign)");
2137 prop,
"rna_MPoly_freestyle_face_mark_get",
"rna_MPoly_freestyle_face_mark_set");
2147 prop,
"Polygon Normal",
"Local space unit length normal vector for this polygon");
2183 "rna_MeshUVLoopLayer_data_begin",
2184 "rna_iterator_array_next",
2185 "rna_iterator_array_end",
2186 "rna_iterator_array_get",
2187 "rna_MeshUVLoopLayer_data_length",
2200 prop,
"rna_MeshUVLoopLayer_active_get",
"rna_MeshUVLoopLayer_active_set");
2207 prop,
"rna_MeshUVLoopLayer_active_render_get",
"rna_MeshUVLoopLayer_active_render_set");
2214 prop,
"rna_MeshUVLoopLayer_clone_get",
"rna_MeshUVLoopLayer_clone_set");
2245 srna,
"Mesh Vertex Color Layer",
"Layer of vertex colors in a Mesh data-block");
2258 prop,
"rna_MeshLoopColorLayer_active_get",
"rna_MeshLoopColorLayer_active_set");
2265 "rna_MeshLoopColorLayer_active_render_get",
2266 "rna_MeshLoopColorLayer_active_render_set");
2274 "rna_MeshLoopColorLayer_data_begin",
2275 "rna_iterator_array_next",
2276 "rna_iterator_array_end",
2277 "rna_iterator_array_get",
2278 "rna_MeshLoopColorLayer_data_length",
2292 prop,
"rna_MeshLoopColor_color_get",
"rna_MeshLoopColor_color_set",
NULL);
2304 "Mesh Sculpt Vertex Color Layer",
2305 "Layer of sculpt vertex colors in a Mesh data-block");
2318 prop,
"rna_MeshVertColorLayer_active_get",
"rna_MeshVertColorLayer_active_set");
2320 prop,
"Active",
"Sets the sculpt vertex color layer as active for display and editing");
2326 "rna_MeshVertColorLayer_active_render_get",
2327 "rna_MeshVertColorLayer_active_render_set");
2329 prop,
"Active Render",
"Sets the sculpt vertex color layer as active for rendering");
2336 "rna_MeshVertColorLayer_data_begin",
2337 "rna_iterator_array_next",
2338 "rna_iterator_array_end",
2339 "rna_iterator_array_get",
2340 "rna_MeshVertColorLayer_data_length",
2362 # define MESH_FLOAT_PROPERTY_LAYER(elemname) \
2363 srna = RNA_def_struct(brna, "Mesh" elemname "FloatPropertyLayer", NULL); \
2364 RNA_def_struct_sdna(srna, "CustomDataLayer"); \
2365 RNA_def_struct_ui_text(srna, \
2366 "Mesh " elemname " Float Property Layer", \
2367 "User defined layer of floating-point number values"); \
2368 RNA_def_struct_path_func(srna, "rna_Mesh" elemname "FloatPropertyLayer_path"); \
2370 prop = RNA_def_property(srna, "name", PROP_STRING, PROP_NONE); \
2371 RNA_def_struct_name_property(srna, prop); \
2372 RNA_def_property_string_funcs(prop, NULL, NULL, "rna_MeshAnyLayer_name_set"); \
2373 RNA_def_property_ui_text(prop, "Name", ""); \
2374 RNA_def_property_update(prop, 0, "rna_Mesh_update_data_legacy_deg_tag_all"); \
2376 prop = RNA_def_property(srna, "data", PROP_COLLECTION, PROP_NONE); \
2377 RNA_def_property_struct_type(prop, "Mesh" elemname "FloatProperty"); \
2378 RNA_def_property_ui_text(prop, "Data", ""); \
2379 RNA_def_property_collection_funcs(prop, \
2380 "rna_Mesh" elemname "FloatPropertyLayer_data_begin", \
2381 "rna_iterator_array_next", \
2382 "rna_iterator_array_end", \
2383 "rna_iterator_array_get", \
2384 "rna_Mesh" elemname "FloatPropertyLayer_data_length", \
2389 srna = RNA_def_struct(brna, "Mesh" elemname "FloatProperty", NULL); \
2390 RNA_def_struct_sdna(srna, "MFloatProperty"); \
2391 RNA_def_struct_ui_text( \
2393 "Mesh " elemname " Float Property", \
2394 "User defined floating-point number value in a float properties layer"); \
2395 RNA_def_struct_path_func(srna, "rna_Mesh" elemname "FloatProperty_path"); \
2397 prop = RNA_def_property(srna, "value", PROP_FLOAT, PROP_NONE); \
2398 RNA_def_property_float_sdna(prop, NULL, "f"); \
2399 RNA_def_property_ui_text(prop, "Value", ""); \
2400 RNA_def_property_update(prop, 0, "rna_Mesh_update_data_legacy_deg_tag_all"); \
2404 # define MESH_INT_PROPERTY_LAYER(elemname) \
2405 srna = RNA_def_struct(brna, "Mesh" elemname "IntPropertyLayer", NULL); \
2406 RNA_def_struct_sdna(srna, "CustomDataLayer"); \
2407 RNA_def_struct_ui_text(srna, \
2408 "Mesh " elemname " Int Property Layer", \
2409 "User defined layer of integer number values"); \
2410 RNA_def_struct_path_func(srna, "rna_Mesh" elemname "IntPropertyLayer_path"); \
2412 prop = RNA_def_property(srna, "name", PROP_STRING, PROP_NONE); \
2413 RNA_def_struct_name_property(srna, prop); \
2414 RNA_def_property_string_funcs(prop, NULL, NULL, "rna_MeshAnyLayer_name_set"); \
2415 RNA_def_property_ui_text(prop, "Name", ""); \
2416 RNA_def_property_update(prop, 0, "rna_Mesh_update_data_legacy_deg_tag_all"); \
2418 prop = RNA_def_property(srna, "data", PROP_COLLECTION, PROP_NONE); \
2419 RNA_def_property_struct_type(prop, "Mesh" elemname "IntProperty"); \
2420 RNA_def_property_ui_text(prop, "Data", ""); \
2421 RNA_def_property_collection_funcs(prop, \
2422 "rna_Mesh" elemname "IntPropertyLayer_data_begin", \
2423 "rna_iterator_array_next", \
2424 "rna_iterator_array_end", \
2425 "rna_iterator_array_get", \
2426 "rna_Mesh" elemname "IntPropertyLayer_data_length", \
2431 srna = RNA_def_struct(brna, "Mesh" elemname "IntProperty", NULL); \
2432 RNA_def_struct_sdna(srna, "MIntProperty"); \
2433 RNA_def_struct_ui_text(srna, \
2434 "Mesh " elemname " Int Property", \
2435 "User defined integer number value in an integer properties layer"); \
2436 RNA_def_struct_path_func(srna, "rna_Mesh" elemname "IntProperty_path"); \
2438 prop = RNA_def_property(srna, "value", PROP_INT, PROP_NONE); \
2439 RNA_def_property_int_sdna(prop, NULL, "i"); \
2440 RNA_def_property_ui_text(prop, "Value", ""); \
2441 RNA_def_property_update(prop, 0, "rna_Mesh_update_data_legacy_deg_tag_all"); \
2445 # define MESH_STRING_PROPERTY_LAYER(elemname) \
2446 srna = RNA_def_struct(brna, "Mesh" elemname "StringPropertyLayer", NULL); \
2447 RNA_def_struct_sdna(srna, "CustomDataLayer"); \
2448 RNA_def_struct_ui_text(srna, \
2449 "Mesh " elemname " String Property Layer", \
2450 "User defined layer of string text values"); \
2451 RNA_def_struct_path_func(srna, "rna_Mesh" elemname "StringPropertyLayer_path"); \
2453 prop = RNA_def_property(srna, "name", PROP_STRING, PROP_NONE); \
2454 RNA_def_struct_name_property(srna, prop); \
2455 RNA_def_property_string_funcs(prop, NULL, NULL, "rna_MeshAnyLayer_name_set"); \
2456 RNA_def_property_ui_text(prop, "Name", ""); \
2457 RNA_def_property_update(prop, 0, "rna_Mesh_update_data_legacy_deg_tag_all"); \
2459 prop = RNA_def_property(srna, "data", PROP_COLLECTION, PROP_NONE); \
2460 RNA_def_property_struct_type(prop, "Mesh" elemname "StringProperty"); \
2461 RNA_def_property_ui_text(prop, "Data", ""); \
2462 RNA_def_property_collection_funcs(prop, \
2463 "rna_Mesh" elemname "StringPropertyLayer_data_begin", \
2464 "rna_iterator_array_next", \
2465 "rna_iterator_array_end", \
2466 "rna_iterator_array_get", \
2467 "rna_Mesh" elemname "StringPropertyLayer_data_length", \
2472 srna = RNA_def_struct(brna, "Mesh" elemname "StringProperty", NULL); \
2473 RNA_def_struct_sdna(srna, "MStringProperty"); \
2474 RNA_def_struct_ui_text(srna, \
2475 "Mesh " elemname " String Property", \
2476 "User defined string text value in a string properties layer"); \
2477 RNA_def_struct_path_func(srna, "rna_Mesh" elemname "StringProperty_path"); \
2480 prop = RNA_def_property(srna, "value", PROP_STRING, PROP_BYTESTRING); \
2481 RNA_def_property_string_sdna(prop, NULL, "s"); \
2482 RNA_def_property_string_funcs(prop, \
2483 "rna_MeshStringProperty_s_get", \
2484 "rna_MeshStringProperty_s_length", \
2485 "rna_MeshStringProperty_s_set"); \
2486 RNA_def_property_ui_text(prop, "Value", ""); \
2487 RNA_def_property_update(prop, 0, "rna_Mesh_update_data_legacy_deg_tag_all");
2495 # undef MESH_PROPERTY_LAYER
2507 "Auto Texture Space",
2508 "Adjust active object's texture space automatically when transforming object");
2555 func,
"count", 0, 0, INT_MAX,
"Count",
"Number of vertices to add", 0, INT_MAX);
2560 RNA_def_int(func,
"count", 0, 0, INT_MAX,
"Count",
"Number of vertices to remove", 0, INT_MAX);
2580 parm =
RNA_def_int(func,
"count", 0, 0, INT_MAX,
"Count",
"Number of edges to add", 0, INT_MAX);
2585 RNA_def_int(func,
"count", 0, 0, INT_MAX,
"Count",
"Number of edges to remove", 0, INT_MAX);
2598 srna,
"Mesh Loop Triangles",
"Tessellation of mesh polygons into triangles");
2618 parm =
RNA_def_int(func,
"count", 0, 0, INT_MAX,
"Count",
"Number of loops to add", 0, INT_MAX);
2644 func,
"count", 0, 0, INT_MAX,
"Count",
"Number of polygons to add", 0, INT_MAX);
2683 "Whether new layer's data should be initialized by copying current active one");
2684 parm =
RNA_def_pointer(func,
"layer",
"MeshLoopColorLayer",
"",
"The newly created layer");
2691 parm =
RNA_def_pointer(func,
"layer",
"MeshLoopColorLayer",
"",
"The layer to remove");
2698 prop,
"rna_Mesh_vertex_color_active_get",
"rna_Mesh_vertex_color_active_set",
NULL,
NULL);
2705 "rna_Mesh_vertex_color_active_index_get",
2706 "rna_Mesh_vertex_color_active_index_set",
2707 "rna_Mesh_vertex_color_index_range");
2728 RNA_def_string(func,
"name",
"Col", 0,
"",
"Sculpt Vertex color name");
2733 "Whether new layer's data should be initialized by copying current active one");
2734 parm =
RNA_def_pointer(func,
"layer",
"MeshVertColorLayer",
"",
"The newly created layer");
2738 func =
RNA_def_function(srna,
"remove",
"rna_Mesh_sculpt_vertex_color_remove");
2741 parm =
RNA_def_pointer(func,
"layer",
"MeshVertColorLayer",
"",
"The layer to remove");
2748 "rna_Mesh_sculpt_vertex_color_active_get",
2749 "rna_Mesh_sculpt_vertex_color_active_set",
2754 prop,
"Active Sculpt Vertex Color Layer",
"Active sculpt vertex color layer");
2759 "rna_Mesh_sculpt_vertex_color_active_index_get",
2760 "rna_Mesh_sculpt_vertex_color_active_index_set",
2761 "rna_Mesh_sculpt_vertex_color_index_range");
2763 prop,
"Active Sculpt Vertex Color Index",
"Active sculpt vertex color index");
2788 "Whether new layer's data should be initialized by copying current active one, "
2789 "or if none is active, with a default UVmap");
2790 parm =
RNA_def_pointer(func,
"layer",
"MeshUVLoopLayer",
"",
"The newly created layer");
2797 parm =
RNA_def_pointer(func,
"layer",
"MeshUVLoopLayer",
"",
"The layer to remove");
2803 prop,
"rna_Mesh_uv_layer_active_get",
"rna_Mesh_uv_layer_active_set",
NULL,
NULL);
2810 "rna_Mesh_uv_layer_active_index_get",
2811 "rna_Mesh_uv_layer_active_index_set",
2812 "rna_Mesh_uv_layer_index_range");
2830 func =
RNA_def_function(srna,
"new",
"rna_Mesh_vertex_float_property_new");
2832 RNA_def_string(func,
"name",
"Float Prop", 0,
"",
"Float property name");
2834 func,
"layer",
"MeshVertexFloatPropertyLayer",
"",
"The newly created layer");
2854 RNA_def_string(func,
"name",
"Int Prop", 0,
"",
"Int property name");
2856 func,
"layer",
"MeshVertexIntPropertyLayer",
"",
"The newly created layer");
2874 func =
RNA_def_function(srna,
"new",
"rna_Mesh_vertex_string_property_new");
2876 RNA_def_string(func,
"name",
"String Prop", 0,
"",
"String property name");
2878 func,
"layer",
"MeshVertexStringPropertyLayer",
"",
"The newly created layer");
2896 func =
RNA_def_function(srna,
"new",
"rna_Mesh_polygon_float_property_new");
2898 RNA_def_string(func,
"name",
"Float Prop", 0,
"",
"Float property name");
2900 func,
"layer",
"MeshPolygonFloatPropertyLayer",
"",
"The newly created layer");
2920 RNA_def_string(func,
"name",
"Int Prop", 0,
"",
"Int property name");
2922 func,
"layer",
"MeshPolygonIntPropertyLayer",
"",
"The newly created layer");
2940 func =
RNA_def_function(srna,
"new",
"rna_Mesh_polygon_string_property_new");
2942 RNA_def_string(func,
"name",
"String Prop", 0,
"",
"String property name");
2944 func,
"layer",
"MeshPolygonStringPropertyLayer",
"",
"The newly created layer");
2956 srna,
"Mesh Skin Vertex Layer",
"Per-vertex skin data for use with the Skin modifier");
2970 "rna_MeshSkinVertexLayer_data_begin",
2971 "rna_iterator_array_next",
2972 "rna_iterator_array_end",
2973 "rna_iterator_array_get",
2974 "rna_MeshSkinVertexLayer_data_length",
2983 srna,
"Skin Vertex",
"Per-vertex skin data for use with the Skin modifier");
2998 "Vertex is a root for rotation calculations and armature generation, "
2999 "setting this flag does not clear other roots in the same mesh island");
3005 prop,
"Loose",
"If vertex has multiple adjacent edges, it is hulled to them directly");
3023 "rna_MeshVertexCreaseLayer_data_begin",
3024 "rna_iterator_array_next",
3025 "rna_iterator_array_end",
3026 "rna_iterator_array_get",
3027 "rna_MeshVertexCreaseLayer_data_length",
3058 "rna_MeshPaintMaskLayer_data_begin",
3059 "rna_iterator_array_next",
3060 "rna_iterator_array_end",
3061 "rna_iterator_array_get",
3062 "rna_MeshPaintMaskLayer_data_length",
3098 "rna_MeshFaceMapLayer_data_begin",
3099 "rna_iterator_array_next",
3100 "rna_iterator_array_end",
3101 "rna_iterator_array_get",
3102 "rna_MeshFaceMapLayer_data_length",
3143 RNA_def_string(func,
"name",
"Face Map", 0,
"",
"Face map name");
3144 parm =
RNA_def_pointer(func,
"layer",
"MeshFaceMapLayer",
"",
"The newly created layer");
3151 parm =
RNA_def_pointer(func,
"layer",
"MeshFaceMapLayer",
"",
"The layer to remove");
3200 "The normal direction of each vertex, defined as the average of the "
3201 "surrounding face normals");
3203 "rna_Mesh_vertex_normals_begin",
3204 "rna_iterator_array_next",
3205 "rna_iterator_array_end",
3206 "rna_iterator_array_get",
3207 "rna_Mesh_vertex_normals_length",
3217 "The normal direction of each polygon, defined by the winding order "
3218 "and position of its vertices");
3220 "rna_Mesh_poly_normals_begin",
3221 "rna_iterator_array_next",
3222 "rna_iterator_array_end",
3223 "rna_iterator_array_get",
3224 "rna_Mesh_poly_normals_length",
3244 "Use another mesh for texture indices (vertex indices must be aligned)");
3250 "rna_Mesh_uv_layers_begin",
3254 "rna_Mesh_uv_layers_length",
3266 prop,
"rna_Mesh_uv_layer_clone_get",
"rna_Mesh_uv_layer_clone_set",
NULL,
NULL);
3270 prop,
"Clone UV Loop Layer",
"UV loop layer to be used as cloning source");
3274 "rna_Mesh_uv_layer_clone_index_get",
3275 "rna_Mesh_uv_layer_clone_index_set",
3276 "rna_Mesh_uv_layer_index_range");
3282 prop,
"rna_Mesh_uv_layer_stencil_get",
"rna_Mesh_uv_layer_stencil_set",
NULL,
NULL);
3289 "rna_Mesh_uv_layer_stencil_index_get",
3290 "rna_Mesh_uv_layer_stencil_index_set",
3291 "rna_Mesh_uv_layer_index_range");
3300 "rna_Mesh_vertex_colors_begin",
3304 "rna_Mesh_vertex_colors_length",
3312 "Legacy vertex color layers. Deprecated, use color attributes instead");
3320 "rna_Mesh_sculpt_vertex_colors_begin",
3324 "rna_Mesh_sculpt_vertex_colors_length",
3331 "Sculpt Vertex Colors",
3332 "Sculpt vertex color layers. Deprecated, use color attributes instead");
3339 "rna_Mesh_vertex_float_layers_begin",
3343 "rna_Mesh_vertex_float_layers_length",
3355 "rna_Mesh_vertex_int_layers_begin",
3359 "rna_Mesh_vertex_int_layers_length",
3371 "rna_Mesh_vertex_string_layers_begin",
3375 "rna_Mesh_vertex_string_layers_length",
3387 "rna_Mesh_polygon_float_layers_begin",
3391 "rna_Mesh_polygon_float_layers_length",
3403 "rna_Mesh_polygon_int_layers_begin",
3407 "rna_Mesh_polygon_int_layers_length",
3419 "rna_Mesh_polygon_string_layers_begin",
3423 "rna_Mesh_polygon_string_layers_length",
3436 "rna_Mesh_face_maps_begin",
3440 "rna_Mesh_face_maps_length",
3453 "rna_Mesh_skin_vertices_begin",
3457 "rna_Mesh_skin_vertices_length",
3472 "rna_Mesh_vertex_creases_begin",
3476 "rna_Mesh_vertex_creases_length",
3489 "rna_Mesh_vertex_paint_masks_begin",
3493 "rna_Mesh_vertex_paint_masks_length",
3513 "Size of the voxel in object space used for volume evaluation. Lower "
3514 "values preserve finer details");
3524 "Reduces the final face count by simplifying geometry where detail is not needed, "
3525 "generating triangles. A value greater than 0 disables Fix Poles");
3538 "Projects the mesh to preserve the volume and details of the original mesh");
3549 prop,
"Preserve Face Sets",
"Keep the current Face Sets on the new mesh");
3555 prop,
"Preserve Vertex Colors",
"Keep the current vertex colors on the new mesh");
3585 "Mirror Vertex Groups",
3586 "Mirror the left/right vertex groups when painting. The symmetry axis "
3587 "is determined by the symmetry settings");
3596 "Auto smooth (based on smooth/sharp faces/edges and angle between faces), "
3597 "or use custom split normals data if available");
3604 "Auto Smooth Angle",
3605 "Maximum angle between face normals that will be considered as smooth "
3606 "(unused if custom split normals data are available)");
3614 prop,
"Has Custom Normals",
"True if there are custom split normals data in this mesh");
3623 prop,
"Texture Space Mesh",
"Derive texture coordinates from another mesh");
3636 "Auto Texture Space",
3637 "Adjust active object's texture space automatically when transforming object");
3646 prop,
"rna_Mesh_texspace_loc_get",
"rna_Mesh_texspace_loc_set",
NULL);
3655 "Use topology based mirroring "
3656 "(for when both sides of mesh have matching, unique topology)");
typedef float(TangentPoint)[2]
Generic geometry attributes built on CustomData.
bool BKE_id_attribute_rename(struct ID *id, const char *old_name, const char *new_name, struct ReportList *reports)
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)
#define CD_TYPE_AS_MASK(_type)
void id_us_min(struct ID *id)
void id_us_plus(struct ID *id)
const float(* BKE_mesh_poly_normals_ensure(const struct Mesh *mesh))[3]
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])
const float(* BKE_mesh_vertex_normals_ensure(const struct Mesh *mesh))[3]
bool BKE_mesh_ensure_facemap_customdata(struct Mesh *me)
void BKE_mesh_update_customdata_pointers(struct Mesh *me, bool do_ensure_tess_cd)
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_texspace_ensure(struct Mesh *me)
void BKE_mesh_normals_tag_dirty(struct Mesh *mesh)
void BKE_mesh_texspace_get(struct Mesh *me, float r_loc[3], float r_size[3])
void BKE_mesh_tag_coords_changed(struct Mesh *mesh)
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_reportf(ReportList *reports, eReportType type, const char *format,...) ATTR_PRINTF_FORMAT(3
void BKE_report(ReportList *reports, eReportType type, const char *message)
#define BLI_assert_msg(a, msg)
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 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
char * BLI_strncpy(char *__restrict dst, const char *__restrict src, size_t maxncpy) ATTR_NONNULL()
size_t size_t char size_t BLI_str_escape(char *__restrict dst, const char *__restrict src, size_t dst_maxncpy) ATTR_NONNULL()
char * BLI_strncpy_utf8(char *__restrict dst, const char *__restrict src, size_t maxncpy) ATTR_NONNULL(1
#define UNUSED_FUNCTION(x)
#define ARRAY_HAS_ITEM(arr_item, arr_start, arr_len)
#define UNUSED_VARS_NDEBUG(...)
void DEG_id_tag_update(struct ID *id, int flag)
@ IDOVERRIDE_LIBRARY_OP_REPLACE
@ ME_EDIT_MIRROR_VERTEX_GROUPS
@ ME_REMESH_REPROJECT_VOLUME
@ ME_REMESH_REPROJECT_VERTEX_COLORS
@ ME_REMESH_REPROJECT_SCULPT_FACE_SETS
@ ME_REMESH_REPROJECT_PAINT_MASK
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_sculpt_color_add(struct Mesh *me, const char *name, bool active_set, bool do_init, struct ReportList *reports)
bool ED_mesh_uv_remove_named(struct Mesh *me, const char *name)
int ED_mesh_color_add(struct Mesh *me, const char *name, bool active_set, bool do_init, struct ReportList *reports)
int ED_mesh_uv_add(struct Mesh *me, const char *name, bool active_set, bool do_init, struct ReportList *reports)
bool ED_mesh_color_remove_named(struct Mesh *me, const char *name)
_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.
#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)
SyclQueue void void size_t num_bytes void
define("MAT_AOV_SUPPORT") .image_array_out(6
bool active
all scheduled work for the GPU.
T length(const vec_base< T, Size > &a)
static const pxr::TfToken b("b", pxr::TfToken::Immortal)
MutableSpan< float3 > normals
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_property_update_main(Main *bmain, Scene *scene, PointerRNA *ptr, PropertyRNA *prop)
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_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_override_funcs(PropertyRNA *prop, const char *diff, const char *store, const char *apply)
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_normal_layer_value(BlenderRNA *brna)
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_vertex_creases(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 MDeformVert * dvert
void WM_main_add_notifier(unsigned int type, void *reference)