###################################
### DM2_w22 # AGruber@tugraz.at ###
### ue_04 pixel_2_vector demo   ###
###################################

##############################
import rhinoscriptsyntax as rs      ###
import random, time, sys            ###
sys.path.append("P:/")              ### add LW P:/ to rhino's default search path AND
sys.path.append("P:/WWW/diag/")     ### add YOUR LW P:/WWW/user/ to rhino's default search path ...
import DM2_lib as dm                ### ... thus DM2_lib.py can be found !
##############################      reload (dm)

rs.ViewDisplayMode(view=None, mode="Rendered")
rs.ShowGrid(view=None, show=0)
rs.EnableRedraw(0)

dm.PointRadius(displayModeX=2, rad=2,  verbose=1 )
dm.eA()
rs.Redraw()

if 1:
    grayScale = 0
    makeEleva = 1
    img_name = "alice.jpg"
    img_name = "diag.jpeg"
    img_name = "fabian.jpg"

    
    img_path = "P:\\"+img_name
    
    ########
    pixels = dm.getPixels(img_path, steps_x=2, steps_y=2)
    ########

    ####################################
    ### make 3D_grafik from pixels_lists:
    for y,row in enumerate(pixels[0:]): ### enumerate = generate counter 0,1,2,3,4,5...
        for x,col in enumerate(row[0:]):
            dm.esc()
            sw = int( (col[0]+col[1]+col[2])/3 )
            if grayScale:
                col = [sw, sw, sw]
            ptx = rs.AddPoint( [x, y, (30-sw*0.15)*makeEleva] )
            rs.ObjectColor(ptx, col)
        if y%15==0:
            rs.ZoomExtents()
            rs.Redraw()





###############################################
#___4_lazy_experts: automated capture to LW P:/
if 0:
    rs.ZoomExtents()
    rs.Command("-zoom Factor 0.95 enter", 0) # decrease zoom for better framing
    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)
