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

◆ get_region_data()

std::vector< DataVariant > MayaFlux::Kakshya::TextureContainer::get_region_data ( const Region region) const
overridevirtual

Get data for a specific region.

Parameters
regionThe region to extract data from
Returns
std::vector<DataVariant> containing the region's data

Implements MayaFlux::Kakshya::NDDataContainer.

Definition at line 486 of file TextureContainer.cpp.

487{
488 std::shared_lock lock(m_data_mutex);
489 if (m_data.empty())
490 return {};
491
492 return std::visit(
493 [&](const auto& vec) -> std::vector<DataVariant> {
494 using T = typename std::decay_t<decltype(vec)>::value_type;
495 if constexpr (std::is_same_v<T, uint8_t>
496 || std::is_same_v<T, uint16_t>
497 || std::is_same_v<T, float>) {
498 auto extracted = extract_region_data<T>(
499 std::span<const T>(vec.data(), vec.size()),
500 region,
502 return { DataVariant(std::move(extracted)) };
503 } else {
504 return {};
505 }
506 },
507 m_data[0]);
508}
void lock() override
Acquire a lock for thread-safe access.
std::variant< std::vector< double >, std::vector< float >, std::vector< uint8_t >, std::vector< uint16_t >, std::vector< uint32_t >, std::vector< std::complex< float > >, std::vector< std::complex< double > >, std::vector< glm::vec2 >, std::vector< glm::vec3 >, std::vector< glm::vec4 >, std::vector< glm::mat4 > > DataVariant
Multi-type data storage for different precision needs.
Definition NDData.hpp:76