Changeset View
Changeset View
Standalone View
Standalone View
source/blender/blenlib/BLI_virtual_array.hh
| Show First 20 Lines • Show All 1,132 Lines • ▼ Show 20 Lines | |||||
| * - An API is called, that does not accept virtual arrays, but only spans. | * - An API is called, that does not accept virtual arrays, but only spans. | ||||
| */ | */ | ||||
| template<typename T> class VArray_Span final : public Span<T> { | template<typename T> class VArray_Span final : public Span<T> { | ||||
| private: | private: | ||||
| VArray<T> varray_; | VArray<T> varray_; | ||||
| Array<T> owned_data_; | Array<T> owned_data_; | ||||
| public: | public: | ||||
| VArray_Span() = default; | |||||
| VArray_Span(VArray<T> varray) : Span<T>(), varray_(std::move(varray)) | VArray_Span(VArray<T> varray) : Span<T>(), varray_(std::move(varray)) | ||||
| { | { | ||||
| this->size_ = varray_.size(); | this->size_ = varray_.size(); | ||||
| if (varray_.is_span()) { | if (varray_.is_span()) { | ||||
| this->data_ = varray_.get_internal_span().data(); | this->data_ = varray_.get_internal_span().data(); | ||||
| } | } | ||||
| else { | else { | ||||
| owned_data_.~Array(); | owned_data_.~Array(); | ||||
| ▲ Show 20 Lines • Show All 94 Lines • Show Last 20 Lines | |||||