/unmaintained/cartesian/cartesian.factor

http://github.com/abeaumont/factor · Factor · 42 lines · 26 code · 12 blank · 4 comment · 0 complexity · 4f66f14099a51ae8849a93211f19a94c MD5 · raw file

  1. USING: kernel combinators sequences opengl.gl
  2. ui.render ui.gadgets ui.gadgets.slate
  3. accessors ;
  4. IN: ui.gadgets.cartesian
  5. ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
  6. TUPLE: cartesian < slate x-min x-max y-min y-max z-min z-max perspective ;
  7. : init-cartesian ( cartesian -- cartesian )
  8. init-slate
  9. -10 >>x-min
  10. 10 >>x-max
  11. -10 >>y-min
  12. 10 >>y-max
  13. -1 >>z-min
  14. 1 >>z-max ;
  15. : <cartesian> ( -- cartesian ) cartesian new init-cartesian ;
  16. ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
  17. M: cartesian establish-coordinate-system ( cartesian -- cartesian )
  18. dup
  19. {
  20. [ x-min>> ] [ x-max>> ]
  21. [ y-min>> ] [ y-max>> ]
  22. [ z-min>> ] [ z-max>> ]
  23. }
  24. cleave
  25. glOrtho ;
  26. ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
  27. : x-range ( cartesian range -- cartesian ) first2 [ >>x-min ] [ >>x-max ] bi* ;
  28. : y-range ( cartesian range -- cartesian ) first2 [ >>y-min ] [ >>y-max ] bi* ;
  29. : z-range ( cartesian range -- cartesian ) first2 [ >>z-min ] [ >>z-max ] bi* ;
  30. ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!