diff --git a/Classes/Retronator/Xni/Framework/Matrix.h b/Classes/Retronator/Xni/Framework/Matrix.h index 6fb9799..5ed2b19 100644 --- a/Classes/Retronator/Xni/Framework/Matrix.h +++ b/Classes/Retronator/Xni/Framework/Matrix.h @@ -20,6 +20,7 @@ + (Matrix*) matrixWithStruct: (MatrixStruct*)matrixData; + (Matrix*) matrixWithMatrix: (Matrix*)matrix; ++ (Matrix*) createTranslationX:(float)xPosition y:(float)yPosition z:(float)zPosition; + (Matrix*) createTranslation:(Vector3*)position; + (Matrix*) createScaleUniform:(float)scale; + (Matrix*) createScale:(Vector3*)scales; diff --git a/Classes/Retronator/Xni/Framework/Matrix.m b/Classes/Retronator/Xni/Framework/Matrix.m index 9ae07a2..b4748c6 100644 --- a/Classes/Retronator/Xni/Framework/Matrix.m +++ b/Classes/Retronator/Xni/Framework/Matrix.m @@ -31,6 +31,14 @@ return [[[Matrix alloc] initWithMatrix:matrix] autorelease]; } ++ (Matrix*) createTranslationX:(float)xPosition y:(float)yPosition z:(float)zPosition { + Matrix *matrix = [Matrix identity]; + matrix.data->m41 = xPosition; + matrix.data->m42 = yPosition; + matrix.data->m43 = zPosition; + return matrix; +} + + (Matrix*) createTranslation:(Vector3*)position { Matrix *matrix = [Matrix identity]; matrix.translation = position;