]> gitweb.factorcode.org Git - factor.git/blob - basis/ui/gadgets/grid-lines/grid-lines.factor
f4266adba18d753dcb22a67622424bfd5bbb2276
[factor.git] / basis / ui / gadgets / grid-lines / grid-lines.factor
1 ! Copyright (C) 2006, 2007 Slava Pestov.
2 ! See http://factorcode.org/license.txt for BSD license.
3 USING: kernel accessors math namespaces opengl opengl.gl sequences
4 math.vectors ui.gadgets ui.gadgets.grids ui.render math.geometry.rect ;
5 IN: ui.gadgets.grid-lines
6
7 TUPLE: grid-lines color ;
8
9 C: <grid-lines> grid-lines
10
11 SYMBOL: grid-dim
12
13 : half-gap grid get gap>> [ 2/ ] map ; inline
14
15 : grid-line-from/to ( orientation point -- from to )
16     half-gap v-
17     [ half-gap spin set-axis ] 2keep
18     grid-dim get spin set-axis ;
19
20 : draw-grid-lines ( gaps orientation -- )
21     grid get rot grid-positions grid get rect-dim suffix [
22         grid-line-from/to gl-line
23     ] with each ;
24
25 M: grid-lines draw-boundary
26     origin get [
27         -0.5 -0.5 0.0 glTranslated
28         color>> set-color [
29             dup grid set
30             dup rect-dim half-gap v- grid-dim set
31             compute-grid
32             { 0 1 } draw-grid-lines
33             { 1 0 } draw-grid-lines
34         ] with-scope
35     ] with-translation ;