import rhinoscriptsyntax as rs
import random
import sys

import dm2_lib as dm2

reload (dm2)

dm2.newEmptyLayer( "barrels", [32, 32, 32] )
#rs.DeleteObjects(rs.ObjectsByLayer("barrels"))
#rs.EnableRedraw(1)
#dm2.newEmptyLayer("barrels", [140,140,140])
rs.Redraw()
##############################################
#rs.CurrentLayer("barrels")
###oelfass###

ufer = rs.ObjectsByName("steg_1") [0]

center_lake = rs.CurveAreaCentroid(ufer)

# pnt_list
coord_mastaba = []


lenX = 38
lenY = 60
lenZ = 40

dist = 1
height = 0.5
width = 0.6

vecX = [dist,0,0]
vecY = [0,width,0]
vecZ = [0,0,height]

#vecZ = [0,0.4,1]
#vecZi= [0,-0.5,1]


###test###

mastaba_line = []

mastaba_base =[]

a = [0,0,0]
b = [19,0,0]
c = [19,30,0]
d = [0,30,0]
e = [0,0,0]


mastaba_base.append(a)
mastaba_base.append(b)
mastaba_base.append(c)
mastaba_base.append(d)
mastaba_base.append(e)

rs.AddCurve(mastaba_base,1)


rs.AddLine(a,b)
rs.AddLine(b,c)
rs.AddLine(c,d)
rs.AddLine(d,a)


a2 = [4.5,0,20]
b2 = [15.5,0,20]
c2 = [15.5,30,20]
d2 = [4.5, 30, 20]

rs.AddLine(a2,b2)
rs.AddLine(b2,c2)
rs.AddLine(c2,d2)
rs.AddLine(d2,a2)

rs.AddLine(a,a2)
rs.AddLine(b,b2)
rs.AddLine(c,c2)
rs.AddLine(d,d2)


for x in range(lenX+1):
	for y in range(lenY+1):
		for z in range(lenZ+1):
			cor = rs.VectorAdd( rs.VectorAdd( rs.VectorScale( vecX, x), rs.VectorScale( vecY, y)), rs.VectorScale( vecZ, z) )
			coord_mastaba.append(cor)

'''
base = []

for x in range(lenX):
		for y in range (lenY):
			cor = rs.VectorAdd( rs.VectorScale( vecX, x), rs.VectorScale( vecY, y))
			base.append(cor)

'''
'''
###number_one###
for x in range(lenX+1):

    for y in range(14):
    	if y < 15:
	        for z in range (lenZ+1):
	        	cor = rs.VectorAdd( rs.VectorAdd( rs.VectorScale( vecX, x), rs.VectorScale( vecY, y)), rs.VectorScale( vecZ, z) )
	        	coord_mastaba.append( cor )
    
    for y in range(14,lenY):
	    for z in range (lenZ+1):
		    cor = rs.VectorAdd( rs.VectorAdd( rs.VectorScale( vecX, x), rs.VectorScale( vecY, y)), rs.VectorScale( vecZi, z) )
		    coord_mastaba.append( cor )
'''




#for pt in pnt_list:
barrel_axis = [1,0,0]


if 1:
	for cor in coord_mastaba:
		rs.AddPoint(cor)
	
if 0:
	for cor in coord_mastaba:
		start_pnt = rs.VectorAdd(cor, rs.VectorScale( barrel_axis,-0.45 ) )
		end_pnt = rs.VectorAdd(cor, rs.VectorScale( barrel_axis,0.45 ))
		top = rs.AddCircle( rs.PlaneFromNormal(start_pnt,barrel_axis) ,0.25 )
		ground = rs.AddCircle( rs.PlaneFromNormal(end_pnt,barrel_axis) ,0.25) 

		top_pnts = (rs.DivideCurve(top, 4, False, True ))
		ground_pnts = (rs.DivideCurve(ground, 4, False, True ))

		for i, pnt in enumerate(ground_pnts):
		    rs.AddLine(pnt, top_pnts[i])
		    #rs.ObjectColor(rs.AddLine(pnt, top_pnts[i] ), [random.randint(0,200),0,0])
		


#die sind wichtig fuer die schleife

'''
barrel_point = [4000,4000,0]
barrel_axis = [1,0,0]





start_pnt = rs.VectorAdd(barrel_point, rs.VectorScale( barrel_axis,-0.45 ) )
end_pnt = rs.VectorAdd(barrel_point, rs.VectorScale( barrel_axis,0.45 ))
top = rs.AddCircle( rs.PlaneFromNormal(start_pnt,barrel_axis) ,0.25 )
ground = rs.AddCircle( rs.PlaneFromNormal(end_pnt,barrel_axis) ,0.25) 

top_pnts = (rs.DivideCurve(top, 5, False, True ))
ground_pnts = (rs.DivideCurve(ground, 5, False, True ))

for i, pnt in enumerate(ground_pnts):
    rs.AddLine(pnt, top_pnts[i] ) 
'''   
