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]
