import Blender
from Blender import NMesh
import math
from math import *
me=NMesh.GetRaw()
i=0
j=0
maxpoint=48.0*48.0
n=sqrt(maxpoint)

for i in range(0,n):
    for j in range(0,n):
        x=2*(1 - 2.718**((0.589 * i)/(6*pi))) * cos(0.589 * i) * (cos(0.5 * 0.196* j))**2
        y= 2 * (-1 + 2.718**((0.589 * i)/(6 * pi))) * cos(0.5*0.196*j) * cos(0.5*0.196*j) * sin(0.589 * i)
        z=1 - 2.718**((0.589*i)/(3*pi)) - sin(0.916*j) + 2.718**((0.589*i)/(6*pi)) * sin(0.196*j)
        v=NMesh.Vert(x,y,z)
        me.verts.append(v)

n0=int(n)
for i in range(0,n-1):  
    for j in range(0,n-1):  
        f=NMesh.Face()  
        f.v.append(me.verts[i*n0+j])  
        f.v.append(me.verts[i*n0+j+1])  
        f.v.append(me.verts[(i+1)*n0+j+1])  
        f.v.append(me.verts[(i+1)*n0+j]) 
        f.smooth=1
        me.faces.append(f) 
NMesh.PutRaw(me,"plane",1)  
Blender.Redraw()