MayaFlux 0.2.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 129 of file WindowContainer.cpp.

130{
131 if (coordinates.size() < 3 || m_processed_data.empty())
132 return 0.0;
133
134 const auto* pixels = std::get_if<std::vector<uint8_t>>(&m_processed_data[0]);
135 if (!pixels)
136 return 0.0;
137
138 const uint64_t w = m_structure.get_width();
139 const uint64_t c = m_structure.get_channel_count();
140 const uint64_t idx = (coordinates[0] * w + coordinates[1]) * c + coordinates[2];
141
142 if (idx >= pixels->size())
143 return 0.0;
144
145 return static_cast<double>((*pixels)[idx]) / 255.0;
146}
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, and m_structure.

+ Here is the call graph for this function: