]> gitweb.factorcode.org Git - factor.git/blob - extra/ui/gadgets/cartesian/cartesian.factor
ui.gadgets.cartesian: cleanup
[factor.git] / extra / ui / gadgets / cartesian / cartesian.factor
1
2 USING: accessors combinators kernel opengl.gl sequences
3 ui.gadgets.slate ;
4
5 IN: ui.gadgets.cartesian
6
7 TUPLE: cartesian < slate x-min x-max y-min y-max z-min z-max perspective ;
8
9 : init-cartesian ( cartesian -- cartesian )
10     init-slate
11     -10 >>x-min
12      10 >>x-max
13     -10 >>y-min
14      10 >>y-max
15      -1 >>z-min
16       1 >>z-max ;
17
18 : <cartesian> ( -- cartesian )
19     cartesian new init-cartesian ;
20
21 M: cartesian establish-coordinate-system
22     dup {
23         [ x-min>> ] [ x-max>> ]
24         [ y-min>> ] [ y-max>> ]
25         [ z-min>> ] [ z-max>> ]
26     } cleave glOrtho ;
27
28 : x-range ( cartesian range -- cartesian ) first2 [ >>x-min ] [ >>x-max ] bi* ;
29 : y-range ( cartesian range -- cartesian ) first2 [ >>y-min ] [ >>y-max ] bi* ;
30 : z-range ( cartesian range -- cartesian ) first2 [ >>z-min ] [ >>z-max ] bi* ;
31