#!/usr/bin/env python
#Sam Calisch, calisch@mit.edu, 2012

from __future__ import division
import rhinoscriptsyntax as rs
from math import *
from convenience import *

def ExportControlPoints(crvs):
	filter = "Text File (*.txt)|*.txt|All files (*.*)|*.*||"
	filename = rs.SaveFileName("Save Control Points As", filter)
	if not filename: return

	file = open( filename, 'w' )
	points = []
	for crv in crvs:
		points.extend(rs.CurvePoints(crv))
		#print 'point size = ',len(points)
    	#if not points: return

	#i=1
	print 'pts size = ',len(points)
	for pt in points:
#		print "At ", i, "Current file position : ", file.tell()
#		i=i+1
		file.write( ','.join(map(str,[pt.X,pt.Y,pt.Z]))+'\n' )
	file.close()


if __name__ == '__main__':
	pts = []
	crv = rs.GetObject("Select curve", rs.filter.curve)
	min_pt = rs.PointCoordinates(rs.GetObject("Select min point", rs.filter.point))
	max_pt = rs.PointCoordinates(rs.GetObject("Select max point", rs.filter.point))
	res = 100.
	for i in range(int(res)):
		x = min_pt[0]+(i/res)*(max_pt[0]-min_pt[0])+.001
		l = rs.AddLine([x,0.,0.],[x,100.,0.])
		result = rs.CurveCurveIntersection(crv,l)
		rs.DeleteObject(l)
		p1 = result[0][1]
		p2 = result[1][1]
		rs.AddLine(p1,p2)
		pts.append([[p1.X,p1.Y],[p2.X,p2.Y]])
	file = open('foot-points','w')
	for pt in pts:
		file.write('%f,%f,%f,%f\n' % (pt[0][0],pt[0][1],pt[1][0],pt[1][1]))
	file.close()
#	ExportControlPoints(sections)