MayaFlux 0.4.0
Digital-First Multimedia Processing Framework
Loading...
Searching...
No Matches

◆ select_next_segment()

size_t MayaFlux::Kakshya::RegionOrganizationProcessor::select_next_segment ( const OrganizedRegion region) const
protectedvirtual

Select the next segment to process according to the region's pattern.

Parameters
regionThe organized region.
Returns
Index of the next segment.

Definition at line 347 of file RegionProcessors.cpp.

348{
349 if (region.segments.empty())
350 return 0;
351
352 switch (region.selection_pattern) {
354 return (region.active_segment_index + 1) % region.segments.size();
355
357 if (std::uniform_int_distribution<size_t> dist(0, region.segments.size() - 1); true) {
358 return dist(m_random_engine);
359 }
360
362 if (m_segment_weights.empty() || m_segment_weights.size() != region.segments.size()) {
363 return region.active_segment_index % region.segments.size();
364 }
365
366 if (std::discrete_distribution<size_t> dist(m_segment_weights.begin(), m_segment_weights.end()); true) {
367 return dist(m_random_engine);
368 }
369
370 default:
371 return 0;
372 }
373}
@ SEQUENTIAL
Process regions in order.
@ WEIGHTED
Weighted random selection.

References MayaFlux::Kakshya::OrganizedRegion::active_segment_index, m_random_engine, m_segment_weights, MayaFlux::Kakshya::RANDOM, MayaFlux::Kakshya::OrganizedRegion::segments, MayaFlux::Kakshya::OrganizedRegion::selection_pattern, MayaFlux::Kakshya::SEQUENTIAL, and MayaFlux::Kakshya::WEIGHTED.

Referenced by process_organized_regions().

+ Here is the caller graph for this function: