Blender
V3.3
|
Go to the source code of this file.
Macros | |
#define | BLI_polyfill_beautify_quad_rotate_calc(v1, v2, v3, v4) BLI_polyfill_beautify_quad_rotate_calc_ex(v1, v2, v3, v4, false, NULL) |
#define | BLI_POLYFILL_ALLOC_NGON_RESERVE 64 |
Functions | |
void | BLI_polyfill_beautify (const float(*coords)[2], unsigned int coords_num, unsigned int(*tris)[3], struct MemArena *arena, struct Heap *eheap) |
float | BLI_polyfill_beautify_quad_rotate_calc_ex (const float v1[2], const float v2[2], const float v3[2], const float v4[2], bool lock_degenerate, float *r_area) |
#define BLI_POLYFILL_ALLOC_NGON_RESERVE 64 |
Definition at line 55 of file BLI_polyfill_2d_beautify.h.
#define BLI_polyfill_beautify_quad_rotate_calc | ( | v1, | |
v2, | |||
v3, | |||
v4 | |||
) | BLI_polyfill_beautify_quad_rotate_calc_ex(v1, v2, v3, v4, false, NULL) |
Definition at line 51 of file BLI_polyfill_2d_beautify.h.
void BLI_polyfill_beautify | ( | const float(*) | coords[2], |
unsigned int | coords_num, | ||
unsigned int(*) | tris[3], | ||
struct MemArena * | arena, | ||
struct Heap * | eheap | ||
) |
The intention is that this calculates the output of BLI_polyfill_calc
Definition at line 290 of file polyfill_2d_beautify.c.
References HalfEdge::base_index, BLI_assert, BLI_heap_clear(), BLI_heap_insert(), BLI_heap_is_empty(), BLI_heap_pop_min(), BLI_memarena_alloc(), e, OrderEdge::e_half, HalfEdge::e_next, HalfEdge::e_radial, is_boundary_edge(), NULL, oedge_cmp(), polyedge_beauty_cost_update(), polyedge_rotate(), polyedge_rotate_beauty_calc(), SWAP, UINT_MAX, HalfEdge::v, and OrderEdge::verts.
Referenced by BM_face_triangulate(), bmesh_calc_tessellation_for_face_beauty(), p_add_ngon(), and test_polyfill_template().
float BLI_polyfill_beautify_quad_rotate_calc_ex | ( | const float | v1[2], |
const float | v2[2], | ||
const float | v3[2], | ||
const float | v4[2], | ||
bool | lock_degenerate, | ||
float * | r_area | ||
) |
Assuming we have 2 triangles sharing an edge (2 - 4), check if the edge running from (1 - 3) gives better results.
lock_degenerate | Use to avoid rotating out of a degenerate state:
|
r_area | Return the area of the quad, This can be useful when comparing the return value with near zero epsilons. In this case the epsilon can be scaled by the area to avoid the return value of very large faces not having a reliable way to detect near-zero output. |
Definition at line 81 of file polyfill_2d_beautify.c.
References BLI_assert, cross_tri_v2(), ELEM, fabsf, len_v2v2(), v1, and v2.
Referenced by bm_edge_calc_rotate_beauty__area(), and polyedge_rotate_beauty_calc().