I think, it's time to open a separate topic for the viewer.
Binaries for the viewer with three sample files may be found there: http://astr73.narod.ru/4DView/View4Dv4.zip
Source files: http://astr73.narod.ru/4DView/View4Dsrc.zip
Viewer is written in C# using OpenToolkit Library: http://www.opentk.com
Instructions are easy:
Run viewer, select File/Load item and load one of samles .txt files. Navigation is by mouse with Ctrl and Shift keys:
Let X be "left/right", Y - "up/down", Z - "ana/kata" and W - "forward/backward" directions.
Then:
Left Button: rotation of object in X/W and Y/W directions (3D rotatiion)
Shift+Left Button: rotation in X/Z and Y/Z directions (rotation of section space preserving direction of view)
Ctrl+Left Button Up/Down: Zoom In/Zoom Out
Ctrl+Left Button Left/Rigth: rotation of object in Z/W direction (rotation of section space along the sceen plane)
Right Button: rotation of camera in X/W and Y/W direction (rotate head in 3D)
Shift+Right Button: same as Shift+Left Button
Ctrl+Right Button Up/Down: Slide Forward/BackWard (don't use it! You'll be lost in no time. And directions are swapped now )
Ctrl+Right Button Left/Right: rotation of head in Z/W direction. It is the most easy way to see a sequence of parallel 3D sections of the object.
You may turn on and off 3D Seciton or 3D Projection of the scene. Also you may switch between wireframe and translucent mesh representations of the projection. Slide bar controls the level of projection transparency.
Now scenes are coded in text files. First goes number of vertices, then 4D coordinates of vertices (better to keep one vertex per line). Coordinates are integer! Consider them as microns
Next line contatins number of tetrahedral cells, and each of next lines contains 5 numbers: indexes of vertices of the tetrahedron (0-based) and hexadecimal color of cell (in format AARRGGBB). Now Alpha value is being ignored, but I'll activate it in next versions.
Cells are sensitive to the orientation, so be careful with them. If for some facet of the cell there is no pair in some other cell, it is considered as an "edge" of the surface and will always appear in the projection view.