MayaFlux 0.1.0
Digital-First Multimedia Processing Framework
Loading...
Searching...
No Matches
RegionUtils.hpp File Reference
+ Include dependency graph for RegionUtils.hpp:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Namespaces

namespace  MayaFlux
 Main namespace for the Maya Flux audio engine.
 
namespace  MayaFlux::Kakshya
 

Functions

Region MayaFlux::Kakshya::remove_channel_dimension (const Region &region, const std::vector< DataDimension > &dimensions)
 Remove the channel dimension from a Region.
 
std::vector< DataDimensionMayaFlux::Kakshya::get_non_channel_dimensions (const std::vector< DataDimension > &dimensions)
 Get all non-channel dimensions from a list of dimensions.
 
template<typename T >
std::vector< T > MayaFlux::Kakshya::flatten_channels (const std::vector< std::vector< T > > &channel_data)
 Flatten a vector of channel data into a single vector.
 
template<typename T >
std::vector< T > MayaFlux::Kakshya::extract_region_data (const std::span< const T > &source_data, const Region &region, const std::vector< DataDimension > &dimensions)
 Extract a region of data from a flat data span using a Region and dimension info.
 
template<typename T >
std::vector< std::vector< T > > MayaFlux::Kakshya::extract_region_data (const std::vector< std::span< const T > > &source_data, const Region &region, const std::vector< DataDimension > &dimensions, bool flatten=false)
 Extract region data from planar storage (separate per channel/variant)
 
template<typename T >
std::vector< std::vector< T > > MayaFlux::Kakshya::extract_group_data (const std::vector< std::span< const T > > &source_spans, const RegionGroup &group, const std::vector< DataDimension > &dimensions, OrganizationStrategy organization)
 Extract data for multiple regions from multi-channel source data.
 
template<typename T >
std::vector< std::vector< T > > MayaFlux::Kakshya::extract_segments_data (const std::vector< RegionSegment > &segments, const std::vector< std::span< const T > > &source_spans, const std::vector< DataDimension > &dimensions, OrganizationStrategy organization)
 Extract data for multiple segments from multi-channel source data.
 
template<typename T >
std::vector< T > MayaFlux::Kakshya::extract_region (const std::vector< T > &data, const Region &region, const std::vector< DataDimension > &dimensions)
 Extract a region of data from a vector using a Region and dimension info.
 
template<typename T >
std::vector< std::vector< T > > MayaFlux::Kakshya::extract_region (const std::vector< std::vector< T > > &source_data, const Region &region, const std::vector< DataDimension > &dimensions)
 Extract a region of data from vector of vectors (planar data).
 
template<typename T >
auto MayaFlux::Kakshya::extract_region_data (const std::vector< std::span< const T > > &source_spans, const Region &region, const std::vector< DataDimension > &dimensions, OrganizationStrategy organization)
 Extract a region of data with organization strategy.
 
template<typename T >
void MayaFlux::Kakshya::set_or_update_region_data (std::span< T > dest_data, std::span< const T > source_data, const Region &region, const std::vector< DataDimension > &dimensions)
 Write or update a region of data in a flat data span (interleaved).
 
template<typename T >
void MayaFlux::Kakshya::set_or_update_region_data (std::vector< std::span< T > > &dest_spans, const std::vector< std::span< const T > > &source_data, const Region &region, const std::vector< DataDimension > &dimensions)
 Write or update a region of data in planar storage.
 
template<typename T >
void MayaFlux::Kakshya::set_or_update_region_data (std::vector< std::span< T > > &dest_spans, const std::vector< std::span< const T > > &source_data, const Region &region, const std::vector< DataDimension > &dimensions, OrganizationStrategy organization)
 Write or update a region of data with organization strategy.
 
uint64_t MayaFlux::Kakshya::calculate_region_size (const Region &region)
 Calculate the total number of elements in a region.
 
template<typename T >
std::optional< T > MayaFlux::Kakshya::get_region_attribute (const Region &region, const std::string &key)
 Get an attribute value from a Region by key.
 
void MayaFlux::Kakshya::set_region_attribute (Region &region, const std::string &key, std::any value)
 Set an attribute value on a Region.
 
std::vector< RegionMayaFlux::Kakshya::find_regions_with_label (const RegionGroup &group, const std::string &label)
 Find all regions in a RegionGroup with a given label.
 
