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