Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCampbell Barton <ideasman42@gmail.com>2013-05-10 10:46:32 +0400
committerCampbell Barton <ideasman42@gmail.com>2013-05-10 10:46:32 +0400
commit7a547e441b2a107148a9c0abb3b8badbb728abef (patch)
tree10b112c9faf70e286c70d4e5afd9cbe8192a2ab1 /source/blender/editors/uvedit/uvedit_buttons.c
parent3a309a8313518b19d9ca9a869432b075f82654fb (diff)
avoid customdata lookups for selection test/enable disable.
also add uvedit_face_select_set, uvedit_edge_select_set, uvedit_uv_select_set - since quite a few areas where setting based on a boolean.
Diffstat (limited to 'source/blender/editors/uvedit/uvedit_buttons.c')
-rw-r--r--source/blender/editors/uvedit/uvedit_buttons.c20
1 files changed, 13 insertions, 7 deletions
diff --git a/source/blender/editors/uvedit/uvedit_buttons.c b/source/blender/editors/uvedit/uvedit_buttons.c
index 064a51a639f..e648caf51d2 100644
--- a/source/blender/editors/uvedit/uvedit_buttons.c
+++ b/source/blender/editors/uvedit/uvedit_buttons.c
@@ -71,17 +71,20 @@ static int uvedit_center(Scene *scene, BMEditMesh *em, Image *ima, float center[
BMIter iter, liter;
MTexPoly *tf;
MLoopUV *luv;
- int tot = 0.0;
+ int tot = 0;
+
+ const int cd_loop_uv_offset = CustomData_get_offset(&em->bm->ldata, CD_MLOOPUV);
+ const int cd_poly_tex_offset = CustomData_get_offset(&em->bm->pdata, CD_MTEXPOLY);
zero_v2(center);
BM_ITER_MESH (f, &iter, em->bm, BM_FACES_OF_MESH) {
- tf = CustomData_bmesh_get(&em->bm->pdata, f->head.data, CD_MTEXPOLY);
+ tf = BM_ELEM_CD_GET_VOID_P(f, cd_poly_tex_offset);
if (!uvedit_face_visible_test(scene, ima, f, tf))
continue;
BM_ITER_ELEM (l, &liter, f, BM_LOOPS_OF_FACE) {
- luv = CustomData_bmesh_get(&em->bm->ldata, l->head.data, CD_MLOOPUV);
- if (uvedit_uv_select_test(em, scene, l)) {
+ if (uvedit_uv_select_test(scene, l, cd_loop_uv_offset)) {
+ luv = BM_ELEM_CD_GET_VOID_P(l, cd_loop_uv_offset);
add_v2_v2(center, luv->uv);
tot++;
}
@@ -103,15 +106,18 @@ static void uvedit_translate(Scene *scene, BMEditMesh *em, Image *ima, float del
BMIter iter, liter;
MLoopUV *luv;
MTexPoly *tf;
+
+ const int cd_loop_uv_offset = CustomData_get_offset(&em->bm->ldata, CD_MLOOPUV);
+ const int cd_poly_tex_offset = CustomData_get_offset(&em->bm->pdata, CD_MTEXPOLY);
BM_ITER_MESH (f, &iter, em->bm, BM_FACES_OF_MESH) {
- tf = CustomData_bmesh_get(&em->bm->pdata, f->head.data, CD_MTEXPOLY);
+ tf = BM_ELEM_CD_GET_VOID_P(f, cd_poly_tex_offset);
if (!uvedit_face_visible_test(scene, ima, f, tf))
continue;
BM_ITER_ELEM (l, &liter, f, BM_LOOPS_OF_FACE) {
- luv = CustomData_bmesh_get(&em->bm->ldata, l->head.data, CD_MLOOPUV);
- if (uvedit_uv_select_test(em, scene, l)) {
+ if (uvedit_uv_select_test(scene, l, cd_loop_uv_offset)) {
+ luv = BM_ELEM_CD_GET_VOID_P(l, cd_loop_uv_offset);
add_v2_v2(luv->uv, delta);
}
}