39 static_assert(std::is_signed_v<T>);
63 const bool is_new_range = start > *c_;
81 return (c_ - data_.data()) / 2;
87 return data_.size() / 2;
93 return c_ == data_.data();
104 const T start = data_[size_t(1) + 2 * size_t(
i)];
105 const T end = data_[size_t(2) + 2 * size_t(
i)];
112 return ranges_num * 2 + 1;
BMesh const char void * data
static constexpr IndexRange from_begin_end(const int64_t begin, const int64_t end)
bool add_range(const T start, const T end)
static constexpr int64_t buffer_size_for_ranges_num(const int64_t ranges_num)
IndexRangesBuilder(MutableSpan< T > data)
IndexRange index_range() const
IndexRange operator[](const int64_t i) const
NonCopyable(const NonCopyable &other)=delete
NonMovable(NonMovable &&other)=delete
std::array< T, size_t(IndexRangesBuilder< T >::buffer_size_for_ranges_num(MaxRangesNum))> data