Blender
V3.3
|
#include "MEM_guardedalloc.h"
#include "DNA_meshdata_types.h"
#include "BLI_math.h"
#include "BLI_sort_utils.h"
#include "BKE_customdata.h"
#include "bmesh.h"
#include "intern/bmesh_operators_private.h"
Go to the source code of this file.
Classes | |
struct | DelimitData_CD |
struct | DelimitData |
Macros | |
#define | EDGE_MARK (1 << 0) |
#define | FACE_OUT (1 << 0) |
#define | FACE_INPUT (1 << 2) |
Functions | |
static float | quad_calc_error (const float v1[3], const float v2[3], const float v3[3], const float v4[3]) |
static void | bm_edge_to_quad_verts (const BMEdge *e, const BMVert *r_v_quad[4]) |
static bool | bm_edge_is_contiguous_loop_cd_all (const BMEdge *e, const struct DelimitData_CD *delimit_data) |
static bool | bm_edge_delimit_cdata (CustomData *ldata, eCustomDataType type, struct DelimitData_CD *r_delim_cd) |
static float | bm_edge_is_delimit (const BMEdge *e, const struct DelimitData *delimit_data) |
void | bmo_join_triangles_exec (BMesh *bm, BMOperator *op) |
Convert triangle to quads.
TODO
Definition in file bmo_join_triangles.c.
#define EDGE_MARK (1 << 0) |
Definition at line 234 of file bmo_join_triangles.c.
#define FACE_INPUT (1 << 2) |
Definition at line 237 of file bmo_join_triangles.c.
#define FACE_OUT (1 << 0) |
Definition at line 236 of file bmo_join_triangles.c.
|
static |
Definition at line 147 of file bmo_join_triangles.c.
References DelimitData_CD::cd_offset, DelimitData_CD::cd_offset_end, DelimitData_CD::cd_size, DelimitData_CD::cd_type, CustomData_get_n_offset(), CustomData_number_of_layers(), CustomData_sizeof(), and type.
Referenced by bmo_join_triangles_exec().
|
static |
Definition at line 133 of file bmo_join_triangles.c.
References BM_edge_is_contiguous_loop_cd(), DelimitData_CD::cd_offset, DelimitData_CD::cd_offset_end, DelimitData_CD::cd_size, DelimitData_CD::cd_type, and e.
Referenced by bm_edge_is_delimit().
|
static |
Definition at line 159 of file bmo_join_triangles.c.
References angle(), DelimitData::angle_face__cos, angle_normalized_v3v3(), DelimitData::angle_shape, BM_edge_is_contiguous(), bm_edge_is_contiguous_loop_cd_all(), bm_edge_to_quad_verts(), BM_elem_flag_test, BM_ELEM_SEAM, BM_ELEM_SMOOTH, DelimitData::cdata, DelimitData::cdata_len, DelimitData::do_angle_face, DelimitData::do_angle_shape, DelimitData::do_mat, DelimitData::do_seam, DelimitData::do_sharp, dot_v3v3(), e, fabsf, is_quad_flip_v3(), M_PI_2, BMFace::mat_nr, BMFace::no, normalize_v3(), sub_v3_v3v3(), and verts.
Referenced by bmo_join_triangles_exec().
Definition at line 99 of file bmo_join_triangles.c.
References BLI_assert, BM_edge_is_manifold(), and e.
Referenced by bm_edge_is_delimit(), and bmo_join_triangles_exec().
void bmo_join_triangles_exec | ( | BMesh * | bm, |
BMOperator * | op | ||
) |
Definition at line 239 of file bmo_join_triangles.c.
References DelimitData::angle_face, DelimitData::angle_face__cos, DelimitData::angle_shape, BLI_sortutil_cmp_float(), bm, bm_edge_delimit_cdata(), BM_edge_face_pair(), bm_edge_is_delimit(), bm_edge_to_quad_verts(), BM_EDGES_OF_MESH, BM_FACE, BM_faces_join_pair(), BM_ITER_MESH, BMO_edge_flag_enable, BMO_edge_flag_test, BMO_face_flag_enable, BMO_face_flag_test, BMO_ITER, BMO_slot_bool_get(), BMO_slot_buffer_from_enabled_flag(), BMO_slot_float_get(), CD_MLOOPUV, DelimitData_CD::cd_offset, CD_PROP_BYTE_COLOR, DelimitData::cdata, DelimitData::cdata_len, cosf, SortPtrByFloat::data, DEG2RADF, DelimitData::do_angle_face, DelimitData::do_angle_shape, DelimitData::do_mat, DelimitData::do_seam, DelimitData::do_sharp, e, EDGE_MARK, error(), BMLoop::f, FACE_INPUT, FACE_OUT, l_b, BMesh::ldata, BMFace::len, MEM_freeN, MEM_mallocN, quad_calc_error(), BMOperator::slots_in, BMOperator::slots_out, SortPtrByFloat::sort_value, and verts.
|
static |
Definition at line 26 of file bmo_join_triangles.c.
References angle_normalized_v3v3(), area_tri_v3(), compare_v3v3(), KDL::diff(), error(), fabsf, M_PI, M_PI_2, max_ff(), min_ff(), normal_tri_v3(), normalize_v3(), sub_v3_v3v3(), v1, and v2.
Referenced by bmo_join_triangles_exec().