0.5.2 Alpha (3/10/07) Gave Vector and Quaternion hashCode() methods 0.5.1 Alpha (3/3/07) Fixed the toString() method of Matrix4; it was producing a string based on the transposed version of the matrix; more of the column order bug 0.5.0 Alpha (2/10/07) Changed a couple of private constructors in Matrix3 and Matrix4 to package private Added a new method to MathUtil: calcInertiaTensor(Vector[],float[]); this is used for calculating an inertia tensor from a set of point masses and their positions in object space; thank you Wikipedia! Fixed the build file to not use the timer lib; not sure why it was doing this; I probably missed it when I copied and pasted the file from another of the build files Added a new method to MathUtil: calcCenterOfMass(Vector[],float[]); this is used for calculating the center of mass for a set of point masses Added Matrix4.rotationMatrix(float,float,float), so you don't have to use a Vector unless you want to Fixed some huge bugs in Matrix4; more of the column order bug Added Matrix4.translationMatrix(float,float,float) Tested a lot of Matrix4; it works pretty good now for graphics transforms Added Matrix4.transform(Vector[]); allows you to easily transform an entire array of Vectors Added Matrix4.transform(Quaternion[]); allows you to easily transform an entire array of Quaternions 0.4.1 Alpha (1/29/07) Added fillFloatArray(float[]) methods to Vector and Quaternion 0.4.0 Alpha (1/6/07) Added add(Matrix) and subtract(Matrix) to Matrix Fixed some bugs you could drive a mac truck through in Matrix; I was building all my Matrix objects in row order; the class uses column order Clarified some comments New class Matrix3; I'm planning to use this for inertia tensors 0.3.0 Alpha (4/4/06) The MathUtil class's constructor is now private; it's meant to only have static methods exposed Made some changes to Vector; the dotProduct method is now called dot; there's a new method called cross for the cross product; there's a negate method New class called Quaternion; it's a specialized kind of 4 element vector used in rotation calculations; I need it for some of my future work with the physics library MathUtil's internals have been torn apart and rebuilt; it's far easier to maintain now MathUtil has some new methods: zero() one(), oneHalf(), negOne(), two(), e(), and pi() that return constants for the values named; these are set when any of the setType() methods are called; these will help you avoid wasting processor time and memory constructing these values on the fly, since they're so commonly used; you may still wish to cache these values in your own classes, however, since they involve the overhead of using a java.lang.InheritableThreadLocal; you probably won't notice the extra time required, but for those that want every bit of speed with the smallest memory footprint they can get... MathUtil's source Strings for e and pi are accurate to 100 digits; this will be handy for the future when I get ABigDecimal working properly; I can expand this in the future if I get any requests; I hope to someday implement methods to calculate PI and e to whatever precision is required ANumber now extends Comparable ANumber has been renamed Real; this is a far better description of it's function New class called Matrix3D; this can be used for graphics transformations, like the ones OpenGL is capable of; it can also be used for converting from world to object coordinates and vice versa, which is exactly what I need it for when I get around to implementing the advanced collision handler in the physics system; it will allow me to determine the actual location of a vertex in world coordinates from object coordinates I did some benchmarking and discovered that my object-oriented approach to math was consuming about 150 times the processing power of regular floats; OUCH! I'm going to leave the math package intact and continue to work on it; once I add BigDecimal support, it will make an excellent utility library for other (less-demanding) purposes; Java math geeks may find it handy for something and I know I will for certain other projects in the future; when in doubt, hang on to the code! New package net.jinx.fastmath; this one is just float based versions of Vector, Quaternion and Matrix3D; there's also a MathUtil class with float based implementations of several java.lang.Math methods; some call to Math and others do their own thing; I may fix the trig functions to use a faster algorithm I found on the internet in a game programming FAQ; it was something about restricting the input on the Sun functions to within the range -45 to 45 degrees on x86 processors The net.jinx.math package is now called net.jinx.slowmath and net.jinx.fastmath is now net.jinx.math; they've just switched names Matrix can now transform an entire vertex array, like the ones used by the Modeler; this is ALOT faster than using VertexUtil if you do more than one transformation on the same vertex array; keep in mind Matrix is still untested; errors are bound to occur 0.2.0 Alpha (11/2/05) Fixed a bug in the MathUtil class; it could have ended up with a null type accidentally; now it will always default to double Added comments to the ANumber interface Added comments to the Vector class Fixed a big bug in the magnitude() method of Vector Added a Constructor to Vector that parses from a String 0.1.0 Alpha (10/31/05) Initial release