Image Unit Processing Interface. INFO: This is a mirror from GitHub. github.com/sona-tau/iupi

Updated Color and HSVColor implementation

+47 -33
+43 -1
src/main.rkt
··· 76 76 (define (color-min [c1 : Color] [c2 : Color]) : Color 77 77 c1) 78 78 79 + ;----- Color Type Implemntation -----; 79 80 ; Normalize a color modulo 256 80 81 (define (normalize-color [c : Color]) : Color 81 - (rgb-color (mod256 (red c)) (mod256 (green c)) (mod256 (blue c)))) 82 + (rgb-color (mod256 (red c)) (mod25 83 + 84 + ; Get red from color. 85 + (define (red [c : Color]) : Number 86 + (fst c)) 87 + 88 + ; Get green from color. 89 + (define (green [c : Color]) : Number 90 + (fst (snd c))) 91 + 92 + ; Get blue from color. 93 + (define (blue [c : Color]) : Number 94 + (snd (snd c))) 95 + 96 + ; Create a Color. 97 + (define (rgb-color [r : Number] [g : Number] [b : Number]) : Color 98 + (pair r (pair g b))) 99 + 100 + ; get hue from HSVColor 101 + (define (hue [c : Color]) : Number 102 + (fst c)) 103 + 104 + ; Get saturation from HSVColor 105 + (define (saturation [c : Color]) : Number 106 + (fst (snd c))) 107 + 108 + ; Get value from HSVColor 109 + (define (value [c : Color]) : Number 110 + (snd (snd c))) 111 + 112 + ; Create an HSVColor. 113 + (define (hsv-color [r : Number] [g : Number] [b : Number]) : Color 114 + (pair r (pair g b)))6 (green c)) (mod256 (blue c)))) 82 115 83 116 ; Convert HSVColor to RGB 84 117 (define (hsv->rgb [c : HSVColor]) : Color ··· 111 144 (R (+ R1 m)) 112 145 (G (+ G1 m)) 113 146 (B (+ B1 m))] (hsv-color R G B)))) 147 + 148 + (define (rgb->hsv [c : Color]) : HSVColor 149 + (let* [(Xmax (max (list (red c) (green c) (blue c)))) 150 + (Xmin (min (list (red c) (green c) (blue c)))) 151 + (v Xmax) 152 + (c (- Xmax Xmin)) 153 + (l (/ (+ Xmax Xmin) 2)) 154 + ]) 155 + ) 114 156 115 157 ;----- The Great Parser -----; 116 158 ; Parser that parses many operations
+4
src/parser.rkt
··· 64 64 (foldl (λ (acc x) (+ (* 10 x) acc)) 0 (map char->num (snd char-list))))))) 65 65 66 66 ; TODO: implement parser for floats 67 + ; Parses an entire float 68 + (define (p-float [s : String]) : (ParseResult Number) 69 + (do (p-number s) 70 + (λ (char-list)))) 67 71 68 72 ;; Language Functionality Parsers ;; 69 73 ; Parses a color.
-32
src/utilities.rkt
··· 49 49 [(char=? c #\0) 0] 50 50 )) 51 51 52 - ; Get red from color. 53 - (define (red [c : Color]) : Number 54 - (fst c)) 55 - 56 - ; Get green from color. 57 - (define (green [c : Color]) : Number 58 - (fst (snd c))) 59 - 60 - ; Get blue from color. 61 - (define (blue [c : Color]) : Number 62 - (snd (snd c))) 63 - 64 - ; Create a Color. 65 - (define (rgb-color [r : Number] [g : Number] [b : Number]) : Color 66 - (pair r (pair g b))) 67 - 68 - ; get hue from HSVColor 69 - (define (hue [c : Color]) : Number 70 - (fst c)) 71 - 72 - ; Get saturation from HSVColor 73 - (define (saturation [c : Color]) : Number 74 - (fst (snd c))) 75 - 76 - ; Get value from HSVColor 77 - (define (value [c : Color]) : Number 78 - (snd (snd c))) 79 - 80 - ; Create an HSVColor. 81 - (define (hsv-color [r : Number] [g : Number] [b : Number]) : Color 82 - (pair r (pair g b))) 83 - 84 52 ;; List Functions ;; 85 53 ; Builds a list up to n 86 54 (define (iota n)