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:
authorClément Foucault <foucault.clem@gmail.com>2019-02-04 03:12:05 +0300
committerClément Foucault <foucault.clem@gmail.com>2019-02-05 17:02:15 +0300
commitf3f2602c88d866db6052ed03bbec1c9da4183e57 (patch)
tree502f6da9f6a0dc479563005a4b39aa85c5d69e27 /source/blender/editors/uvedit
parente1b5fe156db2871ae0eb32d0af3e1c5fb8a7507a (diff)
UVEdit: Add function variants based on ToolSettings
This is better than passing a scene pointer when we don't have one.
Diffstat (limited to 'source/blender/editors/uvedit')
-rw-r--r--source/blender/editors/uvedit/uvedit_ops.c49
1 files changed, 30 insertions, 19 deletions
diff --git a/source/blender/editors/uvedit/uvedit_ops.c b/source/blender/editors/uvedit/uvedit_ops.c
index 0d49d4bbaa2..e67c7828194 100644
--- a/source/blender/editors/uvedit/uvedit_ops.c
+++ b/source/blender/editors/uvedit/uvedit_ops.c
@@ -235,35 +235,38 @@ static void uvedit_vertex_select_tagged(BMEditMesh *em, Scene *scene, bool selec
}
}
-bool uvedit_face_visible_nolocal(Scene *scene, BMFace *efa)
+bool uvedit_face_visible_nolocal_ex(const ToolSettings *ts, BMFace *efa)
{
- ToolSettings *ts = scene->toolsettings;
-
if (ts->uv_flag & UV_SYNC_SELECTION)
return (BM_elem_flag_test(efa, BM_ELEM_HIDDEN) == 0);
else
return (BM_elem_flag_test(efa, BM_ELEM_HIDDEN) == 0 && BM_elem_flag_test(efa, BM_ELEM_SELECT));
}
-
-bool uvedit_face_visible_test(Scene *scene, Object *obedit, Image *ima, BMFace *efa)
+bool uvedit_face_visible_nolocal(Scene *scene, BMFace *efa)
{
- ToolSettings *ts = scene->toolsettings;
+ return uvedit_face_visible_nolocal_ex(scene->toolsettings, efa);
+}
+bool uvedit_face_visible_test_ex(const ToolSettings *ts, Object *obedit, Image *ima, BMFace *efa)
+{
if (ts->uv_flag & UV_SHOW_SAME_IMAGE) {
Image *face_image;
ED_object_get_active_image(obedit, efa->mat_nr + 1, &face_image, NULL, NULL, NULL);
- return (face_image == ima) ? uvedit_face_visible_nolocal(scene, efa) : false;
+ return (face_image == ima) ? uvedit_face_visible_nolocal_ex(ts, efa) : false;
}
else {
- return uvedit_face_visible_nolocal(scene, efa);
+ return uvedit_face_visible_nolocal_ex(ts, efa);
}
}
+bool uvedit_face_visible_test(Scene *scene, Object *obedit, Image *ima, BMFace *efa)
+{
+ return uvedit_face_visible_test_ex(scene->toolsettings, obedit, ima, efa);
+}
-bool uvedit_face_select_test(
- Scene *scene, BMFace *efa,
+bool uvedit_face_select_test_ex(
+ const ToolSettings *ts, BMFace *efa,
const int cd_loop_uv_offset)
{
- ToolSettings *ts = scene->toolsettings;
if (ts->uv_flag & UV_SYNC_SELECTION) {
return (BM_elem_flag_test(efa, BM_ELEM_SELECT));
}
@@ -281,6 +284,10 @@ bool uvedit_face_select_test(
return true;
}
}
+bool uvedit_face_select_test(Scene *scene, BMFace *efa, const int cd_loop_uv_offset)
+{
+ return uvedit_face_select_test_ex(scene->toolsettings, efa, cd_loop_uv_offset);
+}
bool uvedit_face_select_set(
struct Scene *scene, struct BMEditMesh *em, struct BMFace *efa, const bool select,
@@ -347,12 +354,10 @@ bool uvedit_face_select_disable(
return false;
}
-bool uvedit_edge_select_test(
- Scene *scene, BMLoop *l,
+bool uvedit_edge_select_test_ex(
+ const ToolSettings *ts, BMLoop *l,
const int cd_loop_uv_offset)
{
- ToolSettings *ts = scene->toolsettings;
-
if (ts->uv_flag & UV_SYNC_SELECTION) {
if (ts->selectmode & SCE_SELECT_FACE) {
return BM_elem_flag_test(l->f, BM_ELEM_SELECT);
@@ -374,6 +379,10 @@ bool uvedit_edge_select_test(
return (luv1->flag & MLOOPUV_VERTSEL) && (luv2->flag & MLOOPUV_VERTSEL);
}
}
+bool uvedit_edge_select_test(Scene *scene, BMLoop *l, const int cd_loop_uv_offset)
+{
+ return uvedit_edge_select_test_ex(scene->toolsettings, l, cd_loop_uv_offset);
+}
void uvedit_edge_select_set(
BMEditMesh *em, Scene *scene, BMLoop *l, const bool select,
@@ -448,12 +457,10 @@ void uvedit_edge_select_disable(
}
}
-bool uvedit_uv_select_test(
- Scene *scene, BMLoop *l,
+bool uvedit_uv_select_test_ex(
+ const ToolSettings *ts, BMLoop *l,
const int cd_loop_uv_offset)
{
- ToolSettings *ts = scene->toolsettings;
-
if (ts->uv_flag & UV_SYNC_SELECTION) {
if (ts->selectmode & SCE_SELECT_FACE)
return BM_elem_flag_test_bool(l->f, BM_ELEM_SELECT);
@@ -465,6 +472,10 @@ bool uvedit_uv_select_test(
return (luv->flag & MLOOPUV_VERTSEL) != 0;
}
}
+bool uvedit_uv_select_test(Scene *scene, BMLoop *l, const int cd_loop_uv_offset)
+{
+ return uvedit_uv_select_test_ex(scene->toolsettings, l, cd_loop_uv_offset);
+}
void uvedit_uv_select_set(
BMEditMesh *em, Scene *scene, BMLoop *l, const bool select,