diff options
-rw-r--r-- | source/blender/bmesh/CMakeLists.txt | 3 | ||||
-rw-r--r-- | source/blender/bmesh/bmesh.h | 40 | ||||
-rw-r--r-- | source/blender/bmesh/bmesh_marking.h | 5 | ||||
-rw-r--r-- | source/blender/bmesh/intern/bmesh_core.c (renamed from source/blender/bmesh/intern/bmesh_newcore.c) | 0 | ||||
-rw-r--r-- | source/blender/bmesh/intern/bmesh_private.h | 13 | ||||
-rw-r--r-- | source/blender/bmesh/intern/bmesh_structure.c | 18 |
6 files changed, 20 insertions, 59 deletions
diff --git a/source/blender/bmesh/CMakeLists.txt b/source/blender/bmesh/CMakeLists.txt index f7dacef88d3..93850afd768 100644 --- a/source/blender/bmesh/CMakeLists.txt +++ b/source/blender/bmesh/CMakeLists.txt @@ -88,7 +88,7 @@ set(SRC intern/bmesh_marking.c intern/bmesh_mesh.c intern/bmesh_mods.c - intern/bmesh_newcore.c + intern/bmesh_core.c intern/bmesh_opdefines.c intern/bmesh_operator_api_inline.c intern/bmesh_operators.c @@ -107,6 +107,7 @@ set(SRC bmesh.h bmesh_class.h bmesh_error.h + bmesh_interp.h bmesh_iterators.h bmesh_marking.h bmesh_operator_api.h diff --git a/source/blender/bmesh/bmesh.h b/source/blender/bmesh/bmesh.h index fd1b962a333..ce3d1315f91 100644 --- a/source/blender/bmesh/bmesh.h +++ b/source/blender/bmesh/bmesh.h @@ -397,33 +397,6 @@ int BM_vert_dissolve(BMesh *bm, BMVert *v); * space, so there might be accuracy issues.*/ int BM_face_point_inside_test(BMesh *bm, BMFace *f, const float co[3]); -/* Interpolation */ - -/* projects target onto source for customdata interpolation. note: only - * does loop customdata. multires is handled. */ -void BM_face_interp_from_face(BMesh *bm, BMFace *target, BMFace *source); - -/* projects a single loop, target, onto source for customdata interpolation. multires is handled. - * if do_vertex is true, target's vert data will also get interpolated.*/ -void BM_loop_interp_from_face(BMesh *bm, BMLoop *target, BMFace *source, - int do_vertex, int do_multires); - -/* smoothes boundaries between multires grids, including some borders in adjacent faces */ -void BM_face_multires_bounds_smooth(BMesh *bm, BMFace *f); - -/* project the multires grid in target onto source's set of multires grids */ -void BM_loop_interp_multires(BMesh *bm, BMLoop *target, BMFace *source); -void BM_vert_interp_from_face(BMesh *bm, BMVert *v, BMFace *source); - -void BM_data_interp_from_verts(BMesh *bm, BMVert *v1, BMVert *v2, BMVert *v, const float fac); -void BM_data_interp_face_vert_edge(BMesh *bm, BMVert *v1, BMVert *v2, BMVert *v, BMEdge *e1, const float fac); -void BM_data_layer_add(BMesh *em, CustomData *data, int type); -void BM_data_layer_add_named(BMesh *bm, CustomData *data, int type, const char *name); -void BM_data_layer_free(BMesh *em, CustomData *data, int type); -void BM_data_layer_free_n(BMesh *bm, CustomData *data, int type, int n); -float BM_elem_float_data_get(CustomData *cd, void *element, int type); -void BM_elem_float_data_set(CustomData *cd, void *element, int type, const float val); - /* get the area of the face */ float BM_face_area_calc(BMesh *bm, BMFace *f); /* computes the centroid of a face, using the center of the bounding box */ @@ -431,12 +404,6 @@ void BM_face_center_bounds_calc(BMesh *bm, BMFace *f, float center[3]); /* computes the centroid of a face, using the mean average */ void BM_face_center_mean_calc(BMesh *bm, BMFace *f, float center[3]); -void BM_mesh_select_mode_flush(BMesh *bm); - -/* mode independent flushing up/down */ -void BM_mesh_deselect_flush(BMesh *bm); -void BM_mesh_select_flush(BMesh *bm); - /* flag conversion funcs */ char BM_face_flag_from_mflag(const char mflag); char BM_edge_flag_from_mflag(const short mflag); @@ -446,12 +413,6 @@ char BM_face_flag_to_mflag(BMFace *f); short BM_edge_flag_to_mflag(BMEdge *e); char BM_vert_flag_to_mflag(BMVert *v); - -/* convert MLoop*** in a bmface to mtface and mcol in - * an MFace*/ -void BM_loops_to_corners(BMesh *bm, struct Mesh *me, int findex, - BMFace *f, int numTex, int numCol); - void BM_loop_kill(BMesh *bm, BMLoop *l); void BM_face_kill(BMesh *bm, BMFace *f); void BM_edge_kill(BMesh *bm, BMEdge *e); @@ -504,6 +465,7 @@ void bmesh_edit_end(BMesh *bm, int flag); #include "bmesh_operators.h" #include "bmesh_error.h" #include "bmesh_queries.h" +#include "bmesh_interp.h" #include "bmesh_iterators.h" #include "bmesh_walkers.h" #include "intern/bmesh_inline.c" diff --git a/source/blender/bmesh/bmesh_marking.h b/source/blender/bmesh/bmesh_marking.h index 3f9f666ab3f..03e0c911e7e 100644 --- a/source/blender/bmesh/bmesh_marking.h +++ b/source/blender/bmesh/bmesh_marking.h @@ -57,6 +57,11 @@ void BM_edge_select_set(BMesh *bm, BMEdge *e, int select); void BM_face_select_set(BMesh *bm, BMFace *f, int select); void BM_select_mode_set(BMesh *bm, int selectmode); +void BM_mesh_select_mode_flush(BMesh *bm); + +/* mode independent flushing up/down */ +void BM_mesh_deselect_flush(BMesh *bm); +void BM_mesh_select_flush(BMesh *bm); /* counts number of elements with flag set */ int BM_mesh_count_flag(BMesh *bm, const char htype, const char hflag, int respecthide); diff --git a/source/blender/bmesh/intern/bmesh_newcore.c b/source/blender/bmesh/intern/bmesh_core.c index 8b1693cba95..8b1693cba95 100644 --- a/source/blender/bmesh/intern/bmesh_newcore.c +++ b/source/blender/bmesh/intern/bmesh_core.c diff --git a/source/blender/bmesh/intern/bmesh_private.h b/source/blender/bmesh/intern/bmesh_private.h index 7147f20013b..5b42788fe88 100644 --- a/source/blender/bmesh/intern/bmesh_private.h +++ b/source/blender/bmesh/intern/bmesh_private.h @@ -40,14 +40,14 @@ int bmesh_elem_check(BMesh *bm, void *element, const char htype); #define BM_CHECK_ELEMENT(bm, el) \ - if (bmesh_elem_check(bm, el, ((BMHeader *)el)->htype)) { \ + if (bmesh_elem_check(bm, el, ((BMHeader *)el)->htype)) { \ printf("check_element failure, with code %i on line %i in file\n" \ " \"%s\"\n\n", \ - bmesh_elem_check(bm, el, ((BMHeader *)el)->htype), \ + bmesh_elem_check(bm, el, ((BMHeader *)el)->htype), \ __LINE__, __FILE__); \ } -#define BM_EDGE_DISK_LINK_GET(e, v) ( \ +#define BM_DISK_EDGE_LINK_GET(e, v) ( \ ((v) == ((BMEdge *)(e))->v1) ? \ &((e)->v1_disk_link) : \ &((e)->v2_disk_link) \ @@ -56,13 +56,6 @@ int bmesh_elem_check(BMesh *bm, void *element, const char htype); int bmesh_radial_length(BMLoop *l); int bmesh_disk_count(BMVert *v); -/* internal selection flushing */ -void bmesh_selectmode_flush(BMesh *bm); - -/*internal filter API*/ -void *bmesh_get_filter_callback(int type); -int bmesh_get_filter_argtype(int type); - /* NOTE: ensure different parts of the API do not conflict * on using these internal flags!*/ #define _FLAG_JF 1 /* join faces */ diff --git a/source/blender/bmesh/intern/bmesh_structure.c b/source/blender/bmesh/intern/bmesh_structure.c index 5dd2537400a..8dc6a5c6029 100644 --- a/source/blender/bmesh/intern/bmesh_structure.c +++ b/source/blender/bmesh/intern/bmesh_structure.c @@ -153,7 +153,7 @@ int bmesh_edge_swapverts(BMEdge *e, BMVert *orig, BMVert *newv) int bmesh_disk_edge_append(struct BMEdge *e, struct BMVert *v) { if (!v->e) { - BMDiskLink *dl1 = BM_EDGE_DISK_LINK_GET(e, v); + BMDiskLink *dl1 = BM_DISK_EDGE_LINK_GET(e, v); v->e = e; dl1->next = dl1->prev = e; @@ -161,9 +161,9 @@ int bmesh_disk_edge_append(struct BMEdge *e, struct BMVert *v) else { BMDiskLink *dl1, *dl2, *dl3; - dl1 = BM_EDGE_DISK_LINK_GET(e, v); - dl2 = BM_EDGE_DISK_LINK_GET(v->e, v); - dl3 = dl2->prev ? BM_EDGE_DISK_LINK_GET(dl2->prev, v) : NULL; + dl1 = BM_DISK_EDGE_LINK_GET(e, v); + dl2 = BM_DISK_EDGE_LINK_GET(v->e, v); + dl3 = dl2->prev ? BM_DISK_EDGE_LINK_GET(dl2->prev, v) : NULL; dl1->next = v->e; dl1->prev = dl2->prev; @@ -180,14 +180,14 @@ void bmesh_disk_edge_remove(struct BMEdge *e, struct BMVert *v) { BMDiskLink *dl1, *dl2; - dl1 = BM_EDGE_DISK_LINK_GET(e, v); + dl1 = BM_DISK_EDGE_LINK_GET(e, v); if (dl1->prev) { - dl2 = BM_EDGE_DISK_LINK_GET(dl1->prev, v); + dl2 = BM_DISK_EDGE_LINK_GET(dl1->prev, v); dl2->next = dl1->next; } if (dl1->next) { - dl2 = BM_EDGE_DISK_LINK_GET(dl1->next, v); + dl2 = BM_DISK_EDGE_LINK_GET(dl1->next, v); dl2->prev = dl1->prev; } @@ -215,7 +215,7 @@ struct BMEdge *bmesh_disk_edge_next(struct BMEdge *e, struct BMVert *v) return NULL; } -static BMEdge *bmesh_disk_prevedge(BMEdge *e, BMVert *v) +static BMEdge *bmesh_disk_edge_prev(BMEdge *e, BMVert *v) { if (v == e->v1) return e->v1_disk_link.prev; @@ -278,7 +278,7 @@ int bmesh_disk_validate(int len, BMEdge *e, BMVert *v) e_iter = e; do { - if (len != 1 && bmesh_disk_prevedge(e_iter, v) == e_iter) { + if (len != 1 && bmesh_disk_edge_prev(e_iter, v) == e_iter) { return FALSE; } } while ((e_iter = bmesh_disk_edge_next(e_iter, v)) != e); |