blbates@AERO36.LARC.NASA.GOV (Brent Bates ViGYAN AAD/TAB) (04/24/91)
I recently modified a program I originally wrote for our 3130 so it would use the v3d routine instead of move/draw. It worked fine on our 4D/320 VGX using move/draw, however, it doesn't work as well using v3d. I use the program to examine 3D surface definitions as wireframes. With move/draw I could zoom in VERY close to the line drawings with out any problems. However, now with v3d, if I get too close, lines start coming out of the edges of the screen and as I get closer the original lines disappear and reappear, but not neccessarily where they should be. Has any one seen anything like this? The only changes I made were in changing move/draw calls to bgnlin/v3d/endlin calls. OS is 3.3.2 and I am using FORTRAN. FYI on another note. A long while back I posted a note about some software I had that was written for the 3130 but core dumped on the very first call to graphics on a 4D and I couldn't figure out what was the problem. Well, I found out. The people who wrote the C source had written their own version of strcat. Their strcat took 3 arguments, the 3rd argument was for the returned value, and the function type was integer. Apparently, the 3130 didn't care, however, on the 4D the graphics library tried to use their routine instead of the one in the system. A call to winopen apparently would call strcat and core dump. What I found strange was that a call to foreground() also called strcat. I changed the name of their routine and all their calls to strcat and now everything is working fine. Just goes to show you that you should be careful about giving routines the same name as ones already in the system, there is no telling what can happen. Brent L. Bates NASA-Langley Research Center M.S. 361 Hampton, Virginia 23665-5225 Phone:(804) 864-2854 FAX:(804) 864-6792 E-mail: blbates@aero36.larc.nasa.gov or blbates@aero8.larc.nasa.gov