void AnimatedTexture::CalcTextureCoordinatesAtPercentComplete(float percentComplete, Vector2& minCoordinatesOut, Vector2& maxCoordinatesOut ){ unsigned int animatedTextureIDAtPercentComplete = (int) floor( m_TotalNumberOfSprites * percentComplete ); int coordinateRowofTextureID = 0; int coordinateColumnofTextureID = 0; while(animatedTextureIDAtPercentComplete > m_cellsPerRow-1){ animatedTextureIDAtPercentComplete-= m_cellsPerRow; coordinateColumnofTextureID++; } coordinateRowofTextureID = animatedTextureIDAtPercentComplete; minCoordinatesOut = Vector2((float)coordinateRowofTextureID, (float)coordinateColumnofTextureID ); minCoordinatesOut.ScaleNonUniform(cellSize ); minCoordinatesOut.InverseScaleNonUniform(m_size ); //minCoordinatesOut.Normalize(); maxCoordinatesOut = Vector2(coordinateRowofTextureID + 1.0f , coordinateColumnofTextureID + 1.0f ); maxCoordinatesOut.ScaleNonUniform(cellSize ); maxCoordinatesOut.InverseScaleNonUniform(m_size ); //maxCoordinatesOut.Normalize(); }