[Bf-blender-cvs] [c36cdb92d6] render-layers: Update selectable_bases to use ObjectBase
Dalai Felinto
noreply at git.blender.org
Mon Jan 16 18:01:57 CET 2017
Commit: c36cdb92d6435e10fd145b4720486f89e6267545
Author: Dalai Felinto
Date: Mon Jan 16 17:49:35 2017 +0100
Branches: render-layers
https://developer.blender.org/rBc36cdb92d6435e10fd145b4720486f89e6267545
Update selectable_bases to use ObjectBase
===================================================================
M source/blender/editors/object/object_select.c
M source/blender/editors/space_view3d/view3d_select.c
===================================================================
diff --git a/source/blender/editors/object/object_select.c b/source/blender/editors/object/object_select.c
index b8b77f484f..f0f075023c 100644
--- a/source/blender/editors/object/object_select.c
+++ b/source/blender/editors/object/object_select.c
@@ -511,7 +511,7 @@ enum {
OBJECT_GRPSEL_PARENT = 2,
OBJECT_GRPSEL_SIBLINGS = 3,
OBJECT_GRPSEL_TYPE = 4,
- OBJECT_GRPSEL_LAYER = 5,
+ /*OBJECT_GRPSEL_LAYER = 5,*/
OBJECT_GRPSEL_GROUP = 6,
OBJECT_GRPSEL_HOOK = 7,
OBJECT_GRPSEL_PASS = 8,
@@ -527,7 +527,6 @@ static EnumPropertyItem prop_select_grouped_types[] = {
{OBJECT_GRPSEL_PARENT, "PARENT", 0, "Parent", ""},
{OBJECT_GRPSEL_SIBLINGS, "SIBLINGS", 0, "Siblings", "Shared Parent"},
{OBJECT_GRPSEL_TYPE, "TYPE", 0, "Type", "Shared object type"},
- {OBJECT_GRPSEL_LAYER, "LAYER", 0, "Layer", "Shared layers"},
{OBJECT_GRPSEL_GROUP, "GROUP", 0, "Group", "Shared group"},
{OBJECT_GRPSEL_HOOK, "HOOK", 0, "Hook", ""},
{OBJECT_GRPSEL_PASS, "PASS", 0, "Pass", "Render pass Index"},
@@ -542,16 +541,17 @@ static bool select_grouped_children(bContext *C, Object *ob, const bool recursiv
{
bool changed = false;
- CTX_DATA_BEGIN (C, Base *, base, selectable_bases)
+ CTX_DATA_BEGIN (C, ObjectBase *, base, selectable_bases)
{
if (ob == base->object->parent) {
- if (!(base->flag & SELECT)) {
- ED_base_object_select(base, BA_SELECT);
+ if ((base->flag & BASE_SELECTED) == 0) {
+ ED_object_base_select(base, BA_SELECT);
changed = true;
}
- if (recursive)
+ if (recursive) {
changed |= select_grouped_children(C, base->object, 1);
+ }
}
}
CTX_DATA_END;
@@ -658,10 +658,10 @@ static bool select_grouped_siblings(bContext *C, Object *ob)
{
bool changed = false;
- CTX_DATA_BEGIN (C, Base *, base, selectable_bases)
+ CTX_DATA_BEGIN (C, ObjectBase *, base, selectable_bases)
{
- if ((base->object->parent == ob->parent) && !(base->flag & SELECT)) {
- ED_base_object_select(base, BA_SELECT);
+ if ((base->object->parent == ob->parent) && ((base->flag & BASE_SELECTED) == 0)) {
+ ED_object_base_select(base, BA_SELECT);
changed = true;
}
}
@@ -674,12 +674,12 @@ static bool select_grouped_lamptype(bContext *C, Object *ob)
bool changed = false;
- CTX_DATA_BEGIN (C, Base *, base, selectable_bases)
+ CTX_DATA_BEGIN (C, ObjectBase *, base, selectable_bases)
{
if (base->object->type == OB_LAMP) {
Lamp *la_test = base->object->data;
- if ((la->type == la_test->type) && !(base->flag & SELECT)) {
- ED_base_object_select(base, BA_SELECT);
+ if ((la->type == la_test->type) && ((base->flag & BASE_SELECTED) == 0)) {
+ ED_object_base_select(base, BA_SELECT);
changed = true;
}
}
@@ -691,25 +691,10 @@ static bool select_grouped_type(bContext *C, Object *ob)
{
bool changed = false;
- CTX_DATA_BEGIN (C, Base *, base, selectable_bases)
- {
- if ((base->object->type == ob->type) && !(base->flag & SELECT)) {
- ED_base_object_select(base, BA_SELECT);
- changed = true;
- }
- }
- CTX_DATA_END;
- return changed;
-}
-
-static bool select_grouped_layer(bContext *C, Object *ob)
-{
- bool changed = false;
-
- CTX_DATA_BEGIN (C, Base *, base, selectable_bases)
+ CTX_DATA_BEGIN (C, ObjectBase *, base, selectable_bases)
{
- if ((base->lay & ob->lay) && !(base->flag & SELECT)) {
- ED_base_object_select(base, BA_SELECT);
+ if ((base->object->type == ob->type) && ((base->flag & BASE_SELECTED) == 0)) {
+ ED_object_base_select(base, BA_SELECT);
changed = true;
}
}
@@ -721,10 +706,10 @@ static bool select_grouped_index_object(bContext *C, Object *ob)
{
bool changed = false;
- CTX_DATA_BEGIN (C, Base *, base, selectable_bases)
+ CTX_DATA_BEGIN (C, ObjectBase *, base, selectable_bases)
{
- if ((base->object->index == ob->index) && !(base->flag & SELECT)) {
- ED_base_object_select(base, BA_SELECT);
+ if ((base->object->index == ob->index) && ((base->flag & BASE_SELECTED) == 0)) {
+ ED_object_base_select(base, BA_SELECT);
changed = true;
}
}
@@ -736,10 +721,10 @@ static bool select_grouped_color(bContext *C, Object *ob)
{
bool changed = false;
- CTX_DATA_BEGIN (C, Base *, base, selectable_bases)
+ CTX_DATA_BEGIN (C, ObjectBase *, base, selectable_bases)
{
- if (!(base->flag & SELECT) && (compare_v3v3(base->object->col, ob->col, 0.005f))) {
- ED_base_object_select(base, BA_SELECT);
+ if (((base->flag & BASE_SELECTED) == 0) && (compare_v3v3(base->object->col, ob->col, 0.005f))) {
+ ED_object_base_select(base, BA_SELECT);
changed = true;
}
}
@@ -763,10 +748,10 @@ static bool select_grouped_gameprops(bContext *C, Object *ob)
{
bool changed = false;
- CTX_DATA_BEGIN (C, Base *, base, selectable_bases)
+ CTX_DATA_BEGIN (C, ObjectBase *, base, selectable_bases)
{
- if (!(base->flag & SELECT) && (objects_share_gameprop(base->object, ob))) {
- ED_base_object_select(base, BA_SELECT);
+ if (((base->flag & BASE_SELECTED) == 0) && (objects_share_gameprop(base->object, ob))) {
+ ED_object_base_select(base, BA_SELECT);
changed = true;
}
}
@@ -801,10 +786,10 @@ static bool select_grouped_keyingset(bContext *C, Object *UNUSED(ob), ReportList
/* select each object that Keying Set refers to */
/* TODO: perhaps to be more in line with the rest of these, we should only take objects
* if the passed in object is included in this too */
- CTX_DATA_BEGIN (C, Base *, base, selectable_bases)
+ CTX_DATA_BEGIN (C, ObjectBase *, base, selectable_bases)
{
/* only check for this object if it isn't selected already, to limit time wasted */
- if ((base->flag & SELECT) == 0) {
+ if ((base->flag & BASE_SELECTED) == 0) {
KS_Path *ksp;
/* this is the slow way... we could end up with > 500 items here,
@@ -813,7 +798,7 @@ static bool select_grouped_keyingset(bContext *C, Object *UNUSED(ob), ReportList
for (ksp = ks->paths.first; ksp; ksp = ksp->next) {
/* if id matches, select then stop looping (match found) */
if (ksp->id == (ID *)base->object) {
- ED_base_object_select(base, BA_SELECT);
+ ED_object_base_select(base, BA_SELECT);
changed = true;
break;
}
@@ -865,9 +850,6 @@ static int object_select_grouped_exec(bContext *C, wmOperator *op)
case OBJECT_GRPSEL_TYPE:
changed |= select_grouped_type(C, ob);
break;
- case OBJECT_GRPSEL_LAYER:
- changed |= select_grouped_layer(C, ob);
- break;
case OBJECT_GRPSEL_GROUP:
changed |= select_grouped_group(C, ob);
break;
@@ -1101,9 +1083,9 @@ void OBJECT_OT_select_mirror(wmOperatorType *ot)
static bool object_select_more_less(bContext *C, const bool select)
{
- Scene *scene = CTX_data_scene(C);
+ SceneLayer *sl = CTX_data_scene_layer(C);
- for (Base *base = scene->base.first; base; base = base->next) {
+ for (Base *base = sl->object_bases.first; base; base = base->next) {
Object *ob = base->object;
ob->flag &= ~OB_DONE;
ob->id.tag &= ~LIB_TAG_DOIT;
@@ -1127,7 +1109,7 @@ static bool object_select_more_less(bContext *C, const bool select)
for (ctx_base = ctx_base_list.first; ctx_base; ctx_base = ctx_base->next) {
- Object *ob = ((Base *)ctx_base->ptr.data)->object;
+ Object *ob = ((ObjectBase *)ctx_base->ptr.data)->object;
if (ob->parent) {
if ((ob->flag & OB_DONE) != (ob->parent->flag & OB_DONE)) {
ob->id.tag |= LIB_TAG_DOIT;
@@ -1141,10 +1123,10 @@ static bool object_select_more_less(bContext *C, const bool select)
const short select_flag = select ? SELECT : 0;
for (ctx_base = ctx_base_list.first; ctx_base; ctx_base = ctx_base->next) {
- Base *base = ctx_base->ptr.data;
+ ObjectBase *base = ctx_base->ptr.data;
Object *ob = base->object;
if ((ob->id.tag & LIB_TAG_DOIT) && ((ob->flag & SELECT) != select_flag)) {
- ED_base_object_select(base, select_mode);
+ ED_object_base_select(base, select_mode);
changed = true;
}
}
@@ -1223,10 +1205,10 @@ static int object_select_random_exec(bContext *C, wmOperator *op)
RNG *rng = BLI_rng_new_srandom(seed);
- CTX_DATA_BEGIN (C, Base *, base, selectable_bases)
+ CTX_DATA_BEGIN (C, ObjectBase *, base, selectable_bases)
{
if (BLI_rng_get_float(rng) < randfac) {
- ED_base_object_select(base, select);
+ ED_object_base_select(base, select);
}
}
CTX_DATA_END;
diff --git a/source/blender/editors/space_view3d/view3d_select.c b/source/blender/editors/space_view3d/view3d_select.c
index 3239d07553..4bbfc34844 100644
--- a/source/blender/editors/space_view3d/view3d_select.c
+++ b/source/blender/editors/space_view3d/view3d_select.c
@@ -64,6 +64,7 @@
#include "BKE_context.h"
#include "BKE_curve.h"
#include "BKE_depsgraph.h"
+#include "BKE_layer.h"
#include "BKE_mball.h"
#include "BKE_mesh.h"
#include "BKE_object.h"
@@ -1015,22 +1016,22 @@ static int object_select_menu_exec(bContext *C, wmOperator *op)
const char *name = object_mouse_select_menu_data[name_index].idname;
if (!toggle) {
- CTX_DATA_BEGIN (C, Base *, base, selectable_bases)
+ CTX_DATA_BEGIN (C, ObjectBase *, base, selectable_bases)
{
- if (base->flag & SELECT) {
- ED_base_object_select(base, BA_DESELECT);
+ if ((base->flag & BASE_SELECTED) != 0) {
+ ED_object_base_select(base, BA_DESELECT);
changed = true;
}
}
CTX_DATA_END;
}
- CTX_DATA_BEGIN (C, Base *, base, selectable_bases)
+ CTX_DATA_BEGIN (C, ObjectBase *, base, selectable_bases)
{
/* this is a bit dodjy, there should only be ONE object with this name, but library objects can mess this up */
if (STREQ(name, base->object->id.name + 2)) {
- ED_base_object_activate(C, base);
- ED_base_object_select(base, BA_SELECT);
+ ED_object_base_activate(C, base);
+ ED_object_base_select(base, BA_SELECT);
changed = true;
}
}
@@ -1092,7 +1093,11 @@ static Base *object_mouse_select_menu(bContext *C, ViewContext *vc, unsigned int
short baseCount = 0;
bool ok;
LinkNode *linklist = NULL;
-
+
+ /* handle base->selcol */
+ TODO_LAYER_BASE;
+#if 0
+
CTX_DATA_BEGIN (C, Base *, base, selectable_bases)
{
ok = false;
@@ -1164,6 +1169,19 @@ static Base *object_mouse_select_menu(bContext *C, ViewContext *vc, unsigned int
BLI_linklist_
@@ Diff output truncated at 10240 characters. @@
More information about the Bf-blender-cvs
mailing list