fix [#35453] "copy mirrored uv coords" doesn't work
- made precision configurable. - report a warning when doubles are found since they cause problems. added Polygon.center attribute to avoid calculating in python.
This commit is contained in:
@@ -326,10 +326,17 @@ static void rna_MeshPolygon_normal_get(PointerRNA *ptr, float *values)
|
||||
Mesh *me = rna_mesh(ptr);
|
||||
MPoly *mp = (MPoly *)ptr->data;
|
||||
|
||||
/* BMESH_TODO: might be faster to look for a CD_NORMALS layer and use that */
|
||||
BKE_mesh_calc_poly_normal(mp, me->mloop + mp->loopstart, me->mvert, values);
|
||||
}
|
||||
|
||||
static void rna_MeshPolygon_center_get(PointerRNA *ptr, float *values)
|
||||
{
|
||||
Mesh *me = rna_mesh(ptr);
|
||||
MPoly *mp = (MPoly *)ptr->data;
|
||||
|
||||
BKE_mesh_calc_poly_center(mp, me->mloop + mp->loopstart, me->mvert, values);
|
||||
}
|
||||
|
||||
static float rna_MeshPolygon_area_get(PointerRNA *ptr)
|
||||
{
|
||||
Mesh *me = (Mesh *)ptr->id.data;
|
||||
@@ -1880,6 +1887,12 @@ static void rna_def_mpolygon(BlenderRNA *brna)
|
||||
RNA_def_property_float_funcs(prop, "rna_MeshPolygon_normal_get", NULL, NULL);
|
||||
RNA_def_property_ui_text(prop, "Face normal", "Local space unit length normal vector for this polygon");
|
||||
|
||||
prop = RNA_def_property(srna, "center", PROP_FLOAT, PROP_NONE);
|
||||
RNA_def_property_array(prop, 3);
|
||||
RNA_def_property_clear_flag(prop, PROP_EDITABLE);
|
||||
RNA_def_property_float_funcs(prop, "rna_MeshPolygon_center_get", NULL, NULL);
|
||||
RNA_def_property_ui_text(prop, "Face center", "Center of the polygon");
|
||||
|
||||
prop = RNA_def_property(srna, "area", PROP_FLOAT, PROP_UNSIGNED);
|
||||
RNA_def_property_clear_flag(prop, PROP_EDITABLE);
|
||||
RNA_def_property_float_funcs(prop, "rna_MeshPolygon_area_get", NULL, NULL);
|
||||
|
||||
Reference in New Issue
Block a user