-! Copyright (C) 2008 Jeff Bigot\r
-! See http://factorcode.org/license.txt for BSD license.\r
-USING: kernel \r
-ui.gadgets\r
-ui.render\r
-opengl\r
-opengl.gl\r
-opengl.glu\r
-4DNav.camera\r
-4DNav.turtle\r
-math\r
-values\r
-alien.c-types\r
-accessors\r
-namespaces\r
-adsoda \r
-models\r
-prettyprint\r
-;\r
-\r
-IN: 4DNav.window3D\r
-\r
-! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\r
-! drawing functions \r
-! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\r
-\r
-TUPLE: window3D < gadget observer ; \r
-\r
-: <window3D> ( model observer -- gadget )\r
- window3D new\r
- swap 2dup \r
- projection-mode>> add-connection\r
- 2dup \r
- collision-mode>> add-connection\r
- >>observer \r
- swap <model> >>model \r
- t >>root?\r
-;\r
-\r
-M: window3D pref-dim* ( gadget -- dim ) drop { 300 300 } ;\r
-\r
-M: window3D draw-gadget* ( gadget -- )\r
-\r
- GL_PROJECTION glMatrixMode\r
- glLoadIdentity\r
- 0.6 0.6 0.6 .9 glClearColor\r
- dup observer>> projection-mode>> value>> 1 = \r
- [ 60.0 1.0 0.1 3000.0 gluPerspective ]\r
- [ -400.0 400.0 -400.0 400.0 0.0 4000.0 glOrtho ] if\r
- dup observer>> collision-mode>> value>> \r
- \ remove-hidden-solids? \r
- set-value\r
- dup observer>> do-look-at\r
- GL_MODELVIEW glMatrixMode\r
- glLoadIdentity \r
- 0.9 0.9 0.9 1.0 glClearColor\r
- 1.0 glClearDepth\r
- GL_LINE_SMOOTH glEnable\r
- GL_BLEND glEnable\r
- GL_DEPTH_TEST glEnable \r
- GL_LEQUAL glDepthFunc\r
- GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA glBlendFunc\r
- GL_LINE_SMOOTH_HINT GL_NICEST glHint\r
- 1.25 glLineWidth\r
- GL_COLOR_BUFFER_BIT GL_DEPTH_BUFFER_BIT bitor \r
- glClear\r
- glLoadIdentity\r
- GL_LIGHTING glEnable\r
- GL_LIGHT0 glEnable\r
- GL_COLOR_MATERIAL glEnable\r
- GL_FRONT GL_AMBIENT_AND_DIFFUSE glColorMaterial\r
- ! *************************\r
- \r
- control-value\r
- [ space->GL ] when*\r
-\r
- ! *************************\r
-;\r
-\r
-M: window3D graft* drop ;\r
-\r
-M: window3D model-changed nip relayout ; \r
+! Copyright (C) 2008 Jeff Bigot
+! See http://factorcode.org/license.txt for BSD license.
+USING: kernel
+ui.gadgets
+ui.render
+opengl
+opengl.gl
+opengl.glu
+4DNav.camera
+4DNav.turtle
+math
+values
+alien.c-types
+accessors
+namespaces
+adsoda
+models
+prettyprint
+;
+
+IN: 4DNav.window3D
+
+! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+! drawing functions
+! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+TUPLE: window3D < gadget observer ;
+
+: <window3D> ( model observer -- gadget )
+ window3D new
+ swap 2dup
+ projection-mode>> add-connection
+ 2dup
+ collision-mode>> add-connection
+ >>observer
+ swap <model> >>model
+ t >>root?
+;
+
+M: window3D pref-dim* ( gadget -- dim ) drop { 300 300 } ;
+
+M: window3D draw-gadget* ( gadget -- )
+
+ GL_PROJECTION glMatrixMode
+ glLoadIdentity
+ 0.6 0.6 0.6 .9 glClearColor
+ dup observer>> projection-mode>> value>> 1 =
+ [ 60.0 1.0 0.1 3000.0 gluPerspective ]
+ [ -400.0 400.0 -400.0 400.0 0.0 4000.0 glOrtho ] if
+ dup observer>> collision-mode>> value>>
+ \ remove-hidden-solids?
+ set-value
+ dup observer>> do-look-at
+ GL_MODELVIEW glMatrixMode
+ glLoadIdentity
+ 0.9 0.9 0.9 1.0 glClearColor
+ 1.0 glClearDepth
+ GL_LINE_SMOOTH glEnable
+ GL_BLEND glEnable
+ GL_DEPTH_TEST glEnable
+ GL_LEQUAL glDepthFunc
+ GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA glBlendFunc
+ GL_LINE_SMOOTH_HINT GL_NICEST glHint
+ 1.25 glLineWidth
+ GL_COLOR_BUFFER_BIT GL_DEPTH_BUFFER_BIT bitor
+ glClear
+ glLoadIdentity
+ GL_LIGHTING glEnable
+ GL_LIGHT0 glEnable
+ GL_COLOR_MATERIAL glEnable
+ GL_FRONT GL_AMBIENT_AND_DIFFUSE glColorMaterial
+ ! *************************
+
+ control-value
+ [ space->GL ] when*
+
+ ! *************************
+;
+
+M: window3D graft* drop ;
+
+M: window3D model-changed nip relayout ;