Quoting Peter Amstutz <[EMAIL PROTECTED]>:
>
> It seems that rotations around the Y axis using csYRotMatrix3() are
> counterclockwise, while rotations around the X and Z axes using
> csXRotMatrix3() and csZRotMatrix3() are clockwise.
Well, the CW/CCW depends in which direction you look, but yes they  
seem to be inconsistent.

> Since Crystal Space  uses a left-handed coordinate system (yes?) the  
> rotation according to the left-hand rule would be to rotate clockwise.
In fact the handness of the system doesn't matter. The maths is  
exactly the same for a right-handed system, and you would have exactly  
the same problem in a right-system.

> However, the direction it
> goes isn't so important, what is troublesome is the fact that the
> definitions of the rotation matrices are inconsistant.  This is *insane*.
I agree.

>
> - From talking to thebolt a bit on IRC, I understand this has been a known
> problem for a long time, and I suppose that fixing it might be somewhat
> disruptive.  On the other hand, the current behavior is *incredibly*
> confusing, directly contradicts the API documentation for the class, and
> has probably caused dozens of programmers at least a small bit of
> confusion...
Yes. Just ask Mr O´Shea (sorry if i misspelled your name:) aka Otis  
what he thinks about it. I think it was he who brought it to my (and  
others) attention quite some time ago.


> When things don't do what you would reasonably expect, you
> leave the relm of "let's figure out the math to do this" and enter the
> relm of "well, let's try this and see if it works" voodoo programming.
Which is not the way it is ment to be. The vector maths stuff should  
be solid and working, you should be able to rely on it. As it is such  
an integrated part of CS we don't really want to make any major  
changes at this point (before 1.0), but i think cleaning up serve  
inconsistencies and removing direct bugs must be possible.

>
> If simply fixing it in place isn't acceptable, then I propose adding a new
> interface that is consistant, and deprecating/phasing out csRotMatrix3().
> Perhaps static methods csMatrix3::XRotation(), csMatrix3::YRotation(),
> csMatrix3::ZRotation() which take the angle and return an initialized
> csMatrix3().
If we were to choose the path of a new interface (which is to prefer  
if there is any change) I would prefer that cs?RotMatrix is removed  
entierly and directly. It results in compile-time breakage of the  
apps, but assure that you don't get strange runtime changes in  
behaviour.

My 2c..

-Marten

Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________
Crystal-main mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/crystal-main
Unsubscribe: mailto:[EMAIL PROTECTED]

Reply via email to