diff options
Diffstat (limited to 'source/blender/makesrna/intern/makesrna.c')
-rw-r--r-- | source/blender/makesrna/intern/makesrna.c | 25 |
1 files changed, 21 insertions, 4 deletions
diff --git a/source/blender/makesrna/intern/makesrna.c b/source/blender/makesrna/intern/makesrna.c index 36f19907080..1e9cebbc3ea 100644 --- a/source/blender/makesrna/intern/makesrna.c +++ b/source/blender/makesrna/intern/makesrna.c @@ -4401,9 +4401,7 @@ static RNAProcessItem PROCESS_ITEMS[] = { {"rna_packedfile.c", NULL, RNA_def_packedfile}, {"rna_palette.c", NULL, RNA_def_palette}, {"rna_particle.c", NULL, RNA_def_particle}, -#ifdef WITH_POINT_CLOUD {"rna_pointcloud.c", NULL, RNA_def_pointcloud}, -#endif {"rna_pose.c", "rna_pose_api.c", RNA_def_pose}, {"rna_curveprofile.c", NULL, RNA_def_profile}, {"rna_lightprobe.c", NULL, RNA_def_lightprobe}, @@ -4698,6 +4696,19 @@ static const char *cpp_classes = " inline static int sname##_##identifier##_length_wrap(PointerRNA *ptr) \\\n" " { return sname##_##identifier##_length(ptr); } \n" "\n" + "#define COLLECTION_PROPERTY_EMPTY_false(sname, identifier) \\\n" + " inline static bool sname##_##identifier##_empty_wrap(PointerRNA *ptr) \\\n" + " { \\\n" + " CollectionPropertyIterator iter; \\\n" + " sname##_##identifier##_begin(&iter, ptr); \\\n" + " bool empty = !iter.valid; \\\n" + " sname##_##identifier##_end(&iter); \\\n" + " return empty; \\\n" + " } \n" + "#define COLLECTION_PROPERTY_EMPTY_true(sname, identifier) \\\n" + " inline static bool sname##_##identifier##_empty_wrap(PointerRNA *ptr) \\\n" + " { return sname##_##identifier##_length(ptr) == 0; } \n" + "\n" "#define COLLECTION_PROPERTY_LOOKUP_INT_false(sname, identifier) \\\n" " inline static int sname##_##identifier##_lookup_int_wrap(PointerRNA *ptr, int key, " "PointerRNA *r_ptr) \\\n" @@ -4774,11 +4785,13 @@ static const char *cpp_classes = " typedef CollectionIterator<type, sname##_##identifier##_begin, \\\n" " sname##_##identifier##_next, sname##_##identifier##_end> identifier##_iterator; \\\n" " COLLECTION_PROPERTY_LENGTH_##has_length(sname, identifier) \\\n" + " COLLECTION_PROPERTY_EMPTY_##has_length(sname, identifier) \\\n" " COLLECTION_PROPERTY_LOOKUP_INT_##has_lookup_int(sname, identifier) \\\n" " COLLECTION_PROPERTY_LOOKUP_STRING_##has_lookup_string(sname, identifier) \\\n" " CollectionRef<sname, type, sname##_##identifier##_begin, \\\n" " sname##_##identifier##_next, sname##_##identifier##_end, \\\n" " sname##_##identifier##_length_wrap, \\\n" + " sname##_##identifier##_empty_wrap, \\\n" " sname##_##identifier##_lookup_int_wrap, sname##_##identifier##_lookup_string_wrap, " "collection_funcs> identifier;\n" "\n" @@ -4792,6 +4805,7 @@ static const char *cpp_classes = "\n" " bool operator==(const Pointer &other) const { return ptr.data == other.ptr.data; }\n" " bool operator!=(const Pointer &other) const { return ptr.data != other.ptr.data; }\n" + " bool operator<(const Pointer &other) const { return ptr.data < other.ptr.data; }\n" "\n" " PointerRNA ptr;\n" "};\n" @@ -4843,6 +4857,7 @@ static const char *cpp_classes = "typedef void (*TNextFunc)(CollectionPropertyIterator *iter);\n" "typedef void (*TEndFunc)(CollectionPropertyIterator *iter);\n" "typedef int (*TLengthFunc)(PointerRNA *ptr);\n" + "typedef bool (*TEmptyFunc)(PointerRNA *ptr);\n" "typedef int (*TLookupIntFunc)(PointerRNA *ptr, int key, PointerRNA *r_ptr);\n" "typedef int (*TLookupStringFunc)(PointerRNA *ptr, const char *key, PointerRNA *r_ptr);\n" "\n" @@ -4881,8 +4896,8 @@ static const char *cpp_classes = "};\n" "\n" "template<typename Tp, typename T, TBeginFunc Tbegin, TNextFunc Tnext, TEndFunc Tend,\n" - " TLengthFunc Tlength, TLookupIntFunc Tlookup_int, TLookupStringFunc Tlookup_string,\n" - " typename Tcollection_funcs>\n" + " TLengthFunc Tlength, TEmptyFunc Tempty, TLookupIntFunc Tlookup_int,\n" + " TLookupStringFunc Tlookup_string, typename Tcollection_funcs>\n" "class CollectionRef : public Tcollection_funcs {\n" "public:\n" " CollectionRef(const PointerRNA &p) : Tcollection_funcs(p), ptr(p) {}\n" @@ -4896,6 +4911,8 @@ static const char *cpp_classes = "" " int length()\n" " { return Tlength(&ptr); }\n" + " bool empty()\n" + " { return Tempty(&ptr); }\n" " T operator[](int key)\n" " { PointerRNA r_ptr; Tlookup_int(&ptr, key, &r_ptr); return T(r_ptr); }\n" " T operator[](const std::string &key)\n" |