[Bf-blender-cvs] [af248f4] viewport_bvh_select: Support selecting speakers using new BVH selection

Julian Eisel noreply at git.blender.org
Sun Aug 28 00:00:47 CEST 2016


Commit: af248f4941f94a9adf549fcfab9e34ecb05793fd
Author: Julian Eisel
Date:   Sat Aug 27 23:59:00 2016 +0200
Branches: viewport_bvh_select
https://developer.blender.org/rBaf248f4941f94a9adf549fcfab9e34ecb05793fd

Support selecting speakers using new BVH selection

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

M	source/blender/blenkernel/BKE_speaker.h
M	source/blender/blenkernel/intern/object.c
M	source/blender/blenkernel/intern/speaker.c

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

diff --git a/source/blender/blenkernel/BKE_speaker.h b/source/blender/blenkernel/BKE_speaker.h
index b91b64c..c895fcd 100644
--- a/source/blender/blenkernel/BKE_speaker.h
+++ b/source/blender/blenkernel/BKE_speaker.h
@@ -37,4 +37,6 @@ struct Speaker *BKE_speaker_copy(struct Main *bmain, struct Speaker *spk);
 void BKE_speaker_make_local(struct Main *bmain, struct Speaker *spk, const bool lib_local);
 void BKE_speaker_free(struct Speaker *spk);
 
+struct BoundBox *BKE_speaker_drawboundbox_get(void);
+
 #endif
diff --git a/source/blender/blenkernel/intern/object.c b/source/blender/blenkernel/intern/object.c
index 0dd74f6..546090b 100644
--- a/source/blender/blenkernel/intern/object.c
+++ b/source/blender/blenkernel/intern/object.c
@@ -2334,8 +2334,11 @@ BoundBox *BKE_object_drawboundbox_get(
 				bb = BKE_lamp_drawboundbox_get(ob->data);
 				*r_needs_freeing = true;
 				break;
-			case OB_EMPTY:
 			case OB_SPEAKER:
+				bb = BKE_speaker_drawboundbox_get();
+				*r_needs_freeing = true;
+				break;
+			case OB_EMPTY:
 				/* TODO */
 			default:
 				break;
diff --git a/source/blender/blenkernel/intern/speaker.c b/source/blender/blenkernel/intern/speaker.c
index ee6886e..9087474 100644
--- a/source/blender/blenkernel/intern/speaker.c
+++ b/source/blender/blenkernel/intern/speaker.c
@@ -37,8 +37,12 @@
 #include "BKE_library_query.h"
 #include "BKE_library_remap.h"
 #include "BKE_main.h"
+#include "BKE_object.h"
 #include "BKE_speaker.h"
 
+#include "MEM_guardedalloc.h"
+
+
 void BKE_speaker_init(Speaker *spk)
 {
 	BLI_assert(MEMCMP_STRUCT_OFS_IS_ZERO(spk, id));
@@ -91,3 +95,17 @@ void BKE_speaker_free(Speaker *spk)
 {
 	BKE_animdata_free((ID *)spk, false);
 }
+
+BoundBox *BKE_speaker_drawboundbox_get(void)
+{
+	const float maxrad = 0.5f;
+	const float zmin = -0.125f;
+	const float zmax = 0.25f * 2 - 0.125;
+	const float min[3] = {-maxrad, -maxrad, zmin};
+	const float max[3] = {maxrad, maxrad, zmax};
+
+	BoundBox *bb = MEM_callocN(sizeof(*bb), "Speaker BoundBox");
+	BKE_boundbox_init_from_minmax(bb, min, max);
+
+	return bb;
+}




More information about the Bf-blender-cvs mailing list