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

◆ get_value_at()

double MayaFlux::Kakshya::WindowContainer::get_value_at ( const std::vector< uint64_t > &  coordinates) const
overridevirtual

Get a single value at the specified coordinates.

Parameters
coordinatesN-dimensional coordinates
Returns
Value at the specified location

Implements MayaFlux::Kakshya::NDDataContainer.

Definition at line 303 of file WindowContainer.cpp.

304{
305 if (coordinates.size() < 3 || m_processed_data.empty())
306 return 0.0;
307
308 const auto* pixels = std::get_if<std::vector<uint8_t>>(&m_processed_data[0]);
309 if (!pixels)
310 return 0.0;
311
312 const uint64_t w = m_structure.get_width();
313 const uint64_t c = m_structure.get_channel_count();
314 const uint64_t idx = (coordinates[0] * w + coordinates[1]) * c + coordinates[2];
315
316 if (idx >= pixels->size())
317 return 0.0;
318
319 return static_cast<double>((*pixels)[idx]) / 255.0;
320}
const std::vector< float > * pixels
std::vector< DataVariant > m_processed_data
static uint64_t get_channel_count(const std::vector< DataDimension > &dimensions)
Extract channel count from dimensions.
static uint64_t get_width(const std::vector< DataDimension > &dimensions)
Extract width from image/video dimensions.

References MayaFlux::Kakshya::ContainerDataStructure::get_channel_count(), MayaFlux::Kakshya::ContainerDataStructure::get_width(), m_processed_data, m_structure, and pixels.

+ Here is the call graph for this function: