Beispiel #1
0
        public static void WriteDefaultFaceCalculation(PointF[] shape)
        {
            var calculatedFaceAlignment = GetFaceCalculationsFromShape(shape);
            using (var db = new GrimacizerContext(GrimacizerContext.ConnectionString))
            {
                var faceCalculations = db.FaceCalculations.FirstOrDefault();

                faceCalculations._0_TamplaStanga = calculatedFaceAlignment._0_TamplaStanga;
                faceCalculations._1_TamplaDreapta = calculatedFaceAlignment._1_TamplaDreapta;
                faceCalculations._2_Barbie = calculatedFaceAlignment._2_Barbie;
                faceCalculations._3_SpranceanaDreapta = calculatedFaceAlignment._3_SpranceanaDreapta;
                faceCalculations._4_ArieOchiStang = calculatedFaceAlignment._4_ArieOchiStang;
                faceCalculations._5_ArieOchiDrept = calculatedFaceAlignment._5_ArieOchiDrept;
                faceCalculations._6_MarimeOchiStang = calculatedFaceAlignment._6_MarimeOchiStang;
                faceCalculations._7_MarimeOchiDrept = calculatedFaceAlignment._7_MarimeOchiDrept;
                faceCalculations._8_InaltimeGura = calculatedFaceAlignment._8_InaltimeGura;
                faceCalculations._9_Unghi_60_67 = calculatedFaceAlignment._9_Unghi_60_67;
                faceCalculations._10_Unghi_64_65 = calculatedFaceAlignment._10_Unghi_64_65;
                faceCalculations._11_LungimeGuraExterior = calculatedFaceAlignment._11_LungimeGuraExterior;
                faceCalculations._12_UnghiNasStanga = calculatedFaceAlignment._12_UnghiNasStanga;
                faceCalculations._13_UnghiNasDreapta = calculatedFaceAlignment._13_UnghiNasDreapta;
                faceCalculations._14_ArieFata = calculatedFaceAlignment._14_ArieFata;
                faceCalculations._15_ArieGura = calculatedFaceAlignment._15_ArieGura;

                db.SubmitChanges();
            }
        }
Beispiel #2
0
 public static FaceCalculationsItem ReadDefaultFaceCalculations()
 {
     using (var db = new GrimacizerContext(GrimacizerContext.ConnectionString))
     {
         return db.FaceCalculations.FirstOrDefault();
     }
 }
        protected override void OnNavigatedTo(NavigationEventArgs e)
        {
            SystemTray.IsVisible = true;

            using (var db = new GrimacizerContext(GrimacizerContext.ConnectionString))
            {
                History.Clear();
                var cartoon = LocalImagesHelper.ReadImageFromIsolatedStorage(Constants.DEFAULT_CARTOON_PHOTO, Constants.CartoonWidth, Constants.CartoonHeight);
                History.Add(new HistoryImage
                {
                    Name = Constants.DEFAULT_CARTOON_PHOTO,
                    Image = cartoon,
                    Width = Constants.CartoonWidth,
                    Height = Constants.CartoonHeight
                });
                var savedPictures = db.SavedPictures;
                foreach (var picture in savedPictures)
                {
                    var image = LocalImagesHelper.ReadImageFromIsolatedStorage(picture.Name, picture.Width, picture.Height);
                    History.Add(new HistoryImage
                    {
                        Name = picture.Name,
                        Image = image,
                        Width = picture.Width,
                        Height = picture.Height
                    });
                }
                NotifyPropertyChanged(() => History);
            }
        }
Beispiel #4
0
        public App()
        {
            UnhandledException += Application_UnhandledException;
            InitializeComponent();
            InitializePhoneApplication();

            using (var db = new GrimacizerContext(GrimacizerContext.ConnectionString))
            {
                if (!db.DatabaseExists())
                {
                    db.CreateDatabase();
                }
            }
        }
 private void DeleteImage_Click(object sender, EventArgs e)
 {
     using (var isoStore = IsolatedStorageFile.GetUserStoreForApplication())
     {
         if (isoStore.FileExists(_pictureName))
         {
             isoStore.DeleteFile(_pictureName);
         }
     }
     using (var db = new GrimacizerContext(GrimacizerContext.ConnectionString))
     {
         var picture = db.SavedPictures.FirstOrDefault(t => t.Name == _pictureName);
         db.SavedPictures.DeleteOnSubmit(picture);
         db.SubmitChanges();
     }
     NavigationService.GoBack();
 }
        private void Next_Click(object sender, EventArgs e)
        {
            if (PlayerName.IsNullOrEmptyOrWhiteSpace())
            {
                MessageBox.Show("Please insert a name");
                return;
            }

            using (var db = new GrimacizerContext(GrimacizerContext.ConnectionString))
            {
                var settings = db.Settings.FirstOrDefault();
                settings.PlayerName = PlayerName;
                settings.Sex = GetSexType();
                settings.Race = GetHumanRaceType();
                db.SubmitChanges();                
            }
            NavigationService.Navigate(new Uri(Pages.CreateProfile_TakePhotoDefault, UriKind.Relative));
        }
        protected override void OnNavigatedTo(NavigationEventArgs e)
        {
            if (e.NavigationMode == NavigationMode.Back)
                return;

            SystemTray.IsVisible = true;

            int width, height;
            using (var db = new GrimacizerContext(GrimacizerContext.ConnectionString))
            {
                var settings =  db.Settings.FirstOrDefault();
                PlayerName = settings.PlayerName;
                width = settings.DefaultImagePixelWidth;
                height = settings.DefaultImagePixelHeight;
            }

            DefaultPhoto = LocalImagesHelper.ReadImageFromIsolatedStorage(Constants.DEFAULT_FACE_PHOTO, width, height);
            DefaultCartoon = LocalImagesHelper.ReadImageFromIsolatedStorage(Constants.DEFAULT_CARTOON_PHOTO, Constants.CartoonWidth, Constants.CartoonHeight);
        }
        protected override async void OnNavigatedTo(NavigationEventArgs e)
        {
            if (e.NavigationMode == NavigationMode.Back)
                return;

            SystemTray.IsVisible = true;

            int width, height;
            using (var db = new GrimacizerContext(GrimacizerContext.ConnectionString))
            {
                var settings = db.Settings.FirstOrDefault();
                width = settings.DefaultImagePixelWidth;
                height = settings.DefaultImagePixelHeight;
            }
            ImageSource = LocalImagesHelper.ReadImageFromIsolatedStorage(Constants.DEFAULT_FACE_PHOTO, width, height);

            var worker = new BackgroundWorker();
            worker.DoWork += (sender, arg) =>
            {
                FaceSdkHelper.Initialize();
            };
            await worker.BeginWorkerAsync();

            var sdkImg = ImageConverter.SystemToSdk(ImageSource);
            var result = FaceSdkHelper.Detect(sdkImg);
            ImageSource = ImageConverter.SdkToSystem(result);

            if (SdkHelper.foundFace == true && SdkHelper.results.Count == 1)
            {
                (ApplicationBar.Buttons[0] as ApplicationBarIconButton).IsEnabled = true;
                (ApplicationBar.Buttons[1] as ApplicationBarIconButton).IsEnabled = true;
                IsCalculating = false;
            }
            else
            {
                MessageBox.Show("Camera did not detect your face! Try again!");
                NavigationService.GoBack();
            }

            FaceSdkHelper = null;
            GC.Collect();
        }
        protected override async void OnNavigatedTo(NavigationEventArgs e)
        {
            if (e.NavigationMode == NavigationMode.Back)
                return;

            await Extensions.WaitAsync(3000);

            var settingsExists = false;
            using (var db = new GrimacizerContext(GrimacizerContext.ConnectionString))
            {
                var count = db.Settings.Count();
                if (count == 0)
                {
                    db.Settings.InsertOnSubmit(new SettingsItem 
                    { 
                        Initialized = false, 
                        LastMomentOfDeath = DateTime.Now
                    });
                    db.FaceCalculations.InsertOnSubmit(new FaceCalculationsItem());
                    for (int i = 1; i <= Constants.AvailableLevels; i++)
                    {
                        db.Levels.InsertOnSubmit(new LevelItem { Level = i, Stars = 0 });
                    }
                    db.SubmitChanges();
                }
                var settings = db.Settings.FirstOrDefault();
                settingsExists = settings.Initialized;
            }

            if (settingsExists)
            {
                NavigationService.Navigate(new Uri(Pages.MainPage, UriKind.RelativeOrAbsolute));
            }
            else
            {
                NavigationService.Navigate(new Uri(Pages.CreateProfile_CreateProfile, UriKind.RelativeOrAbsolute));
            }
        }
Beispiel #10
0
 private FaceCalculationsItem GetDefaultFaceCalculations()
 {
     using (var db = new GrimacizerContext(GrimacizerContext.ConnectionString))
     {
         return db.FaceCalculations.FirstOrDefault();
     }
 }
        private void next_Click(object sender, EventArgs e)
        {
            LocalImagesHelper.WriteImageToIsolatedStorage(Constants.DEFAULT_FACE_PHOTO, ImageSource);

            using (var db = new GrimacizerContext(GrimacizerContext.ConnectionString))
            {
                var settings = db.Settings.FirstOrDefault();

                settings.DefaultImagePixelHeight = ImageSource.PixelHeight;
                settings.DefaultImagePixelWidth = ImageSource.PixelWidth;
                settings.PhoneOrientation = orientation;

                db.SubmitChanges();
            }

            NavigationService.Navigate(new Uri(Pages.CreateProfile_ProfileCreated, UriKind.RelativeOrAbsolute));
        }
        private async Task startHardWork()
        {
            worker = new BackgroundWorker();
            worker.DoWork += (sender, arg) =>
            {
                FaceSdkHelper.Initialize();
            };
            await worker.BeginWorkerAsync();

            var sdkImg = ImageConverter.SystemToSdk(imageBitmap);
            var result = FaceSdkHelper.Detect(sdkImg);

            if (SdkHelper.foundFace == true && SdkHelper.results.Count == 1)
            {
                var shape = SdkHelper.results.FirstOrDefault();

                var defaultFaceCalculations = Calculus.ReadDefaultFaceCalculations();
                var array = FaceCalculationsHelpers.FromFaceCalculationsToVector(defaultFaceCalculations);

                var calculatedFaceCalculations = Calculus.GetFaceCalculationsFromShape(shape);
                var resultArray = FaceCalculationsHelpers.FromFaceCalculationsToVector(calculatedFaceCalculations);

                var conditions = new Conditions();
                var resultFromCalculus = conditions.GetLevelVerifierFunction(Level).Invoke(array, resultArray);

                if (resultFromCalculus != 0)
                {
                    using (var db = new GrimacizerContext(GrimacizerContext.ConnectionString))
                    {
                        var passedLevels = db.Settings.FirstOrDefault()._16_PassedLevels;
                        db.Settings.FirstOrDefault()._16_PassedLevels = Math.Max(passedLevels, Level);

                        var level = db.Levels.FirstOrDefault(t => t.Level == Level);
                        level.Stars = Math.Max(resultFromCalculus, level.Stars);

                        db.SubmitChanges();
                    }
                    MessageBox.Show("Level passed. You won " + resultFromCalculus + " point" + (resultFromCalculus > 1 ? "s!" : "!"));
                }
                else
                {
                    InGameLifeHelpers.LoseLife();
                    MessageBox.Show("Level failed");
                }
            }
            else
            {
                MessageBox.Show("Camera did not detect your face! Try again!");
            }

            NavigationService.Navigate(new Uri(Pages.GeneralGameplay_Adventure, UriKind.RelativeOrAbsolute));
            FaceSdkHelper = null;
            GC.Collect();
        }
        void startHardWork(int currentPhoto)
        {
            try
            {
                Dispatcher.BeginInvoke(delegate()
                {
                    var source = new BitmapImage();

                    using (var isoStore = IsolatedStorageFile.GetUserStoreForApplication())
                    {
                        using (var fileStream = isoStore.OpenFile(currentPhoto + ".jpg", FileMode.Open, FileAccess.Read))
                        {
                            source.SetSource(fileStream);
                        }
                    }

                    this.bitmap = new WriteableBitmap(source);

                    var sdkImg = ImageConverter.SystemToSdk(this.bitmap);
                    var result = this.FaceSdkHelper.Detect(sdkImg);

                    if (SdkHelper.foundFace == true)
                    {
                        foreach (var shape in SdkHelper.results)
                        {
                            var defaultFaceCalculations = Calculus.ReadDefaultFaceCalculations();
                            var array = FaceCalculationsHelpers.FromFaceCalculationsToVector(defaultFaceCalculations);

                            var calculatedFaceCalculations = Calculus.GetFaceCalculationsFromShape(shape);
                            var resultArray = FaceCalculationsHelpers.FromFaceCalculationsToVector(calculatedFaceCalculations);

                            Conditions c = new Conditions();
                            var resultFromCalculus = c.GetLevelVerifierFunction(selectedPhotos[currentPhoto]).Invoke(array, resultArray);
                            if (resultFromCalculus != 0)
                            {
                                using (var db = new GrimacizerContext(GrimacizerContext.ConnectionString))
                                {
                                    db.Settings.FirstOrDefault()._17_SurvivalScore += resultFromCalculus;
                                    db.SubmitChanges();
                                }
                                MessageBox.Show("Picture number " + currentPhoto + " correct! You won " + resultFromCalculus + " points!");
                            }
                            else
                            {
                                MessageBox.Show("Picture number " + currentPhoto + " did not match!");
                            }
                        }
                    }
                    else
                    {
                        MessageBox.Show("Picture number " + currentPhoto + "! Camera did not detect your face!");
                    }
                });
            }
            catch (Exception ex)
            {
                MessageBox.Show("Something bad appeared! Going back..");
                NavigationService.Navigate(new Uri(Pages.MainPage, UriKind.RelativeOrAbsolute));
            }
            finally
            {
                GC.Collect();
            }
        }
        private void cam_CaptureImageAvailable(object sender, ContentReadyEventArgs e)
        {
            Dispatcher.BeginInvoke(() =>
            {
                var bmp = new BitmapImage();
                bmp.SetSource(e.ImageStream);
                var writeableBmp = BitmapFactory.New(bmp.PixelWidth, bmp.PixelHeight).FromStream(e.ImageStream);
                imageBitmap = WriteableBitmapHelpers.TransformBitmapByCameraTypeAndPageOrientation(
                    writeableBmp, cam.CameraType, Orientation);

                var randomFileName = string.Format("{0}.jpg", Guid.NewGuid().ToString());
                LocalImagesHelper.WriteImageToIsolatedStorage(randomFileName, imageBitmap);
                using (var db = new GrimacizerContext(GrimacizerContext.ConnectionString))
                {
                    db.SavedPictures.InsertOnSubmit(new PictureItem
                    {
                        Name = randomFileName,
                        Width = imageBitmap.PixelWidth,
                        Height = imageBitmap.PixelHeight
                    });
                    db.SubmitChanges();
                }
                e.ImageStream.Close();
            });
        }
Beispiel #15
0
 public static void LoseLife()
 {
     using (var db = new GrimacizerContext(GrimacizerContext.ConnectionString))
     {
         var settings = db.Settings.FirstOrDefault();
         settings.LastMomentOfDeath = DateTime.Now;
         settings._20_NumberLivesLeft = Math.Max(0, settings._20_NumberLivesLeft - 1);
         // TODO: uncomment this
         //db.SubmitChanges();
     }
 }
        protected override void OnNavigatedTo(NavigationEventArgs e)
        {
            if (e.NavigationMode == NavigationMode.Back)
                return;

            SystemTray.IsVisible = true;
            if (NavigationContext.QueryString.ContainsKey("editprofile"))
                editProfile = true;

            Message = "Generate a random cartoon:";

            using (var db = new GrimacizerContext(GrimacizerContext.ConnectionString))
            {
                var settings = db.Settings.FirstOrDefault();
                width = settings.DefaultImagePixelWidth;
                height = settings.DefaultImagePixelHeight;
                _sex = settings.Sex;
                _race = settings.Race;
            }

            ImageSource = LocalImagesHelper.ReadImageFromIsolatedStorage(Constants.DEFAULT_FACE_PHOTO, width, height);
            GenerateRandomCartoon();
        }
        private void ResetProfile_Click(object sender, EventArgs e)
        {
            var result = MessageBox.Show("Are you sure you want to reset your profile?", "Confirm", MessageBoxButton.OKCancel);
            switch (result)
            {
                case MessageBoxResult.OK:
                    using (var isoStore = IsolatedStorageFile.GetUserStoreForApplication())
                    {
                        isoStore.DeleteFile(Constants.DEFAULT_SETTINGS_FILE);
                        isoStore.DeleteFile(Constants.DEFAULT_FACE_PHOTO);
                        isoStore.DeleteFile(Constants.DEFAULT_CARTOON_PHOTO);

                        using (var db = new GrimacizerContext(GrimacizerContext.ConnectionString))
                        {
                            db.Settings.FirstOrDefault().Initialized = false;
                            db.SubmitChanges();
                        }
                    }

                    NavigationService.Navigate(new Uri(Pages.CreateProfile_CreateProfile, UriKind.RelativeOrAbsolute));
                    break;
            }
        }
        private void Next_Click(object sender, EventArgs e)
        {
            Calculus.WriteDefaultFaceCalculation(SdkHelper.results.FirstOrDefault());
            using (var db = new GrimacizerContext(GrimacizerContext.ConnectionString))
            {
                var settings = db.Settings.FirstOrDefault();

                settings._16_PassedLevels = Constants.DefaultAvailableLevels;
                settings._17_SurvivalScore = 0;
                settings._18_MultiplayerWinScore = 0;
                settings._19_MultiplayerLoseScore = 0;
                settings._20_NumberLivesLeft = Constants.MaxLives;
                settings.LastMomentOfDeath = DateTime.Now;

                foreach (var level in db.Levels)
                {
                    level.Stars = 0;
                }
                db.SubmitChanges();
            }

            NavigationService.Navigate(new Uri(Pages.CreateProfile_CartoonCreator, UriKind.RelativeOrAbsolute));
        }
        protected override void OnNavigatedTo(NavigationEventArgs e)
        {
            SystemTray.IsVisible = true;

            while (NavigationService.CanGoBack)
            {
                NavigationService.RemoveBackEntry();
            }

            using (var db = new GrimacizerContext(GrimacizerContext.ConnectionString))
            {
                var settings = db.Settings.FirstOrDefault();
                PlayerName = settings.PlayerName;

                Adventure = Constants.AvailableLevels - settings._16_PassedLevels;
                Survival = settings._17_SurvivalScore;
                MultiplayerWin = settings._18_MultiplayerWinScore;
                MultiplayerLose = settings._19_MultiplayerLoseScore;
            }

            Cartoon = LocalImagesHelper.ReadImageFromIsolatedStorage(Constants.DEFAULT_CARTOON_PHOTO, Constants.CartoonWidth, Constants.CartoonHeight);
        }
        private void Next_Click(object sender, EventArgs e)
        {
            LocalImagesHelper.WriteImageToIsolatedStorage(Constants.DEFAULT_CARTOON_PHOTO, ImageSource);

            if (editProfile)
            {
                NavigationService.GoBack();
                return;
            }

            using (var db = new GrimacizerContext(GrimacizerContext.ConnectionString))
            {
                var settings = db.Settings.FirstOrDefault();
                settings.Initialized = true;
                db.SubmitChanges();
            }
            NavigationService.Navigate(new Uri(Pages.MainPage, UriKind.RelativeOrAbsolute));
        }