How would I go to add parallel projection to voxlap?
Oh my. You are taking an engine that wasn't designed for modelling, and now you are asking to remove one of its best features. I respect all the work you did by integrating Voxlap into your modelling program, but I'm afraid you started with the wrong engine. Modifying Voxlap to support parallel projection would be very difficult.
I think I have to do this multiple times for parallel projection.
You would have to do a lot more than that. Perspective is burned into my raycasting core, and that's written in assembler code. Good luck with that.
You would be much better off with a splat-based renderer for your modeller. Have you tried
SLAB6? It's my own voxel modelling program. It might not have the interface that you desire, but it would be a much more sensible base of code to start with. SLAB6 supports orthographic perspective.
There seem to be 4 cases that are ahndled seperatly.
The 4 blocks of code at the end of opticast() handle raycasting in the 4 directions along the screen. I divide these quadrants in a way that maximizes detail per rendering cost.
Do you know the meaning of the various variables used in opticast?
Sure, I wrote it.
Also the format of the rle colums would be interesting.
I provide a description inside a comment at the top of VOXLAP5.C. Search for "vbuf format". You will also need "sptr", which tells you where column (x,y) is located in memory.
For orthographic projection, there exists an exotic rendering technique called fourier volume rendering. It probably won't be useful to your project, but I thought I'd mention it just for fun:
http://www.eecg.toronto.edu/~fender/fvr/index.html