module Graphics.PS.Statistics ( pathStatistics ) where import Graphics.PS.Path type Statistics = (Integer, Integer, Integer, Integer, Integer) plus :: Statistics -> Statistics -> Statistics plus (m1, l1, c1, g1, t1) (m2, l2, c2, g2, t2) = (m1 + m2, l1 + l2, c1 + c2, g1 + g2, t1 + t2) st :: Path -> Statistics st (MoveTo _) = (1, 0, 0, 0, 0) st (LineTo _) = (0, 1, 0, 0, 0) st (CurveTo _ _ _) = (0, 0, 1, 0, 0) st (Text _ s) = (0, 0, 0, fromIntegral (length s), 0) st (PTransform _ p) = (0, 0, 0, 0, 1) `plus` st p st (Join p1 p2) = st p1 `plus` st p2 pathStatistics :: Path -> Statistics pathStatistics = st