[Bf-blender-cvs] [8628f329e8a] functions: cleanup rna access
Jacques Lucke
noreply at git.blender.org
Thu Jul 4 16:45:57 CEST 2019
Commit: 8628f329e8a290b5976b745cf0689293f8bd8b03
Author: Jacques Lucke
Date: Thu Jul 4 11:34:49 2019 +0200
Branches: functions
https://developer.blender.org/rB8628f329e8a290b5976b745cf0689293f8bd8b03
cleanup rna access
===================================================================
M source/blender/blenkernel/BKE_node_tree.hpp
M source/blender/simulations/bparticles/c_wrapper.cpp
===================================================================
diff --git a/source/blender/blenkernel/BKE_node_tree.hpp b/source/blender/blenkernel/BKE_node_tree.hpp
index 0b7cc629d3e..f6f8373f37b 100644
--- a/source/blender/blenkernel/BKE_node_tree.hpp
+++ b/source/blender/blenkernel/BKE_node_tree.hpp
@@ -9,6 +9,8 @@
#include "BLI_listbase_wrapper.hpp"
#include "BLI_multimap.hpp"
+#include "RNA_access.h"
+
namespace BKE {
using BLI::ArrayRef;
@@ -56,6 +58,13 @@ class IndexedNodeTree {
return &m_btree->id;
}
+ PointerRNA get_rna(bNode *bnode) const
+ {
+ PointerRNA rna;
+ RNA_pointer_create(this->btree_id(), &RNA_Node, bnode, &rna);
+ return rna;
+ }
+
ArrayRef<SingleOriginLink> single_origin_links() const;
ArrayRef<bNode *> nodes_with_idname(StringRef idname) const;
ArrayRef<SocketWithNode> linked(bNodeSocket *bsocket) const;
diff --git a/source/blender/simulations/bparticles/c_wrapper.cpp b/source/blender/simulations/bparticles/c_wrapper.cpp
index 390b680791a..fb2fabc90f1 100644
--- a/source/blender/simulations/bparticles/c_wrapper.cpp
+++ b/source/blender/simulations/bparticles/c_wrapper.cpp
@@ -282,8 +282,8 @@ static void INSERT_EMITTER_mesh_surface(bNode *emitter_node,
bNode *type_node = linked.node;
- PointerRNA rna;
- RNA_pointer_create(bparticles_tree.btree_id(), &RNA_Node, emitter_node, &rna);
+ PointerRNA rna = bparticles_tree.base().get_rna(emitter_node);
+
Object *object = (Object *)RNA_pointer_get(&rna, "object").id.data;
if (object == nullptr) {
continue;
@@ -309,9 +309,9 @@ static void INSERT_EMITTER_point(bNode *emitter_node,
bNode *type_node = linked.node;
+ PointerRNA rna = bparticles_tree.base().get_rna(emitter_node);
+
float3 position;
- PointerRNA rna;
- RNA_pointer_create(bparticles_tree.btree_id(), &RNA_Node, emitter_node, &rna);
RNA_float_get_array(&rna, "position", position);
Emitter *emitter = EMITTER_point(type_node->name, position);
More information about the Bf-blender-cvs
mailing list