From: Tim R. <ti...@us...> - 2004-07-31 18:00:50
|
Update of /cvsroot/csdopenglnet/csdOpenGL/samples In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv30200/samples Modified Files: gtkAdvanced.cs Log Message: mouse rotation for all axis Index: gtkAdvanced.cs =================================================================== RCS file: /cvsroot/csdopenglnet/csdOpenGL/samples/gtkAdvanced.cs,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** gtkAdvanced.cs 31 Jul 2004 16:41:11 -0000 1.7 --- gtkAdvanced.cs 31 Jul 2004 18:00:40 -0000 1.8 *************** *** 124,130 **** --- 124,134 ---- protected void updateValues() { + Debug.Indent(); + Debug.WriteLine( "Entering GtkAdvanced.updateValues()" ); + bool p = animate; animate = false; + Debug.WriteLine( "Setting speed" ); try { speedX = System.Convert.ToSingle( speedX_entry.Text ); *************** *** 143,146 **** --- 147,151 ---- } + Debug.WriteLine( "Setting angle" ); try { rotX = System.Convert.ToSingle( rotX_entry.Text ); *************** *** 160,166 **** --- 165,176 ---- animate = p; + Debug.WriteLine( "Exiting GtkAdvanced.updateValues()" ); + Debug.Unindent(); } protected void setDefaults() { + Debug.Indent(); + Debug.WriteLine( "Entering GtkAdvanced.setDefaults()" ); + animate = false; rotX = 0.0f; *************** *** 170,192 **** --- 180,227 ---- speedY = 0.2f; speedZ = 0.5f; + + Debug.WriteLine( "Exiting GtkAdvanced.setDefaults()" ); + Debug.Unindent(); } protected bool Animate () { + Debug.Indent(); + Debug.WriteLine( "Entering GtkAdvanced.Animate()" ); + rotX += speedX; rotY += speedY; rotZ += speedZ; if ( (glarea!=null) && (!stop) ) glarea.QueueDraw (); + + Debug.WriteLine( "Entering GtkAdvanced.Animate() *" ); + Debug.Unindent(); + return animate; } protected void OnMap (object obj, MapEventArgs args) { + Debug.Indent(); + Debug.WriteLine( "Enering GtkAdvanced.OnMap( object, MapEventArgs )" ); + stop = false; + + Debug.WriteLine( "Exiting GtkAdvanced.OnMap( object, MapEventArgs )" ); + Debug.Unindent(); } protected void OnUnmap (object obj, UnmapEventArgs args) { + Debug.Indent(); + Debug.WriteLine( "Enering GtkAdvanced.OnUnmap( object, UnapEventArgs )" ); + stop = true; + + Debug.WriteLine( "Exiting GtkAdvanced.OnUnmap( object, UnapEventArgs )" ); + Debug.Unindent(); } protected virtual void OnExpose (object obj, ExposeEventArgs args) { + Debug.Indent(); + Debug.WriteLine( "Entering GtkAdvanced.OnExpose( object, ExposeEventArgs )" ); + if (glarea.MakeCurrent()) { glClearColor( 0, 0, 0, 0 ); *************** *** 199,236 **** glPopMatrix(); glarea.SwapBuffers(); ! } } protected void OnMotionNotify( object obj, MotionNotifyEventArgs args) { ! ! if (args.Event.State==Gdk.ModifierType.Button1Mask) { int w = 0; int h = 0; glarea.GdkWindow.GetSize( out w, out h ); ! if ( mouseX>=0.0 ) { ! rotY += ((float)(args.Event.X-mouseX)) * 360.0f / w; ! mouseX = args.Event.X; ! } else mouseX = args.Event.X; ! ! if ( mouseY>=0.0 ) { ! rotX += ((float)(args.Event.Y-mouseY)) * 360.0f / h; ! mouseY = args.Event.Y; ! } else mouseY = args.Event.Y; } } protected void OnButtonPress( object obj, ButtonPressEventArgs args ) { mouseX = args.Event.X; mouseY = args.Event.Y; } protected void OnButtonRelease( object obj, ButtonReleaseEventArgs args ) { mouseX = -1.0; mouseY = -1.0; } protected virtual void draw() { if (glarea.MakeCurrent()) { glTranslatef( -0.5f, -0.5f, 0.0f ); --- 234,305 ---- glPopMatrix(); glarea.SwapBuffers(); ! } else Debug.WriteLine( "MakeCurrent() failed" ); ! ! Debug.WriteLine( "Exiting GtkAdvanced.OnExpose( object, ExposeEventArgs )" ); ! Debug.Unindent(); } protected void OnMotionNotify( object obj, MotionNotifyEventArgs args) { ! Debug.Indent(); ! Debug.WriteLine( "Entering GtkAdvanced.OnMotionNotify( object, MotionNotifyEventArgs )" ); ! ! if ( (args.Event.State==Gdk.ModifierType.Button1Mask) || (args.Event.State==Gdk.ModifierType.Button3Mask) ) { int w = 0; int h = 0; glarea.GdkWindow.GetSize( out w, out h ); + + if ( args.Event.State==Gdk.ModifierType.Button1Mask ) { + if ( mouseX>=0.0 ) { + Debug.WriteLine( "y-rotation" ); + rotY += ((float)(args.Event.X-mouseX)) * 360.0f / w; + } else mouseX = args.Event.X; + if ( mouseY>=0.0 ) { + Debug.WriteLine( "x-rotation" ); + rotX += ((float)(args.Event.Y-mouseY)) * 360.0f / h; + mouseY = args.Event.Y; + } else mouseY = args.Event.Y; + } ! if ( args.Event.State==Gdk.ModifierType.Button3Mask ) { ! if ( mouseX>=0.0 ) { ! Debug.WriteLine( "y-rotation" ); ! rotZ += ((float)(args.Event.X-mouseX)) * 360.0f / w; ! } else mouseX = args.Event.X; ! } + mouseX = args.Event.X; + } + + Debug.WriteLine( "Exiting GtkAdvanced.OnMotionNotify( object, MotionNotifyEventArgs )" ); + Debug.Unindent(); } protected void OnButtonPress( object obj, ButtonPressEventArgs args ) { + Debug.Indent(); + Debug.WriteLine( "Entering GtkAdvanced.OnButtonPress( object, ButtonPressEventArgs )" ); + mouseX = args.Event.X; mouseY = args.Event.Y; + + Debug.WriteLine( "Exiting GtkAdvanced.OnButtonPress( object, ButtonPressEventArgs )" ); + Debug.Unindent(); } protected void OnButtonRelease( object obj, ButtonReleaseEventArgs args ) { + Debug.Indent(); + Debug.WriteLine( "Entering GtkAdvanced.OnButtonRelease( object, ButtonReleaseEventArgs )" ); + mouseX = -1.0; mouseY = -1.0; + + Debug.WriteLine( "Exiting GtkAdvanced.OnButtonRelease( object, ButtonReleaseEventArgs )" ); + Debug.Unindent(); } protected virtual void draw() { + Debug.Indent(); + Debug.WriteLine( "Entering GtkAdvanced.draw()" ); + if (glarea.MakeCurrent()) { glTranslatef( -0.5f, -0.5f, 0.0f ); *************** *** 243,250 **** glVertex2f( 1.0f, 0.0f); glEnd(); ! } ! } protected virtual void OnConfigure (object obj, ConfigureEventArgs args) { if (glarea.MakeCurrent()) { glViewport(0, 0, glarea.Allocation.Width, glarea.Allocation.Height); --- 312,325 ---- glVertex2f( 1.0f, 0.0f); glEnd(); ! } else Debug.WriteLine( "MakeCurrent() failed!" ); ! ! Debug.WriteLine( "Exiting GtkAdvanced.draw()" ); ! Debug.Unindent(); ! } protected virtual void OnConfigure (object obj, ConfigureEventArgs args) { + Debug.Indent(); + Debug.WriteLine( "Entering GtkAdvanced.OnConfigure( object, ConfigureEventArgs )" ); + if (glarea.MakeCurrent()) { glViewport(0, 0, glarea.Allocation.Width, glarea.Allocation.Height); *************** *** 256,274 **** glMatrixMode( GL_MODELVIEW ); glLoadIdentity(); - //glTranslatef( 0.0f, 0.0f, -40.0f); glEnd(); ! } } protected void OnRealized (object obj, EventArgs args) { ! glShadeModel( GL_SMOOTH ); ! glClearColor( 0.0f, 0.0f, 0.0f, 0.5f ); ! glClearDepth( 1.0f ); ! glEnable( GL_DEPTH_TEST ); ! glDepthFunc( GL_LEQUAL ); ! glHint( GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST ); } protected void OnButton( object obj, EventArgs args ) { if (obj==reset_btn) { setDefaults(); --- 331,362 ---- glMatrixMode( GL_MODELVIEW ); glLoadIdentity(); glEnd(); ! } else Debug.WriteLine( "MakeCurrent() failed" ); ! ! Debug.WriteLine( "Exiting GtkAdvanced.OnConfigure( object, ConfigureEventArgs )" ); ! Debug.Unindent(); } protected void OnRealized (object obj, EventArgs args) { ! Debug.Indent(); ! Debug.WriteLine( "Entering GtkAdvanced.OnRealized( object, EventArgs )" ); ! ! if (glarea.MakeCurrent()) { ! glShadeModel( GL_SMOOTH ); ! glClearColor( 0.0f, 0.0f, 0.0f, 0.5f ); ! glClearDepth( 1.0f ); ! glEnable( GL_DEPTH_TEST ); ! glDepthFunc( GL_LEQUAL ); ! glHint( GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST ); ! } else Debug.WriteLine( "MakeCurrent() failed" ); ! ! Debug.WriteLine( "Exiting GtkAdvanced.OnRealized( object, EventArgs )" ); ! Debug.Unindent(); } protected void OnButton( object obj, EventArgs args ) { + Debug.Indent(); + Debug.WriteLine( "Entering GtkAdvanced.OnButton( objec, EventArgs )" ); + if (obj==reset_btn) { setDefaults(); *************** *** 278,281 **** --- 366,372 ---- updateValues(); } + + Debug.WriteLine( "Exiting GtkAdvanced.OnButton( objec, EventArgs )" ); + Debug.Unindent(); } *************** *** 291,296 **** protected float rotX { ! get { return propRotX; } set { propRotX = value; while (propRotX<0) propRotX += 360.0f; --- 382,388 ---- protected float rotX { ! get { Debug.WriteLine( "rotX->get" ); return propRotX; } set { + Debug.WriteLine( "rotX->set" ); propRotX = value; while (propRotX<0) propRotX += 360.0f; *************** *** 302,307 **** protected float rotY { ! get { return propRotY; } set { propRotY = value; while (propRotY<0) propRotY += 360.0f; --- 394,400 ---- protected float rotY { ! get { Debug.WriteLine( "rotY->get" ); return propRotY; } set { + Debug.WriteLine( "rotY->set" ); propRotY = value; while (propRotY<0) propRotY += 360.0f; *************** *** 313,318 **** protected float rotZ { ! get { return propRotZ; } set { propRotZ = value; while (propRotZ<0) propRotZ += 360.0f; --- 406,412 ---- protected float rotZ { ! get { Debug.WriteLine( "rotZ->get" ); return propRotZ; } set { + Debug.WriteLine( "rotZ->set" ); propRotZ = value; while (propRotZ<0) propRotZ += 360.0f; *************** *** 324,329 **** protected float speedX { ! get { return propSpeedX; } set { propSpeedX = value; while (propSpeedX<=-360.0f) propSpeedX += 360.0f; --- 418,424 ---- protected float speedX { ! get { Debug.WriteLine( "speedX->get" ); return propSpeedX; } set { + Debug.WriteLine( "speedX->set" ); propSpeedX = value; while (propSpeedX<=-360.0f) propSpeedX += 360.0f; *************** *** 334,339 **** protected float speedY { ! get { return propSpeedY; } set { propSpeedY = value; while (propSpeedY<=-360.0f) propSpeedY += 360.0f; --- 429,435 ---- protected float speedY { ! get { Debug.WriteLine( "speedY->get" ); return propSpeedY; } set { + Debug.WriteLine( "speedY->set" ); propSpeedY = value; while (propSpeedY<=-360.0f) propSpeedY += 360.0f; *************** *** 344,349 **** protected float speedZ { ! get { return propSpeedZ; } set { propSpeedZ = value; while (propSpeedZ<=-360.0f) propSpeedZ += 360.0f; --- 440,446 ---- protected float speedZ { ! get { Debug.WriteLine( "speedZ->get" ); return propSpeedZ; } set { + Debug.WriteLine( "speedZ->set" ); propSpeedZ = value; while (propSpeedZ<=-360.0f) propSpeedZ += 360.0f; *************** *** 354,359 **** protected bool animate { ! get { return propAnimate; } set { if ( value && !propAnimate ) GLib.Idle.Add (new IdleHandler (Animate)); propAnimate = value; --- 451,457 ---- protected bool animate { ! get { Debug.WriteLine( "animate->get" ); return propAnimate; } set { + Debug.WriteLine( "animate->set" ); if ( value && !propAnimate ) GLib.Idle.Add (new IdleHandler (Animate)); propAnimate = value; |