forked from bartvdbraak/blender
Code cleanup: use consistent arg order for math api poly funcs
This commit is contained in:
parent
f26492d3e8
commit
20a4e33837
@ -904,7 +904,7 @@ float BKE_mesh_calc_poly_area(MPoly *mpoly, MLoop *loopstart,
|
||||
}
|
||||
|
||||
/* finally calculate the area */
|
||||
area = area_poly_v3(mpoly->totloop, vertexcos, no);
|
||||
area = area_poly_v3((const float (*)[3])vertexcos, (unsigned int)mpoly->totloop, no);
|
||||
|
||||
return area;
|
||||
}
|
||||
|
@ -55,11 +55,11 @@ MINLINE float area_tri_signed_v2(const float v1[2], const float v2[2], const flo
|
||||
float area_tri_v3(const float a[3], const float b[3], const float c[3]);
|
||||
float area_tri_signed_v3(const float v1[3], const float v2[3], const float v3[3], const float normal[3]);
|
||||
float area_quad_v3(const float a[3], const float b[3], const float c[3], const float d[3]);
|
||||
float area_poly_v3(int nr, float verts[][3], const float normal[3]);
|
||||
float area_poly_v2(int nr, float verts[][2]);
|
||||
float area_poly_v3(const float verts[][3], unsigned int nr, const float normal[3]);
|
||||
float area_poly_v2(const float verts[][2], unsigned int nr);
|
||||
|
||||
MINLINE float cross_tri_v2(const float v1[2], const float v2[2], const float v3[2]);
|
||||
float cross_poly_v2(int nr, float verts[][2]);
|
||||
float cross_poly_v2(const float verts[][2], unsigned int nr);
|
||||
|
||||
/********************************* Planes **********************************/
|
||||
|
||||
|
@ -134,12 +134,13 @@ float area_tri_signed_v3(const float v1[3], const float v2[3], const float v3[3]
|
||||
return area;
|
||||
}
|
||||
|
||||
float area_poly_v3(int nr, float verts[][3], const float normal[3])
|
||||
float area_poly_v3(const float verts[][3], unsigned int nr, const float normal[3])
|
||||
{
|
||||
int a, px, py;
|
||||
unsigned int a;
|
||||
int px, py;
|
||||
const float max = axis_dominant_v3_max(&px, &py, normal);
|
||||
float area;
|
||||
float *co_curr, *co_prev;
|
||||
const float *co_curr, *co_prev;
|
||||
|
||||
/* The Trapezium Area Rule */
|
||||
co_prev = verts[nr - 1];
|
||||
@ -154,9 +155,9 @@ float area_poly_v3(int nr, float verts[][3], const float normal[3])
|
||||
return fabsf(0.5f * area / max);
|
||||
}
|
||||
|
||||
float cross_poly_v2(int nr, float verts[][2])
|
||||
float cross_poly_v2(const float verts[][2], unsigned int nr)
|
||||
{
|
||||
int a;
|
||||
unsigned int a;
|
||||
float cross;
|
||||
const float *co_curr, *co_prev;
|
||||
|
||||
@ -173,9 +174,9 @@ float cross_poly_v2(int nr, float verts[][2])
|
||||
return cross;
|
||||
}
|
||||
|
||||
float area_poly_v2(int nr, float verts[][2])
|
||||
float area_poly_v2(const float verts[][2], unsigned int nr)
|
||||
{
|
||||
return fabsf(0.5f * cross_poly_v2(nr, verts));
|
||||
return fabsf(0.5f * cross_poly_v2(verts, nr));
|
||||
}
|
||||
|
||||
/********************************* Planes **********************************/
|
||||
|
@ -400,7 +400,7 @@ void BLI_polyfill_calc_ex(
|
||||
pf.tris_tot = 0;
|
||||
|
||||
if ((coords_tot < 3) ||
|
||||
cross_poly_v2((int)coords_tot, (float(*)[2])coords) > 0.0f)
|
||||
cross_poly_v2(coords, coords_tot) > 0.0f)
|
||||
{
|
||||
for (i = 0; i < coords_tot; i++) {
|
||||
indices[i] = i;
|
||||
|
@ -248,7 +248,7 @@ float BM_face_calc_area(BMFace *f)
|
||||
else {
|
||||
float normal[3];
|
||||
calc_poly_normal(normal, verts, f->len);
|
||||
area = area_poly_v3(f->len, verts, normal);
|
||||
area = area_poly_v3((const float (*)[3])verts, f->len, normal);
|
||||
}
|
||||
|
||||
return area;
|
||||
@ -1061,7 +1061,12 @@ void BM_face_legal_splits(BMFace *f, BMLoop *(*loops)[2], int len)
|
||||
for (i = 0, l = BM_FACE_FIRST_LOOP(f); i < f->len; i++, l = l->next) {
|
||||
BM_elem_index_set(l, i); /* set_loop */
|
||||
mul_v2_m3v3(projverts[i], axis_mat, l->v->co);
|
||||
}
|
||||
|
||||
/* first test for completely convex face */
|
||||
|
||||
|
||||
for (i = 0, l = BM_FACE_FIRST_LOOP(f); i < f->len; i++, l = l->next) {
|
||||
out[0] = max_ff(out[0], projverts[i][0]);
|
||||
out[1] = max_ff(out[1], projverts[i][1]);
|
||||
}
|
||||
|
@ -205,7 +205,7 @@ static void draw_uvs_stretch(SpaceImage *sima, Scene *scene, BMEditMesh *em, MTe
|
||||
uv_poly_copy_aspect(tf_uvorig, tf_uv, aspx, aspy, efa->len);
|
||||
|
||||
totarea += BM_face_calc_area(efa);
|
||||
totuvarea += area_poly_v2(efa->len, tf_uv);
|
||||
totuvarea += area_poly_v2((const float (*)[2])tf_uv, efa->len);
|
||||
|
||||
if (uvedit_face_visible_test(scene, ima, efa, tf)) {
|
||||
BM_elem_flag_enable(efa, BM_ELEM_TAG);
|
||||
@ -248,7 +248,7 @@ static void draw_uvs_stretch(SpaceImage *sima, Scene *scene, BMEditMesh *em, MTe
|
||||
|
||||
uv_poly_copy_aspect(tf_uvorig, tf_uv, aspx, aspy, efa->len);
|
||||
|
||||
uvarea = area_poly_v2(efa->len, tf_uv) / totuvarea;
|
||||
uvarea = area_poly_v2((const float (*)[2])tf_uv, efa->len) / totuvarea;
|
||||
|
||||
if (area < FLT_EPSILON || uvarea < FLT_EPSILON)
|
||||
areadiff = 1.0f;
|
||||
|
Loading…
Reference in New Issue
Block a user