[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