diff options
author | David Robillard <d@drobilla.net> | 2013-01-13 09:23:42 +0000 |
---|---|---|
committer | David Robillard <d@drobilla.net> | 2013-01-13 09:23:42 +0000 |
commit | 448d6e329a55848e357d57f8ca225d987627ee08 (patch) | |
tree | 0153d22bedf929173b973b98c6840fd010b06aca /src/engine/Machine.cpp | |
parent | 67a8adbc93991acfb688f378f52392995a272fac (diff) | |
download | machina-448d6e329a55848e357d57f8ca225d987627ee08.tar.gz machina-448d6e329a55848e357d57f8ca225d987627ee08.tar.bz2 machina-448d6e329a55848e357d57f8ca225d987627ee08.zip |
Move merge operation to Machine::merge().
Delete unused Engine::import_machine().
git-svn-id: http://svn.drobilla.net/lad/trunk/machina@4956 a436a847-0d15-0410-975c-d299462d15a1
Diffstat (limited to 'src/engine/Machine.cpp')
-rw-r--r-- | src/engine/Machine.cpp | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/src/engine/Machine.cpp b/src/engine/Machine.cpp index a6abcff..b5cfb28 100644 --- a/src/engine/Machine.cpp +++ b/src/engine/Machine.cpp @@ -100,6 +100,21 @@ Machine::operator=(const Machine& copy) return *this; } +void +Machine::merge(const Machine& machine) +{ + for (const auto& m : machine.nodes()) { + if (m->is_initial()) { + for (const auto& e : m->edges()) { + e->set_tail(_initial_node); + _initial_node->edges().insert(e); + } + } else { + _nodes.insert(m); + } + } +} + /** Always returns a node, unless there are none */ SPtr<Node> Machine::random_node() |