import rhinoscriptsyntax as rs
import random, time, itertools
import sys
sys.path.append("P:/WWW/lorax234/dm2/import")     ### add path to rhino's default/search path
sys.path.append("D:/Faks/3_TRECI SEMESTAR/dm2/import")     ### add path to rhino's default/search path
import dm2_lib as dm2


rs.UnitSystem(4)                                        # km = 5, meters = 4, cm = 3 etc
rs.Command("-groundplane Options On=No enter enter", 0) # groundplane > off
rs.ShowGrid(None, 0)
rs.ShowGridAxes(None, 0)
rs.EnableRedraw(0)
rs.DeleteObjects( rs.AllObjects() )

print "                            /\\       "
print "                           /_|\\      "
print "                      TETR/  |_\\EDER _01"
print "........................./   |  \\....... h = a/3.0*(6.0**0.5) .. \" a drittel mal wurzel aus 6 \"\n"


rs.EnableRedraw( 0 )
rs.DeleteObjects( rs.AllObjects() )



dm2.eA()

ptA = [3, 0, 0]
ptB = [0, 3, 0]
ptX = [3, 3, 5]


rs.AddLine( ptA, ptB )

vec_0 = rs.VectorSubtract(ptB, ptA)
vec_1 = rs.VectorSubtract(ptX, ptA)

vec_normal = rs.VectorCrossProduct( vec_0, vec_1 )
vec_uni = rs.VectorUnitize( vec_normal )
#vec_hoehe = rs.VectorScale(vec_uni, h)


rs.AddLine( [0,0,0], vec_0 )
rs.AddLine( [0,0,0], vec_1 )
rs.AddLine( [0,0,0], vec_normal)
rs.ObjectColor( rs.AllObjects()[0:3], [200,0,200] )

vecAB60deg = rs.VectorRotate(vec_0, 60.0, vec_normal)
rs.AddLine( [0,0,0], vecAB60deg)
rs.ObjectColor( rs.AllObjects()[0:1], [200,0,20] )

ptC = rs.VectorAdd(ptA, vecAB60deg)
rs.AddPoints( [ptA, ptB, ptX, ptC] )
rs.AddCurve( [ptA, ptB, ptC, ptA,], 1)

ptH = dm2.pntCentroid( [ptA, ptB, ptC] )
rs.AddPoint( ptH )
rs.ObjectColor( rs.AllObjects()[0:1], [200,0,20] )

rs.AddLine(ptH, rs.VectorAdd(ptH, vec_uni) )


a = rs.Distance(ptA, ptB)
h = a/3.0*(6.0**0.5)
vec_hoehe = rs.VectorScale(vec_uni, h)
ptT = rs.VectorAdd(ptH, vec_hoehe)

rs.AddLine(ptH, ptT )

rs.AddCurve( [ptA, ptA, ptT, ptA] , 1 )
rs.AddPlanarSrf( rs.AddCurve( [ptA, ptB, ptT, ptA] , 2 ) )
rs.AddPlanarSrf( rs.AddCurve( [ptA, ptC, ptT, ptA] , 2 ) )
rs.AddPlanarSrf( rs.AddCurve( [ptB, ptC, ptT, ptB] , 2 ) )
rs.AddPlanarSrf( rs.AddCurve( [ptB, ptC, ptA, ptB] , 2 ) )


print a, h
rs.SelectObjects(rs.ObjectsByType(1))
###############################################
#___4_lazy_experts: automated capture to LW P:/
if 0:
    rs.ZoomExtents()
    rs.Command("-zoom Factor 0.95 enter", 0) # decrease zoom for better framingg
    rs.Redraw()
if  1:
    path = "P:/ue_04/images/"
    name = "tst.png"
    rs.Command("-viewCaptureToFile Width=480  Height=360  Scale=1.5 DrawCPlaneAxes=No TransparentBackground=Yes "+path+name, 0)
    # .jpg and Scale=4 for webSite submission
    name = "tst_"+str(int(time.time()))+".jpg"
    rs.Command("-viewCaptureToFile Width=480  Height=360  Scale=4 TransparentBackground=No  "+path+name, 0)