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:
authorDalai Felinto <dfelinto@gmail.com>2017-04-11 16:14:49 +0300
committerDalai Felinto <dfelinto@gmail.com>2017-04-11 16:46:01 +0300
commit9a303d5db789198f8ba3e46d1e482a6b22a67ffe (patch)
tree0c1085cd5a4ab60a8aa7d5655fc4edaaf2ef5cc8 /source/blender/editors/transform
parent513aacbdb6e425005eee6d83fdca0f06f6e6e374 (diff)
Bring snapping back (Base / BaseLegacy)
Diffstat (limited to 'source/blender/editors/transform')
-rw-r--r--source/blender/editors/transform/transform_snap.c8
-rw-r--r--source/blender/editors/transform/transform_snap_object.c16
2 files changed, 13 insertions, 11 deletions
diff --git a/source/blender/editors/transform/transform_snap.c b/source/blender/editors/transform/transform_snap.c
index 02975f73816..a37ca83dcf1 100644
--- a/source/blender/editors/transform/transform_snap.c
+++ b/source/blender/editors/transform/transform_snap.c
@@ -78,7 +78,7 @@
#include "transform.h"
/* this should be passed as an arg for use in snap functions */
-#undef BASACT
+#undef BASACT_NEW
/* use half of flt-max so we can scale up without an exception */
@@ -503,8 +503,8 @@ static void initSnappingMode(TransInfo *t)
{
ToolSettings *ts = t->settings;
Object *obedit = t->obedit;
- Scene *scene = t->scene;
- BaseLegacy *base_act = scene->basact;
+ SceneLayer *sl = t->sl;
+ Base *base_act = sl->basact;
if (t->spacetype == SPACE_NODE) {
/* force project off when not supported */
@@ -585,7 +585,7 @@ static void initSnappingMode(TransInfo *t)
if (t->spacetype == SPACE_VIEW3D) {
if (t->tsnap.object_context == NULL) {
t->tsnap.object_context = ED_transform_snap_object_context_create_view3d(
- G.main, t->scene, 0,
+ G.main, t->scene, t->sl, 0,
t->ar, t->view);
ED_transform_snap_object_context_set_editmesh_callbacks(
diff --git a/source/blender/editors/transform/transform_snap_object.c b/source/blender/editors/transform/transform_snap_object.c
index 587a62d017d..58474bedb52 100644
--- a/source/blender/editors/transform/transform_snap_object.c
+++ b/source/blender/editors/transform/transform_snap_object.c
@@ -101,6 +101,7 @@ typedef struct SnapObjectData_EditMesh {
struct SnapObjectContext {
Main *bmain;
Scene *scene;
+ SceneLayer *scene_layer;
int flag;
/* Optional: when performing screen-space projection.
@@ -1770,7 +1771,7 @@ static bool snapObjectsRay(
*
* To solve that problem, we do it first as an exception.
* */
- BaseLegacy *base_act = sctx->scene->basact;
+ Base *base_act = sctx->scene_layer->basact;
if (base_act && base_act->object && base_act->object->mode & OB_MODE_PARTICLE_EDIT) {
Object *ob = base_act->object;
@@ -1791,11 +1792,11 @@ static bool snapObjectsRay(
ignore_object_active = true;
break;
}
- for (BaseLegacy *base = sctx->scene->base.first; base != NULL; base = base->next) {
- if ((BASE_VISIBLE_BGMODE(sctx->v3d_data.v3d, sctx->scene, base)) &&
+ for (Base *base = sctx->scene_layer->object_bases.first; base != NULL; base = base->next) {
+ if ((BASE_VISIBLE_NEW(base)) &&
(base->flag_legacy & (BA_HAS_RECALC_OB | BA_HAS_RECALC_DATA)) == 0 &&
- !((ignore_object_selected && (base->flag_legacy & (SELECT | BA_WAS_SEL))) ||
+ !((ignore_object_selected && (((base->flag & BASE_SELECTED) != 0) || ((base->flag_legacy & BA_WAS_SEL)))) ||
(ignore_object_active && base == base_act)))
{
Object *ob = base->object;
@@ -1840,7 +1841,7 @@ static bool snapObjectsRay(
* \{ */
SnapObjectContext *ED_transform_snap_object_context_create(
- Main *bmain, Scene *scene, int flag)
+ Main *bmain, Scene *scene, SceneLayer *sl, int flag)
{
SnapObjectContext *sctx = MEM_callocN(sizeof(*sctx), __func__);
@@ -1848,6 +1849,7 @@ SnapObjectContext *ED_transform_snap_object_context_create(
sctx->bmain = bmain;
sctx->scene = scene;
+ sctx->scene_layer = sl;
sctx->cache.object_map = BLI_ghash_ptr_new(__func__);
sctx->cache.mem_arena = BLI_memarena_new(BLI_MEMARENA_STD_BUFSIZE, __func__);
@@ -1856,11 +1858,11 @@ SnapObjectContext *ED_transform_snap_object_context_create(
}
SnapObjectContext *ED_transform_snap_object_context_create_view3d(
- Main *bmain, Scene *scene, int flag,
+ Main *bmain, Scene *scene, SceneLayer *sl, int flag,
/* extra args for view3d */
const ARegion *ar, const View3D *v3d)
{
- SnapObjectContext *sctx = ED_transform_snap_object_context_create(bmain, scene, flag);
+ SnapObjectContext *sctx = ED_transform_snap_object_context_create(bmain, scene, sl, flag);
sctx->use_v3d = true;
sctx->v3d_data.ar = ar;