aboutsummaryrefslogtreecommitdiffstats
path: root/src/engine/machina/Mutation.hpp
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2007-12-07 03:05:20 +0000
committerDavid Robillard <d@drobilla.net>2007-12-07 03:05:20 +0000
commitffb37e6de2934aa227c3483f8a00118e3604b5e5 (patch)
tree8c40493f8de562677e1e54cc4b26a1fbbb493d26 /src/engine/machina/Mutation.hpp
parent33e9991326a1cd90a4956f3221f5a48d03d5af89 (diff)
downloadmachina-ffb37e6de2934aa227c3483f8a00118e3604b5e5.tar.gz
machina-ffb37e6de2934aa227c3483f8a00118e3604b5e5.tar.bz2
machina-ffb37e6de2934aa227c3483f8a00118e3604b5e5.zip
It's evolution, baby.
git-svn-id: http://svn.drobilla.net/lad/machina@958 a436a847-0d15-0410-975c-d299462d15a1
Diffstat (limited to 'src/engine/machina/Mutation.hpp')
-rw-r--r--src/engine/machina/Mutation.hpp23
1 files changed, 16 insertions, 7 deletions
diff --git a/src/engine/machina/Mutation.hpp b/src/engine/machina/Mutation.hpp
index 0a9731c..52c02bc 100644
--- a/src/engine/machina/Mutation.hpp
+++ b/src/engine/machina/Mutation.hpp
@@ -18,6 +18,15 @@
#ifndef MACHINA_MACHINE_MUTATION_HPP
#define MACHINA_MACHINE_MUTATION_HPP
+#include CONFIG_H_PATH
+
+#if HAVE_EUGENE
+ #include <eugene/core/Mutation.hpp>
+ #define SUPER : public Eugene::Mutation<Machine>
+#else
+ #define SUPER
+#endif
+
namespace Machina {
class Machine;
@@ -26,13 +35,13 @@ namespace Mutation {
struct Mutation { virtual void mutate(Machine& machine) = 0; };
-struct Compress { static void mutate(Machine& machine); };
-struct AddNode { static void mutate(Machine& machine); };
-struct RemoveNode { static void mutate(Machine& machine); };
-struct AdjustNode { static void mutate(Machine& machine); };
-struct AddEdge { static void mutate(Machine& machine); };
-struct RemoveEdge { static void mutate(Machine& machine); };
-struct AdjustEdge { static void mutate(Machine& machine); };
+struct Compress SUPER { void mutate(Machine& machine); };
+struct AddNode SUPER { void mutate(Machine& machine); };
+struct RemoveNode SUPER { void mutate(Machine& machine); };
+struct AdjustNode SUPER { void mutate(Machine& machine); };
+struct AddEdge SUPER { void mutate(Machine& machine); };
+struct RemoveEdge SUPER { void mutate(Machine& machine); };
+struct AdjustEdge SUPER { void mutate(Machine& machine); };
} // namespace Mutation