[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [34368] branches/particles-2010/source/ blender: Moved some more tree type specific functions out of node. c to their respective files (compo and texture tagging stuff).
Lukas Toenne
lukas.toenne at googlemail.com
Mon Jan 17 14:38:45 CET 2011
Revision: 34368
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=34368
Author: lukastoenne
Date: 2011-01-17 13:38:44 +0000 (Mon, 17 Jan 2011)
Log Message:
-----------
Moved some more tree type specific functions out of node.c to their respective files (compo and texture tagging stuff).
Added operator socket type to modifier trees.
Modified Paths:
--------------
branches/particles-2010/source/blender/blenkernel/BKE_node.h
branches/particles-2010/source/blender/blenkernel/intern/node.c
branches/particles-2010/source/blender/makesdna/DNA_node_types.h
branches/particles-2010/source/blender/nodes/intern/CMP_nodetree.c
branches/particles-2010/source/blender/nodes/intern/MOD_nodes/MOD_mesh.c
branches/particles-2010/source/blender/nodes/intern/MOD_nodes/MOD_transform.c
branches/particles-2010/source/blender/nodes/intern/MOD_nodetree.c
branches/particles-2010/source/blender/nodes/intern/TEX_nodetree.c
branches/particles-2010/source/blender/nodes/intern/node_util.c
branches/particles-2010/source/blender/nodes/intern/node_util.h
Modified: branches/particles-2010/source/blender/blenkernel/BKE_node.h
===================================================================
--- branches/particles-2010/source/blender/blenkernel/BKE_node.h 2011-01-17 10:47:31 UTC (rev 34367)
+++ branches/particles-2010/source/blender/blenkernel/BKE_node.h 2011-01-17 13:38:44 UTC (rev 34368)
@@ -246,7 +246,6 @@
struct bNodeTreeExecData *ntreeBeginExecTree(struct bNodeTree *ntree);
void ntreeExecTree(struct bNodeTreeExecData *execdata, void *callerdata, int thread);
-void ntreeCompositExecTree(struct bNodeTree *ntree, struct RenderData *rd, int do_previews);
void ntreeEndExecTree(struct bNodeTreeExecData *execdata);
void ntreeInitPreview(struct bNodeTree *, int xsize, int ysize);
@@ -511,6 +510,7 @@
/* API */
struct CompBuf;
+void ntreeCompositExecTree(struct bNodeTree *ntree, struct RenderData *rd, int do_previews);
void ntreeCompositTagRender(struct Scene *sce);
int ntreeCompositTagAnimated(struct bNodeTree *ntree);
void ntreeCompositTagGenerators(struct bNodeTree *ntree);
Modified: branches/particles-2010/source/blender/blenkernel/intern/node.c
===================================================================
--- branches/particles-2010/source/blender/blenkernel/intern/node.c 2011-01-17 10:47:31 UTC (rev 34367)
+++ branches/particles-2010/source/blender/blenkernel/intern/node.c 2011-01-17 13:38:44 UTC (rev 34368)
@@ -2213,7 +2213,6 @@
}
-
/* ******************* executing ************* */
bNodeTreeExecData *ntreeBeginExecTree(bNodeTree *ntree)
{
@@ -2249,127 +2248,6 @@
}
}
-static int node_animation_properties(bNodeTree *ntree, bNode *node)
-{
- bNodeSocket *sock;
- const ListBase *lb;
- Link *link;
- PointerRNA ptr;
- PropertyRNA *prop;
-
- /* check to see if any of the node's properties have fcurves */
- RNA_pointer_create((ID *)ntree, &RNA_Node, node, &ptr);
- lb = RNA_struct_defined_properties(ptr.type);
-
- for (link=lb->first; link; link=link->next) {
- int driven, len=1, index;
- prop = (PropertyRNA *)link;
-
- if (RNA_property_array_check(&ptr, prop))
- len = RNA_property_array_length(&ptr, prop);
-
- for (index=0; index<len; index++) {
- if (rna_get_fcurve(&ptr, prop, index, NULL, &driven)) {
- NodeTagChanged(ntree, node);
- return 1;
- }
- }
- }
-
- /* now check node sockets */
- for (sock = node->inputs.first; sock; sock=sock->next) {
- int driven, len=1, index;
-
- RNA_pointer_create((ID *)ntree, &RNA_NodeSocket, sock, &ptr);
- prop = RNA_struct_find_property(&ptr, "default_value");
-
- if (RNA_property_array_check(&ptr, prop))
- len = RNA_property_array_length(&ptr, prop);
-
- for (index=0; index<len; index++) {
- if (rna_get_fcurve(&ptr, prop, index, NULL, &driven)) {
- NodeTagChanged(ntree, node);
- return 1;
- }
- }
- }
-
- return 0;
-}
-
-/* tags nodes that have animation capabilities */
-int ntreeCompositTagAnimated(bNodeTree *ntree)
-{
- bNode *node;
- int tagged= 0;
-
- if(ntree==NULL) return 0;
-
- for(node= ntree->nodes.first; node; node= node->next) {
-
- tagged = node_animation_properties(ntree, node);
-
- /* otherwise always tag these node types */
- if(node->type==CMP_NODE_IMAGE) {
- Image *ima= (Image *)node->id;
- if(ima && ELEM(ima->source, IMA_SRC_MOVIE, IMA_SRC_SEQUENCE)) {
- NodeTagChanged(ntree, node);
- tagged= 1;
- }
- }
- else if(node->type==CMP_NODE_TIME) {
- NodeTagChanged(ntree, node);
- tagged= 1;
- }
- else if(node->type==CMP_NODE_R_LAYERS) {
- NodeTagChanged(ntree, node);
- tagged= 1;
- }
- else if(node->type==NODE_GROUP) {
- if( ntreeCompositTagAnimated((bNodeTree *)node->id) ) {
- NodeTagChanged(ntree, node);
- }
- }
- }
-
- return tagged;
-}
-
-
-/* called from image window preview */
-void ntreeCompositTagGenerators(bNodeTree *ntree)
-{
- bNode *node;
-
- if(ntree==NULL) return;
-
- for(node= ntree->nodes.first; node; node= node->next) {
- if( ELEM(node->type, CMP_NODE_R_LAYERS, CMP_NODE_IMAGE))
- NodeTagChanged(ntree, node);
- }
-}
-
-int ntreeTexTagAnimated(bNodeTree *ntree)
-{
- bNode *node;
-
- if(ntree==NULL) return 0;
-
- for(node= ntree->nodes.first; node; node= node->next) {
- if(node->type==TEX_NODE_CURVE_TIME) {
- NodeTagChanged(ntree, node);
- return 1;
- }
- else if(node->type==NODE_GROUP) {
- if( ntreeTexTagAnimated((bNodeTree *)node->id) ) {
- return 1;
- }
- }
- }
-
- return 0;
-}
-
/* ************* node definition init ********** */
static bNodeType *is_nodetype_registered(ListBase *typelist, int type, ID *id)
Modified: branches/particles-2010/source/blender/makesdna/DNA_node_types.h
===================================================================
--- branches/particles-2010/source/blender/makesdna/DNA_node_types.h 2011-01-17 10:47:31 UTC (rev 34367)
+++ branches/particles-2010/source/blender/makesdna/DNA_node_types.h 2011-01-17 13:38:44 UTC (rev 34368)
@@ -209,12 +209,12 @@
#define NODE_ACTIVE_ID 32
#define NODE_DO_OUTPUT 64
#define NODE_GROUP_EDIT 128
- /* free test flag, undefined */
+ /* free test flag, undefined */
#define NODE_TEST 256
- /* composite: don't do node but pass on buffer(s) */
+ /* composite: don't do node but pass on buffer(s) */
#define NODE_MUTED 512
#define NODE_CUSTOM_NAME 1024
- /* simulation: don't automatically request all data inputs */
+ /* simulation: don't automatically request all data inputs */
#define NODE_CUSTOM_REQUEST 2048
typedef struct bNodeLink {
Modified: branches/particles-2010/source/blender/nodes/intern/CMP_nodetree.c
===================================================================
--- branches/particles-2010/source/blender/nodes/intern/CMP_nodetree.c 2011-01-17 10:47:31 UTC (rev 34367)
+++ branches/particles-2010/source/blender/nodes/intern/CMP_nodetree.c 2011-01-17 13:38:44 UTC (rev 34368)
@@ -36,6 +36,7 @@
#include "BKE_animsys.h"
#include "BKE_colortools.h"
+#include "BKE_fcurve.h"
#include "BKE_global.h"
#include "BKE_main.h"
#include "BKE_node.h"
@@ -46,6 +47,8 @@
#include "PIL_time.h"
+#include "RNA_access.h"
+
#include "CMP_node.h"
#include "CMP_util.h"
@@ -921,3 +924,103 @@
}
}
}
+
+static int node_animation_properties(bNodeTree *ntree, bNode *node)
+{
+ bNodeSocket *sock;
+ const ListBase *lb;
+ Link *link;
+ PointerRNA ptr;
+ PropertyRNA *prop;
+
+ /* check to see if any of the node's properties have fcurves */
+ RNA_pointer_create((ID *)ntree, &RNA_Node, node, &ptr);
+ lb = RNA_struct_defined_properties(ptr.type);
+
+ for (link=lb->first; link; link=link->next) {
+ int driven, len=1, index;
+ prop = (PropertyRNA *)link;
+
+ if (RNA_property_array_check(&ptr, prop))
+ len = RNA_property_array_length(&ptr, prop);
+
+ for (index=0; index<len; index++) {
+ if (rna_get_fcurve(&ptr, prop, index, NULL, &driven)) {
+ NodeTagChanged(ntree, node);
+ return 1;
+ }
+ }
+ }
+
+ /* now check node sockets */
+ for (sock = node->inputs.first; sock; sock=sock->next) {
+ int driven, len=1, index;
+
+ RNA_pointer_create((ID *)ntree, &RNA_NodeSocket, sock, &ptr);
+ prop = RNA_struct_find_property(&ptr, "default_value");
+
+ if (RNA_property_array_check(&ptr, prop))
+ len = RNA_property_array_length(&ptr, prop);
+
+ for (index=0; index<len; index++) {
+ if (rna_get_fcurve(&ptr, prop, index, NULL, &driven)) {
+ NodeTagChanged(ntree, node);
+ return 1;
+ }
+ }
+ }
+
+ return 0;
+}
+
+/* tags nodes that have animation capabilities */
+int ntreeCompositTagAnimated(bNodeTree *ntree)
+{
+ bNode *node;
+ int tagged= 0;
+
+ if(ntree==NULL) return 0;
+
+ for(node= ntree->nodes.first; node; node= node->next) {
+
+ tagged = node_animation_properties(ntree, node);
+
+ /* otherwise always tag these node types */
+ if(node->type==CMP_NODE_IMAGE) {
+ Image *ima= (Image *)node->id;
+ if(ima && ELEM(ima->source, IMA_SRC_MOVIE, IMA_SRC_SEQUENCE)) {
+ NodeTagChanged(ntree, node);
+ tagged= 1;
+ }
+ }
+ else if(node->type==CMP_NODE_TIME) {
+ NodeTagChanged(ntree, node);
+ tagged= 1;
+ }
+ else if(node->type==CMP_NODE_R_LAYERS) {
+ NodeTagChanged(ntree, node);
+ tagged= 1;
+ }
+ else if(node->type==NODE_GROUP) {
+ if( ntreeCompositTagAnimated((bNodeTree *)node->id) ) {
+ NodeTagChanged(ntree, node);
+ }
+ }
+ }
+
+ return tagged;
+}
+
+
+/* called from image window preview */
+void ntreeCompositTagGenerators(bNodeTree *ntree)
+{
+ bNode *node;
+
+ if(ntree==NULL) return;
+
+ for(node= ntree->nodes.first; node; node= node->next) {
+ if( ELEM(node->type, CMP_NODE_R_LAYERS, CMP_NODE_IMAGE))
+ NodeTagChanged(ntree, node);
+ }
+}
Modified: branches/particles-2010/source/blender/nodes/intern/MOD_nodes/MOD_mesh.c
===================================================================
--- branches/particles-2010/source/blender/nodes/intern/MOD_nodes/MOD_mesh.c 2011-01-17 10:47:31 UTC (rev 34367)
+++ branches/particles-2010/source/blender/nodes/intern/MOD_nodes/MOD_mesh.c 2011-01-17 13:38:44 UTC (rev 34368)
@@ -29,7 +29,7 @@
#include "../MOD_util.h"
static bNodeSocketDefinition outputs[]= {
-// { SOCK_ANY, 0, "Out", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f },
+ { SOCK_OP, 0, "", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f },
{ -1, 0, "" }
};
Modified: branches/particles-2010/source/blender/nodes/intern/MOD_nodes/MOD_transform.c
===================================================================
--- branches/particles-2010/source/blender/nodes/intern/MOD_nodes/MOD_transform.c 2011-01-17 10:47:31 UTC (rev 34367)
+++ branches/particles-2010/source/blender/nodes/intern/MOD_nodes/MOD_transform.c 2011-01-17 13:38:44 UTC (rev 34368)
@@ -28,8 +28,13 @@
#include "../MOD_util.h"
+static bNodeSocketDefinition inputs[]= {
+ { SOCK_OP, 1, "", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f },
+ { -1, 0, "" }
+};
+
static bNodeSocketDefinition outputs[]= {
-// { SOCK_ANY, 0, "Out", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f },
+ { SOCK_OP, 0, "", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f },
{ -1, 0, "" }
};
@@ -47,6 +52,7 @@
type.nclass = NODE_CLASS_TRANSFORM;
/* optional */
+ type.inputs = inputs;
type.outputs = outputs;
nodeRegisterType(typelist, &type);
@@ -66,6 +72,7 @@
type.nclass = NODE_CLASS_TRANSFORM;
/* optional */
+ type.inputs = inputs;
type.outputs = outputs;
nodeRegisterType(typelist, &type);
@@ -85,6 +92,7 @@
type.nclass = NODE_CLASS_TRANSFORM;
/* optional */
+ type.inputs = inputs;
type.outputs = outputs;
nodeRegisterType(typelist, &type);
Modified: branches/particles-2010/source/blender/nodes/intern/MOD_nodetree.c
@@ Diff output truncated at 10240 characters. @@
More information about the Bf-blender-cvs
mailing list