2 USING: accessors combinators kernel opengl.gl sequences
5 IN: ui.gadgets.cartesian
7 TUPLE: cartesian < slate x-min x-max y-min y-max z-min z-max perspective ;
9 : init-cartesian ( cartesian -- cartesian )
18 : <cartesian> ( -- cartesian )
19 cartesian new init-cartesian ;
21 M: cartesian establish-coordinate-system
23 [ x-min>> ] [ x-max>> ]
24 [ y-min>> ] [ y-max>> ]
25 [ z-min>> ] [ z-max>> ]
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* ;