edit - I now have a specific question below. Please see post #9. Thanks
----------------------------
Hi all,
I'm a mathematician who is by now fairly used to using fortran (I wrote a ~25,000 line F90 program for my PhD). Anyway, I'm doing a 3 year post-doc project in a similar area, and we found out today that the computer scientist that we thought would be on our team is no longer going to be here (funding for the position was removed). So, it falls to me to cover his workload as well.
Anyway... I will (eventually) need to write a GUI to take a series of 3D scattered data points (of size ranging from tens of thousands to the low millions of points), and then form a tetrahedral mesh. This tetrahedral mesh will need to be visualised and have user-selectable components (such as the various boundaries etc). I'll also need to have a standard 2D window-like interface to allow creation of a parameter file, which will be passed to the main numerical simulation code. The numerical simulation code itself I am very comfortable with writing, since this is my area of expertise.
The truth is, I really don't know where to start with the rest of it. I've only really used F90 in a fairly procedural way (though I do take advantage of the pseudo-OO features it offers). I was hoping that someone might be able to point me in the right direction? I have visual studio 2008 and the intel C++ compiler - I'm assuming this would be okay to get going with?
I was thinking to start with the 2D GUI, as this seems the most straightforward of the tasks. I will need to create a window with a series of text- and drop-down boxes, the contents of which will change depending on the options selected in other boxes. The eventual output will be a simple text file (or maybe an .xml file). Is there any literature specifically related to this kind of thing that I could start with?
Regarding the 3D triangularisation, I could probably write my own algorithm based on Delaunay triangularisation, but does anyone know of any existing code to do this efficiently? I had a bit of a google but couldn't really find very much, which surprised me given that it must be a very standard procedure. As for the 3D visualisation of the mesh... Well I know that I need to walk before I crawl, but it won't hurt to have some idea of how I will need to proceed. What are the advantages of OpenGL vs DirectX (or vice-versa)? Anything else I should be reading up on in preparation?
Finally, if anyone knows any other good resources for ex-fortran programmers migrating to C++ then I would be interested to read them.
Thanks for reading, I know it was a bit of an epic post. I also know that I'm asking a lot, but unfortunately I now need to learn and implement this stuff on top of my original workload, so I need to make a start on learning it all now. Any links, tips or other comments would be very much appreciated. This is my first post here, but I hope to stick around and also (as I begin to learn) help out others in the community. This place seems like an excellent resource and I would like to be able to contribute someday. Thanks in advance!