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

◆ infer_from_region_group()

std::pair< std::vector< Kakshya::DataDimension >, Kakshya::DataModality > MayaFlux::Yantra::infer_from_region_group ( const Kakshya::RegionGroup group,
const std::shared_ptr< Kakshya::SignalSourceContainer > &  container 
)

Infer structure from RegionGroup.

Definition at line 110 of file StructureIntrospection.cpp.

111{
112 if (!container || group.regions.empty()) {
113 return { { { Kakshya::DataDimension::time(0) } }, Kakshya::DataModality::UNKNOWN };
114 }
115
116 auto structure = container->get_structure();
117 auto bounds_info = Kakshya::extract_group_bounds_info(group);
118
119 if (bounds_info.contains("bounding_min") && bounds_info.contains("bounding_max")) {
120 auto min_coords = std::any_cast<std::vector<uint64_t>>(bounds_info["bounding_min"]);
121 auto max_coords = std::any_cast<std::vector<uint64_t>>(bounds_info["bounding_max"]);
122
123 std::vector<uint64_t> shape;
124 int size = static_cast<int>(max_coords[0] - min_coords[0]);
125 shape.push_back(std::abs(size) + 1);
126 shape.push_back(max_coords[1]);
127
128 auto modality = group.attributes.contains("modality") ? std::any_cast<Kakshya::DataModality>(group.attributes.at("modality")) : structure.modality;
129
130 auto dimensions = Kakshya::DataDimension::create_dimensions(modality, shape, structure.memory_layout);
131 return { dimensions, modality };
132 }
133
134 return infer_from_region(group.regions[0], container);
135}
std::pair< std::vector< Kakshya::DataDimension >, Kakshya::DataModality > infer_from_region(const Kakshya::Region &region, const std::shared_ptr< Kakshya::SignalSourceContainer > &container)
Infer structure from Region (placeholder since regions are markers)
std::unordered_map< std::string, std::any > attributes
Flexible key-value store for group-specific attributes.
std::vector< Region > regions
Collection of regions belonging to this group.

References MayaFlux::Kakshya::RegionGroup::attributes, MayaFlux::Kakshya::DataDimension::create_dimensions(), MayaFlux::Kakshya::extract_group_bounds_info(), infer_from_region(), MayaFlux::Kakshya::RegionGroup::regions, MayaFlux::Kakshya::DataDimension::time(), and MayaFlux::Kakshya::UNKNOWN.

Referenced by infer_structure().

+ Here is the call graph for this function:
+ Here is the caller graph for this function: