pub fn evaluate_light(
        &mut self,
        epsilon: u8,
        mut progress_callback: impl FnMut(LightUpdatesInfo),
    ) -> usize {
        let mut total = 0;
        loop {
            let info = self.update_lighting_from_queue();

            progress_callback(info);

            let LightUpdatesInfo {
                queue_count,
                update_count,
                max_queue_priority,
                ..
            } = info;
            total += update_count;
            if queue_count == 0 || max_queue_priority <= epsilon {
                break;
            }
        }
        total
    }
/// Perform lighting updates until there are none left to do. Returns the number of
/// updates performed.
///
/// This may take a while. It is appropriate for when the goal is to
/// render a fully lit scene non-interactively.
///
/// `epsilon` specifies a threshold at which to stop doing updates.
/// Zero means to run to full completion; one is the smallest unit of light level
/// difference; and so on.
Perform lighting updates until there are none left to do. Returns the number of
updates performed.

This may take a while. It is appropriate for when the goal is to
render a fully lit scene non-interactively.

`epsilon` specifies a threshold at which to stop doing updates.
Zero means to run to full completion; one is the smallest unit of light level
difference; and so on.
Perform lighting updates until there are none left to do . Returns the number of updates performed . This may take a while . It is appropriate for when the goal is to render a fully lit scene non - interactively . ` epsilon ` specifies a threshold at which to stop doing updates . Zero means to run to full completion ; one is the smallest unit of light level difference ; and so on .
pub fn evaluate_light(
        &mut self,
        epsilon: u8,
        mut progress_callback: impl FnMut(LightUpdatesInfo),
    ) -> usize {
        let mut total = 0;
        loop {
            let info = self.update_lighting_from_queue();
            progress_callback(info);
            let LightUpdatesInfo {
                queue_count,
                update_count,
                max_queue_priority,
                ..
            } = info;
            total += update_count;
            if queue_count == 0 || max_queue_priority <= epsilon {
                break;
            }
        }
        total
    }
pub fn evaluate_light ( & mut self , epsilon : u8 , mut progress_callback : impl FnMut ( LightUpdatesInfo ) , ) -> usize { let mut total = 0 ; loop { let info = self . update_lighting_from_queue ( ) ; progress_callback ( info ) ; let LightUpdatesInfo { queue_count , update_count , max_queue_priority , .. } = info ; total += update_count ; if queue_count == 0 || max_queue_priority <= epsilon { break ; } } total }
Perform lighting updates until there are none left to do.
Perform lighting updates until there are none left to do .
&mut self
epsilon
u8
progress_callback
impl FnMut(LightUpdatesInfo)