GUI (work in progress..)
[master-thesis.git] / Parasitemia / Parasitemia / GUI / State.fs
1 module Parasitemia.GUI.State
2
3 open System.Collections.Generic
4
5 open Emgu.CV
6 open Emgu.CV.Structure
7
8 open Types
9
10 type State () =
11 let sourceImages = List<SourceImage>()
12 let mutable currentImage = -1
13
14 member val FilePath: string = "" with get, set
15 member val PatientID: string = "" with get, set
16
17 member this.Save () =
18 let data = { Pia.sources = []; Pia.patientID = this.PatientID }
19 Pia.save this.FilePath data
20
21 member this.Load () =
22 let data = Pia.load this.FilePath
23 this.PatientID <- data.patientID
24
25 member this.AddSourceImage (filePath: string) : SourceImage =
26 let srcImg = { num = sourceImages.Count + 1; rbcs = []; img = new Image<Bgr, byte>(filePath) }
27 sourceImages.Add(srcImg)
28 if sourceImages.Count = 1
29 then
30 currentImage <- 1
31 srcImg
32
33 member x.SourceImages : SourceImage seq =
34 sourceImages :> SourceImage seq
35
36 member this.Reset () =
37 this.PatientID <- ""
38 sourceImages.Clear()