math.vectors: new word v>integer = [ >integer ] map
							parent
							
								
									45ef36e42c
								
							
						
					
					
						commit
						001acde590
					
				| 
						 | 
					@ -199,7 +199,7 @@ GENERIC: v= ( u v -- w )
 | 
				
			||||||
M: object v= [ = ] 2map ; inline
 | 
					M: object v= [ = ] 2map ; inline
 | 
				
			||||||
 | 
					
 | 
				
			||||||
GENERIC: v? ( mask true false -- result )
 | 
					GENERIC: v? ( mask true false -- result )
 | 
				
			||||||
M: object v? 
 | 
					M: object v?
 | 
				
			||||||
    [ vand ] [ vandn ] bi-curry* bi vor ; inline
 | 
					    [ vand ] [ vandn ] bi-curry* bi vor ; inline
 | 
				
			||||||
 | 
					
 | 
				
			||||||
: vif ( mask true-quot: ( -- vector ) false-quot: ( -- vector ) -- result )
 | 
					: vif ( mask true-quot: ( -- vector ) false-quot: ( -- vector ) -- result )
 | 
				
			||||||
| 
						 | 
					@ -209,6 +209,7 @@ M: object v?
 | 
				
			||||||
        [ [ call ] dip call v? ]
 | 
					        [ [ call ] dip call v? ]
 | 
				
			||||||
    } cond ; inline
 | 
					    } cond ; inline
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					: v>integer ( u -- v ) [ >integer ] map ;
 | 
				
			||||||
: vfloor ( u -- v ) [ floor ] map ;
 | 
					: vfloor ( u -- v ) [ floor ] map ;
 | 
				
			||||||
: vceiling ( u -- v ) [ ceiling ] map ;
 | 
					: vceiling ( u -- v ) [ ceiling ] map ;
 | 
				
			||||||
: vtruncate ( u -- v ) [ truncate ] map ;
 | 
					: vtruncate ( u -- v ) [ truncate ] map ;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -29,7 +29,7 @@ C: <separator-pen> separator-pen
 | 
				
			||||||
M: separator-pen draw-interior
 | 
					M: separator-pen draw-interior
 | 
				
			||||||
    color>> gl-color
 | 
					    color>> gl-color
 | 
				
			||||||
    dim>> [ { 0 0.5 } v* ] [ { 1 0.5 } v* ] bi
 | 
					    dim>> [ { 0 0.5 } v* ] [ { 1 0.5 } v* ] bi
 | 
				
			||||||
    [ [ >integer ] map ] bi@ gl-line ;
 | 
					    [ v>integer ] bi@ gl-line ;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
: <menu-items> ( items -- gadget )
 | 
					: <menu-items> ( items -- gadget )
 | 
				
			||||||
    [ <filled-pile> ] dip add-gadgets
 | 
					    [ <filled-pile> ] dip add-gadgets
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -24,7 +24,7 @@ M: viewport focusable-child*
 | 
				
			||||||
    gadget-child ;
 | 
					    gadget-child ;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
: scroll-position ( scroller -- loc )
 | 
					: scroll-position ( scroller -- loc )
 | 
				
			||||||
    model>> range-value [ >integer ] map ;
 | 
					    model>> range-value v>integer ;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
M: viewport model-changed
 | 
					M: viewport model-changed
 | 
				
			||||||
    nip
 | 
					    nip
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -182,7 +182,7 @@ SINGLETON: pango-renderer
 | 
				
			||||||
 | 
					
 | 
				
			||||||
M: pango-renderer string-dim
 | 
					M: pango-renderer string-dim
 | 
				
			||||||
    [ " " string-dim { 0 1 } v* ]
 | 
					    [ " " string-dim { 0 1 } v* ]
 | 
				
			||||||
    [ cached-layout logical-rect>> dim>> [ >integer ] map ] if-empty ;
 | 
					    [ cached-layout logical-rect>> dim>> v>integer ] if-empty ;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
M: pango-renderer flush-layout-cache
 | 
					M: pango-renderer flush-layout-cache
 | 
				
			||||||
    cached-layouts get-global purge-cache ;
 | 
					    cached-layouts get-global purge-cache ;
 | 
				
			||||||
| 
						 | 
					@ -210,4 +210,3 @@ M: pango-renderer line-metrics ( font string -- metrics )
 | 
				
			||||||
] "ui.text.pango" add-startup-hook
 | 
					] "ui.text.pango" add-startup-hook
 | 
				
			||||||
 | 
					
 | 
				
			||||||
pango-renderer font-renderer set-global
 | 
					pango-renderer font-renderer set-global
 | 
				
			||||||
 | 
					 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,8 +1,8 @@
 | 
				
			||||||
! Copyright (C) 2006, 2009 Slava Pestov.
 | 
					! Copyright (C) 2006, 2009 Slava Pestov.
 | 
				
			||||||
! See http://factorcode.org/license.txt for BSD license.
 | 
					! See http://factorcode.org/license.txt for BSD license.
 | 
				
			||||||
USING: accessors colors formatting kernel math math.functions
 | 
					USING: accessors colors formatting kernel math math.functions
 | 
				
			||||||
models models.arrow models.product models.range sequences ui
 | 
					math.vectors models models.arrow models.product models.range sequences
 | 
				
			||||||
ui.gadgets ui.gadgets.labels ui.gadgets.packs ui.gadgets.sliders
 | 
					ui ui.gadgets ui.gadgets.labels ui.gadgets.packs ui.gadgets.sliders
 | 
				
			||||||
ui.gadgets.tracks ui.pens.solid ;
 | 
					ui.gadgets.tracks ui.pens.solid ;
 | 
				
			||||||
IN: color-picker
 | 
					IN: color-picker
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -39,7 +39,7 @@ M: color-preview model-changed
 | 
				
			||||||
            [ <color-model> <color-preview> 1 track-add ]
 | 
					            [ <color-model> <color-preview> 1 track-add ]
 | 
				
			||||||
            [
 | 
					            [
 | 
				
			||||||
                [
 | 
					                [
 | 
				
			||||||
                    [ truncate >integer ] map
 | 
					                    [ truncate ] map v>integer
 | 
				
			||||||
                    first3 3dup "%d %d %d #%02x%02x%02x" sprintf
 | 
					                    first3 3dup "%d %d %d #%02x%02x%02x" sprintf
 | 
				
			||||||
                ] <arrow> <label-control>
 | 
					                ] <arrow> <label-control>
 | 
				
			||||||
                f track-add
 | 
					                f track-add
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -38,7 +38,7 @@ CONSTANT: pov-polygons
 | 
				
			||||||
    indicator-polygon <polygon-gadget> ;
 | 
					    indicator-polygon <polygon-gadget> ;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
: (>loc) ( axisloc -- windowloc )
 | 
					: (>loc) ( axisloc -- windowloc )
 | 
				
			||||||
    0.5 v*n { 0.5 0.5 } v+ SIZE v* [ >integer ] map
 | 
					    0.5 v*n { 0.5 0.5 } v+ SIZE v* v>integer
 | 
				
			||||||
    INDICATOR-SIZE 2 v/n v- ;
 | 
					    INDICATOR-SIZE 2 v/n v- ;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
: (xy>loc) ( x y -- xyloc )
 | 
					: (xy>loc) ( x y -- xyloc )
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -130,17 +130,17 @@ terrain-world H{
 | 
				
			||||||
        [ key-5 keys nth 10000 f ? ]
 | 
					        [ key-5 keys nth 10000 f ? ]
 | 
				
			||||||
    } 0|| player reverse-time<<
 | 
					    } 0|| player reverse-time<<
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    key-w keys nth [ player walk-forward ] when 
 | 
					    key-w keys nth [ player walk-forward ] when
 | 
				
			||||||
    key-s keys nth [ player walk-backward ] when 
 | 
					    key-s keys nth [ player walk-backward ] when
 | 
				
			||||||
    key-a keys nth [ player walk-leftward ] when 
 | 
					    key-a keys nth [ player walk-leftward ] when
 | 
				
			||||||
    key-d keys nth [ player walk-rightward ] when 
 | 
					    key-d keys nth [ player walk-rightward ] when
 | 
				
			||||||
    key-q keys nth [ player -1 look-horizontally ] when 
 | 
					    key-q keys nth [ player -1 look-horizontally ] when
 | 
				
			||||||
    key-e keys nth [ player 1 look-horizontally ] when 
 | 
					    key-e keys nth [ player 1 look-horizontally ] when
 | 
				
			||||||
    key-left-arrow keys nth [ player -1 look-horizontally ] when 
 | 
					    key-left-arrow keys nth [ player -1 look-horizontally ] when
 | 
				
			||||||
    key-right-arrow keys nth [ player 1 look-horizontally ] when 
 | 
					    key-right-arrow keys nth [ player 1 look-horizontally ] when
 | 
				
			||||||
    key-down-arrow keys nth [ player 1 look-vertically ] when 
 | 
					    key-down-arrow keys nth [ player 1 look-vertically ] when
 | 
				
			||||||
    key-up-arrow keys nth [ player -1 look-vertically ] when 
 | 
					    key-up-arrow keys nth [ player -1 look-vertically ] when
 | 
				
			||||||
    key-space keys nth [ player jump ] when 
 | 
					    key-space keys nth [ player jump ] when
 | 
				
			||||||
    key-escape keys nth [ world close-window ] when
 | 
					    key-escape keys nth [ world close-window ] when
 | 
				
			||||||
    player read-mouse rotate-with-mouse
 | 
					    player read-mouse rotate-with-mouse
 | 
				
			||||||
    reset-mouse ;
 | 
					    reset-mouse ;
 | 
				
			||||||
| 
						 | 
					@ -155,7 +155,7 @@ terrain-world H{
 | 
				
			||||||
    [ { 0 0 } vmax ] dip { 2 2 } v- vmin ;
 | 
					    [ { 0 0 } vmax ] dip { 2 2 } v- vmin ;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
:: pixel-indices ( coords dim -- indices )
 | 
					:: pixel-indices ( coords dim -- indices )
 | 
				
			||||||
    coords vfloor [ >integer ] map dim clamp-coords :> floor-coords
 | 
					    coords vfloor v>integer dim clamp-coords :> floor-coords
 | 
				
			||||||
    floor-coords first2 dim first * + :> base-index
 | 
					    floor-coords first2 dim first * + :> base-index
 | 
				
			||||||
    base-index dim first + :> next-row-index
 | 
					    base-index dim first + :> next-row-index
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -170,7 +170,7 @@ terrain-world H{
 | 
				
			||||||
    pixel dup vfloor v- :> pixel-mantissa
 | 
					    pixel dup vfloor v- :> pixel-mantissa
 | 
				
			||||||
    segment bitmap>> 4 <groups> :> pixels
 | 
					    segment bitmap>> 4 <groups> :> pixels
 | 
				
			||||||
    pixel dim pixel-indices :> indices
 | 
					    pixel dim pixel-indices :> indices
 | 
				
			||||||
    
 | 
					
 | 
				
			||||||
    indices [ pixels nth COMPONENT-SCALE v. 255.0 / ] map
 | 
					    indices [ pixels nth COMPONENT-SCALE v. 255.0 / ] map
 | 
				
			||||||
    first4 pixel-mantissa bilerp ;
 | 
					    first4 pixel-mantissa bilerp ;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue