// 
	void UnitTest2 () {
		
		Originator theOriginator = new Originator();
		Caretaker theCaretaker = new Caretaker();
		
		// 設定資訊
		theOriginator.SetInfo( "Version1" );
		theOriginator.ShowInfo();
		// 保存
		theCaretaker.AddMemento("1",theOriginator.CreateMemento());

		// 設定資訊
		theOriginator.SetInfo( "Version2" );
		theOriginator.ShowInfo();
		// 保存
		theCaretaker.AddMemento("2",theOriginator.CreateMemento());

		// 設定資訊
		theOriginator.SetInfo( "Version3" );
		theOriginator.ShowInfo();
		// 保存
		theCaretaker.AddMemento("3",theOriginator.CreateMemento());
		                        		
		// 退回到第2版,
		theOriginator.SetMemento( theCaretaker.GetMemento("2"));
		theOriginator.ShowInfo();

		// 退回到第1版,
		theOriginator.SetMemento( theCaretaker.GetMemento("1"));
		theOriginator.ShowInfo();


		
	}
    // Entry point into console application.
    static void Main()
    {
        Originator o = new Originator("On");
        // o.State = "On";

        // Store Originator's internal state within Memento inside Caretaker
        Caretaker c = new Caretaker(o.CreateMemento());
        // c.Memento = o.CreateMemento();

        // Change Originator's state
        o.State = "Off";

        // Restore Originator's previously saved state
        o.SetMemento(c.Memento);

        // Change Originator's state again
        o.State = "Off";

        // Store Originator's internal state within Memento inside Caretaker
        c = new Caretaker(o.CreateMemento());

        // Change Originator's state
        o.State = "On";

        // Restore Originator's previously saved state
        o.SetMemento(c.Memento);

        // Wait for user
        Console.ReadKey();
    }
Example #3
0
        public static void Test()
        {
            var s = new Originator
            {
                State = "state 1"
            };

            var m = new Caretaker();
            m.Memento = s.SaveMemento();

            s.State = "state 2";

            s.RestoreMemento(m.Memento);
        }
        static void Main()
        {
            Originator originator = new Originator();
            originator.State = "On";

            // Store internal state
            Caretaker c = new Caretaker();
            c.Memento = originator.CreateMemento();

            // Continue changing originator
            originator.State = "Off";

            // Restore saved state
            originator.SetMemento(c.Memento);
        }
        public static void EX1()
        {
            CareTaker careTaker = new CareTaker();

            Originator objeto = new Originator();
            objeto.SetState("estado original");

            objeto.ShowState();
            careTaker.AddStep(new Memento.Exemplo1.Memento(objeto.SaveState()));

            objeto.SetState("mutação de estado 1");
            objeto.SetState("mutação de estado 2");

            objeto.RestoreState(careTaker.GetLastStep());
            objeto.ShowState();
        }
Example #6
0
        static void Main(string[] args)
        {
            Originator originator = new Originator();

            originator.State = "On";
            originator.Show();

            Caretaker caretaker = new Caretaker();

            caretaker.Memento = originator.CreateMemento();

            originator.State = "Off";
            originator.Show();

            originator.SetMemento(caretaker.Memento);
            originator.Show();
        }
Example #7
0
    private void Start()
    {
        Originator o = new Originator();

        o.State = "On";

        // Store internal state
        Caretaker c = new Caretaker();

        c.Memento = o.CreateMemento();

        // Continue changing originator
        o.State = "Off";

        // Restore saved state
        o.SetMemento(c.Memento);
    }
  public static void Main( string[] args )
  {
    Originator o = new Originator();
    o.State = "On";

    // Store internal state
    Caretaker c = new Caretaker();
    c.Memento = o.CreateMemento();

    // Continue changing originator
    o.State = "Off";

    // Restore saved state
    o.SetMemento( c.Memento );

    Console.Read();
  }
Example #9
0
        public void Start()
        {
            Originator o = new Originator();

            o.Data = new IData("版本1");
            o.Show();

            Craretaker craretaker = new Craretaker();


            craretaker.AddMemento("版本1", o.CreateMemento());
            o.Data.Data = "版本2";
            o.Show();

            o.SetData(craretaker.GetMemento("版本1").Data);
            o.Show(); //回到版本1
        }
Example #10
0
        public ISerializedRecord Serialize(SerializeMethod method, string[] accountFields,
                                           string[] recordFields)
        {
            var record = new SerializedRecord();

            record.TransCode = BankValidation.TransCode[this.TransCode];
            record.Amount    = Amount.Format(method, 11, 2);

            record.Reference = Reference.Format(method, 18);

            record.Originator  = Originator.Serialize(method, accountFields);
            record.Destination = Destination.Serialize(method, accountFields);

            record.Line = Sugar.ComposeLine <SerializedRecord>(method, recordFields, record);

            return(record);
        }
Example #11
0
    Caretaker BabySitter;                                       //memento pattern caretaker
    void Start()
    {
        Ship   = new PlainShip();
        Origin = new Originator();

        //--    Initialize buttons, listeners, and the perk items, perk toggle states, set onscreen toggles to false
        InitializeButtons();
        InitializeButtonListeners();
        InitializePerkListItems();
        InitilizeStates();
        SetTogglesFalse();

        //--       Set the Originator's states to the current states read from file, create a memento of these states if user wishes to undo
        Origin.State       = (GenerateStateString());
        BabySitter         = new Caretaker();
        BabySitter.Memento = Origin.CreateMemento();
    }
        public void Memento_Pattern_Test()
        {
            var originator = new Originator("super-super-super-super");
            var caretaker  = new Caretaker(originator);

            var obj1 = caretaker.Backup();

            Assert.AreEqual("super-super-super-super", obj1.GetState());

            originator.DoSomething();
            var obj2 = caretaker.Backup();

            Assert.AreNotEqual("super-super-super-super", obj2.GetState());

            var obj3 = caretaker.Undo();

            Assert.AreEqual("super-super-super-super", obj3.GetState());
        }
Example #13
0
        public void Test1()
        {
            Originator ori = new Originator();

            Assert.AreEqual(0, ori.Current.Y);
            Assert.AreEqual(0, ori.Current.X);

            IMemento <Position> m1 = ori.Memento;

            ori.IncreaseY();
            ori.DecreaseX();
            Assert.AreEqual(1, ori.Current.Y);
            Assert.AreEqual(-1, ori.Current.X);

            ori.Memento = m1;
            Assert.AreEqual(0, ori.Current.Y);
            Assert.AreEqual(0, ori.Current.X);
        }
Example #14
0
        static void Main17()
        {
            Console.WriteLine("Hello Memento Pattern!");

            var u486  = new Originator();
            var admin = new Caretaker();

            Console.WriteLine("------------------486 Welcome to the Yijie----------------------");

            admin.SetMemento(u486.CreateMemento());
            u486.Time = 100;
            Console.WriteLine("------------------486 death----------------------");
            u486.ResetMemento(admin.GetMemento());
            Console.WriteLine("-------------------New start-----------------------");
            Console.WriteLine("486 time changed to:" + u486.Time);

            Console.ReadLine();
        }
Example #15
0
        static void Main(string[] args)
        {
            Originator o = new Originator();

            o.State = "On";
            o.Show();

            Caretaker c = new Caretaker();

            c.Memento = o.CreateMemento();

            o.State = "Off";
            o.Show();

            o.SetMemento(c.Memento);
            o.Show();
            Console.ReadKey();
        }
Example #16
0
        /// <summary>
        /// Entry point into console application.
        /// </summary>
        static void Demo()
        {
            Originator o = new Originator();
            o.State = "On";

            // Store internal state
            Caretaker c = new Caretaker();
            c.Memento = o.CreateMemento();

            // Continue changing originator
            o.State = "Off";

            // Restore saved state
            o.SetMemento(c.Memento);

            // Wait for user
            Console.ReadKey();
        }
        public void Test()
        {
            var originator = new Originator();

            // 保存发起者刚初始化后的状态
            originator.SaveCheckpoint();

            // 对发起者进行操作,验证状态的修改
            originator.IncreaseY();
            originator.DecreaseX();
            Assert.AreEqual <int>(-1, originator.Current.X);
            Assert.AreEqual <int>(1, originator.Current.Y);

            // 确认备忘录的恢复作用
            originator.Undo();
            Assert.AreEqual <int>(0, originator.Current.Y);
            Assert.AreEqual <int>(0, originator.Current.X);
        }
        public void ShouldHaveDataLockRestartAndPendingUpdateAnd_AllShouldBeSelected(Originator updateFrom, Originator caller)
        {
            _data.Add(new Apprenticeship {
                PendingUpdateOriginator = updateFrom, DataLockCourseTriaged = true
            });
            _userQuery.RecordStatuses = new EditableList <RecordStatus> {
                RecordStatus.ChangeRequested, RecordStatus.ChangesForReview, RecordStatus.ChangesPending
            };
            var result = _sut.BuildFacets(_data, _userQuery, caller);

            result.RecordStatuses.Any(m => m.Selected && m.Data == RecordStatus.ChangesPending).Should().BeTrue();
            result.RecordStatuses.Any(m => m.Selected && m.Data == RecordStatus.ChangeRequested).Should().BeTrue();

            result.RecordStatuses.Any(m => m.Selected && m.Data == RecordStatus.ChangesForReview).Should().BeFalse();

            AssertStatuses(result, RecordStatus.ChangesPending, 1);
            AssertStatuses(result, RecordStatus.ChangeRequested, 1);
        }
Example #19
0
        public HttpResponseMessage AdicionarUsuarioOnline(AutenticationRequest objUser)
        {
            Originator objOriginator = new Originator();

            /*var ordenant = Business.Usuario.ObtenerOrdenantePorCedulaCOEASY(objUser.strIdUser , objUser.DocumentType, objUser.strIdUser);
             *
             * if (ordenant != null)
             * objOriginator.NameOrd = ordenant.Nombre;
             *
             * //------------------------------------------------------------------------------------------------------------------------
             * //Guarda el usuario que se conecta en la tabla usuarios.
             * AutenticationUserController.Instance.AdicionarUsuarioOnline(objUser.strIdUser, ordenant.Nombre, objUser.Token);
             * //------------------------------------------------------------------------------------------------------------------------
             */
            var response = Request.CreateResponse <Originator>(HttpStatusCode.OK, objOriginator);

            return(response);
        }
Example #20
0
        public void MementoTest_1()
        {
            Originator     originator = new Originator();
            Caretaker      caretaker  = new Caretaker();
            List <TextBox> list       = new List <TextBox>();

            for (int i = 1; i < 5; i++)
            {
                TextBox textBox = new TextBox();
                textBox.Text = i.ToString();
                list.Add(textBox);
            }
            originator.SetTextBoxValues(list);
            caretaker.Memento = originator.SaveMemento();
            list[0].Text      = "10";
            originator.SetTextBoxValues(list);
            Assert.AreEqual(10, originator.TextBoxValues[0]);
        }
Example #21
0
        /// <summary>
        /// 测试备忘录模式
        /// </summary>
        static void TestMementoState()
        {
            Originator o = new Originator();

            o.State = "On";
            o.Show();

            Caretaker c = new Caretaker();

            c.Memento = o.CreateMemento();

            o.State = "Off";
            o.Show();


            o.SetMemento(c.Memento);
            o.Show();
        }
Example #22
0
        public void Test()
        {
            var careTaker  = new CareTaker <MyData>();
            var originator = new Originator <MyData>();

            originator.State = new MyData {
                Value = 2
            };
            careTaker.SaveState(originator.CreateMemento());

            originator.State = new MyData {
                Value = 6
            };
            careTaker.SaveState(originator.CreateMemento());
            Assert.Equal(6, originator.State.Value);

            originator.SetMemento(careTaker.Get(0));
            Assert.Equal(2, originator.State.Value);
        }
        public string Update(int id, string name, string description)
        {
            string msg;

            try
            {
                Originator model = service.GetById(id);
                model.Name        = name;
                model.Description = description;
                model.ChangedBy   = User.Identity.GetUserId();
                service.Update(model);
                msg = "Saved Successfully";
            }
            catch (Exception ex)
            {
                msg = "Error occured:" + ex.Message;
            }
            return(msg);
        }
Example #24
0
    private void Start()
    {
        CareTaker careTaker = new CareTaker();

        Originator originator = new Originator();

        originator.SetState("State1");
        originator.ShowState();
        careTaker.AddMemento("v1.0", originator.CreateMemento());

        originator.SetState("State2");
        originator.ShowState();
        careTaker.AddMemento("v2.0", originator.CreateMemento());

        Memento memento = careTaker.GetMemento("v1.0");

        originator.SetMemento(memento);
        originator.ShowState();
    }
Example #25
0
    public void Main()
    {
        Originator originator = new Originator();
        CareTaker  careTaker  = new CareTaker();


        originator.SetState("State #1");
        originator.SetState("State #2");
        careTaker.Add(originator.SaveStateToMemento());
        originator.SetState("State #3");
        careTaker.Add(originator.SaveStateToMemento());
        originator.SetState("State #4");

        Console.WriteLine("Current State: " + originator.GetState());
        originator.GetStateFromMemento(careTaker.Get(0));
        Console.WriteLine("First saved State: " + originator.GetState());
        originator.GetStateFromMemento(careTaker.Get(1));
        Console.WriteLine("Second saved State: " + originator.GetState());
    }
Example #26
0
    //
    void UnitTest()
    {
        Originator theOriginator = new Originator();

        // 设定信息
        theOriginator.SetInfo("Step1");
        theOriginator.ShowInfo();

        // 储存状态
        Memento theMemnto = theOriginator.CreateMemento();

        // 设定新的信息
        theOriginator.SetInfo("Step2");
        theOriginator.ShowInfo();

        // 复原
        theOriginator.SetMemento(theMemnto);
        theOriginator.ShowInfo();
    }
Example #27
0
        /// <summary>
        /// 备忘录模式
        /// </summary>
        public static void MementoPattern()
        {
            var originator = new Originator(new Student
            {
                Id   = 10,
                Name = "张三"
            });

            Console.WriteLine($"现在学生的名称是:{originator.GetStudentName()}");
            var caretaker = new Caretaker();

            caretaker.student = originator.CreateStudent();
            Console.WriteLine($"备份对象:Id:{caretaker.student.Id},Name:{caretaker.student.Name}");
            originator.RemoveStudent();
            Console.WriteLine($"移除对象");
            Console.WriteLine($"当前学生的名称是:{originator.GetStudentName()}");
            originator.RestoreStudent(caretaker.student);
            Console.WriteLine($"还原之后学生的名称是:{originator.GetStudentName()}");
        }
Example #28
0
        public HttpResponseMessage LogInUserFromPlay(AutenticationRequest objUser)
        {
            string IpAddress = GetIpClient();



            // objUser.strIdUser = _TokenServices.GetToken(objUser.Token);


            Originator objOriginator = new Originator();// AutenticationUserController.Instance.AutenticationUser(objUser.strIdUser, "", IpAddress, false, true, objUser.Disclaimer,"",false);
            var        response      = Request.CreateResponse <Originator>(HttpStatusCode.OK, objOriginator);

            response.Headers.Add("Token", "");
            response.Headers.Add("TokenExpiry", ConfigurationManager.AppSettings["AuthTokenExpiry"]);
            response.Headers.Add("Access-Control-Expose-Headers", "Token,TokenExpiry");


            return(response);
        }
        public void MementoUsage()
        {
            Originator o = new Originator();

            o.State = "On";

            // Store internal state
            Caretaker c = new Caretaker();

            c.Memento = o.CreateMemento();

            // Continue changing originator
            o.State = "Off";

            // Restore saved state
            o.SetMemento(c.Memento);

            Assert.IsTrue(true);
        }
Example #30
0
        public static Originator MapOriginatorFromProto(ProtoOriginator messageOriginator)
        {
            if (messageOriginator == null)
            {
                return(null);
            }

            var obj = new Originator(
                messageOriginator.Name,
                messageOriginator.Vaan,
                MapPostalAddressFromProto(messageOriginator.PostalAddress),
                MapPlaceOfBirthFromProto(messageOriginator.PlaceOfBirth),
                messageOriginator.NaturalPersonId?.Select(x => MapNaturalPersonIdFromProto(x))?.ToArray(),
                messageOriginator.JuridicalPersonId?.Select(x => MapJuridicalPersonIdFromProto(x))?.ToArray(),
                messageOriginator.Bic
                );

            return(obj);
        }
Example #31
0
        public static void MementoPattern()
        {
            Originator o = new Originator();

            o.State = "On";
            o.Show();

            Caretaker c = new Caretaker();

            c.Memento = o.CreateMemento();

            o.State = "Off";
            o.Show();

            o.SetMemento(c.Memento);
            o.Show();

            Console.Read();
        }
        public void ShouldFilterApprenticeshipStatusSelectedAllButOneSelected(Originator caller)
        {
            var query = new ApprenticeshipSearchQuery
            {
                ApprenticeshipStatuses =
                    new List <ApprenticeshipStatus>(
                        new[]
                {
                    ApprenticeshipStatus.Live,
                    ApprenticeshipStatus.Finished,
                    ApprenticeshipStatus.Paused,
                    ApprenticeshipStatus.Stopped
                })
            };
            var result = _sut.Filter(_apprenticeships, query, caller);

            result.PageOfResults.Count.Should().Be(1);
            result.PageOfResults.Single().FirstName.Should().Be("Live");
        }
