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