1 ! Copyright (C) 2008 Jeff Bigot
\r
2 ! See http://factorcode.org/license.txt for BSD license.
\r
23 ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
\r
24 ! drawing functions
\r
25 ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
\r
27 TUPLE: window3D < gadget observer ;
\r
29 : <window3D> ( model observer -- gadget )
\r
32 projection-mode>> add-connection
\r
34 collision-mode>> add-connection
\r
36 swap <model> >>model
\r
40 M: window3D pref-dim* ( gadget -- dim ) drop { 300 300 } ;
\r
42 M: window3D draw-gadget* ( gadget -- )
\r
44 GL_PROJECTION glMatrixMode
\r
46 0.6 0.6 0.6 .9 glClearColor
\r
47 dup observer>> projection-mode>> value>> 1 =
\r
48 [ 60.0 1.0 0.1 3000.0 gluPerspective ]
\r
49 [ -400.0 400.0 -400.0 400.0 0.0 4000.0 glOrtho ] if
\r
50 dup observer>> collision-mode>> value>>
\r
51 \ remove-hidden-solids?
\r
53 dup observer>> do-look-at
\r
54 GL_MODELVIEW glMatrixMode
\r
56 0.9 0.9 0.9 1.0 glClearColor
\r
58 GL_LINE_SMOOTH glEnable
\r
60 GL_DEPTH_TEST glEnable
\r
61 GL_LEQUAL glDepthFunc
\r
62 GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA glBlendFunc
\r
63 GL_LINE_SMOOTH_HINT GL_NICEST glHint
\r
65 GL_COLOR_BUFFER_BIT GL_DEPTH_BUFFER_BIT bitor
\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