pub trait Gain<T: Transducer>: GainAsAny {
    // Required method
    fn calc(
        &self,
        geometry: &Geometry<T>,
        filter: GainFilter<'_>
    ) -> Result<HashMap<usize, Vec<Drive>>, AUTDInternalError>;

    // Provided method
    fn transform<F: Fn(&Device<T>, &T) -> Drive + Sync + Send>(
        geometry: &Geometry<T>,
        filter: GainFilter<'_>,
        f: F
    ) -> HashMap<usize, Vec<Drive>>
       where Self: Sized { ... }
}
Expand description

Gain controls amplitude and phase of each transducer.

Required Methods§

source

fn calc( &self, geometry: &Geometry<T>, filter: GainFilter<'_> ) -> Result<HashMap<usize, Vec<Drive>>, AUTDInternalError>

Provided Methods§

source

fn transform<F: Fn(&Device<T>, &T) -> Drive + Sync + Send>( geometry: &Geometry<T>, filter: GainFilter<'_>, f: F ) -> HashMap<usize, Vec<Drive>>where Self: Sized,

Trait Implementations§

source§

impl<'a, T: Transducer> Gain<T> for Box<dyn Gain<T> + 'a>

source§

fn calc( &self, geometry: &Geometry<T>, filter: GainFilter<'_> ) -> Result<HashMap<usize, Vec<Drive>>, AUTDInternalError>

source§

fn transform<F: Fn(&Device<T>, &T) -> Drive + Sync + Send>( geometry: &Geometry<T>, filter: GainFilter<'_>, f: F ) -> HashMap<usize, Vec<Drive>>where Self: Sized,

source§

impl<'a, T: Transducer> GainAsAny for Box<dyn Gain<T> + 'a>

source§

fn as_any(&self) -> &dyn Any

Implementations on Foreign Types§

source§

impl<'a, T: Transducer> Gain<T> for Box<dyn Gain<T> + 'a>

source§

fn calc( &self, geometry: &Geometry<T>, filter: GainFilter<'_> ) -> Result<HashMap<usize, Vec<Drive>>, AUTDInternalError>

Implementors§