svn merge ^/trunk/blender -r43436:43443
[blender.git] / source / blender / blenkernel / depsgraph_private.h
index 15c06b8ae79be69e7a7f3aca03e367a649f12893..0338d10a66d5a347b8172ef4e3d4c1e5a2d79df2 100644 (file)
@@ -1,15 +1,10 @@
-/**
- * $Id$
- *
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+/*
+ * ***** BEGIN GPL LICENSE BLOCK *****
  *
  * This program is free software; you can redistribute it and/or
  * modify it under the terms of the GNU General Public License
  * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License.  See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
  *
  * This program is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  *
  * You should have received a copy of the GNU General Public License
  * along with this program; if not, write to the Free Software Foundation,
- * Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
  *
  * The Original Code is Copyright (C) 2004 Blender Foundation.
  * All rights reserved.
  *
  * Contributor(s): none yet.
  *
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
+ */
+
+/** \file blender/blenkernel/depsgraph_private.h
+ *  \ingroup bke
  */
+
 #ifndef DEPSGRAPH_PRIVATE
 #define DEPSGRAPH_PRIVATE
 
@@ -54,6 +54,7 @@ typedef struct DagAdjList
        short type;
        int count;                      // number of identical arcs
        unsigned int lay;   // for flushing redraw/rebuild events
+       const char *name;
        struct DagAdjList *next;
 } DagAdjList;
 
@@ -66,7 +67,9 @@ typedef struct DagNode
        void * ob;
        void * first_ancestor;
        int ancestor_count;
-       int lay;                        // accumulated layers of its relations + itself
+       unsigned int lay;                               // accumulated layers of its relations + itself
+       unsigned int scelay;                    // layers due to being in scene
+       uint64_t customdata_mask;       // customdata mask
        int lasttime;           // if lasttime != DagForest->time, this node was not evaluated yet for flushing
        int BFS_dist;           // BFS distance
        int DFS_dist;           // DFS distance
@@ -95,6 +98,7 @@ typedef struct DagNodeQueue
 typedef struct DagForest 
 {
        ListBase DagNode;
+       struct GHash *nodeHash;
        int numNodes;
        int is_acyclic;
        int time;               // for flushing/tagging, compare with node->lasttime
@@ -117,7 +121,7 @@ DagNode * dag_find_node (DagForest *forest,void * fob);
 DagNode * dag_add_node (DagForest *forest,void * fob);
 DagNode * dag_get_node (DagForest *forest,void * fob);
 DagNode * dag_get_sub_node (DagForest *forest,void * fob);
-void dag_add_relation(DagForest *forest, DagNode *fob1, DagNode *fob2, short rel);
+void dag_add_relation(DagForest *forest, DagNode *fob1, DagNode *fob2, short rel, const char *name);
 
 void graph_bfs(void);