aboutsummaryrefslogtreecommitdiffstats
path: root/src/engine/Node.cpp
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2007-04-05 05:50:53 +0000
committerDavid Robillard <d@drobilla.net>2007-04-05 05:50:53 +0000
commit0123cdeacc9acc7ca16fa8b0a9dee7a5d916b7df (patch)
tree582897e91977bcb42cfbd88e66af0dad1dd3bb3d /src/engine/Node.cpp
parent74688702fa060fb6aaa413b06deceec6c78d74a6 (diff)
downloadmachina-0123cdeacc9acc7ca16fa8b0a9dee7a5d916b7df.tar.gz
machina-0123cdeacc9acc7ca16fa8b0a9dee7a5d916b7df.tar.bz2
machina-0123cdeacc9acc7ca16fa8b0a9dee7a5d916b7df.zip
Selector states.
Togglable edge and state labels. Builder fixes. GUI/input/etc fixes. git-svn-id: http://svn.drobilla.net/lad/machina@398 a436a847-0d15-0410-975c-d299462d15a1
Diffstat (limited to 'src/engine/Node.cpp')
-rw-r--r--src/engine/Node.cpp16
1 files changed, 16 insertions, 0 deletions
diff --git a/src/engine/Node.cpp b/src/engine/Node.cpp
index e51e33d..b55619d 100644
--- a/src/engine/Node.cpp
+++ b/src/engine/Node.cpp
@@ -34,6 +34,22 @@ Node::Node(BeatCount duration, bool initial)
void
+Node::set_selector(bool yn)
+{
+ _is_selector = yn;
+
+ if (yn) {
+ double prob_sum = 0;
+ for (Edges::iterator i = _outgoing_edges.begin(); i != _outgoing_edges.end(); ++i)
+ prob_sum += (*i)->probability();
+
+ for (Edges::iterator i = _outgoing_edges.begin(); i != _outgoing_edges.end(); ++i)
+ (*i)->set_probability((*i)->probability() / prob_sum);
+ }
+}
+
+
+void
Node::set_enter_action(SharedPtr<Action> action)
{
_enter_action = action;