11defmodule Matplotex.Colorscheme.Garner do
2+ alias Matplotex.Colorscheme.Rgb
23alias Matplotex.Colorscheme.Blender
34alias Matplotex.InputError
45alias Matplotex.Colorscheme.Colormap
@@ -16,29 +17,34 @@ alias Matplotex.Colorscheme.Colormap
1617 defp fetch_from_cmap ( cmap ) do
1718 cmap
1819 |> Colormap . fetch_cmap ( )
20+ |> to_rgb ( )
1921 |> place_edges ( )
2022 end
2123
2224 defp put_range ( % __MODULE__ { } = garner , range , cue ) do
2325 % __MODULE__ { garner | range: range , color_cue: cue }
2426 end
2527
28+ defp to_rgb ( color_map ) do
29+ Enum . map ( color_map , & Rgb . from_cmap! ( & 1 ) )
30+ end
31+
2632 defp place_edges ( [ preceeding , minor , major , final ] ) do
27- % __MODULE__ { preceeding: preceeding , minor: minor , major: major , final: final }
33+ % __MODULE__ { preceeding: preceeding . color , minor: minor . color , major: major . color , final: final . color }
2834 end
2935 defp place_edges ( _ ) do
3036 raise InputError , message: "Invalid colormap"
3137 end
3238
3339 defp point_color ( % __MODULE__ { color_cue: cue , preceeding: preceeding , minor: minor } ) when cue < minor do
34- Blender . mix ( minor , preceeding , cue )
40+ minor |> Blender . mix ( preceeding , cue ) |> Rgb . to_string ( )
3541 end
3642
3743 defp point_color ( % __MODULE__ { color_cue: cue , minor: minor , major: major } ) when cue < major do
38- Blender . mix ( minor , major , cue )
44+ major |> Blender . mix ( minor , cue ) |> Rgb . to_string ( )
3945 end
4046
4147 defp point_color ( % __MODULE__ { color_cue: cue , major: major , final: final } ) when cue >= major do
42- final
48+ final |> Blender . mix ( major ) |> Rgb . to_string ( )
4349 end
4450 end
0 commit comments