I'll just continue working with the latest example, no problem. So i tried to read that one...the results are, as expected, different from the former files. This is what i get for all 5 cameras:
----------------------------------
Camera:
x= -103.36
y= -490.54068
z= -17.66559
tx= -790.4902
ty= 93.751114
tz= -85.55919
a= 0.0
f= 51.42857
----------------------------------
----------------------------------
Camera:
x= -103.36
y= -45.35763
z= 7.392467
tx= 587.8376
ty= 533.63574
tz= 79.27386
a= 0.0
f= 51.42857
----------------------------------
----------------------------------
Camera:
x= 225.34636
y= -14.016275
z= 12.724576
tx= -537.1037
ty= -500.6622
tz= 12.724576
a= 0.0
f= 51.42857
----------------------------------
----------------------------------
Camera:
x= -2.0265538E-6
y= -45.35763
z= 153.8393
tx= -720.77325
ty= 501.12222
tz= 153.8393
a= 0.0
f= 51.42857
----------------------------------
----------------------------------
Camera:
x= -25.355688
y= 433.1663
z= 21.352112
tx= -17.98117
ty= -471.32248
tz= 21.352112
a= 0.0
f= 51.42857
----------------------------------
Now, all positions (x,y,z) are correct (when compared to DE). All targets are correct anyway, they always were...
The information tab shows (with (x,y,z) being the camera's position):
(x,y,z) = Org
(x,y,z-1) = Target
(x,y,z+1) = Up
for all cameras but the last two. There, the z-values of the up-vectors are completely off...something like z+10xx. So maybe "Information" is just bogus, who knows.
Anyway, in the two older ring files, f (which is the FOV value) always was correct, i.e. the value in DE was equal to what i got. In this file, this isn't the case. DE tells me, that the FOV is 46.6667° but i'm reading 51.42857° from the file. In addition, the angle is always 0 in this file. It was 1 in the others (which doesn't make more sense, it's just different).
Plus DE gives me a "roll"-value (i don't know where that comes from), which is always 0 in the new file. For ring1 and ring2, it was something like 330-359.999...
To summerize this, we have three different behaviours:
ring1: Position and target were correct, angle was 1, fov was correct, roll was 359.999
ring2: Positions were bogus, targets were correct, angle was 1, fov was correct, roll was 349.999 and 330.999
untitled: Positions are all fine and so are the targets, angle is 0, fov is bogus, roll is 0
For all of them the data in the Information-tab is..whatever...
Does this make any kind of sense? The parsing and reading of the 3ds file is correct btw. It uses the same methods to extract the camera data that are used for the rest of the file, so if that would be wrong, the whole loader wouldn't work. I've re-read the specs, but can't find anything else that is camera related. I've no idea what's going on here and i really start to hate the 3ds format...
Edit: No, i actually hated the 3ds-format before...