48 "find_doubles verts=%av keep_verts=%Hv dist=%f",
56 BMO_slot_copy(&findop, slots_out,
"targetmap.out", &weldop, slots_in,
"targetmap");
66 .calc_normals = false,
67 .is_destructive = true,
81 const bool UNUSED(split_edges),
82 const bool split_faces,
122 printf(
"t1: %lf; t2: %lf; fac: %lf\n", t1, t2, t1 / t2);
128 .calc_looptri = true,
129 .calc_normals = false,
130 .is_destructive = true,
BMEditMesh * BKE_editmesh_from_object(struct Object *ob)
Return the BMEditMesh for a given object.
Object is a sort of wrapper for general info.
void EDBM_update(struct Mesh *me, const struct EDBMUpdate_Params *params)
Platform independent time functions.
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.
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.
BMOpSlot * BMO_slot_get(BMOpSlot slot_args[BMO_OP_MAX_SLOTS], const char *identifier)
BMESH OPSTACK GET SLOT.
#define BMO_FLAG_DEFAULTS
void EDBM_automerge_and_split(Object *obedit, const bool UNUSED(split_edges), const bool split_faces, const bool update, const char hflag, const float dist)
void EDBM_automerge(Object *obedit, bool update, const char hflag, const float dist)
static void update(bNodeTree *ntree)
struct BMOpSlot slots_in[BMO_OP_MAX_SLOTS]
double PIL_check_seconds_timer(void)