49 "find_doubles verts=%av keep_verts=%Hv dist=%f",
57 BMO_slot_copy(&findop, slots_out,
"targetmap.out", &weldop, slots_in,
"targetmap");
64 params.calc_looptris =
true;
65 params.calc_normals =
false;
66 params.is_destructive =
true;
82 const bool split_faces,
122 printf(
"t1: %lf; t2: %lf; fac: %lf\n", t1, t2, t1 / t2);
127 params.calc_looptris =
true;
128 params.calc_normals =
false;
129 params.is_destructive =
true;
BMEditMesh * BKE_editmesh_from_object(Object *ob)
Return the BMEditMesh for a given object.
Platform independent time functions.
double BLI_time_now_seconds(void)
Object is a sort of wrapper for general info.
void EDBM_update(Mesh *mesh, const EDBMUpdate_Params *params)
BMesh * BM_mesh_copy(BMesh *bm_old)
bool BM_mesh_intersect_edges(BMesh *bm, const char hflag, const float dist, const bool split_faces, GHash *r_targetmap)
ATTR_WARN_UNUSED_RESULT BMesh * bm
void BM_mesh_free(BMesh *bm)
BMesh Free Mesh.
BMOpSlot * BMO_slot_get(BMOpSlot slot_args[BMO_OP_MAX_SLOTS], const char *identifier)
BMESH OPSTACK GET SLOT.
void BMO_op_exec(BMesh *bm, BMOperator *op)
BMESH OPSTACK EXEC OP.
#define BMO_slot_copy(op_src, slots_src, slot_name_src, op_dst, slots_dst, slot_name_dst)
#define BMO_SLOT_AS_GHASH(slot)
void BMO_op_init(BMesh *bm, BMOperator *op, int flag, const char *opname)
BMESH OPSTACK INIT OP.
bool BMO_op_initf(BMesh *bm, BMOperator *op, int flag, const char *fmt,...)
void BMO_op_finish(BMesh *bm, BMOperator *op)
BMESH OPSTACK FINISH OP.
#define BMO_FLAG_DEFAULTS
void EDBM_automerge(Object *obedit, bool update, const char hflag, const float dist)
void EDBM_automerge_and_split(Object *obedit, const bool, const bool split_faces, const bool update, const char hflag, const float dist)
static void update(bNodeTree *ntree)
struct BMOpSlot slots_in[BMO_OP_MAX_SLOTS]