MayaFlux 0.1.0
Digital-First Multimedia Processing Framework
Loading...
Searching...
No Matches
DataUtils.hpp File Reference
#include "MayaFlux/Kakshya/NDData/NDData.hpp"
#include "MayaFlux/Journal/Archivist.hpp"
#include "MayaFlux/Utils.hpp"
#include <glm/gtc/type_ptr.hpp>
#include <typeindex>
+ Include dependency graph for DataUtils.hpp:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  MayaFlux::Kakshya::DataConverter< From, To, Enable >
 
struct  MayaFlux::Kakshya::DataConverter< T, T >
 
struct  MayaFlux::Kakshya::DataConverter< From, To, std::enable_if_t< ArithmeticData< From > &&ArithmeticData< To > &&!std::is_same_v< From, To > &&!GlmType< From > &&!GlmType< To > > >
 
struct  MayaFlux::Kakshya::DataConverter< From, To, std::enable_if_t< ComplexData< From > &&ArithmeticData< To > &&!GlmType< From > &&!GlmType< To > > >
 
struct  MayaFlux::Kakshya::DataConverter< From, To, std::enable_if_t< ArithmeticData< From > &&ComplexData< To > &&!GlmType< From > &&!GlmType< To > > >
 
struct  MayaFlux::Kakshya::DataConverter< From, To, std::enable_if_t< GlmType< From > &&ArithmeticData< To > &&!GlmType< To > > >
 
struct  MayaFlux::Kakshya::DataConverter< From, To, std::enable_if_t< ArithmeticData< From > &&GlmType< To > &&!GlmType< From > > >
 
struct  MayaFlux::Kakshya::DataConverter< From, To, std::enable_if_t< GlmType< From > &&GlmType< To > &&!std::is_same_v< From, To > &&(glm_component_count< From >()==glm_component_count< To >())> >
 
struct  MayaFlux::Kakshya::DataConverter< From, To, std::enable_if_t< ComplexData< From > &&ComplexData< To > &&!GlmType< From > &&!GlmType< To > &&!std::is_same_v< From, To > > >
 

Namespaces

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

Functions

uint64_t MayaFlux::Kakshya::calculate_total_elements (const std::vector< DataDimension > &dimensions)
 Calculate the total number of elements in an N-dimensional container.
 
uint64_t MayaFlux::Kakshya::calculate_frame_size (const std::vector< DataDimension > &dimensions)
 Calculate the frame size (number of elements per frame) for a set of dimensions.
 
std::type_index MayaFlux::Kakshya::get_variant_type_index (const DataVariant &data)
 Get type index from DataVariant.
 
template<ProcessableData T>
constexpr std::span< T > MayaFlux::Kakshya::extract_frame (std::span< T > data, uint64_t frame_index, uint64_t frame_size) noexcept
 Extract a single frame of data from a span.
 
template<ProcessableData T>
std::span< T > MayaFlux::Kakshya::extract_frame (const std::vector< std::span< T > > &channel_spans, uint64_t frame_index, std::vector< T > &output_buffer) noexcept
 Extract a single frame from planar data (returns interleaved).
 
template<typename From , typename To >
std::span< To > MayaFlux::Kakshya::convert_data (std::span< From > source, std::vector< To > &storage, Utils::ComplexConversionStrategy strategy=Utils::ComplexConversionStrategy::MAGNITUDE)
 Convert a span of one data type to another (with type conversion).
 
template<typename From , typename To >
requires (ComplexData<From> && ArithmeticData<To>)
void MayaFlux::Kakshya::convert_complex (std::span< From > source, std::span< To > destination, Utils::ComplexConversionStrategy strategy)
 Legacy interface - redirects to convert_data.
 
template<ProcessableData T>
std::span< T > MayaFlux::Kakshya::convert_variant (DataVariant &variant, Utils::ComplexConversionStrategy strategy=Utils::ComplexConversionStrategy::MAGNITUDE)
 Get const span from DataVariant without conversion (zero-copy for matching types)
 
template<ProcessableData T>
std::span< T > MayaFlux::Kakshya::convert_variant (const DataVariant &variant, Utils::ComplexConversionStrategy strategy=Utils::ComplexConversionStrategy::MAGNITUDE)
 
template<ProcessableData T>
std::vector< std::span< T > > MayaFlux::Kakshya::convert_variants (const std::vector< DataVariant > &variants, Utils::ComplexConversionStrategy strategy=Utils::ComplexConversionStrategy::MAGNITUDE)
 
template<ProcessableData From, ProcessableData To>
std::span< To > MayaFlux::Kakshya::extract_data (std::span< const From > source, std::vector< To > &destination, Utils::ComplexConversionStrategy strategy=Utils::ComplexConversionStrategy::MAGNITUDE)
 Concept-based data extraction with type conversion.
 
template<ProcessableData T>
std::span< T > MayaFlux::Kakshya::extract_from_variant (const DataVariant &variant, std::vector< T > &storage, Utils::ComplexConversionStrategy strategy=Utils::ComplexConversionStrategy::MAGNITUDE)
 Get typed span from DataVariant using concepts.
 
template<typename T >
std::optional< T > MayaFlux::Kakshya::extract_from_variant_at (const DataVariant &variant, uint64_t pos)
 Extract a value of type T from a DataVariant at a specific position.
 
void MayaFlux::Kakshya::safe_copy_data_variant (const DataVariant &input, DataVariant &output)
 Safely copy data from a DataVariant to another DataVariant, handling type conversion.
 
std::span< const double > MayaFlux::Kakshya::safe_copy_data_variant_to_span (const DataVariant &input, std::vector< double > &output)
 Safely copy data from a DataVariant to a span of doubles.
 
template<typename T >
void MayaFlux::Kakshya::safe_copy_typed_variant (const DataVariant &input, DataVariant &output)
 Safely copy data from a DataVariant to another DataVariant of a specific type.
 
std::span< double > MayaFlux::Kakshya::convert_variant_to_double (DataVariant &data, Utils::ComplexConversionStrategy strategy=Utils::ComplexConversionStrategy::MAGNITUDE)
 Convert variant to double span.
 
void MayaFlux::Kakshya::set_metadata_value (std::unordered_map< std::string, std::any > &metadata, const std::string &key, std::any value)
 Set a value in a metadata map (key-value).
 
template<typename T >
std::optional< T > MayaFlux::Kakshya::get_metadata_value (const std::unordered_map< std::string, std::any > &metadata, const std::string &key)
 Get a value from a metadata map by key.
 
int MayaFlux::Kakshya::find_dimension_by_role (const std::vector< DataDimension > &dimensions, DataDimension::Role role)
 Find the index of a dimension by its semantic role.
 
DataModality MayaFlux::Kakshya::detect_data_modality (const std::vector< DataDimension > &dimensions)
 Detects data modality from dimension information.
 
std::vector< DataDimensionMayaFlux::Kakshya::detect_data_dimensions (const DataVariant &data)
 Detect data dimensions from a DataVariant.
 
std::vector< Kakshya::DataDimensionMayaFlux::Kakshya::detect_data_dimensions (const std::vector< Kakshya::DataVariant > &variants)
 Detect data dimensions from a vector of DataVariants.