Revision: 38931
          http://brlcad.svn.sourceforge.net/brlcad/?rev=38931&view=rev
Author:   erikgreenwald
Date:     2010-04-30 20:56:13 +0000 (Fri, 30 Apr 2010)

Log Message:
-----------
allow zooming in and out using right click

Modified Paths:
--------------
    isst/trunk/sdl/event.c
    isst/trunk/sdl/main.c

Modified: isst/trunk/sdl/event.c
===================================================================
--- isst/trunk/sdl/event.c      2010-04-30 20:39:10 UTC (rev 38930)
+++ isst/trunk/sdl/event.c      2010-04-30 20:56:13 UTC (rev 38931)
@@ -99,6 +99,15 @@
                            break;
                        case 4:
                            /* zoom in/out yrel */
+                           {
+                               /* if you zoom past the focus point, it flips
+                                * direction. up is awlays towards the focus. */
+                               vect_t vec;
+                               VSUB2(vec, isst->camera.focus.v, 
isst->camera.pos.v);
+                               VUNITIZE(vec);
+                               VSCALE(vec, vec,  -0.01 * isst->tie->radius * 
e.motion.yrel);
+                               VADD2(isst->camera.pos.v,  isst->camera.pos.v, 
vec);
+                           }
                            break;
                    }
 

Modified: isst/trunk/sdl/main.c
===================================================================
--- isst/trunk/sdl/main.c       2010-04-30 20:39:10 UTC (rev 38930)
+++ isst/trunk/sdl/main.c       2010-04-30 20:56:13 UTC (rev 38931)
@@ -65,15 +65,15 @@
 {
     struct isst_s *isst;
     isst = (struct isst_s *)malloc(sizeof(struct isst_s));
+    isst->tie = (struct tie_s *)bu_malloc(sizeof(struct tie_s), "tie");
+    load_g(isst->tie, argv[0], argc-1, argv+1, &(isst->meshes));
     TIENET_BUFFER_INIT(isst->buffer_image);
     render_camera_init(&isst->camera, bu_avail_cpus());
     isst->camera.type = RENDER_CAMERA_PERSPECTIVE;
     isst->camera.fov = 25;
-    VSETALL(isst->camera.pos.v, 1);
-    VSETALL(isst->camera.focus.v, 0);
+    VSETALL(isst->camera.pos.v, isst->tie->radius);
+    VMOVE(isst->camera.focus.v, isst->tie->mid);
     render_phong_init(&isst->camera.render, NULL);
-    isst->tie = (struct tie_s *)bu_malloc(sizeof(struct tie_s), "tie");
-    load_g(isst->tie, argv[0], argc-1, argv+1, &(isst->meshes));
     return isst;
 }
 


This was sent by the SourceForge.net collaborative development platform, the 
world's largest Open Source development site.

------------------------------------------------------------------------------
_______________________________________________
BRL-CAD Source Commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/brlcad-commits

Reply via email to