1#lang typed/racket/base
2
3(require (only-in typed/mred/mred Snip% Frame% Bitmap%)
4         plot/utils)
5
6(provide (all-defined-out))
7
8(define-type Plot-Snip% (Class #:implements Snip% #:implements Plot-Metrics<%>))
9
10(define-type Make-2D-Plot-Snip
11  (-> (Instance Bitmap%)
12      Plot-Parameters
13      (-> Boolean Rect Positive-Integer Positive-Integer
14          (Values (Instance Bitmap%) (U #f (Instance 2D-Plot-Area%))))
15      Rect
16      (U #f (Instance 2D-Plot-Area%))
17      Positive-Integer
18      Positive-Integer
19      (Instance Plot-Snip%)))
20
21(define-type Make-3D-Plot-Snip
22  (-> (Instance Bitmap%)
23      Plot-Parameters
24      (-> Boolean Real Real Positive-Integer Positive-Integer
25          (Values (Instance Bitmap%) (U #f (Instance 3D-Plot-Area%))))
26      Real
27      Real
28      (U #f (Instance 3D-Plot-Area%))
29      Positive-Integer
30      Positive-Integer
31      (Instance Plot-Snip%)))
32
33(define-type Make-Snip-Frame
34  (-> (-> Positive-Integer Positive-Integer (Instance Snip%))
35      Positive-Real
36      Positive-Real
37      String
38      (Instance Frame%)))
39