#!/usr/bin/python

# This is statement is required by the build system to query build info
if __name__ == '__build__':
	raise Exception


from OpenGL.GL import *
from OpenGL.GLUT import *
from OpenGL.GLE import *
from math import *
import maintest



SCALE = 0.8
TSCALE = 4

brand_points = map(lambda x: (0, 0, TSCALE*x), (0.1, 0.0, -5.0, -5.1))
brand_colors = ((1.0, 0.3, 0.0),)*4

points = ((-1.5, 2.0), (-0.75, 2.0), (-0.75, 1.38), (-0.5, 1.25), (0.88, 1.12), (1.0, 0.62), (1.12, 0.1), (0.5, -0.5), (0.2, -1.12),
          (0.3, -1.5), (-0.25, -1.45), (-1.06, -0.3), (-1.38, -0.3), (-1.65, -0.6), (-2.5, 0.5), (-1.5, 0.5), (-1.5, 2.0), (-0.75, 2.0))

tspine = map(lambda x: (TSCALE*x[0], TSCALE*x[1], 0), points)

texas_xsection = map(lambda x: (SCALE*x[0], SCALE*x[1]), points[1:])

tcolors = []

for i in range(len(texas_xsection)):
	tcolors.append((((i*33) % 255)/255.0, ((i*47) % 255)/255.0, ((i*89) % 255)/255.0))


texas_normal = []

for i in range(1, len(texas_xsection)):
	ax = texas_xsection[i][0] - texas_xsection[i-1][0]
	ay = texas_xsection[i][1] - texas_xsection[i-1][1]
	alen = sqrt (ax*ax + ay*ay)
	texas_normal.append((-ay / alen, ax / alen))

texas_normal.insert(0, texas_normal[-1])


def DrawStuff():
	global texas_xsection, texas_normal, tspine, tcolors, brand_points, brand_colors
	glClear (GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT)
	# set up some matrices so that the object spins with the mouse
	gleSetJoinStyle(TUBE_NORM_FACET | TUBE_JN_ANGLE | TUBE_CONTOUR_CLOSED | TUBE_JN_CAP)
	glPushMatrix ()
	glTranslatef (0.0, 0.0, -80.0)
	glRotatef (maintest.lastx, 0.0, 1.0, 0.0)
	glRotatef (maintest.lasty, 1.0, 0.0, 0.0)

	gleExtrusion(texas_xsection, texas_normal, None, tspine, tcolors)
	gleExtrusion(texas_xsection, texas_normal, None, brand_points, brand_colors)

	glPopMatrix ()

	glutSwapBuffers ()


if __name__ == "__main__":
	import logging
	logging.basicConfig()
	maintest.main(DrawStuff)
