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

    // Provided method
    fn transform(
        geometry: &Geometry,
        filter: GainFilter<'_>,
        f: impl Fn(&Device, &Transducer) -> Drive
    ) -> 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( geometry: &Geometry, filter: GainFilter<'_>, f: impl Fn(&Device, &Transducer) -> Drive ) -> HashMap<usize, Vec<Drive>>
where Self: Sized,

Trait Implementations§

source§

impl DatagramS for Box<dyn Gain>

§

type O1 = GainOp<Box<dyn Gain>>

§

type O2 = NullOp

source§

fn operation_with_segment( self, segment: Segment, update_segment: bool ) -> 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( geometry: &Geometry, filter: GainFilter<'_>, f: impl Fn(&Device, &Transducer) -> Drive ) -> HashMap<usize, Vec<Drive>>
where Self: Sized,

source§

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

source§

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

source§

fn transform( geometry: &Geometry, filter: GainFilter<'_>, f: impl Fn(&Device, &Transducer) -> Drive ) -> 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>

source§

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

source§

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

Implementors§

source§

impl<G: Gain + 'static> Gain for Cache<G>

source§

impl<G: Gain + 'static, F: Fn(&Device, &Transducer, Drive) -> Drive + 'static> Gain for Transform<G, F>

source§

impl<K, F> Gain for Group<K, F>
where K: Hash + Eq + Clone + 'static, F: Fn(&Device, &Transducer) -> Option<K> + 'static,