## Edges
Edges are colored and optionally labelled arrows that connect two nodes in a Sceneflow. The source node and the target node may be the same node, which means that an edge may connect a node with itself.
Let us go through the different types of edges defined in the Sceneflow language.
###Epsilon Edges
The simplest type of edge denotes an unconditional transition from its source node to its target node. Such an edge can immediately be taken
once the execution of the source state of that edge has finished.
Epsilon Edges are used by an author to determine the order in which Scenes are played back or computation steps are performed.
![Alt text](../../images/tutorials/epsilon.png)
###Conditional Edges
This type of edge represents a conditional transition. It is labelled with a logical condition of the Textual Expression Language. Such a transition
can be taken once the execution of the source state has finished and the conditional expression guarding the transition can be evaluated to true.
Conditional edges are used to create a branching structure in the Sceneflow. Their conditions describe the variation possibilities during the execution of the model.
![Alt text](../../images/tutorials/conditional.png)
###Timeout Edges
This type of edge represents a timed transition. Once the execution of the source state has started, a timer with the specified timeout value is
started. The transition is then taken after the execution of the source state has finished and the timeout has expired. The timeout value is specified in milliseconds.
Timeout edges are used to control the temporal flow of the execution of the model and to schedule the playback of Scenes, actions or computation
steps.
![Alt text](../../images/tutorials/time.png)
###Probabilistic Edges
This type of edge represents a transition that is taken with a certain probability. A node, from which a probabilistic edge is originating, may not
possess outgoing edges of any other type, but exclusively other probabilistic edges. The probabilities of all probabilistic edges that are originating
from a node, have to sum up to 100% to achieve a complete coverage of the probability space. Once the execution of the source state has finished,
one of the emanating transitions is taken according to their specified probabilities.
Probabilistic edges are used to introduce a certain degree of random choice and desired non-determinism during the execution of the Sceneflow.
![Alt text](../../images/tutorials/probabilistic.png)
###Interruptive Edges
This type of edge represents a special kind of conditional transition. The source node of such an edge may only be a Supernode. When the conditional expression, with which the edge is labelled, can be evaluated to true, then the transition is taken. Any operation or computation that takes place in the Supernode or any substate of the Supernode is contemporarily canceled at the instance of time at which the condition is evaluated to true.
Interruptive edges are used to realize interrupts that may be caused by user input or external events in the application environment and that
require a contemporary reaction.
![Alt text](../../images/tutorials/interruptive.png)
###Fork Edges
Fork edges allow an author to explicitly create new parallel processes during the execution of an Extended Sceneflow. With the help of several fork edges the execution may be split into a multitude of concurrently interleaved executed processes that are together affecting the overall system behavior.
They allow an author to model parallel subautomata without the need to use Supernodes with multiple start nodes. A fork node may have an arbitrary number of outgoing fork edges but no edges of other types. A fork node can not be an end node.
![Alt text](../../images/tutorials/fork.png)
Back to Tutorials Index...