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.
|
2015-01-29 14:41:18 -05:00
|
|
|
USING: accessors assocs fry kernel locals math math.vectors
|
|
|
|
opengl sequences ui.gadgets ui.gadgets.grids.private ui.pens ;
|
2007-09-20 18:09:08 -04:00
|
|
|
IN: ui.gadgets.grid-lines
|
|
|
|
|
|
|
|
TUPLE: grid-lines color ;
|
|
|
|
|
|
|
|
C: <grid-lines> grid-lines
|
|
|
|
|
2009-02-05 04:31:18 -05:00
|
|
|
<PRIVATE
|
2007-09-20 18:09:08 -04:00
|
|
|
|
2009-02-05 04:31:18 -05:00
|
|
|
:: (compute-grid-lines) ( grid n ns orientation -- seq )
|
2009-02-05 05:52:38 -05:00
|
|
|
grid gap>> :> gap
|
|
|
|
ns n suffix gap orientation v. '[ _ - orientation n*v ] map
|
2015-07-18 17:56:57 -04:00
|
|
|
dup grid dim>> gap v- orientation reverse v* '[ _ v+ ] map
|
|
|
|
gap [ 2 /f ] map '[ [ _ v+ ] map ] bi@ zip ;
|
2007-09-20 18:09:08 -04:00
|
|
|
|
2009-02-05 04:31:18 -05: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
|
2009-02-05 04:31:18 -05:00
|
|
|
color>> gl-color compute-grid-lines [ first2 gl-line ] each ;
|