19 #ifndef __libardour_vbap_speakers_h__
20 #define __libardour_vbap_speakers_h__
68 std::shared_ptr<Speakers>
parent ()
const
85 return s1.angles ().azi <
s2.angles ().azi;
void choose_speaker_pairs()
static const double MIN_VOL_P_SIDE_LGTH
VBAPSpeakers & operator=(const VBAPSpeakers &)=delete
std::vector< tmatrix > _speaker_tuples
int calc_2D_inv_tmatrix(double azi1, double azi2, double *inv_mat)
VBAPSpeakers(std::shared_ptr< Speakers >)
int any_ls_inside_triplet(int a, int b, int c)
std::vector< dvector > _matrices
void choose_speaker_triplets(struct ls_triplet_chain **ls_triplets)
uint32_t n_speakers() const
static double vec_prod(PBD::CartesianVector v1, PBD::CartesianVector v2)
static double vec_length(PBD::CartesianVector v1)
int lines_intersect(int i, int j, int k, int l)
void calculate_3x3_matrixes(struct ls_triplet_chain *ls_triplets)
std::shared_ptr< Speakers > _parent
std::vector< double > dvector
void add_ldsp_triplet(int i, int j, int k, struct ls_triplet_chain **ls_triplets)
void sort_2D_lss(int *sorted_lss)
static void cross_prod(PBD::CartesianVector v1, PBD::CartesianVector v2, PBD::CartesianVector *res)
static double vec_angle(PBD::CartesianVector v1, PBD::CartesianVector v2)
std::shared_ptr< Speakers > parent() const
const dvector matrix(int tuple) const
int speaker_for_tuple(int tuple, int which) const
VBAPSpeakers(const VBAPSpeakers &)=delete
std::vector< Speaker > _speakers
static double vol_p_side_lgth(int i, int j, int k, const std::vector< Speaker > &)
PBD::ScopedConnection speaker_connection
static const MIDISequence s2[]
static const MIDISequence s1[]
bool operator()(const Speaker &s1, const Speaker &s2)
struct ls_triplet_chain * next