std::vector< RegionMayaFlux::Kakshya::find_regions_with_attribute (const RegionGroup &group, const std::string &key, const std::any &value)
 Find all regions in a RegionGroup with a specific attribute value.
 
std::vector< RegionMayaFlux::Kakshya::find_regions_containing_coordinates (const RegionGroup &group, const std::vector< uint64_t > &coordinates)
 Find all regions in a RegionGroup that contain the given coordinates.
 
Region MayaFlux::Kakshya::translate_region (const Region &region, const std::vector< int64_t > &offset)
 Translate a Region by an offset vector.
 
Region MayaFlux::Kakshya::scale_region (const Region &region, const std::vector< double > &factors)
 Scale a Region about its center by the given factors.
 
Region MayaFlux::Kakshya::get_bounding_region (const RegionGroup &group)
 Get the bounding region that contains all regions in a RegionGroup.
 
void MayaFlux::Kakshya::sort_regions_by_dimension (std::vector< Region > &regions, size_t dimension)
 Sort a vector of Regions by a specific dimension.
 
void MayaFlux::Kakshya::sort_regions_by_attribute (std::vector< Region > &regions, const std::string &attr_name)
 Sort a vector of Regions by a specific attribute (numeric).
 
void MayaFlux::Kakshya::add_reference_region (std::vector< std::pair< std::string, Region > > &refs, const std::string &name, const Region &region)
 Add a named reference region to a reference list.
 
void MayaFlux::Kakshya::remove_reference_region (std::vector< std::pair< std::string, Region > > &refs, const std::string &name)
 Remove a named reference region from a reference list.
 
std::optional< RegionMayaFlux::Kakshya::get_reference_region (const std::vector< std::pair< std::string, Region > > &refs, const std::string &name)
 Get a named reference region from a reference list.
 
std::vector< std::pair< std::string, Region > > MayaFlux::Kakshya::find_references_in_region (const std::vector< std::pair< std::string, Region > > &refs, const Region &region)
 Find all references in a reference list that overlap a given region.
 
void MayaFlux::Kakshya::add_region_group (std::unordered_map< std::string, RegionGroup > &groups, const RegionGroup &group)
 Add a RegionGroup to a group map.
 
std::optional< RegionGroupMayaFlux::Kakshya::get_region_group (const std::unordered_map< std::string, RegionGroup > &groups, const std::string &name)
 Get a RegionGroup by name from a group map.
 
void MayaFlux::Kakshya::remove_region_group (std::unordered_map< std::string, RegionGroup > &groups, const std::string &name)
 Remove a RegionGroup by name from a group map.
 
Region MayaFlux::Kakshya::calculate_output_region (const std::vector< uint64_t > &current_pos, const std::vector< uint64_t > &output_shape)
 Calculate output region bounds from current position and shape.
 
Region MayaFlux::Kakshya::calculate_output_region (uint64_t current_frame, uint64_t frames_to_process, const std::shared_ptr< SignalSourceContainer > &container)
 Calculate output region for frame-based processing.
 
bool MayaFlux::Kakshya::is_region_access_contiguous (const Region &region, const std::shared_ptr< SignalSourceContainer > &container)
 Check if region access will be contiguous in memory.
 
std::vector< std::unordered_map< std::string, std::any > > MayaFlux::Kakshya::extract_all_regions_info (const std::shared_ptr< SignalSourceContainer > &container)
 Extract all regions from container's region groups.
 
std::unordered_map< std::string, std::any > MayaFlux::Kakshya::extract_group_bounds_info (const RegionGroup &group)
 Extract bounds information from region group.
 
std::vector< std::unordered_map< std::string, std::any > > MayaFlux::Kakshya::extract_segments_metadata (const std::vector< RegionSegment > &segments)
 Extract metadata from region segments.
 
std::unordered_map< std::string, std::any > MayaFlux::Kakshya::extract_region_bounds_info (const Region &region)
 Extract structured bounds information from region.
 
std::optional< size_t > MayaFlux::Kakshya::find_region_for_position (const std::vector< uint64_t > &position, const std::vector< Region > &regions)
 Find optimal region containing given position.
 
std::optional< size_t > MayaFlux::Kakshya::find_region_for_position (const std::vector< uint64_t > &position, std::vector< OrganizedRegion > regions)
 Find the index of the region containing the given position.