MayaFlux 0.2.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 348 of file RegionProcessors.cpp.

349{
350 if (region.segments.empty())
351 return 0;
352
353 switch (region.selection_pattern) {
355 return (region.active_segment_index + 1) % region.segments.size();
356
358 if (std::uniform_int_distribution<size_t> dist(0, region.segments.size() - 1); true) {
359 return dist(m_random_engine);
360 }
361
363 if (m_segment_weights.empty() || m_segment_weights.size() != region.segments.size()) {
364 return region.active_segment_index % region.segments.size();
365 }
366
367 if (std::discrete_distribution<size_t> dist(m_segment_weights.begin(), m_segment_weights.end()); true) {
368 return dist(m_random_engine);
369 }
370
371 default:
372 return 0;
373 }
374}
@ 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: