Fix $or
[factor/jcg.git] / extra / ui / gadgets / cartesian / cartesian.factor
blob730b0f5b4417266e6ced4de34a18089a583b6dd7
2 USING: kernel combinators sequences opengl.gl
3        ui.render ui.gadgets ui.gadgets.slate
4        accessors ;
6 IN: ui.gadgets.cartesian
8 ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
10 TUPLE: cartesian < slate x-min x-max y-min y-max z-min z-max perspective ;
12 : init-cartesian ( cartesian -- cartesian )
13   init-slate
14   -10 >>x-min
15    10 >>x-max
16   -10 >>y-min
17    10 >>y-max
18    -1 >>z-min
19     1 >>z-max ;
21 : <cartesian> ( -- cartesian ) cartesian new init-cartesian ;
23 ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
25 M: cartesian establish-coordinate-system ( cartesian -- cartesian )
26    dup
27    {
28      [ x-min>> ] [ x-max>> ]
29      [ y-min>> ] [ y-max>> ]
30      [ z-min>> ] [ z-max>> ]
31    }
32    cleave
33    glOrtho ;
35 ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
37 : x-range ( cartesian range -- cartesian ) first2 [ >>x-min ] [ >>x-max ] bi* ;
38 : y-range ( cartesian range -- cartesian ) first2 [ >>y-min ] [ >>y-max ] bi* ;
39 : z-range ( cartesian range -- cartesian ) first2 [ >>z-min ] [ >>z-max ] bi* ;
41 ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!