factor/basis/ui/gadgets/grid-lines/grid-lines.factor

31 lines
934 B
Factor
Raw Normal View History

2009-01-15 16:48:44 -05:00
! Copyright (C) 2006, 2009 Slava Pestov.
2007-09-20 18:09:08 -04:00
! See http://factorcode.org/license.txt for BSD license.
USING: kernel accessors math namespaces opengl opengl.gl
2009-02-12 04:58:42 -05:00
sequences math.vectors ui.pens ui.gadgets ui.gadgets.grids
ui.gadgets.grids.private ui.render math.rectangles
fry locals arrays assocs ;
2007-09-20 18:09:08 -04:00
IN: ui.gadgets.grid-lines
TUPLE: grid-lines color ;
C: <grid-lines> grid-lines
<PRIVATE
2007-09-20 18:09:08 -04:00
:: (compute-grid-lines) ( grid n ns orientation -- seq )
grid gap>> :> gap
ns n suffix gap orientation v. '[ _ - orientation n*v ] map
dup grid dim>> gap v- orientation reverse v* '[ _ v+ ] map
[ [ gap [ 2/ ] map v+ ] map ] bi@ zip ;
2007-09-20 18:09:08 -04:00
: compute-grid-lines ( grid -- lines )
dup <grid-layout>
[ accumulate-cell-xs horizontal (compute-grid-lines) ]
[ accumulate-cell-ys vertical (compute-grid-lines) ]
2bi append ;
PRIVATE>
2007-09-20 18:09:08 -04:00
M: grid-lines draw-boundary
color>> gl-color compute-grid-lines [ first2 gl-line ] each ;