public void Transform(ThreeDMatrix m) { float[] result = m.VectorMultiply(new float[] { X, Y, Z, 1 }); X = result[0]; Y = result[1]; Z = result[2]; }
public void RotateAtX(ThreeDPoint origin, float angle) { RotationMatrix.SetToXAxisRotation(angle); float[] result = RotationMatrix.VectorMultiply(new float[] { X - origin.X, Y - origin.Y, Z - origin.Z, 1 }); X = result[0] + origin.X; Y = result[1] + origin.Y; Z = result[2] + origin.Z; }