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

◆ infer_from_region_group()

MAYAFLUX_API 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 135 of file StructureIntrospection.cpp.

136{
137 if (!container || group.regions.empty()) {
138 return { { { Kakshya::DataDimension::time(0) } }, Kakshya::DataModality::UNKNOWN };
139 }
140
141 auto structure = container->get_structure();
142 auto bounds_info = Kakshya::extract_group_bounds_info(group);
143
144 if (bounds_info.contains("bounding_min") && bounds_info.contains("bounding_max")) {
145 auto min_coords = safe_any_cast_or_throw<std::vector<uint64_t>>(bounds_info["bounding_min"]);
146 auto max_coords = safe_any_cast_or_throw<std::vector<uint64_t>>(bounds_info["bounding_max"]);
147
148 std::vector<uint64_t> shape;
149 int size = static_cast<int>(max_coords[0] - min_coords[0]);
150 shape.push_back(std::abs(size) + 1);
151 shape.push_back(max_coords[1]);
152
153 Kakshya::DataModality modality = structure.modality;
154 if (group.attributes.contains("modality")) {
155 auto modality_result = safe_any_cast<Kakshya::DataModality>(group.attributes.at("modality"));
156 if (modality_result)
157 modality = *modality_result.value;
158 }
159
160 auto dimensions = Kakshya::DataDimension::create_dimensions(modality, shape, structure.memory_layout);
161 return { dimensions, modality };
162 }
163
164 return infer_from_region(group.regions[0], container);
165}
bool size
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, size, 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: