45 void organize_container_data(std::shared_ptr<SignalSourceContainer> container)
override;
52 void process(std::shared_ptr<SignalSourceContainer> container)
override;
68 void add_segment_to_region(
69 const std::string& group_name,
71 const std::vector<uint64_t>& start_coords,
72 const std::vector<uint64_t>& end_coords,
73 const std::unordered_map<std::string, std::any>& attributes);
82 void set_region_transition(
const std::string& group_name,
93 void set_region_looping(
const std::string& group_name,
96 const std::vector<uint64_t>& loop_start = {},
97 const std::vector<uint64_t>& loop_end = {});
104 void jump_to_region(
const std::string& group_name,
size_t region_index);
110 void jump_to_position(
const std::vector<uint64_t>& position);
118 void set_selection_pattern(
const std::string& group_name,
size_t region_index,
RegionSelectionPattern pattern);
126 virtual void process_organized_regions(
const std::shared_ptr<SignalSourceContainer>& container,
127 std::vector<DataVariant>& output_data);
138 const std::shared_ptr<SignalSourceContainer>& container,
139 std::vector<DataVariant>& output_data);
148 virtual void apply_region_transition(
const OrganizedRegion& current_region,
150 const std::shared_ptr<SignalSourceContainer>& container,
151 std::vector<DataVariant>& output_data);
158 virtual size_t select_next_segment(
const OrganizedRegion& region)
const;
161 const std::vector<uint64_t>& position,
162 const std::vector<OrganizedRegion>& regions)
const;
166 mutable std::mt19937 m_random_engine { std::random_device {}() };
174 void organize_group(
const std::shared_ptr<SignalSourceContainer>& container,
180 void refresh_organized_data();
224 void process(std::shared_ptr<SignalSourceContainer> container)
override;
229 void trigger_reorganization();
236 std::shared_ptr<SignalSourceContainer>)>
239 m_auto_reorganization_criteria = std::move(criteria);
243 std::atomic<bool> m_needs_reorganization {
false };
250 bool should_reorganize(
const std::shared_ptr<SignalSourceContainer>& container);
258 std::function<bool(
const std::vector<OrganizedRegion>&,
259 std::shared_ptr<SignalSourceContainer>)>