Changeset View
Changeset View
Standalone View
Standalone View
source/blender/makesrna/intern/makesrna.c
| Show First 20 Lines • Show All 4,752 Lines • ▼ Show 20 Lines | static const char *cpp_classes = | ||||
| "typedef int (*TLengthFunc)(PointerRNA *ptr);\n" | "typedef int (*TLengthFunc)(PointerRNA *ptr);\n" | ||||
| "typedef int (*TLookupIntFunc)(PointerRNA *ptr, int key, PointerRNA *r_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" | "typedef int (*TLookupStringFunc)(PointerRNA *ptr, const char *key, PointerRNA *r_ptr);\n" | ||||
| "\n" | "\n" | ||||
| "template<typename T, TBeginFunc Tbegin, TNextFunc Tnext, TEndFunc Tend>\n" | "template<typename T, TBeginFunc Tbegin, TNextFunc Tnext, TEndFunc Tend>\n" | ||||
| "class CollectionIterator {\n" | "class CollectionIterator {\n" | ||||
| "public:\n" | "public:\n" | ||||
| " CollectionIterator() : iter(), t(iter.ptr), init(false) { iter.valid = false; }\n" | " CollectionIterator() : iter(), t(iter.ptr), init(false) { iter.valid = false; }\n" | ||||
| " CollectionIterator(const PointerRNA &ptr) : CollectionIterator() { this->begin(ptr); }\n" | |||||
| " ~CollectionIterator(void) { if (init) Tend(&iter); };\n" | " ~CollectionIterator(void) { if (init) Tend(&iter); };\n" | ||||
| "\n" | "\n" | ||||
| " CollectionIterator(const CollectionIterator &other) = delete;\n" | |||||
| " CollectionIterator(CollectionIterator &&other) = delete;\n" | |||||
| " CollectionIterator &operator=(const CollectionIterator &other) = delete;\n" | |||||
| " CollectionIterator &operator=(CollectionIterator &&other) = delete;\n" | |||||
| "\n" | |||||
| " operator bool(void)\n" | " operator bool(void)\n" | ||||
| " { return iter.valid != 0; }\n" | " { return iter.valid != 0; }\n" | ||||
| " const CollectionIterator<T, Tbegin, Tnext, Tend>& operator++() { Tnext(&iter); t = " | " const CollectionIterator<T, Tbegin, Tnext, Tend>& operator++() { Tnext(&iter); t = " | ||||
| "T(iter.ptr); return *this; }\n" | "T(iter.ptr); return *this; }\n" | ||||
| "\n" | "\n" | ||||
| " T& operator*(void) { return t; }\n" | " T& operator*(void) { return t; }\n" | ||||
| " T* operator->(void) { return &t; }\n" | " T* operator->(void) { return &t; }\n" | ||||
| " bool operator == (const CollectionIterator<T, Tbegin, Tnext, Tend>& other) " | " bool operator == (const CollectionIterator<T, Tbegin, Tnext, Tend>& other) " | ||||
| "{ return iter.valid == other.iter.valid; }\n" | "{ return iter.valid == other.iter.valid; }\n" | ||||
| " bool operator!=(const CollectionIterator<T, Tbegin, Tnext, Tend>& other) " | " bool operator!=(const CollectionIterator<T, Tbegin, Tnext, Tend>& other) " | ||||
| "{ return iter.valid != other.iter.valid; }\n" | "{ return iter.valid != other.iter.valid; }\n" | ||||
| "\n" | "\n" | ||||
| " void begin(const Pointer &ptr)\n" | " void begin(const Pointer &ptr)\n" | ||||
| " { if (init) Tend(&iter); Tbegin(&iter, (PointerRNA *)&ptr.ptr); t = T(iter.ptr); init = " | " { if (init) Tend(&iter); Tbegin(&iter, (PointerRNA *)&ptr.ptr); t = T(iter.ptr); init = " | ||||
| "true; }\n" | "true; }\n" | ||||
| "\n" | "\n" | ||||
| "private:\n" | "private:\n" | ||||
| " const CollectionIterator<T, Tbegin, Tnext, Tend>& operator = " | |||||
| "(const CollectionIterator<T, Tbegin, Tnext, Tend>& /*copy*/) {}\n" | |||||
| "" | |||||
| " CollectionPropertyIterator iter;\n" | " CollectionPropertyIterator iter;\n" | ||||
| " T t;\n" | " T t;\n" | ||||
| " bool init;\n" | " bool init;\n" | ||||
| "};\n" | "};\n" | ||||
| "\n" | "\n" | ||||
| "template<typename Tp, typename T, TBeginFunc Tbegin, TNextFunc Tnext, TEndFunc Tend,\n" | "template<typename Tp, typename T, TBeginFunc Tbegin, TNextFunc Tnext, TEndFunc Tend,\n" | ||||
| " TLengthFunc Tlength, TLookupIntFunc Tlookup_int, TLookupStringFunc Tlookup_string,\n" | " TLengthFunc Tlength, TLookupIntFunc Tlookup_int, TLookupStringFunc Tlookup_string,\n" | ||||
| " typename Tcollection_funcs>\n" | " typename Tcollection_funcs>\n" | ||||
| "class CollectionRef : public Tcollection_funcs {\n" | "class CollectionRef : public Tcollection_funcs {\n" | ||||
| "public:\n" | "public:\n" | ||||
| " CollectionRef(const PointerRNA &p) : Tcollection_funcs(p), ptr(p) {}\n" | " CollectionRef(const PointerRNA &p) : Tcollection_funcs(p), ptr(p) {}\n" | ||||
| "\n" | "\n" | ||||
| " void begin(CollectionIterator<T, Tbegin, Tnext, Tend>& iter)\n" | " void begin(CollectionIterator<T, Tbegin, Tnext, Tend>& iter)\n" | ||||
| " { iter.begin(ptr); }\n" | " { iter.begin(ptr); }\n" | ||||
| " CollectionIterator<T, Tbegin, Tnext, Tend> begin()\n" | |||||
| " { return CollectionIterator<T, Tbegin, Tnext, Tend>(ptr); }\n" | |||||
| " CollectionIterator<T, Tbegin, Tnext, Tend> end()\n" | " CollectionIterator<T, Tbegin, Tnext, Tend> end()\n" | ||||
| " { return CollectionIterator<T, Tbegin, Tnext, Tend>(); } /* test */ \n" | " { return CollectionIterator<T, Tbegin, Tnext, Tend>(); } /* test */ \n" | ||||
| "" | "" | ||||
| " int length()\n" | " int length()\n" | ||||
| " { return Tlength(&ptr); }\n" | " { return Tlength(&ptr); }\n" | ||||
| " T operator[](int key)\n" | " T operator[](int key)\n" | ||||
| " { PointerRNA r_ptr; Tlookup_int(&ptr, key, &r_ptr); return T(r_ptr); }\n" | " { PointerRNA r_ptr; Tlookup_int(&ptr, key, &r_ptr); return T(r_ptr); }\n" | ||||
| " T operator[](const std::string &key)\n" | " T operator[](const std::string &key)\n" | ||||
| ▲ Show 20 Lines • Show All 380 Lines • Show Last 20 Lines | |||||