Ardour  9.0-pre0-582-g084a23a80d
ARDOUR::VBAPSpeakers Class Reference

#include <vbap_speakers.h>

Classes

struct  azimuth_sorter
 
struct  ls_triplet_chain
 
struct  threeDmatrix
 
struct  tmatrix
 
struct  twoDmatrix
 

Public Types

typedef std::vector< double > dvector
 

Public Member Functions

 VBAPSpeakers (std::shared_ptr< Speakers >)
 
 VBAPSpeakers (const VBAPSpeakers &)=delete
 
VBAPSpeakersoperator= (const VBAPSpeakers &)=delete
 
const dvector matrix (int tuple) const
 
int speaker_for_tuple (int tuple, int which) const
 
int n_tuples () const
 
int dimension () const
 
uint32_t n_speakers () const
 
std::shared_ptr< Speakersparent () const
 
 ~VBAPSpeakers ()
 

Private Member Functions

void update ()
 
int any_ls_inside_triplet (int a, int b, int c)
 
void add_ldsp_triplet (int i, int j, int k, struct ls_triplet_chain **ls_triplets)
 
int lines_intersect (int i, int j, int k, int l)
 
void calculate_3x3_matrixes (struct ls_triplet_chain *ls_triplets)
 
void choose_speaker_triplets (struct ls_triplet_chain **ls_triplets)
 
void choose_speaker_pairs ()
 
void sort_2D_lss (int *sorted_lss)
 
int calc_2D_inv_tmatrix (double azi1, double azi2, double *inv_mat)
 

Static Private Member Functions

static double vec_angle (PBD::CartesianVector v1, PBD::CartesianVector v2)
 
static double vec_length (PBD::CartesianVector v1)
 
static double vec_prod (PBD::CartesianVector v1, PBD::CartesianVector v2)
 
static double vol_p_side_lgth (int i, int j, int k, const std::vector< Speaker > &)
 
static void cross_prod (PBD::CartesianVector v1, PBD::CartesianVector v2, PBD::CartesianVector *res)
 

Private Attributes

int _dimension
 
std::shared_ptr< Speakers_parent
 
std::vector< Speaker_speakers
 
PBD::ScopedConnection speaker_connection
 
std::vector< dvector_matrices
 
std::vector< tmatrix_speaker_tuples
 

Static Private Attributes

static const double MIN_VOL_P_SIDE_LGTH
 

Detailed Description

Definition at line 34 of file vbap_speakers.h.

Member Typedef Documentation

◆ dvector

typedef std::vector<double> ARDOUR::VBAPSpeakers::dvector

Definition at line 41 of file vbap_speakers.h.

Constructor & Destructor Documentation

◆ VBAPSpeakers() [1/2]

ARDOUR::VBAPSpeakers::VBAPSpeakers ( std::shared_ptr< Speakers )

◆ VBAPSpeakers() [2/2]

ARDOUR::VBAPSpeakers::VBAPSpeakers ( const VBAPSpeakers )
delete

◆ ~VBAPSpeakers()

ARDOUR::VBAPSpeakers::~VBAPSpeakers ( )

Member Function Documentation

◆ add_ldsp_triplet()

void ARDOUR::VBAPSpeakers::add_ldsp_triplet ( int  i,
int  j,
int  k,
struct ls_triplet_chain **  ls_triplets 
)
private

◆ any_ls_inside_triplet()

int ARDOUR::VBAPSpeakers::any_ls_inside_triplet ( int  a,
int  b,
int  c 
)
private

◆ calc_2D_inv_tmatrix()

int ARDOUR::VBAPSpeakers::calc_2D_inv_tmatrix ( double  azi1,
double  azi2,
double *  inv_mat 
)
private

◆ calculate_3x3_matrixes()

void ARDOUR::VBAPSpeakers::calculate_3x3_matrixes ( struct ls_triplet_chain ls_triplets)
private

◆ choose_speaker_pairs()

void ARDOUR::VBAPSpeakers::choose_speaker_pairs ( )
private

◆ choose_speaker_triplets()

void ARDOUR::VBAPSpeakers::choose_speaker_triplets ( struct ls_triplet_chain **  ls_triplets)
private

◆ cross_prod()

static void ARDOUR::VBAPSpeakers::cross_prod ( PBD::CartesianVector  v1,
PBD::CartesianVector  v2,
PBD::CartesianVector res 
)
staticprivate

◆ dimension()

int ARDOUR::VBAPSpeakers::dimension ( ) const
inline

Definition at line 58 of file vbap_speakers.h.

◆ lines_intersect()

int ARDOUR::VBAPSpeakers::lines_intersect ( int  i,
int  j,
int  k,
int  l 
)
private

◆ matrix()

const dvector ARDOUR::VBAPSpeakers::matrix ( int  tuple) const
inline

Definition at line 43 of file vbap_speakers.h.

◆ n_speakers()

uint32_t ARDOUR::VBAPSpeakers::n_speakers ( ) const
inline

Definition at line 63 of file vbap_speakers.h.

◆ n_tuples()

int ARDOUR::VBAPSpeakers::n_tuples ( ) const
inline

Definition at line 53 of file vbap_speakers.h.

◆ operator=()

VBAPSpeakers& ARDOUR::VBAPSpeakers::operator= ( const VBAPSpeakers )
delete

◆ parent()

std::shared_ptr<Speakers> ARDOUR::VBAPSpeakers::parent ( ) const
inline

Definition at line 68 of file vbap_speakers.h.

◆ sort_2D_lss()

void ARDOUR::VBAPSpeakers::sort_2D_lss ( int *  sorted_lss)
private

◆ speaker_for_tuple()

int ARDOUR::VBAPSpeakers::speaker_for_tuple ( int  tuple,
int  which 
) const
inline

Definition at line 48 of file vbap_speakers.h.

◆ update()

void ARDOUR::VBAPSpeakers::update ( )
private

◆ vec_angle()

static double ARDOUR::VBAPSpeakers::vec_angle ( PBD::CartesianVector  v1,
PBD::CartesianVector  v2 
)
staticprivate

◆ vec_length()

static double ARDOUR::VBAPSpeakers::vec_length ( PBD::CartesianVector  v1)
staticprivate

◆ vec_prod()

static double ARDOUR::VBAPSpeakers::vec_prod ( PBD::CartesianVector  v1,
PBD::CartesianVector  v2 
)
staticprivate

◆ vol_p_side_lgth()

static double ARDOUR::VBAPSpeakers::vol_p_side_lgth ( int  i,
int  j,
int  k,
const std::vector< Speaker > &   
)
staticprivate

Member Data Documentation

◆ _dimension

int ARDOUR::VBAPSpeakers::_dimension
private

Definition at line 77 of file vbap_speakers.h.

◆ _matrices

std::vector<dvector> ARDOUR::VBAPSpeakers::_matrices
private

Definition at line 101 of file vbap_speakers.h.

◆ _parent

std::shared_ptr<Speakers> ARDOUR::VBAPSpeakers::_parent
private

Definition at line 78 of file vbap_speakers.h.

◆ _speaker_tuples

std::vector<tmatrix> ARDOUR::VBAPSpeakers::_speaker_tuples
private

Definition at line 102 of file vbap_speakers.h.

◆ _speakers

std::vector<Speaker> ARDOUR::VBAPSpeakers::_speakers
private

Definition at line 79 of file vbap_speakers.h.

◆ MIN_VOL_P_SIDE_LGTH

const double ARDOUR::VBAPSpeakers::MIN_VOL_P_SIDE_LGTH
staticprivate

Definition at line 76 of file vbap_speakers.h.

◆ speaker_connection

PBD::ScopedConnection ARDOUR::VBAPSpeakers::speaker_connection
private

Definition at line 80 of file vbap_speakers.h.


The documentation for this class was generated from the following file: