From f7b754dd0bab0c041a538666dc54398378794a4b Mon Sep 17 00:00:00 2001 From: Robby Findler Date: Fri, 16 May 2014 17:02:08 -0500 Subject: [PATCH] use real contracts for pin-over and pin-under --- pkgs/pict-pkgs/pict-lib/pict/main.rkt | 23 +++++++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) diff --git a/pkgs/pict-pkgs/pict-lib/pict/main.rkt b/pkgs/pict-pkgs/pict-lib/pict/main.rkt index 2209a0755b..03a3c09773 100644 --- a/pkgs/pict-pkgs/pict-lib/pict/main.rkt +++ b/pkgs/pict-pkgs/pict-lib/pict/main.rkt @@ -8,7 +8,8 @@ pict->bitmap pict->argb-pixels argb-pixels->pict - colorize) + colorize + pin-under pin-over) (contract-out [colorize (-> pict? (or/c string? @@ -24,7 +25,25 @@ (and/c bytes? multiple-of-four-bytes?))] [argb-pixels->pict (-> (and/c bytes? multiple-of-four-bytes?) exact-nonnegative-integer? - pict?)])) + pict?)] + [pin-under + (->i ([base pict?] + [dx/fp (or/c real? pict?)] + [dy/f (dx/fp) + (if (real? dx/fp) + real? + (-> pict? pict? (values real? real?)))] + [pict pict?]) + [result pict?])] + [pin-over + (->i ([base pict?] + [dx/fp (or/c real? pict?)] + [dy/f (dx/fp) + (if (real? dx/fp) + real? + (-> pict? pict? (values real? real?)))] + [pict pict?]) + [result pict?])])) (define (multiple-of-four-bytes? b) (zero? (modulo (bytes-length b) 4)))