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

◆ coordinates_to_linear()

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.

Parameters
coordsN-dimensional coordinates.
dimensionsDimension descriptors (size/stride/role).
Returns
Linear index into the underlying data storage.
Note
Only works with interleaved organization strategy. For planar data, use coordinates_to_planar_indices() instead.

Definition at line 8 of file CoordUtils.cpp.

9{
10 uint64_t index = 0;
11 uint64_t multiplier = 1;
12 for (int i = dimensions.size() - 1; i >= 0; --i) {
13 if (i < coords.size()) {
14 index += coords[i] * multiplier;
15 }
16 multiplier *= dimensions[i].size;
17 }
18 return index;
19}

Referenced by MayaFlux::Kakshya::SoundStreamContainer::coordinates_to_linear_index(), MayaFlux::Kakshya::VideoStreamContainer::coordinates_to_linear_index(), MayaFlux::Kakshya::WindowContainer::coordinates_to_linear_index(), MayaFlux::Kakshya::TextureContainer::coordinates_to_linear_index(), extract_region_data(), and set_or_update_region_data().

+ Here is the caller graph for this function: