Merge branch 'master' into blender2.8
[blender.git] / source / blender / depsgraph / intern / nodes / deg_node_component.h
index d2a375421fde687c95ce6c9ca31fe516533ab738..3fef313b1e4dffee33e36bdb88a1b70def637fa6 100644 (file)
@@ -156,33 +156,24 @@ struct ComponentDepsNode : public DepsNode {
 
 /* ---------------------------------------- */
 
-struct ParametersComponentDepsNode : public ComponentDepsNode {
-       DEG_DEPSNODE_DECLARE;
-};
-
-struct AnimationComponentDepsNode : public ComponentDepsNode {
-       DEG_DEPSNODE_DECLARE;
-};
-
-struct TransformComponentDepsNode : public ComponentDepsNode {
-       DEG_DEPSNODE_DECLARE;
-};
-
-struct ProxyComponentDepsNode : public ComponentDepsNode {
-       DEG_DEPSNODE_DECLARE;
-};
-
-struct GeometryComponentDepsNode : public ComponentDepsNode {
-       DEG_DEPSNODE_DECLARE;
-};
-
-struct SequencerComponentDepsNode : public ComponentDepsNode {
-       DEG_DEPSNODE_DECLARE;
-};
-
-struct PoseComponentDepsNode : public ComponentDepsNode {
-       DEG_DEPSNODE_DECLARE;
-};
+#define DEG_COMPONENT_DECLARE_GENERIC(name)                        \
+       struct name ## ComponentDepsNode : public ComponentDepsNode {  \
+               DEG_DEPSNODE_DECLARE;                                      \
+       }
+
+DEG_COMPONENT_DECLARE_GENERIC(Animation);
+DEG_COMPONENT_DECLARE_GENERIC(Cache);
+DEG_COMPONENT_DECLARE_GENERIC(CopyOnWrite);
+DEG_COMPONENT_DECLARE_GENERIC(Geometry);
+DEG_COMPONENT_DECLARE_GENERIC(LayerCollections);
+DEG_COMPONENT_DECLARE_GENERIC(Parameters);
+DEG_COMPONENT_DECLARE_GENERIC(Particles);
+DEG_COMPONENT_DECLARE_GENERIC(Proxy);
+DEG_COMPONENT_DECLARE_GENERIC(Pose);
+DEG_COMPONENT_DECLARE_GENERIC(Sequencer);
+DEG_COMPONENT_DECLARE_GENERIC(Shading);
+DEG_COMPONENT_DECLARE_GENERIC(ShadingParameters);
+DEG_COMPONENT_DECLARE_GENERIC(Transform);
 
 /* Bone Component */
 struct BoneComponentDepsNode : public ComponentDepsNode {
@@ -193,34 +184,6 @@ struct BoneComponentDepsNode : public ComponentDepsNode {
        DEG_DEPSNODE_DECLARE;
 };
 
-struct ParticlesComponentDepsNode : public ComponentDepsNode {
-       DEG_DEPSNODE_DECLARE;
-};
-
-struct ShadingComponentDepsNode : public ComponentDepsNode {
-       DEG_DEPSNODE_DECLARE;
-};
-
-struct ShadingParametersComponentDepsNode : public ComponentDepsNode {
-       DEG_DEPSNODE_DECLARE;
-       virtual bool depends_on_cow() { return false; }
-};
-
-struct CacheComponentDepsNode : public ComponentDepsNode {
-       DEG_DEPSNODE_DECLARE;
-};
-
-struct LayerCollectionsDepsNode : public ComponentDepsNode {
-       DEG_DEPSNODE_DECLARE;
-};
-
-struct CopyOnWriteDepsNode : public ComponentDepsNode {
-       DEG_DEPSNODE_DECLARE;
-
-       virtual bool depends_on_cow() { return false; }
-};
-
-
 void deg_register_component_depsnodes();
 
 }  // namespace DEG