예제 #1
0
/* converts a cddm to a BMEditMesh.  if existing is non-NULL, the
 * new geometry will be put in there.*/
BMEditMesh *DM_to_editbmesh(DerivedMesh *dm, BMEditMesh *existing, const bool do_tessellate)
{
	BMEditMesh *em = existing;
	BMesh *bm;

	if (em) {
		bm = em->bm;
	}
	else {
		bm = BM_mesh_create(&bm_mesh_allocsize_default);
	}

	DM_to_bmesh_ex(dm, bm, do_tessellate);

	if (!em) {
		em = BKE_editmesh_create(bm, do_tessellate);
	}
	else {
		if (do_tessellate) {
			BKE_editmesh_tessface_calc(em);
		}
	}

	return em;
}
예제 #2
0
BMesh *BKE_mesh_to_bmesh(Mesh *me, Object *ob)
{
	BMesh *bm;

	bm = BM_mesh_create(&bm_mesh_allocsize_default);

	BM_mesh_bm_from_me(bm, me, false, true, ob->shapenr);

	return bm;
}
예제 #3
0
void bc_triangulate_mesh(Mesh *me) {
	bool use_beauty = false;
	bool tag_only   = false;
	 
	BMesh *bm = BM_mesh_create(&bm_mesh_allocsize_default);
	BM_mesh_bm_from_me(bm, me, FALSE, 0);
	BM_mesh_triangulate(bm, use_beauty, tag_only, NULL, NULL);
	BM_mesh_bm_to_me(bm, me, FALSE);
	BM_mesh_free(bm);
}
예제 #4
0
BMesh *DM_to_bmesh(DerivedMesh *dm, const bool calc_face_normal)
{
	BMesh *bm;

	bm = BM_mesh_create(&bm_mesh_allocsize_default);

	DM_to_bmesh_ex(dm, bm, calc_face_normal);

	return bm;
}
예제 #5
0
BMesh *DM_to_bmesh(DerivedMesh *dm)
{
	BMesh *bm;

	bm = BM_mesh_create(&bm_mesh_allocsize_default);

	DM_to_bmesh_ex(dm, bm);

	return bm;
}
BMesh *DM_to_bmesh(DerivedMesh *dm, const bool calc_face_normal)
{
	BMesh *bm;
	const BMAllocTemplate allocsize = BMALLOC_TEMPLATE_FROM_DM(dm);

	bm = BM_mesh_create(&allocsize);

	DM_to_bmesh_ex(dm, bm, calc_face_normal);

	return bm;
}
예제 #7
0
파일: mesh.c 프로젝트: Moguri/blender-old
BMesh *BKE_mesh_to_bmesh(Mesh *me, Object *ob)
{
	BMesh *bm;
	const BMAllocTemplate allocsize = BMALLOC_TEMPLATE_FROM_ME(me);

	bm = BM_mesh_create(&allocsize);

	BM_mesh_bm_from_me(bm, me, false, true, ob->shapenr);

	return bm;
}
void bc_triangulate_mesh(Mesh *me)
{
	bool use_beauty  = false;
	bool tag_only    = false;
	int  quad_method = MOD_TRIANGULATE_QUAD_SHORTEDGE; /* XXX: The triangulation method selection could be offered in the UI */
	 
	BMesh *bm = BM_mesh_create(&bm_mesh_allocsize_default);
	BM_mesh_bm_from_me(bm, me, true, false, 0);
	BM_mesh_triangulate(bm, quad_method, use_beauty, tag_only, NULL, NULL);

	BM_mesh_bm_to_me(bm, me, false);
	BM_mesh_free(bm);
}
예제 #9
0
void bc_triangulate_mesh(Mesh *me)
{
	bool use_beauty  = false;
	bool tag_only    = false;
	int  quad_method = MOD_TRIANGULATE_QUAD_SHORTEDGE; /* XXX: The triangulation method selection could be offered in the UI */

	const struct BMeshCreateParams bm_create_params = {0};
	BMesh *bm = BM_mesh_create(
	        &bm_mesh_allocsize_default,
	        &bm_create_params);
	BMeshFromMeshParams bm_from_me_params = {0};
	bm_from_me_params.calc_face_normal = true;
	BM_mesh_bm_from_me(bm, me, &bm_from_me_params);
	BM_mesh_triangulate(bm, quad_method, use_beauty, tag_only, NULL, NULL, NULL);

	BMeshToMeshParams bm_to_me_params = {0};
	BM_mesh_bm_to_me(bm, me, &bm_to_me_params);
	BM_mesh_free(bm);
}