public Vector3 Transform(Vector3 position) { if (position == null) { TBWriter.Warning2("Cant Transform, Vector3 is Null"); return(null); } Matrix positionMat = new Matrix(4, 1); positionMat[0, 0] = position.X; positionMat[1, 0] = position.Y; positionMat[2, 0] = position.Z; positionMat[3, 0] = 1; Matrix resultMat = new Matrix(this.Matrix * positionMat); Vector3 resultVec = new Vector3(resultMat[0, 0], resultMat[1, 0], resultMat[2, 0]); return(resultVec); }