Example #33
0
    //
    void UnitTest()
    {
        Originator theOriginator = new Originator();

        // 設定資訊
        theOriginator.SetInfo("Step1");
        theOriginator.ShowInfo();

        // 儲存狀態
        Memento theMemnto = theOriginator.CreateMemento();

        // 設定新的資訊
        theOriginator.SetInfo("Step2");
        theOriginator.ShowInfo();

        // 復原
        theOriginator.SetMemento(theMemnto);
        theOriginator.ShowInfo();
    }
        /// <summary>
        /// Create a session and send a request session message to beneficiary Vasp.
        /// </summary>
        /// <param name="originator">Information about a client who sends a transfer</param>
        /// <param name="beneficiaryVaan">Information about a receiver of the transfer</param>
        /// <returns>OriginatorSession through which transfer request and transfer dispatch should be requested.</returns>
        public async Task <OriginatorSession> CreateSessionAsync(
            Originator originator,
            VirtualAssetsAccountNumber beneficiaryVaan,
            IOriginatorVaspCallbacks _originatorVaspCallbacks)
        {
            string counterPartyVaspContractAddress = await _ensProvider.GetContractAddressByVaspCodeAsync(beneficiaryVaan.VaspCode);

            var contractInfo = await _ethereumRpc.GetVaspContractInfoAync(counterPartyVaspContractAddress);

            var sessionKey = ECDH_Key.GenerateKey();
            var sharedKey  = sessionKey.GenerateSharedSecretHex(contractInfo.HandshakeKey);

            var session = new OriginatorSession(
                originator,
                this._vaspContractInfo,
                this.VaspInfo,
                beneficiaryVaan,
                contractInfo.SigningKey,
                contractInfo.HandshakeKey,
                sharedKey,
                sessionKey.PublicKey,
                this._signatureKey,
                _whisperRpc,
                _transportClient,
                _signService,
                _originatorVaspCallbacks);

            if (_originatorSessionsDict.TryAdd(session.SessionId, session))
            {
                this.NotifySessionCreated(session);
                session.OnSessionTermination += this.ProcessSessionTermination;
                await session.StartAsync();

                return(session);
            }

            await session.TerminateAsync(TerminationMessage.TerminationMessageCode
                                         .SessionClosedTransferCancelledByOriginator);

            //TODO: process it as exception or retry
            return(null);
        }
Example #35
0
        public void TestMemento()
        {
            Juego juego = new Juego();

            juego.setProgress("10%");
            juego.setCheckpoint(1);

            Caretaker  caretaker  = new Caretaker();
            Originator originator = new Originator();

            juego = new Juego();
            juego.setProgress("40%");
            juego.setCheckpoint(2);
            originator.setEstado(juego);

            juego = new Juego();
            juego.setProgress("50%");
            juego.setCheckpoint(3);
            originator.setEstado(juego);

            caretaker.addMemento(originator.guardar());             // ESTADO POSICION 0

            juego = new Juego();
            juego.setProgress("70%");
            juego.setCheckpoint(4);
            originator.setEstado(juego);

            caretaker.addMemento(originator.guardar());             // ESTADO POSICION 1

            juego = new Juego();
            juego.setProgress("80%");
            juego.setCheckpoint(5);
            originator.setEstado(juego);

            caretaker.addMemento(originator.guardar());             // ESTADO POSICION 2

            originator.setEstado(juego);
            originator.restaurar(caretaker.getMemento(1));

            juego = originator.getEstado();
            Assert.AreEqual("Juego [Progreso=70%, checkpoint=4]", juego.toString());
        }
    /// <summary>
    /// Entry point into console application.
    /// </summary>
    static void Main()
    {
        Originator o = new Originator();

        o.State = "On";

        // Store internal state
        Caretaker c = new Caretaker();

        c.Memento = o.CreateMemento();

        // Continue changing originator
        o.State = "Off";

        // Restore saved state
        o.SetMemento(c.Memento);

        // Wait for user
        Console.ReadKey();
    }
	// 
	void UnitTest () {
			
		Originator theOriginator = new Originator();

		// 設定資訊
		theOriginator.SetInfo( "Step1" );
		theOriginator.ShowInfo();

		// 儲存狀態
		Memento theMemnto = theOriginator.CreateMemento();

		// 設定新的資訊
		theOriginator.SetInfo( "Step2" );
		theOriginator.ShowInfo();

		// 復原
		theOriginator.SetMemento( theMemnto );
		theOriginator.ShowInfo();
	
	}
Example #38
0
        private static void Main()
        {
            Originator<string> orig = new Originator<string>();

            orig.SetState("state0");
            Caretaker<string>.SaveState(orig); //save state of the originator
            orig.ShowState();

            orig.SetState("state1");
            Caretaker<string>.SaveState(orig); //save state of the originator
            orig.ShowState();

            orig.SetState("state2");
            Caretaker<string>.SaveState(orig); //save state of the originator
            orig.ShowState();

            //restore state of the originator
            Caretaker<string>.RestoreState(orig, 0);
            orig.ShowState();  //shows state0
        }
        public void Main()
        {
            var o1 = new Originator();

            o1.IncreaseY();
            o1.SaveCheckpoint(1);
            o1.IncreaseY();
            o1.SaveCheckpoint(2);
            var o2 = new Originator();

            o2.UpdateX(3);
            o2.SaveCheckpoint(2);

            o1.Undo(1);
            Assert.AreEqual <int>(0, o1.Current.X);
            Assert.AreEqual <int>(1, o1.Current.Y);
            o2.Undo(2);
            Assert.AreEqual <int>(3, o2.Current.X);
            Assert.AreEqual <int>(0, o2.Current.Y);
        }
