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

◆ remove()

void MayaFlux::Buffers::SliceSet::remove ( SliceId  id)

Remove a block; later blocks shift down.

Definition at line 78 of file SliceSet.cpp.

79{
80 auto it = m_slices.find(id);
81 if (it == m_slices.end()) {
82 return;
83 }
84
85 const Slice slice = it->second;
86 const auto first = m_mirror.begin() + static_cast<std::ptrdiff_t>(slice.byte_offset);
87 m_mirror.erase(first, first + static_cast<std::ptrdiff_t>(slice.byte_size));
88
89 const auto position = std::ranges::find(m_memory_order, id);
90 const auto index = static_cast<size_t>(position - m_memory_order.begin());
92 std::erase(m_draw_order, id);
93 m_slices.erase(it);
94
96 mark_dirty(slice.byte_offset, m_mirror.size());
97 m_runs_changed = true;
98}
std::optional< glm::vec3 > position
Definition Decoder.cpp:93
uint32_t index
Definition VKDevice.cpp:122
void mark_dirty(size_t start, size_t end)
Definition SliceSet.cpp:213
std::unordered_map< SliceId, Slice > m_slices
Definition SliceSet.hpp:114
std::vector< SliceId > m_draw_order
Definition SliceSet.hpp:116
std::vector< SliceId > m_memory_order
Definition SliceSet.hpp:115
void repack_from(size_t memory_index)
Definition SliceSet.cpp:198
std::vector< uint8_t > m_mirror
Definition SliceSet.hpp:117
std::vector< double > slice(std::span< const double > data, double start_ratio, double end_ratio)
Extract a contiguous slice by ratio, returning a new vector.

References index, m_draw_order, m_memory_order, m_mirror, m_runs_changed, m_slices, mark_dirty(), position, and repack_from().

Referenced by MayaFlux::Buffers::FormaProcessor::remove_slice().

+ Here is the call graph for this function:
+ Here is the caller graph for this function: