Paste: test

Author: slava
Mode: factor
Date: Tue, 18 Nov 2008 21:33:26
Plain Text |
! Copyright (C) 2006, 2007 Slava Pestov.
! See http://factorcode.org/license.txt for BSD license.
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

Summary:
Author:
Mode:
Body: