angleradians = angledegrees * (math.pi / 180.0)
  #base.camera.setPos(20*math.sin(angleradians),-20.0*math.cos(angleradians),3)
  n.setHpr(angledegrees, 0, 0)
  return Task.cont

taskMgr.add(SpinCameraTask, "SpinCameraTask")

'''

n.setShaderInput("cam", base.camera.getX(), base.camera.getY(),
                 base.camera.getZ())
n.setShader(loader.loadShader("Test.sha"))

noiseD = 2

s = ShaderSimplexNoise(0, noiseD)
n.setTexture(s.makeVecTex())
'''

# Make some randomish 4D rotation matrix
# http://steve.hollasch.net/thesis/chapter2.html
m=[Mat4(Mat4.identMat()) for i in range(6)]

seed=0
from math import sin,cos,pi
import random
r=random.Random()
r.seed(seed)
# x1,y1,x2,y2
p=((0,0,1,1),(1,1,2,2),(2,2,0,0),(0,0,3,3),(3,3,1,1),(3,3,2,2))
  angleradians = angledegrees * (math.pi / 180.0)
  #base.camera.setPos(20*math.sin(angleradians),-20.0*math.cos(angleradians),3)
  n.setHpr(angledegrees, 0, 0)
  return Task.cont

taskMgr.add(SpinCameraTask, "SpinCameraTask")

'''


n.setShaderInput("cam", base.camera.getX(),base.camera.getY(),base.camera.getZ())
n.setShader(loader.loadShader("Test.sha"))

noiseD=2

s=ShaderSimplexNoise(0,noiseD)
n.setTexture(s.makeVecTex())


'''

# Make some randomish 4D rotation matrix
# http://steve.hollasch.net/thesis/chapter2.html
m=[Mat4(Mat4.identMat()) for i in range(6)]

seed=0
from math import sin,cos,pi
import random
r=random.Random()
r.seed(seed)
# x1,y1,x2,y2
def SpinCameraTask(task):
  angledegrees = task.time * 60.0
  angleradians = angledegrees * (math.pi / 180.0)
  base.camera.setPos(5*math.sin(angleradians),-5.0*math.cos(angleradians),0)
  base.camera.lookAt(n)
  #n.setHpr(angledegrees, 0, 0)
  n.setShaderInput("cam", base.camera.getX(),base.camera.getY(),base.camera.getZ())
  return Task.cont

taskMgr.add(SpinCameraTask, "SpinCameraTask")

n.setShader(loader.loadShader("gasPlanet.sha"))

noiseD=3

s=ShaderSimplexNoise(0,noiseD)
n.setTexture(TextureStage("n"),s.makeVecTex())

g=loader.loadTexture("grad.png")
g.setWrapU(Texture.WMClamp)
g.setWrapV(Texture.WMClamp)

n.setTexture(TextureStage("g"),g)


from time import time
from direct.task.Task import Task
t=time()
def setTime(task=None):
    n.setShaderInput('time',50*(time()-t),0,0,0)
    return Task.cont