dirtyBits = t1.dirtyBits | ROTATION_BIT | SCALE_BIT; autoNormalize = t1.autoNormalize;
mat[0] = (1.0f - 2.0f*q1.y*q1.y - 2.0f*q1.z*q1.z); mat[4] = (2.0f*(q1.x*q1.y + q1.w*q1.z)); mat[8] = (2.0f*(q1.x*q1.z - q1.w*q1.y));  mat[1] = (2.0f*(q1.x*q1.y - q1.w*q1.z)); mat[5] = (1.0f - 2.0f*q1.x*q1.x - 2.0f*q1.z*q1.z); mat[9] = (2.0f*(q1.y*q1.z + q1.w*q1.x));  mat[2] = (2.0f*(q1.x*q1.z + q1.w*q1.y)); mat[6] = (2.0f*(q1.y*q1.z - q1.w*q1.x)); mat[10] = (1.0f - 2.0f*q1.x*q1.x - 2.0f*q1.y*q1.y);  mat[3] =  0.0; mat[7] =  0.0; mat[11] = 0.0;  mat[12] = 0.0; mat[13] = 0.0; mat[14] = 0.0; mat[15] = 1.0;   dirtyBits = CLASSIFY_BIT | SCALE_BIT | ROTATION_BIT; type = RIGID | CONGRUENT | AFFINE | ORTHO;
    public final void set(Transform3D t1){	mat[0] = t1.mat[0];	mat[1] = t1.mat[1];	mat[2] = t1.mat[2];	mat[3] = t1.mat[3];	mat[4] = t1.mat[4];	mat[5] = t1.mat[5];	mat[6] = t1.mat[6];	mat[7] = t1.mat[7];	mat[8] = t1.mat[8];	mat[9] = t1.mat[9];	mat[10] = t1.mat[10];	mat[11] = t1.mat[11];	mat[12] = t1.mat[12];	mat[13] = t1.mat[13];	mat[14] = t1.mat[14];	mat[15] = t1.mat[15];	type = t1.type;	// don't copy rot[] and scales[]	dirtyBits = t1.dirtyBits | ROTATION_BIT | SCALE_BIT;        autoNormalize = t1.autoNormalize;    }