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

◆ set_value_impl()

void MayaFlux::Kakshya::PlotContainer::set_value_impl ( const std::vector< uint64_t > &  coords,
const void *  in,
const std::type_info &  type 
)
overrideprotectedvirtual

Type-erased single-element write.

Implementations copy from in into their storage at coords if type matches their native type, otherwise no-op. in points to a caller-owned buffer of exactly sizeof(native type) bytes.

Implements MayaFlux::Kakshya::NDDataContainer< DataVariant >.

Definition at line 561 of file PlotContainer.cpp.

565{
566 if (type != typeid(double) || coords.size() < 2 || coords[0] >= m_data.size())
567 return;
568
569 const auto idx = static_cast<size_t>(coords[0]);
570
571 Memory::SeqlockWriteGuard g(m_series_locks[idx]);
572 auto* vec = std::get_if<std::vector<double>>(&m_data[idx]);
573 if (!vec || coords[1] >= vec->size())
574 return;
575
576 (*vec)[coords[1]] = *static_cast<const double*>(in);
577}
std::vector< glm::ivec3 > coords
Definition VDBWriter.cpp:25
vk::PhysicalDeviceType type
Definition VKDevice.cpp:126
std::vector< DataVariant > m_data
Memory::SeqlockArray m_series_locks

References coords, m_data, m_series_locks, and type.