43 lines
1.1 KiB
Factor
43 lines
1.1 KiB
Factor
|
|
USING: kernel combinators sequences opengl.gl
|
|
ui.render ui.gadgets ui.gadgets.slate
|
|
accessors ;
|
|
|
|
IN: ui.gadgets.cartesian
|
|
|
|
! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
|
|
|
TUPLE: cartesian < slate x-min x-max y-min y-max z-min z-max perspective ;
|
|
|
|
: init-cartesian ( cartesian -- cartesian )
|
|
init-slate
|
|
-10 >>x-min
|
|
10 >>x-max
|
|
-10 >>y-min
|
|
10 >>y-max
|
|
-1 >>z-min
|
|
1 >>z-max ;
|
|
|
|
: <cartesian> ( -- cartesian ) cartesian new init-cartesian ;
|
|
|
|
! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
|
|
|
M: cartesian establish-coordinate-system ( cartesian -- cartesian )
|
|
dup
|
|
{
|
|
[ x-min>> ] [ x-max>> ]
|
|
[ y-min>> ] [ y-max>> ]
|
|
[ z-min>> ] [ z-max>> ]
|
|
}
|
|
cleave
|
|
glOrtho ;
|
|
|
|
! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
|
|
|
: x-range ( cartesian range -- cartesian ) first2 [ >>x-min ] [ >>x-max ] bi* ;
|
|
: y-range ( cartesian range -- cartesian ) first2 [ >>y-min ] [ >>y-max ] bi* ;
|
|
: z-range ( cartesian range -- cartesian ) first2 [ >>z-min ] [ >>z-max ] bi* ;
|
|
|
|
! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
|
|