コード例 #1
0
        public override object Clone()
        {
            MarkedTransition t = new MarkedTransition(this.Graph, this.Name);

            this.CopyTo(t);

            return t;
        }
コード例 #2
0
ファイル: PetriNet.cs プロジェクト: THROYAN/MagicLibrary
 public void ExecuteTransition(MarkedTransition t)
 {
     t.Execute();
 }
コード例 #3
0
ファイル: PetriNet.cs プロジェクト: THROYAN/MagicLibrary
        /// <summary>
        /// Function of execute transition in special marking
        /// State of the net won't change
        /// </summary>
        /// <param name="marking"></param>
        /// <param name="t"></param>
        /// <returns></returns>
        public uint[] GetStateAfterExecute(uint[] marking, MarkedTransition t)
        {
            uint[] newMarking = null;

            this.SaveMarkingAsStartMarking();
            this.SetMarking(marking);

            if (t.IsAvailable())
            {
                // execute transition
                t.Execute();
                // save marking
                newMarking = this.GetState();
            }
            // reset marking to start marking
            this.ResetMarking();

            // if t is unavailable return null
            return newMarking;
        }