Blender  V3.3
idprop_py_api.h
Go to the documentation of this file.
1 /* SPDX-License-Identifier: GPL-2.0-or-later */
2 
7 #pragma once
8 
9 struct BPy_IDGroup_Iter;
10 struct ID;
11 struct IDProperty;
12 
13 extern PyTypeObject BPy_IDArray_Type;
14 extern PyTypeObject BPy_IDGroup_Type;
15 
16 extern PyTypeObject BPy_IDGroup_ViewKeys_Type;
17 extern PyTypeObject BPy_IDGroup_ViewValues_Type;
18 extern PyTypeObject BPy_IDGroup_ViewItems_Type;
19 
20 extern PyTypeObject BPy_IDGroup_IterKeys_Type;
21 extern PyTypeObject BPy_IDGroup_IterValues_Type;
22 extern PyTypeObject BPy_IDGroup_IterItems_Type;
23 
24 #define BPy_IDArray_Check(v) (PyObject_TypeCheck(v, &BPy_IDArray_Type))
25 #define BPy_IDArray_CheckExact(v) (Py_TYPE(v) == &BPy_IDArray_Type)
26 #define BPy_IDGroup_Check(v) (PyObject_TypeCheck(v, &BPy_IDGroup_Type))
27 #define BPy_IDGroup_CheckExact(v) (Py_TYPE(v) == &BPy_IDGroup_Type)
28 
29 #define BPy_IDGroup_ViewKeys_Check(v) (PyObject_TypeCheck(v, &BPy_IDGroup_ViewKeys_Type))
30 #define BPy_IDGroup_ViewKeys_CheckExact(v) (Py_TYPE(v) == &BPy_IDGroup_ViewKeys_Type)
31 #define BPy_IDGroup_ViewValues_Check(v) (PyObject_TypeCheck(v, &BPy_IDGroup_ViewValues_Type))
32 #define BPy_IDGroup_ViewValues_CheckExact(v) (Py_TYPE(v) == &BPy_IDGroup_ViewValues_Type)
33 #define BPy_IDGroup_ViewItems_Check(v) (PyObject_TypeCheck(v, &BPy_IDGroup_ViewItems_Type))
34 #define BPy_IDGroup_ViewItems_CheckExact(v) (Py_TYPE(v) == &BPy_IDGroup_ViewItems_Type)
35 
36 #define BPy_IDGroup_IterKeys_Check(v) (PyObject_TypeCheck(v, &BPy_IDGroup_IterKeys_Type))
37 #define BPy_IDGroup_IterKeys_CheckExact(v) (Py_TYPE(v) == &BPy_IDGroup_IterKeys_Type)
38 #define BPy_IDGroup_IterValues_Check(v) (PyObject_TypeCheck(v, &BPy_IDGroup_IterValues_Type))
39 #define BPy_IDGroup_IterValues_CheckExact(v) (Py_TYPE(v) == &BPy_IDGroup_IterValues_Type)
40 #define BPy_IDGroup_IterItems_Check(v) (PyObject_TypeCheck(v, &BPy_IDGroup_IterItems_Type))
41 #define BPy_IDGroup_IterItems_CheckExact(v) (Py_TYPE(v) == &BPy_IDGroup_IterItems_Type)
42 
43 typedef struct BPy_IDProperty {
44  PyObject_VAR_HEAD
45  struct ID *owner_id; /* can be NULL */
46  struct IDProperty *prop; /* must be second member */
47  struct IDProperty *parent;
49 
50 typedef struct BPy_IDArray {
51  PyObject_VAR_HEAD
52  struct ID *owner_id; /* can be NULL */
53  struct IDProperty *prop; /* must be second member */
55 
56 typedef struct BPy_IDGroup_Iter {
57  PyObject_VAR_HEAD
59  struct IDProperty *cur;
61  int len_init;
63  bool reversed;
65 
67 typedef struct BPy_IDGroup_View {
68  PyObject_VAR_HEAD
71  bool reversed;
73 
74 PyObject *BPy_Wrap_GetKeys(struct IDProperty *prop);
75 PyObject *BPy_Wrap_GetValues(struct ID *id, struct IDProperty *prop);
76 PyObject *BPy_Wrap_GetItems(struct ID *id, struct IDProperty *prop);
77 
78 PyObject *BPy_Wrap_GetKeys_View_WithID(struct ID *id, struct IDProperty *prop);
79 PyObject *BPy_Wrap_GetValues_View_WithID(struct ID *id, struct IDProperty *prop);
80 PyObject *BPy_Wrap_GetItems_View_WithID(struct ID *id, struct IDProperty *prop);
81 
82 int BPy_Wrap_SetMapItem(struct IDProperty *prop, PyObject *key, PyObject *val);
83 
87 PyObject *BPy_IDGroup_MapDataToPy(struct IDProperty *prop);
88 PyObject *BPy_IDGroup_WrapData(struct ID *id, struct IDProperty *prop, struct IDProperty *parent);
95 bool BPy_IDProperty_Map_ValidateAndCreate(PyObject *key, struct IDProperty *group, PyObject *ob);
96 
97 void IDProp_Init_Types(void);
98 
99 PyObject *BPyInit_idprop(void);
void IDProp_Init_Types(void)
PyObject * BPy_IDGroup_MapDataToPy(struct IDProperty *prop)
PyTypeObject BPy_IDGroup_ViewItems_Type
PyTypeObject BPy_IDGroup_ViewValues_Type
PyObject * BPy_Wrap_GetValues_View_WithID(struct ID *id, struct IDProperty *prop)
PyTypeObject BPy_IDGroup_ViewKeys_Type
bool BPy_IDProperty_Map_ValidateAndCreate(PyObject *key, struct IDProperty *group, PyObject *ob)
PyTypeObject BPy_IDGroup_IterKeys_Type
struct BPy_IDGroup_Iter BPy_IDGroup_Iter
struct BPy_IDGroup_View BPy_IDGroup_View
PyTypeObject BPy_IDGroup_Type
PyTypeObject BPy_IDArray_Type
PyTypeObject BPy_IDGroup_IterValues_Type
struct BPy_IDProperty BPy_IDProperty
PyObject * BPy_Wrap_GetValues(struct ID *id, struct IDProperty *prop)
PyObject * BPyInit_idprop(void)
PyObject * BPy_Wrap_GetKeys_View_WithID(struct ID *id, struct IDProperty *prop)
PyObject * BPy_Wrap_GetItems(struct ID *id, struct IDProperty *prop)
PyObject * BPy_IDGroup_WrapData(struct ID *id, struct IDProperty *prop, struct IDProperty *parent)
PyObject * BPy_Wrap_GetItems_View_WithID(struct ID *id, struct IDProperty *prop)
PyTypeObject BPy_IDGroup_IterItems_Type
int BPy_Wrap_SetMapItem(struct IDProperty *prop, PyObject *key, PyObject *val)
PyObject * BPy_Wrap_GetKeys(struct IDProperty *prop)
struct BPy_IDArray BPy_IDArray
PyObject_VAR_HEAD struct ID * owner_id
Definition: idprop_py_api.h:52
struct IDProperty * prop
Definition: idprop_py_api.h:53
struct IDProperty * cur
Definition: idprop_py_api.h:59
PyObject_VAR_HEAD BPy_IDProperty * group
Definition: idprop_py_api.h:58
PyObject_VAR_HEAD BPy_IDProperty * group
Definition: idprop_py_api.h:70
PyObject_VAR_HEAD struct ID * owner_id
Definition: idprop_py_api.h:45
struct IDProperty * parent
Definition: idprop_py_api.h:47
struct IDProperty * prop
Definition: idprop_py_api.h:46
Definition: DNA_ID.h:368