Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'source/blender/python/intern/bpy_rna_driver.c')
-rw-r--r--source/blender/python/intern/bpy_rna_driver.c102
1 files changed, 49 insertions, 53 deletions
diff --git a/source/blender/python/intern/bpy_rna_driver.c b/source/blender/python/intern/bpy_rna_driver.c
index 91030f7ac36..e9e8d05aa74 100644
--- a/source/blender/python/intern/bpy_rna_driver.c
+++ b/source/blender/python/intern/bpy_rna_driver.c
@@ -32,73 +32,69 @@
#include "bpy_rna.h"
-#include "bpy_rna_driver.h" /* own include */
-
+#include "bpy_rna_driver.h" /* own include */
/**
* A version of #driver_get_variable_value which returns a PyObject.
*/
-PyObject *pyrna_driver_get_variable_value(
- struct ChannelDriver *driver, struct DriverTarget *dtar)
+PyObject *pyrna_driver_get_variable_value(struct ChannelDriver *driver, struct DriverTarget *dtar)
{
- PyObject *driver_arg = NULL;
- PointerRNA ptr;
- PropertyRNA *prop = NULL;
- int index;
+ PyObject *driver_arg = NULL;
+ PointerRNA ptr;
+ PropertyRNA *prop = NULL;
+ int index;
- if (driver_get_variable_property(driver, dtar, &ptr, &prop, &index)) {
- if (prop) {
- if (index != -1) {
- if (index < RNA_property_array_length(&ptr, prop) && index >= 0) {
- /* object, property & index */
- driver_arg = pyrna_array_index(&ptr, prop, index);
- }
- else {
- /* out of range, pass */
- }
- }
- else {
- /* object & property */
- PropertyType type = RNA_property_type(prop);
- if (type == PROP_ENUM) {
- /* Note that enum's are converted to strings by default,
- * we want to avoid that, see: T52213 */
- driver_arg = PyLong_FromLong(RNA_property_enum_get(&ptr, prop));
- }
- else {
- driver_arg = pyrna_prop_to_py(&ptr, prop);
- }
- }
- }
- else {
- /* object only */
- driver_arg = pyrna_struct_CreatePyObject(&ptr);
- }
- }
- else {
- /* can't resolve path, pass */
- }
+ if (driver_get_variable_property(driver, dtar, &ptr, &prop, &index)) {
+ if (prop) {
+ if (index != -1) {
+ if (index < RNA_property_array_length(&ptr, prop) && index >= 0) {
+ /* object, property & index */
+ driver_arg = pyrna_array_index(&ptr, prop, index);
+ }
+ else {
+ /* out of range, pass */
+ }
+ }
+ else {
+ /* object & property */
+ PropertyType type = RNA_property_type(prop);
+ if (type == PROP_ENUM) {
+ /* Note that enum's are converted to strings by default,
+ * we want to avoid that, see: T52213 */
+ driver_arg = PyLong_FromLong(RNA_property_enum_get(&ptr, prop));
+ }
+ else {
+ driver_arg = pyrna_prop_to_py(&ptr, prop);
+ }
+ }
+ }
+ else {
+ /* object only */
+ driver_arg = pyrna_struct_CreatePyObject(&ptr);
+ }
+ }
+ else {
+ /* can't resolve path, pass */
+ }
- return driver_arg;
+ return driver_arg;
}
PyObject *pyrna_driver_self_from_anim_rna(PathResolvedRNA *anim_rna)
{
- return pyrna_struct_CreatePyObject(&anim_rna->ptr);
+ return pyrna_struct_CreatePyObject(&anim_rna->ptr);
}
bool pyrna_driver_is_equal_anim_rna(const PathResolvedRNA *anim_rna, const PyObject *py_anim_rna)
{
- if (BPy_StructRNA_Check(py_anim_rna)) {
- const PointerRNA *ptr_a = &anim_rna->ptr;
- const PointerRNA *ptr_b = &(((const BPy_StructRNA *)py_anim_rna)->ptr);
+ if (BPy_StructRNA_Check(py_anim_rna)) {
+ const PointerRNA *ptr_a = &anim_rna->ptr;
+ const PointerRNA *ptr_b = &(((const BPy_StructRNA *)py_anim_rna)->ptr);
- if ((ptr_a->id.data == ptr_b->id.data) &&
- (ptr_a->type == ptr_b->type) &&
- (ptr_a->data == ptr_b->data))
- {
- return true;
- }
- }
- return false;
+ if ((ptr_a->id.data == ptr_b->id.data) && (ptr_a->type == ptr_b->type) &&
+ (ptr_a->data == ptr_b->data)) {
+ return true;
+ }
+ }
+ return false;
}