/*
Transform
*/
//---- Transform -------------------------------------------------------------//
public class Transform
{
//---- Data
private Matrix m;
//---- Transform() - Creates new transformation
public Transform()
{
m = Matrix.transformation();
}
//---- Transform(Transform t) - Creates new transformation
public Transform(Transform t)
{
m = new Matrix(t.m);
}
//---- identity() - Resets the transformation
public void identity()
{
m = null;
m = Matrix.transformation();
}
//---- scale(sx, sy, sz) - Scales the current transformation
public void scale(double sx, double sy, double sz)
{
m = Matrix.scaling(sx, sy, sz).multiply(m);
}
//---- translate(x, y, z) - Translates the current transformation
public void translate(double x, double y, double z)
{
m = Matrix.translate(x, y, z).multiply(m);
}
//---- rotateX
public void rotateX(double r)
{
m = Matrix.rotateX(r).multiply(m);
}
//---- rotateY
public void rotateY(double r)
{
m = Matrix.rotateY(r).multiply(m);
}
//---- rotateZ
public void rotateZ(double r)
{
m = Matrix.rotateZ(r).multiply(m);
}
//---- multiply - multiplies a vector by the transformation
public double[] multiply(double[] v)
{
return m.multiply(v);
}
public void multiply(double src[], double dest[])
{
m.multiply(src, dest);
}
//---- transform
public void transform(Transform t)
{
m = m.multiply(t.m);
}
}
|