###############
### DM2_w24 ###
### slicing ###
###############

##############################
import rhinoscriptsyntax as rs
import random, math, sys
sys.path.append("P:/")     ###
import DM_lib as dm        ### reload(dm)
###################


urania = ["_bldg3D_higBy_hig_1022844779", "_bldg3D_higBy_hig_1022844778", "_bldg3D_higBy_hig_1022844780"]

urania = [ rs.ObjectsByName(name)[0] for name in urania ] ### get IDs from NAMESs


rs.HideObjects( rs.AllObjects() )
rs.ShowObjects( urania )

coords = dm.getSurfacePoints( urania[0] )
dm.newEmptyLayer("PROJ::demo", [00,100,220])
#rs.AddCurve( coords, 1)
#rs.AddCurve( coords, 2)

if 0:
    dm.newEmptyLayer("CONTI", [200,100,0])
    
    rs.SelectObjects( urania )
    
    #rs.Command("-_contour 0,0,0 0,1,0 1.0 enter", 0)
    rs.UnselectAllObjects()
    
    rs.Command("-_contour -selID "+str(urania[0])+" enter 0,0,0 1,0,0 1.0 enter", 0)
    rs.UnselectAllObjects()
    rs.Command("-_contour -selID "+str(urania[1])+" enter 0,0,0 1,0,0 1.0 enter", 0)
    rs.UnselectAllObjects()
    rs.Command("-_contour -selID "+str(urania[2])+" enter 0,0,0 0,1,0 1.0 enter", 0)
    rs.UnselectAllObjects()
    
if 0:
    dm.newEmptyLayer("POINTS", [20,100,220])
    
    allCoords = []
    for crv in rs.ObjectsByLayer("CONTI"):
        lenx = rs.CurveLength(crv)
        anz  = int(lenx)
        #print anz
        allCoords.extend( rs.DivideCurve(crv, anz, 0) )
    
    #rs.AddCurve( allCoords )
    dm.exportCoordList(list2export=allCoords, exportedListName='urania123coords', path='P:/', fileName='uraniaCoords' ) ##  exportCoordList(list2export=[], exportedListName='GIS_coords', path='P:/', fileName='dachsteinGis')
if 1:
    ###################
    import uraniaCoords
    coords = uraniaCoords.urania123coords
    print len(coords)
    dm.newEmptyLayer("IMPORTS", [120,100,220])
    rs.LayerVisible("CONTI", 0)
    rs.LayerVisible("POINTS", 0)
    rs.LayerVisible("OSM", 0)
    
    #rs.AddPoints( coords )
    rs.AddCurve( coords, 1 )

if 1:

    #coordsXY0 = dm.pnts2XY0(coords)
    p0 = [32464.736,26802.603,0.000]
    p1 = [32504.073,26836.098,0.000]
    p2 = rs.VectorAdd(p1, [0,0,50])
    
    vec = rs.VectorSubtract(p1, p0)
    
    plnCrv = rs.AddCurve( [p0, p1,p2], 1 )
    
    planeX = dm.plnCurvePerp( rs.AddLine(p0, p1) )
    print planeX
    rs.AddRectangle(planeX, 50, 50)
    
    allCoords = []
    anzFrames = 8
    for i in range(0, len(coords), 10):
        pX = coords[i]
        pP = rs.VectorAdd(pX, vec)
        if i%10000==0:
            rs.AddLine( pX, pP )
        pnt = rs.LinePlaneIntersection( [pX, pP], planeX )
        #rs.AddPoint( pnt )
        rs.AddLine( pX, pnt )
        allCoords.append( rs.DivideCurve( rs.AllObjects()[0], anzFrames, 0) )
    
    dm.newEmptyLayer("FRAMES", [200,0,0] )
if 1:
    i=4
    for i in range( anzFrames ):
        coords = []
        for list in allCoords:
            coords.append( list[i] )
        rs.AddCurve( coords, 1 )






