! Copyright (C) 2016-2017 Alexander Ilin.
! See http://factorcode.org/license.txt for BSD license.
-USING: accessors arrays assocs binary-search colors.constants
-combinators combinators.short-circuit fry kernel locals make
-math math.order math.statistics math.vectors namespaces opengl
-opengl.gl sequences
-specialized-arrays.instances.alien.c-types.float
-splitting.monotonic ui.gadgets ui.gadgets.charts
-ui.gadgets.charts.utils ui.render ;
+USING: accessors arrays assocs binary-search colors
+combinators combinators.short-circuit kernel make
+math math.order math.statistics math.vectors opengl opengl.gl
+sequences specialized-arrays splitting.monotonic ui.gadgets
+ui.gadgets.charts ui.gadgets.charts.utils ui.render ;
+QUALIFIED-WITH: alien.c-types c
IN: ui.gadgets.charts.lines
+SPECIALIZED-ARRAY: c:float
+
! Data must be a sequence of { x y } coordinates sorted by
! non-descending x vaues.
TUPLE: line < gadget color data ;
: calc-point-y ( slope y point -- xy ) over [ calc-x ] dip 2array ;
: xyy>chunk ( x y1 y2 -- chunk )
- [ over ] dip 2array [ 2array ] dip 2array ;
+ overd 2array [ 2array ] dip 2array ;
:: 2-point-chunk ( left right ymin ymax -- chunk )
left last :> left-point