Example #40
0
    public void Main()
    {
        // References to the mementos
        var c = new Caretaker[10];
        var originator = new Originator();

        var move = 0;
        // Iterator for the moves
        var simulator = new Simulator();

        foreach (string command in simulator)
        {
            // Check for undo
            if (command[0] == '*' && move > 0)
                originator.Restore(c[move - 1].Memento);
            else
                originator.Operation(command);
            move++;
            c[move] = new Caretaker();
            c[move].Memento = originator.SetMemento();
        }
    }
Example #41
0
    // Responsible for zooming in for all control schemes
    public void ZoomIn(Originator originator)
    {
        // First checks to see if we camera can zoom in
        if(panoCamera.fov > minZoomFov)
        {
            // Touch device zoom in
            if(originator == Originator.TouchDevice)
            {
                if(panoCamera.fov - (touchZoomSpeed * Time.deltaTime) >= minZoomFov)
                {
                    panoCamera.fov = panoCamera.fov - (touchZoomSpeed * Time.deltaTime) ;
                }
                else
                {
                    panoCamera.fov = minZoomFov ;
                }

                if(limitXRotation || limitYRotation)
                {
                    AdjustRotationalLimitZoomIn() ;
                }
            }

            // Mouse zoom in
            else if(originator == Originator.Mouse)
            {
                if(panoCamera.fov - (mouseZoomSpeed * Time.deltaTime) >= minZoomFov)
                {
                    panoCamera.fov = panoCamera.fov - (mouseZoomSpeed * Time.deltaTime) ;
                }
                else
                {
                    panoCamera.fov = minZoomFov ;
                }

                if(limitXRotation || limitYRotation)
                {
                    AdjustRotationalLimitZoomIn() ;
                }
            }

            else if(originator == Originator.Keyboard)
            {
                // Keyboard zoom in
                if(panoCamera.fov - ((keyboardZoomSpeed * Time.deltaTime)) >= minZoomFov)
                {
                    panoCamera.fov = panoCamera.fov - ((keyboardZoomSpeed * Time.deltaTime)) ;
                }
                else
                {
                    panoCamera.fov = minZoomFov ;
                }

                if(limitXRotation || limitYRotation)
                {
                    AdjustRotationalLimitZoomIn() ;
                }
            }
            else if(originator == Originator.GuibuttonZoomIn)
            {
                // guibutton zoom in
                if(panoCamera.fov - ((keyboardZoomSpeed * Time.deltaTime)) >= minZoomFov)
                {
                    panoCamera.fov = panoCamera.fov - ((keyboardZoomSpeed * Time.deltaTime)) ;
                }
                else
                {
                    panoCamera.fov = minZoomFov ;
                }

                if(limitXRotation || limitYRotation)
                {
                    AdjustRotationalLimitZoomIn() ;
                }
            }
        }
    }
 public MainMementoProgram()
 {
     this.StateMemory = new List<Memento>();
     this.OriginalObject = new Originator();
 }
Example #43
0
    // Responsible for zooming out for all control schemes
    public void ZoomOut(Originator originator)
    {
        // First checks to see if we camera can zoom out
        if(panoCamera.fov < maxZoomFov)
        {
            // Touch zoom out
            if(originator == Originator.TouchDevice)
            {
                if(panoCamera.fov + (touchZoomSpeed * Time.deltaTime) <= maxZoomFov)
                {
                    panoCamera.fov = panoCamera.fov + (touchZoomSpeed * Time.deltaTime) ;
                }
                else
                {
                    panoCamera.fov = maxZoomFov ;
                }

                if(limitXRotation || limitYRotation)
                {
                    AdjustRotationalLimitZoomOut(2.5f) ;
                }
            }

            // Mouse zoom out
            else if(originator == Originator.Mouse)
            {
                if(panoCamera.fov + (mouseZoomSpeed * Time.deltaTime) <= maxZoomFov)
                {
                    panoCamera.fov = panoCamera.fov + (mouseZoomSpeed * Time.deltaTime) ;
                }
                else
                {
                    panoCamera.fov = maxZoomFov ;
                }

                if(limitXRotation || limitYRotation)
                {
                    AdjustRotationalLimitZoomOut(0.59f) ;
                }
            }

            else if(originator == Originator.Keyboard)
            {
                // Keyboard zoom out
                if(panoCamera.fov + ((keyboardZoomSpeed * Time.deltaTime)) <= maxZoomFov)
                {
                    panoCamera.fov = panoCamera.fov + ((keyboardZoomSpeed * Time.deltaTime)) ;
                }
                else
                {
                    panoCamera.fov = maxZoomFov ;
                }

                if(limitXRotation || limitYRotation)
                {
                    AdjustRotationalLimitZoomOut(0.25f) ;
                }
            }

            else if(originator == Originator.GuibuttonZoomOut)
            {
                // guibutton zoom out
                if(panoCamera.fov + ((keyboardZoomSpeed * Time.deltaTime)) <= maxZoomFov)
                {
                    panoCamera.fov = panoCamera.fov + ((keyboardZoomSpeed * Time.deltaTime)) ;
                }
                else
                {
                    panoCamera.fov = maxZoomFov ;
                }

                if(limitXRotation || limitYRotation)
                {
                    AdjustRotationalLimitZoomOut(0.25f) ;
                }
            }
        }
    }
Example #44
0
    // Responsible for panning for all control schemes
    public void Pan(Originator originator)
    {
        // panning if camera has horizontal rotational limit but not a vertical rotational limit
        if(limitXRotation == true && limitYRotation == false)
        {
            // mouse panning
            if(originator == Originator.Mouse)
            {
                if(!invertMouseHorizontal)
                {
                    x = Mathf.Clamp(x + (Input.GetAxis("Mouse X") * Time.deltaTime * mousePanSpeed), maxLeftRotation, maxRightRotation) ;
                }
                else
                {
                    x = Mathf.Clamp(x + (-Input.GetAxis("Mouse X") * Time.deltaTime * mousePanSpeed), maxLeftRotation, maxRightRotation) ;
                }

                if(!invertMouseVertical)
                {
                    panoCamera.transform.Rotate((-Input.GetAxis("Mouse Y")  * mousePanSpeed * Time.deltaTime), 0, 0);
                }
                else
                {
                    panoCamera.transform.Rotate((Input.GetAxis("Mouse Y")  * mousePanSpeed * Time.deltaTime), 0, 0);
                }

                panoCameraPivot.transform.rotation = Quaternion.Euler( 0, x + startingCameraAngle, 0 );
            }

            // touch panning
            else if (originator == Originator.TouchDevice)
            {
                if(!invertTouchHorizontal)
                {
                    x = Mathf.Clamp(x + (finger1.deltaPosition.x * Time.deltaTime * touchPanSpeed), maxLeftRotation, maxRightRotation) ;
                }
                else
                {
                    x = Mathf.Clamp(x + (-finger1.deltaPosition.x * Time.deltaTime * touchPanSpeed), maxLeftRotation, maxRightRotation) ;
                }

                if(!invertTouchVertical)
                {
                    panoCamera.transform.Rotate((-finger1.deltaPosition.y  * touchPanSpeed * Time.deltaTime), 0, 0);
                }
                else
                {
                    panoCamera.transform.Rotate((finger1.deltaPosition.y  * touchPanSpeed * Time.deltaTime), 0, 0);
                }

                panoCameraPivot.transform.rotation = Quaternion.Euler( 0, x + startingCameraAngle, 0 );
            }

            // keyboard panning
            else if (originator == Originator.Keyboard)
            {
                if(!invertKeyboardHorizontal)
                {
                    x = Mathf.Clamp(x + (Input.GetAxis("Horizontal") * Time.deltaTime * keyboardPanSpeed), maxLeftRotation, maxRightRotation) ;
                }
                else
                {
                    x = Mathf.Clamp(x + ((-1 * Input.GetAxis("Horizontal")) * Time.deltaTime * keyboardPanSpeed), maxLeftRotation, maxRightRotation) ;
                }

                if(!invertKeyboardVertical)
                {
                    panoCamera.transform.Rotate(-Input.GetAxis("Vertical") * keyboardPanSpeed * Time.deltaTime, 0, 0) ;
                }
                else
                {
                    panoCamera.transform.Rotate(Input.GetAxis("Vertical") * keyboardPanSpeed * Time.deltaTime, 0, 0) ;
                }

                panoCameraPivot.transform.rotation = Quaternion.Euler( 0, x + startingCameraAngle , 0 );
            }

            // Guibutton panning
            else if (originator == Originator.GuibuttonLeft)
            {
                x = Mathf.Clamp(x + (-1 * Time.deltaTime * keyboardPanSpeed), maxLeftRotation, maxRightRotation) ;
                panoCameraPivot.transform.rotation = Quaternion.Euler( 0, x + startingCameraAngle , 0 );
            }

            else if (originator == Originator.GuibuttonRight)
            {
                x = Mathf.Clamp(x + (1 * Time.deltaTime * keyboardPanSpeed), maxLeftRotation, maxRightRotation) ;
                panoCameraPivot.transform.rotation = Quaternion.Euler( 0, x + startingCameraAngle , 0 );
            }

            else if (originator == Originator.GuibuttonUp)
            {
                panoCamera.transform.Rotate(1 * keyboardPanSpeed * Time.deltaTime, 0, 0) ;
            }

            else if (originator == Originator.GuibuttonDown)
            {
                panoCamera.transform.Rotate(-1 * keyboardPanSpeed * Time.deltaTime, 0, 0) ;
            }
        }

        // panning if camera has vertical rotational limit but not a horizontal rotational limit
        else if(limitYRotation == true && limitXRotation == false)
        {
            // mouse panning
            if(originator == Originator.Mouse)
            {
                if(!invertMouseVertical)
                {
                    y = Mathf.Clamp(y + (Input.GetAxis("Mouse Y") * Time.deltaTime * mousePanSpeed), maxDownRotation, maxUpRotation) ;
                }
                else
                {
                    y = Mathf.Clamp(y + (-Input.GetAxis("Mouse Y") * Time.deltaTime * mousePanSpeed), maxDownRotation, maxUpRotation) ;
                }

                panoCamera.transform.localRotation = Quaternion.Euler(-y, 0, 0 );

                if(!invertMouseHorizontal)
                {
                    panoCameraPivot.transform.Rotate(0, (Input.GetAxis("Mouse X")  * mousePanSpeed * Time.deltaTime), 0);
                }
                else
                {
                    panoCameraPivot.transform.Rotate(0, (-Input.GetAxis("Mouse X")  * mousePanSpeed * Time.deltaTime), 0);
                }
            }

            // touch panning
            else if (originator == Originator.TouchDevice)
            {
                if(!invertTouchVertical)
                {
                    y = Mathf.Clamp(y + (finger1.deltaPosition.y * Time.deltaTime * touchPanSpeed), maxDownRotation, maxUpRotation) ;
                }
                else
                {
                    y = Mathf.Clamp(y + (-finger1.deltaPosition.y * Time.deltaTime * touchPanSpeed), maxDownRotation, maxUpRotation) ;
                }

                panoCamera.transform.localRotation = Quaternion.Euler(-y, 0, 0 );

                if(!invertTouchHorizontal)
                {
                    panoCameraPivot.transform.Rotate(0, (finger1.deltaPosition.x * touchPanSpeed * Time.deltaTime),0) ;
                }
                else
                {
                    panoCameraPivot.transform.Rotate(0, (-finger1.deltaPosition.x * touchPanSpeed * Time.deltaTime),0) ;
                }
            }

            // keyboard panning
            else if (originator == Originator.Keyboard)
            {
                if(!invertKeyboardVertical)
                {
                    y = Mathf.Clamp(y + (Input.GetAxis("Vertical") * Time.deltaTime * keyboardPanSpeed), maxDownRotation, maxUpRotation) ;
                }
                else
                {
                    y = Mathf.Clamp(y + (-Input.GetAxis("Vertical") * Time.deltaTime * keyboardPanSpeed), maxDownRotation, maxUpRotation) ;
                }

                panoCamera.transform.localRotation = Quaternion.Euler(-y, 0, 0 );

                if(!invertKeyboardHorizontal)
                {
                    panoCameraPivot.transform.Rotate(0, Input.GetAxis("Horizontal") * keyboardPanSpeed * Time.deltaTime, 0) ;
                }
                else
                {
                    panoCameraPivot.transform.Rotate(0, -Input.GetAxis("Horizontal") * keyboardPanSpeed * Time.deltaTime, 0) ;
                }
            }

            // Guibutton panning
            else if (originator == Originator.GuibuttonUp)
            {
                y = Mathf.Clamp(y + (1 * Time.deltaTime * keyboardPanSpeed), maxDownRotation, maxUpRotation) ;

                panoCamera.transform.localRotation = Quaternion.Euler(-y, 0, 0 );
            }
            else if (originator == Originator.GuibuttonDown)
            {
                y = Mathf.Clamp(y + (-1 * Time.deltaTime * keyboardPanSpeed), maxDownRotation, maxUpRotation) ;

                panoCamera.transform.localRotation = Quaternion.Euler(-y, 0, 0 );
            }
            else if (originator == Originator.GuibuttonLeft)
            {
                panoCameraPivot.transform.Rotate(0, -1 * keyboardPanSpeed * Time.deltaTime, 0) ;
            }
            else if (originator == Originator.GuibuttonRight)
            {
                panoCameraPivot.transform.Rotate(0, 1 * keyboardPanSpeed * Time.deltaTime, 0) ;
            }
        }

        // panning if camera has both horizontal rotational limit and a vertical rotational limit
        else if(limitYRotation == true && limitXRotation == true)
        {
            // mouse panning
            if(originator == Originator.Mouse)
            {
                if(!invertMouseHorizontal)
                {
                    x = Mathf.Clamp(x + (Input.GetAxis("Mouse X") * Time.deltaTime * mousePanSpeed), maxLeftRotation, maxRightRotation) ;
                }
                else
                {
                    x = Mathf.Clamp(x + (-Input.GetAxis("Mouse X") * Time.deltaTime * mousePanSpeed), maxLeftRotation, maxRightRotation) ;
                }

                if(!invertMouseVertical)
                {
                    y = Mathf.Clamp(y + (Input.GetAxis("Mouse Y") * Time.deltaTime * mousePanSpeed), maxDownRotation, maxUpRotation) ;
                }
                else
                {
                    y = Mathf.Clamp(y + (-Input.GetAxis("Mouse Y") * Time.deltaTime * mousePanSpeed), maxDownRotation, maxUpRotation) ;
                }

                panoCamera.transform.localRotation = Quaternion.Euler(-y, 0, 0 );
                panoCameraPivot.transform.rotation = Quaternion.Euler( 0, x  + startingCameraAngle, 0 );
            }

            // touch panning
            else if (originator == Originator.TouchDevice)
            {
                if(!invertTouchHorizontal)
                {
                    x = Mathf.Clamp(x + (finger1.deltaPosition.x * Time.deltaTime * touchPanSpeed), maxLeftRotation, maxRightRotation) ;
                }
                else
                {
                    x = Mathf.Clamp(x + (-finger1.deltaPosition.x * Time.deltaTime * touchPanSpeed), maxLeftRotation, maxRightRotation) ;
                }

                if(!invertTouchVertical)
                {
                    y = Mathf.Clamp(y + (finger1.deltaPosition.y * Time.deltaTime * touchPanSpeed), maxDownRotation, maxUpRotation) ;
                }
                else
                {
                    y = Mathf.Clamp(y + (-finger1.deltaPosition.y * Time.deltaTime * touchPanSpeed), maxDownRotation, maxUpRotation) ;
                }

                panoCamera.transform.localRotation = Quaternion.Euler(-y, 0, 0 );
                panoCameraPivot.transform.rotation = Quaternion.Euler( 0, x  + startingCameraAngle, 0 );
            }

            // keyboard panning
            else if (originator == Originator.Keyboard)
            {
                if(!invertKeyboardHorizontal)
                {
                    x = Mathf.Clamp(x + (Input.GetAxis("Horizontal") * Time.deltaTime * keyboardPanSpeed), maxLeftRotation, maxRightRotation) ;
                }
                else
                {
                    x = Mathf.Clamp(x + (-Input.GetAxis("Horizontal") * Time.deltaTime * keyboardPanSpeed), maxLeftRotation, maxRightRotation) ;
                }

                if(!invertKeyboardVertical)
                {
                    y = Mathf.Clamp(y + (Input.GetAxis("Vertical") * Time.deltaTime * keyboardPanSpeed), maxDownRotation, maxUpRotation) ;
                }
                else
                {
                    y = Mathf.Clamp(y + (-Input.GetAxis("Vertical") * Time.deltaTime * keyboardPanSpeed), maxDownRotation, maxUpRotation) ;
                }

                panoCamera.transform.localRotation = Quaternion.Euler(-y, 0, 0 );
                panoCameraPivot.transform.rotation = Quaternion.Euler( 0, x + startingCameraAngle, 0 );
            }

            // Guibutton panning
            else if (originator == Originator.GuibuttonUp)
            {
                y = Mathf.Clamp(y + (1 * Time.deltaTime * keyboardPanSpeed), maxDownRotation, maxUpRotation) ;

                panoCamera.transform.localRotation = Quaternion.Euler(-y, 0, 0 );

            }
            else if (originator == Originator.GuibuttonDown)
            {
                y = Mathf.Clamp(y + (-1 * Time.deltaTime * keyboardPanSpeed), maxDownRotation, maxUpRotation) ;

                panoCamera.transform.localRotation = Quaternion.Euler(-y, 0, 0 );
            }
            else if (originator == Originator.GuibuttonLeft)
            {
                x = Mathf.Clamp(x + (-1 * Time.deltaTime * keyboardPanSpeed), maxLeftRotation, maxRightRotation) ;

                panoCameraPivot.transform.rotation = Quaternion.Euler( 0, x + startingCameraAngle, 0 );
            }
            else if (originator == Originator.GuibuttonRight)
            {
                x = Mathf.Clamp(x + (1 * Time.deltaTime * keyboardPanSpeed), maxLeftRotation, maxRightRotation) ;

                panoCameraPivot.transform.rotation = Quaternion.Euler( 0, x + startingCameraAngle, 0 );
            }
        }

        // if theres no rotational limits, pan freely
        else
        {
            // mouse panning
            if(originator == Originator.Mouse)
            {
                if(!invertMouseVertical)
                {
                    panoCamera.transform.Rotate((-Input.GetAxis("Mouse Y")  * mousePanSpeed * Time.deltaTime), 0, 0);
                }
                else
                {
                    panoCamera.transform.Rotate((Input.GetAxis("Mouse Y")  * mousePanSpeed * Time.deltaTime), 0, 0);
                }

                if(!invertMouseHorizontal)
                {
                    panoCameraPivot.transform.Rotate(0, (Input.GetAxis("Mouse X")  * mousePanSpeed * Time.deltaTime), 0);
                }
                else
                {
                    panoCameraPivot.transform.Rotate(0, (-Input.GetAxis("Mouse X")  * mousePanSpeed * Time.deltaTime), 0);
                }
            }

            // touch panning
            else if(originator == Originator.TouchDevice)
            {
                if(!invertTouchVertical)
                {
                    panoCamera.transform.Rotate((-finger1.deltaPosition.y  * touchPanSpeed * Time.deltaTime), 0, 0);
                }
                else
                {
                    panoCamera.transform.Rotate((finger1.deltaPosition.y  * touchPanSpeed * Time.deltaTime), 0, 0);
                }

                if(!invertTouchHorizontal)
                {
                    panoCameraPivot.transform.Rotate(0, (finger1.deltaPosition.x * touchPanSpeed * Time.deltaTime),0) ;
                }
                else
                {
                    panoCameraPivot.transform.Rotate(0, (-finger1.deltaPosition.x * touchPanSpeed * Time.deltaTime),0) ;
                }
            }

            // keyboard panning
            else if(originator == Originator.Keyboard)
            {
                if(!invertKeyboardVertical)
                {
                    panoCamera.transform.Rotate(-Input.GetAxis("Vertical") * keyboardPanSpeed * Time.deltaTime, 0, 0) ;
                }
                else
                {
                    panoCamera.transform.Rotate(Input.GetAxis("Vertical") * keyboardPanSpeed * Time.deltaTime, 0, 0) ;
                }

                if(!invertKeyboardHorizontal)
                {
                    panoCameraPivot.transform.Rotate(0, Input.GetAxis("Horizontal") * keyboardPanSpeed * Time.deltaTime, 0) ;
                }
                else
                {
                    panoCameraPivot.transform.Rotate(0, -Input.GetAxis("Horizontal") * keyboardPanSpeed * Time.deltaTime, 0) ;
                }
            }

            // Guibutton panning
            else if(originator == Originator.GuibuttonUp)
            {
                panoCamera.transform.Rotate(-1 * keyboardPanSpeed * Time.deltaTime, 0, 0) ;
            }
            else if(originator == Originator.GuibuttonDown)
            {
                panoCamera.transform.Rotate(1 * keyboardPanSpeed * Time.deltaTime, 0, 0) ;
            }
            else if(originator == Originator.GuibuttonLeft)
            {
                panoCameraPivot.transform.Rotate(0, -1 * keyboardPanSpeed * Time.deltaTime, 0) ;
            }
            else if(originator == Originator.GuibuttonRight)
            {
                panoCameraPivot.transform.Rotate(0, 1 * keyboardPanSpeed * Time.deltaTime, 0) ;
            }
        }
    }
 public void RegisterOriginator(Originator newOriginator)
 {
     m_OriginatorList.Add (newOriginator);
 }
Example #46
0
 private void ShowAll(Originator eOriginator, Int64 nValue)
 {
     this._inShowAll = true;
     if (eOriginator != Originator.Bits)
     {
         this.ShowBits(nValue);
     }
     if (eOriginator != Originator.Dec)
     {
         this.ShowDecimal(nValue);
     }
     if (eOriginator != Originator.Hex)
     {
         this.ShowHexadecimal(nValue);
     }
     if (eOriginator != Originator.Bin)
     {
         this.ShowBinary(nValue);
     }
     this.ShowSource(nValue);
     this._inShowAll = false;
 }