Blender V4.3
bmo_join_triangles.cc File Reference
#include "MEM_guardedalloc.h"
#include "BLI_math_geom.h"
#include "BLI_math_rotation.h"
#include "BLI_math_vector.h"
#include "BLI_sort_utils.h"
#include "BKE_customdata.hh"
#include "bmesh.hh"
#include "intern/bmesh_operators_private.hh"

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 DelimitData_CD *delimit_data)
 
static bool bm_edge_delimit_cdata (CustomData *ldata, eCustomDataType type, DelimitData_CD *r_delim_cd)
 
static float bm_edge_is_delimit (const BMEdge *e, const DelimitData *delimit_data)
 
void bmo_join_triangles_exec (BMesh *bm, BMOperator *op)
 

Detailed Description

Convert triangle to quads.

TODO

  • convert triangles to any sided faces, not just quads.

Definition in file bmo_join_triangles.cc.

Macro Definition Documentation

◆ EDGE_MARK

#define EDGE_MARK   (1 << 0)

Definition at line 239 of file bmo_join_triangles.cc.

Referenced by bmo_join_triangles_exec().

◆ FACE_INPUT

#define FACE_INPUT   (1 << 2)

Definition at line 242 of file bmo_join_triangles.cc.

Referenced by bmo_join_triangles_exec().

◆ FACE_OUT

#define FACE_OUT   (1 << 0)

Definition at line 241 of file bmo_join_triangles.cc.

Referenced by bmo_join_triangles_exec().

Function Documentation

◆ bm_edge_delimit_cdata()

◆ bm_edge_is_contiguous_loop_cd_all()

static bool bm_edge_is_contiguous_loop_cd_all ( const BMEdge * e,
const DelimitData_CD * delimit_data )
static

◆ bm_edge_is_delimit()

◆ bm_edge_to_quad_verts()

static void bm_edge_to_quad_verts ( const BMEdge * e,
const BMVert * r_v_quad[4] )
static

Definition at line 103 of file bmo_join_triangles.cc.

References BLI_assert, BM_edge_is_manifold(), and e.

Referenced by bm_edge_is_delimit(), and bmo_join_triangles_exec().

◆ bmo_join_triangles_exec()

◆ quad_calc_error()

static float quad_calc_error ( const float v1[3],
const float v2[3],
const float v3[3],
const float v4[3] )
static
Note
Assumes edges are validated before reaching this point.

Definition at line 30 of file bmo_join_triangles.cc.

References angle_normalized_v3v3(), area_tri_v3(), compare_v3v3(), diff(), error(), fabsf, M_PI, M_PI_2, max_ff(), min_ff(), normal_tri_v3(), normalize_v3(), sub_v3_v3v3(), and v2.

Referenced by bmo_join_triangles_exec().