MayaFlux 0.1.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 340 of file RegionProcessors.cpp.

341{
342 if (region.segments.empty())
343 return 0;
344
345 switch (region.selection_pattern) {
347 return (region.active_segment_index + 1) % region.segments.size();
348
350 if (std::uniform_int_distribution<size_t> dist(0, region.segments.size() - 1); true) {
351 return dist(m_random_engine);
352 }
353
355 if (m_segment_weights.empty() || m_segment_weights.size() != region.segments.size()) {
356 return region.active_segment_index % region.segments.size();
357 }
358
359 if (std::discrete_distribution<size_t> dist(m_segment_weights.begin(), m_segment_weights.end()); true) {
360 return dist(m_random_engine);
361 }
362
363 default:
364 return 0;
365 }
366}
@ 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: