[Bf-blender-cvs] [d522f55] temp_localview_split: More checks for new local view

Julian Eisel noreply at git.blender.org
Fri Aug 5 04:24:18 CEST 2016


Commit: d522f558024aea4ebfd51f7c3e517386d292045b
Author: Julian Eisel
Date:   Fri Aug 5 04:23:43 2016 +0200
Branches: temp_localview_split
https://developer.blender.org/rBd522f558024aea4ebfd51f7c3e517386d292045b

More checks for new local view

===================================================================

M	source/blender/blenkernel/intern/object.c
M	source/blender/editors/gpencil/gpencil_utils.c
M	source/blender/editors/object/object_select.c
M	source/blender/editors/space_view3d/view3d_edit.c
M	source/blender/editors/space_view3d/view3d_select.c
M	source/blender/editors/transform/transform_conversions.c
M	source/blender/editors/transform/transform_manipulator.c
M	source/blender/editors/transform/transform_orientations.c
M	source/blender/editors/transform/transform_snap_object.c
M	source/blender/makesdna/DNA_scene_types.h

===================================================================

diff --git a/source/blender/blenkernel/intern/object.c b/source/blender/blenkernel/intern/object.c
index d736a45..f5b593e 100644
--- a/source/blender/blenkernel/intern/object.c
+++ b/source/blender/blenkernel/intern/object.c
@@ -96,6 +96,7 @@
 #include "BKE_library_query.h"
 #include "BKE_library_remap.h"
 #include "BKE_linestyle.h"
+#include "BKE_localview.h"
 #include "BKE_mesh.h"
 #include "BKE_editmesh.h"
 #include "BKE_mball.h"
diff --git a/source/blender/editors/gpencil/gpencil_utils.c b/source/blender/editors/gpencil/gpencil_utils.c
index f2c542d..2dd9a5d 100644
--- a/source/blender/editors/gpencil/gpencil_utils.c
+++ b/source/blender/editors/gpencil/gpencil_utils.c
@@ -49,6 +49,7 @@
 
 #include "BKE_context.h"
 #include "BKE_gpencil.h"
+#include "BKE_localview.h"
 #include "BKE_tracking.h"
 #include "BKE_action.h"
 
diff --git a/source/blender/editors/object/object_select.c b/source/blender/editors/object/object_select.c
index f1b7186..b534c22 100644
--- a/source/blender/editors/object/object_select.c
+++ b/source/blender/editors/object/object_select.c
@@ -58,6 +58,7 @@
 #include "BKE_report.h"
 #include "BKE_scene.h"
 #include "BKE_library.h"
+#include "BKE_localview.h"
 #include "BKE_deform.h"
 
 #include "WM_api.h"
diff --git a/source/blender/editors/space_view3d/view3d_edit.c b/source/blender/editors/space_view3d/view3d_edit.c
index 3cce4ee..5c6aa08 100644
--- a/source/blender/editors/space_view3d/view3d_edit.c
+++ b/source/blender/editors/space_view3d/view3d_edit.c
@@ -51,6 +51,7 @@
 #include "BKE_context.h"
 #include "BKE_font.h"
 #include "BKE_library.h"
+#include "BKE_localview.h"
 #include "BKE_object.h"
 #include "BKE_paint.h"
 #include "BKE_report.h"
diff --git a/source/blender/editors/space_view3d/view3d_select.c b/source/blender/editors/space_view3d/view3d_select.c
index a460d89..48ed876 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_localview.h"
 #include "BKE_mball.h"
 #include "BKE_mesh.h"
 #include "BKE_object.h"
diff --git a/source/blender/editors/transform/transform_conversions.c b/source/blender/editors/transform/transform_conversions.c
index ad2b40b..c72027a 100644
--- a/source/blender/editors/transform/transform_conversions.c
+++ b/source/blender/editors/transform/transform_conversions.c
@@ -73,6 +73,7 @@
 #include "BKE_global.h"
 #include "BKE_gpencil.h"
 #include "BKE_key.h"
+#include "BKE_localview.h"
 #include "BKE_main.h"
 #include "BKE_mesh.h"
 #include "BKE_mesh_mapping.h"
diff --git a/source/blender/editors/transform/transform_manipulator.c b/source/blender/editors/transform/transform_manipulator.c
index 075f311..52e27f7 100644
--- a/source/blender/editors/transform/transform_manipulator.c
+++ b/source/blender/editors/transform/transform_manipulator.c
@@ -58,6 +58,7 @@
 #include "BKE_pointcache.h"
 #include "BKE_editmesh.h"
 #include "BKE_lattice.h"
+#include "BKE_localview.h"
 #include "BKE_gpencil.h"
 
 #include "BIF_gl.h"
@@ -340,7 +341,8 @@ static int calc_manipulator_stats(const bContext *C)
 	}
 	else if (obedit) {
 		ob = obedit;
-		if ((ob->lay & v3d->lay) == 0) return 0;
+		if (v3d->localviewd ? !BKE_localview_is_object_visible(v3d, ob) : (ob->lay & v3d->lay) == 0)
+			return 0;
 
 		if (obedit->type == OB_MESH) {
 			BMEditMesh *em = BKE_editmesh_from_object(obedit);
@@ -524,7 +526,8 @@ static int calc_manipulator_stats(const bContext *C)
 		int mode = TFM_ROTATION; // mislead counting bones... bah. We don't know the manipulator mode, could be mixed
 		bool ok = false;
 
-		if ((ob->lay & v3d->lay) == 0) return 0;
+		if (v3d->localviewd ? !BKE_localview_is_object_visible(v3d, ob) : (ob->lay & v3d->lay) == 0)
+			return 0;
 
 		if ((v3d->around == V3D_AROUND_ACTIVE) && (pchan = BKE_pose_channel_active(ob))) {
 			/* doesn't check selection or visibility intentionally */
diff --git a/source/blender/editors/transform/transform_orientations.c b/source/blender/editors/transform/transform_orientations.c
index 90a4aa3..ecfbe1d 100644
--- a/source/blender/editors/transform/transform_orientations.c
+++ b/source/blender/editors/transform/transform_orientations.c
@@ -50,6 +50,7 @@
 #include "BKE_context.h"
 #include "BKE_editmesh.h"
 #include "BKE_report.h"
+#include "BKE_localview.h"
 #include "BKE_main.h"
 #include "BKE_screen.h"
 
diff --git a/source/blender/editors/transform/transform_snap_object.c b/source/blender/editors/transform/transform_snap_object.c
index 1d4872c..4a4cdf9 100644
--- a/source/blender/editors/transform/transform_snap_object.c
+++ b/source/blender/editors/transform/transform_snap_object.c
@@ -49,6 +49,7 @@
 #include "BKE_object.h"
 #include "BKE_anim.h"  /* for duplis */
 #include "BKE_editmesh.h"
+#include "BKE_localview.h"
 #include "BKE_main.h"
 #include "BKE_tracking.h"
 
diff --git a/source/blender/makesdna/DNA_scene_types.h b/source/blender/makesdna/DNA_scene_types.h
index 90e8d8b..d50b6ce 100644
--- a/source/blender/makesdna/DNA_scene_types.h
+++ b/source/blender/makesdna/DNA_scene_types.h
@@ -1821,30 +1821,39 @@ extern const char *RE_engine_id_CYCLES;
 /* depricate this! */
 #define TESTBASE(v3d, base)  (                                                \
 	((base)->flag & SELECT) &&                                                \
-	((base)->lay & v3d->lay) &&                                               \
+	(v3d->localviewd ? BKE_localview_is_object_visible(v3d, base->object) : ((base)->lay & v3d->lay)) && \
 	(((base)->object->restrictflag & OB_RESTRICT_VIEW) == 0))
 #define TESTBASELIB(v3d, base)  (                                             \
 	((base)->flag & SELECT) &&                                                \
-	((base)->lay & v3d->lay) &&                                               \
+	(v3d->localviewd ? BKE_localview_is_object_visible(v3d, base->object) : ((base)->lay & v3d->lay)) && \
 	((base)->object->id.lib == NULL) &&                                       \
 	(((base)->object->restrictflag & OB_RESTRICT_VIEW) == 0))
 #define TESTBASELIB_BGMODE(v3d, scene, base)  (                               \
 	((base)->flag & SELECT) &&                                                \
+	((v3d && v3d->localviewd) ?                                               \
+	    BKE_localview_info_cmp(v3d->localviewd->info, base->object->localview) : \
+	    (v3d ? v3d->lay : scene->lay)) &&                                     \
 	((base)->lay & (v3d ? v3d->lay : scene->lay)) &&                          \
 	((base)->object->id.lib == NULL) &&                                       \
 	(((base)->object->restrictflag & OB_RESTRICT_VIEW) == 0))
 #define BASE_EDITABLE_BGMODE(v3d, scene, base)  (                             \
 	((base)->lay & (v3d ? v3d->lay : scene->lay)) &&                          \
+	((v3d && v3d->localviewd) ?                                               \
+	    BKE_localview_info_cmp(v3d->localviewd->info, base->object->localview) : \
+	    (v3d ? v3d->lay : scene->lay)) &&                                     \
 	((base)->object->id.lib == NULL) &&                                       \
 	(((base)->object->restrictflag & OB_RESTRICT_VIEW) == 0))
 #define BASE_SELECTABLE(v3d, base)  (                                         \
-	(base->lay & v3d->lay) &&                                                 \
+	(v3d->localviewd ? BKE_localview_is_object_visible(v3d, base->object) : ((base)->lay & v3d->lay)) && \
 	(base->object->restrictflag & (OB_RESTRICT_SELECT | OB_RESTRICT_VIEW)) == 0)
 #define BASE_VISIBLE(v3d, base)  (                                            \
-	(base->lay & v3d->lay) &&                                                 \
+	(v3d->localviewd ? BKE_localview_is_object_visible(v3d, base->object) : ((base)->lay & v3d->lay)) && \
 	(base->object->restrictflag & OB_RESTRICT_VIEW) == 0)
 #define BASE_VISIBLE_BGMODE(v3d, scene, base)  (                              \
 	(base->lay & (v3d ? v3d->lay : scene->lay)) &&                            \
+	((v3d && v3d->localviewd) ?                                               \
+	    BKE_localview_info_cmp(v3d->localviewd->info, base->object->localview) : \
+	    (v3d ? v3d->lay : scene->lay)) &&                                     \
 	(base->object->restrictflag & OB_RESTRICT_VIEW) == 0)
 
 #define FIRSTBASE		scene->base.first




More information about the Bf-blender-cvs mailing list