[Bf-blender-cvs] [406424e09d6] virtual-array-attributes: cleanup
Jacques Lucke
noreply at git.blender.org
Mon Apr 12 18:27:53 CEST 2021
Commit: 406424e09d619d76ca6a007fe5b2b2641b69e3f7
Author: Jacques Lucke
Date: Sat Apr 10 17:03:44 2021 +0200
Branches: virtual-array-attributes
https://developer.blender.org/rB406424e09d619d76ca6a007fe5b2b2641b69e3f7
cleanup
===================================================================
M source/blender/functions/FN_generic_virtual_array.hh
===================================================================
diff --git a/source/blender/functions/FN_generic_virtual_array.hh b/source/blender/functions/FN_generic_virtual_array.hh
index aa222b34705..298b7a72c0b 100644
--- a/source/blender/functions/FN_generic_virtual_array.hh
+++ b/source/blender/functions/FN_generic_virtual_array.hh
@@ -321,7 +321,7 @@ template<typename T> class GVArrayForVArray : public GVArray {
template<typename T> class VArrayForGVArray : public VArray<T> {
private:
- const GVArray *varray_;
+ const GVArray *varray_ = nullptr;
public:
VArrayForGVArray(const GVArray &varray) : VArray<T>(varray.size()), varray_(&varray)
@@ -329,7 +329,17 @@ template<typename T> class VArrayForGVArray : public VArray<T> {
BLI_assert(varray_->type().template is<T>());
}
+ VArrayForGVArray(const int64_t size) : VArray<T>(size)
+ {
+ }
+
protected:
+ void set_varray(const GVArray &varray)
+ {
+ BLI_assert(varray.size() == this->size_);
+ varray_ = &varray;
+ }
+
T get_impl(const int64_t index) const override
{
T value;
@@ -424,6 +434,17 @@ template<typename T> class GVArrayForOwnedVArray : public GVArrayForVArray<T> {
}
};
+template<typename T> class VArrayForOwnedGVArray : public VArrayForGVArray<T> {
+ private:
+ std::unique_ptr<VArray<T>> owned_varray_;
+
+ public:
+ VArrayForOwnedGVArray(std::unique_ptr<GVArray> varray)
+ : VArrayForGVArray<T>(*varray), owned_varray_(std::move(varray))
+ {
+ }
+};
+
template<typename T, typename VArrayT>
class GVArrayForEmbeddedVArray : public GVArrayForVArray<T> {
private:
More information about the Bf-blender-cvs
mailing list