MayaFlux 0.1.0
Digital-First Multimedia Processing Framework
Loading...
Searching...
No Matches
CoordUtils.hpp File Reference
+ Include dependency graph for CoordUtils.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

uint64_t MayaFlux::Kakshya::coordinates_to_linear (const std::vector< uint64_t > &coords, const std::vector< DataDimension > &dimensions)
 Convert N-dimensional coordinates to a linear index for interleaved data.
 
std::vector< uint64_t > MayaFlux::Kakshya::linear_to_coordinates (uint64_t index, const std::vector< DataDimension > &dimensions)
 Convert a linear index to N-dimensional coordinates for interleaved data.
 
std::vector< uint64_t > MayaFlux::Kakshya::calculate_strides (const std::vector< DataDimension > &dimensions)
 Calculate memory strides for each dimension (row-major order).
 
bool MayaFlux::Kakshya::validate_region_bounds (const Region &region, const std::vector< DataDimension > &dimensions)
 Validate region bounds against container dimensions.
 
bool MayaFlux::Kakshya::validate_slice_bounds (const std::vector< uint64_t > &slice_start, const std::vector< uint64_t > &slice_end, const std::vector< DataDimension > &dimensions)
 Validate slice coordinates against container bounds.
 
void MayaFlux::Kakshya::clamp_coordinates_to_bounds (std::vector< uint64_t > &coords, const std::vector< DataDimension > &dimensions)
 Clamp coordinates to valid container bounds.
 
std::vector< uint64_t > MayaFlux::Kakshya::transform_coordinates (const std::vector< uint64_t > &coords, const std::vector< double > &scale_factors={}, const std::vector< int64_t > &offset_values={}, const std::unordered_map< std::string, std::any > &rotation_params={})
 Transform coordinates using scaling, translation, rotation.
 
std::vector< uint64_t > MayaFlux::Kakshya::wrap_position_with_loop (const std::vector< uint64_t > &position, const Region &loop_region, bool looping_enabled)
 Wrap a position within loop boundaries if looping is enabled.
 
std::vector< uint64_t > MayaFlux::Kakshya::advance_position (const std::vector< uint64_t > &current_positions, uint64_t frames_to_advance, const ContainerDataStructure &structure, bool looping_enabled, const Region &loop_region)
 Advance current positions by a number of frames, with optional looping.
 
std::vector< uint64_t > MayaFlux::Kakshya::advance_position (const std::vector< uint64_t > &current_positions, const std::vector< uint64_t > &frames_per_channel, const ContainerDataStructure &structure, bool looping_enabled, const Region &loop_region)
 Advance current positions by specified frames per channel, with optional looping.
 
uint64_t MayaFlux::Kakshya::time_to_position (double time, double sample_rate)
 Convert time (seconds) to position (samples/frames) given a sample rate.
 
double MayaFlux::Kakshya::position_to_time (uint64_t position, double sample_rate)
 Convert position (samples/frames) to time (seconds) given a sample rate.
 
uint64_t MayaFlux::Kakshya::calculate_frame_size_for_dimension (const std::vector< DataDimension > &dimensions, size_t primary_dim=0)
 Calculate the frame size for a specific primary dimension.
 
std::vector< int > MayaFlux::Kakshya::extract_dimension_roles (const std::vector< DataDimension > &dimensions)
 Extract dimension roles as integers.
 
std::vector< uint64_t > MayaFlux::Kakshya::extract_dimension_sizes (const std::vector< DataDimension > &dimensions)
 Extract dimension sizes.
 
std::vector< std::unordered_map< std::string, std::any > > MayaFlux::Kakshya::create_dimension_info (const std::vector< DataDimension > &dimensions)
 Create structured dimension information.
 
std::unordered_map< std::string, std::any > MayaFlux::Kakshya::create_coordinate_mapping (const std::shared_ptr< SignalSourceContainer > &container)
 Create coordinate mapping information for container.
 
std::pair< size_t, uint64_t > MayaFlux::Kakshya::coordinates_to_planar_indices (const std::vector< uint64_t > &coords, const std::vector< DataDimension > &dimensions)
 Convert coordinates to planar indices (channel vector + frame index).