module Simulation.Aivika.Experiment.Chart.Backend.Diagrams
(DiagramsRenderer(..)) where
import System.FilePath
import Data.Map
import Graphics.Rendering.Chart
import Graphics.Rendering.Chart.Backend.Diagrams
import Simulation.Aivika.Experiment
import Simulation.Aivika.Experiment.Chart
data DiagramsRenderer =
DiagramsRenderer { rendererFileFormat :: FileFormat,
rendererCustomFonts :: Map (String, FontSlant, FontWeight) FilePath
}
class WebPageCharting r => DiagramsRendering r
instance ExperimentRendering DiagramsRenderer WebPageWriter where
renderExperiment e r = renderExperiment e WebPageRenderer
instance WebPageRendering DiagramsRenderer
instance WebPageCharting DiagramsRenderer where
renderableChartExtension (DiagramsRenderer EPS _) = ".eps"
renderableChartExtension (DiagramsRenderer SVG _) = ".svg"
renderableChartExtension (DiagramsRenderer SVG_EMBEDDED _) = ".svg"
renderChart (DiagramsRenderer format fonts) (width, height) =
renderableToFile (FileOptions (fromIntegral width, fromIntegral height) format fonts)
instance DiagramsRendering DiagramsRenderer