private void parseSimpleFace(String[] tokens, MeshData md, ScanData sd) 
	{
		short[] indices = new short[tokens.length-1];
		for(int i = 1; i < tokens.length; i++)
			indices[i-1] = (short) (Short.parseShort(tokens[i])-1);
		
		if(computeNormals)
		{
			// First we compute the normal
			float[] normal = {0,0,0};
			float[] v1 = {0,0,0};
			float[] v2 = {0,0,0};
			// Compute v1 from vertex1 to vertex2
			float[] vec1 = sd.vertexList.get(indices[0]);
			float[] vec2 = sd.vertexList.get(indices[1]);
			float[] vec3 = sd.vertexList.get(indices[2]);

			MyMath.subtract(vec2, vec1, v1);
			MyMath.subtract(vec3, vec2, v2);
			
			MyMath.crossProduct(v1, v2, normal);
			MyMath.normalize(normal);

			short normalIndex = -1;
			
			// Search for an existing normal in the list
			for(float[] n: sd.normalList)
				if(n[0] == normal[0] && n[1] == normal[1] && n[2] == normal[2])
				{
					normalIndex = (short) sd.normalList.indexOf(n);
				}
			if(normalIndex < 0)
			{
				normalIndex = (short) sd.normalList.size();
				sd.normalList.add(normal);
			}
			
			for(int i = 2; i < indices.length; i++)
			{
				md.addIndex(indices[0], normalIndex, sd);
				md.addIndex(indices[i-1], normalIndex, sd);
				md.addIndex(indices[i], normalIndex, sd);
			}
			
		}
		else
			for(int i = 2; i < indices.length; i++)
			{
				md.addIndex(indices[0], sd);
				md.addIndex(indices[i-1], sd);
				md.addIndex(indices[i], sd);
			}
		
	}