Paste: test
Author: | slava |
Mode: | factor |
Date: | Tue, 18 Nov 2008 21:33:26 |
Plain Text |
USING: kernel accessors math namespaces opengl opengl.gl sequences
math.vectors ui.gadgets ui.gadgets.grids ui.render math.geometry.rect ;
IN: ui.gadgets.grid-lines
TUPLE: grid-lines color ;
C: <grid-lines> grid-lines
SYMBOL: grid-dim
: half-gap grid get gap>> [ 2/ ] map ; inline
: grid-line-from/to ( orientation point -- from to )
half-gap v-
[ half-gap spin set-axis ] 2keep
grid-dim get spin set-axis ;
: draw-grid-lines ( gaps orientation -- )
[ swap grid-line-from/to gl-line ] curry each ;
M: grid-lines draw-boundary
color>> gl-color [
dup grid set
dup rect-dim half-gap v- grid-dim set
compute-grid
[
grid get swap grid-positions grid get rect-dim suffix
[ { 1 0 } v- ] map
{ 1 0 } draw-grid-lines
]
[
grid get swap grid-positions grid get rect-dim suffix
[ { 0 1 } v- ] map
{ 0 1 } draw-grid-lines
] bi*
] with-scope ;
New Annotation