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

◆ on_attach()

void MayaFlux::Kakshya::SpatialRegionProcessor::on_attach ( const std::shared_ptr< SignalSourceContainer > &  container)
overridevirtual

Attach to a spatial container.

Validates that the container has at least one spatial dimension. Disables auto-caching (appropriate for live surfaces). Delegates to RegionProcessorBase::on_attach which calls organize_container_data().

Exceptions
std::invalid_argumentif no spatial dimension is found.

Reimplemented from MayaFlux::Kakshya::RegionProcessorBase.

Definition at line 9 of file SpatialRegionProcessor.cpp.

10{
11 if (!container) {
12 error<std::invalid_argument>(
15 std::source_location::current(),
16 "SpatialRegionProcessor: container must not be null");
17 }
18
19 const auto& dims = container->get_structure().dimensions;
20 const bool has_spatial = std::ranges::any_of(dims, [](const DataDimension& d) {
21 return d.role == DataDimension::Role::SPATIAL_X
24 });
25
26 if (!has_spatial) {
27 error<std::invalid_argument>(
30 std::source_location::current(),
31 "SpatialRegionProcessor: container must have at least one spatial dimension");
32 }
33
34 m_auto_caching = false;
35
37
39 "SpatialRegionProcessor attached ({} region(s) across {} group(s))",
41 container->get_all_region_groups().size());
42}
#define MF_INFO(comp, ctx,...)
std::vector< OrganizedRegion > m_organized_regions
void on_attach(const std::shared_ptr< SignalSourceContainer > &container) override
Attach this processor to a signal source container.
@ ContainerProcessing
Container operations (Kakshya - file/stream/region processing)
@ Kakshya
Containers[Signalsource, Stream, File], Regions, DataProcessors.
@ SPATIAL_X
Spatial X axis (images, tensors)

References MayaFlux::Journal::ContainerProcessing, MayaFlux::Journal::Kakshya, MayaFlux::Kakshya::RegionProcessorBase::m_auto_caching, MayaFlux::Kakshya::RegionProcessorBase::m_organized_regions, MF_INFO, MayaFlux::Kakshya::RegionProcessorBase::on_attach(), MayaFlux::Kakshya::DataDimension::role, MayaFlux::Kakshya::DataDimension::SPATIAL_X, MayaFlux::Kakshya::DataDimension::SPATIAL_Y, and MayaFlux::Kakshya::DataDimension::SPATIAL_Z.

+ Here is the call graph for this function: