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

    // Provided method
    fn transform<F: Fn(&Device, &Transducer) -> Drive>(
        geometry: &Geometry,
        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, filter: GainFilter<'_> ) -> Result<HashMap<usize, Vec<Drive>>, AUTDInternalError>

Provided Methods§

source

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

Trait Implementations§

source§

impl Datagram for Box<dyn Gain>

§

type O1 = GainOp<Box<dyn Gain>>

§

type O2 = NullOp

source§

fn operation(self) -> Result<(Self::O1, Self::O2), AUTDInternalError>

source§

fn timeout(&self) -> Option<Duration>

source§

impl<'a> Gain for Box<dyn Gain + 'a>

source§

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

source§

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

Implementations on Foreign Types§

source§

impl<'a> Gain for Box<dyn Gain + 'a>

source§

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

Implementors§