1 ! Copyright (C) 2008 Jeff Bigot
\r
2 ! See http://factorcode.org/license.txt for BSD license.
\r
24 ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
\r
25 ! drawing functions
\r
26 ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
\r
28 TUPLE: window3D < gadget observer ;
\r
30 : <window3D> ( model observer -- gadget )
\r
31 window3D new-gadget
\r
33 projection-mode>> add-connection
\r
35 collision-mode>> add-connection
\r
37 swap <model> >>model
\r
41 M: window3D pref-dim* ( gadget -- dim ) drop { 300 300 } ;
\r
43 M: window3D draw-gadget* ( gadget -- )
\r
45 GL_PROJECTION glMatrixMode
\r
47 0.6 0.6 0.6 .9 glClearColor
\r
48 dup observer>> projection-mode>> value>> 1 =
\r
49 [ 60.0 1.0 0.1 3000.0 gluPerspective ]
\r
50 [ -400.0 400.0 -400.0 400.0 0.0 4000.0 glOrtho ] if
\r
51 dup observer>> collision-mode>> value>>
\r
52 \ remove-hidden-solids?
\r
54 dup observer>> do-look-at
\r
55 GL_MODELVIEW glMatrixMode
\r
57 0.9 0.9 0.9 1.0 glClearColor
\r
59 GL_LINE_SMOOTH glEnable
\r
61 GL_DEPTH_TEST glEnable
\r
62 GL_LEQUAL glDepthFunc
\r
63 GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA glBlendFunc
\r
64 GL_LINE_SMOOTH_HINT GL_NICEST glHint
\r
66 GL_COLOR_BUFFER_BIT GL_DEPTH_BUFFER_BIT bitor glClear
\r
68 GL_LIGHTING glEnable
\r
70 GL_COLOR_MATERIAL glEnable
\r
71 GL_FRONT GL_AMBIENT_AND_DIFFUSE glColorMaterial
\r
72 ! *************************
\r
77 ! *************************
\r
80 M: window3D graft* drop ;
\r
82 M: window3D model-changed nip relayout ;
\r