import rhinoscriptsyntax as rs
import random, math, time

import dm2_lib as dm2



dm2.newEmptyLayer("myPROJECT::tmp", [50, 150, 200] )
rs.Redraw()

if 0: 
    objNam = "_bldg3D_higBy_hig_252637693"
    objID = rs.ObjectsByName(objNam)[0]
    print objID

    rs.Command("SolidPtOn sellID "+str(objID)+" enter")
    coords = rs.ObjectGripLocations( objID )
    rs.Command("pointsOff enter", 0)

    centerX = dm2.pntCentroid(coords)

    allBuildings = rs.ObjectsByLayer("OSM::buildings::_bldg3D_srf", 1)
    allBuildings.remove( objID )
    objsDist300 = []
    allCoords = []

    for objID in allBuildings:
        dm2.esc()
        rs.Command("SolidPtOn sellID "+str(objID)+" enter")
        coords = rs.ObjectGripLocations( objID )
        rs.Command("pointsOff enter", 0)
        centerY = dm2.pntCentroid(coords)
        dist = rs.Distance(centerX, centerY)
        if dist < 300 and dist > 30:
            #rs.AddLine ( centerX, centerY )
            objsDist300.append( objID )
            allCoords.append( coords ) 
            rs.AddCurve( coords )
            
    #rs.AddCurve(allCoords)
            
    #rs.AddCurve( coords, 1 )
    
    
'''
1. select > name : 
    rs.ObjectByName(_bldg3D_higBy_hig_206333242) >>ID

2. points/grips/ctrPoints
    cmd (solidPointsOn)
    rs.OjectGripLocations >> coords []
    
3. alle curves in OSM sind degree = 1 !!!

4. zValue auf 100 stellen
    entweder vectorAdd [0,0,100]
    oder cor[2] = 100.0
    oder cor[2] += 100.0
'''


objNam = "Wcrv_172349508"
objID = rs.ObjectsByName("Wcrv_172349508")[0]

rs.SelectObject (objID)
rs.EnableObjectGrips ( objID)
coords = rs.ObjectGripLocations (objID )
print len(coords)
rs.EnableObjectGrips ( objID, 0)

for i, cor in enumerate(coords):
    cor[2] += 110
coords.append(coords[0])
crv = rs.AddCurve ( coords, 1) 
curveLenx = rs.CurveLength(crv)
divi = int(curveLenx*0.5)
coords = rs.DivideCurve( crv, divi, 1)
for cor in coords:
    rs.AddLine( cor, [cor[0],cor[1],0])

