aboutsummaryrefslogtreecommitdiff
path: root/tools/define_loudspeakers.h
diff options
context:
space:
mode:
authorGuenter Geiger <ggeiger@users.sourceforge.net>2002-06-17 10:13:57 +0000
committerGuenter Geiger <ggeiger@users.sourceforge.net>2002-06-17 10:13:57 +0000
commitfc3d3c0a4f110a23335398c327ac0a4fc949d5cb (patch)
tree1849d6afbe34cee9cec97bdb2295401f5126870b /tools/define_loudspeakers.h
This commit was generated by cvs2svn to compensate for changes in r12,svn2git-root
which included commits to RCS files with non-trunk default branches. svn path=/trunk/externals/ggee/; revision=13
Diffstat (limited to 'tools/define_loudspeakers.h')
-rwxr-xr-xtools/define_loudspeakers.h69
1 files changed, 69 insertions, 0 deletions
diff --git a/tools/define_loudspeakers.h b/tools/define_loudspeakers.h
new file mode 100755
index 0000000..2c7fb84
--- /dev/null
+++ b/tools/define_loudspeakers.h
@@ -0,0 +1,69 @@
+#define MAX_LS_AMOUNT 32
+#define MIN_VOL_P_SIDE_LGTH 0.01
+
+typedef struct {
+ float x;
+ float y;
+ float z;
+} cart_vec;
+
+
+typedef struct {
+ float azi;
+ float ele;
+ float length;
+} ang_vec;
+
+
+/* A struct for a loudspeaker triplet or pair (set) */
+typedef struct {
+ int ls_nos[3];
+ float ls_mx[9];
+ float set_weights[3];
+ float smallest_wt;
+} LS_SET;
+
+
+/* A struct for a loudspeaker instance */
+typedef struct {
+ cart_vec coords;
+ ang_vec angles;
+ int channel_nbr;
+} ls;
+
+/* A struct for all loudspeakers */
+typedef struct ls_triplet_chain {
+ int ls_nos[3];
+ float inv_mx[9];
+ struct ls_triplet_chain *next;
+} ls_triplet_chain;
+
+/* functions */
+
+void angle_to_cart( ang_vec *from, cart_vec *to);
+extern void choose_ls_triplets( ls lss[MAX_LS_AMOUNT],
+ ls_triplet_chain **ls_triplets,
+ int ls_amount);
+extern void choose_ls_tuplets( ls lss[MAX_LS_AMOUNT],
+ ls_triplet_chain **ls_triplets,
+ int ls_amount);
+int lines_intersect(int i,int j,int k,int l, ls lss[MAX_LS_AMOUNT]);
+int any_ls_inside_triplet(int a, int b, int c,ls lss[MAX_LS_AMOUNT], int ls_amount);
+float vec_angle(cart_vec v1, cart_vec v2);
+float vec_prod(cart_vec v1, cart_vec v2);
+float vec_length(cart_vec v1);
+void cross_prod(cart_vec v1,cart_vec v2,
+ cart_vec *res) ;
+extern void add_ldsp_triplet(int i, int j, int k,
+ ls_triplet_chain **ls_triplets,
+ ls *lss);
+
+extern void calculate_3x3_matrixes(ls_triplet_chain *ls_triplets,
+ ls lss[MAX_LS_AMOUNT], int ls_amount);
+int calc_2D_inv_tmatrix(float azi1,float azi2, float inv_mat[4]);
+extern void sort_2D_lss(ls lss[MAX_LS_AMOUNT], int sorted_lss[MAX_LS_AMOUNT],
+ int ls_amount);
+
+float vol_p_side_lgth(int i, int j,int k, ls lss[MAX_LS_AMOUNT] );
+
+