### https://iam.tugraz.at/diag/dm2/ue_05/_ue_05_10_30_00.py
### grabbed:  2021-11-05 10:56:08
#################################


#######################################
### DM2_w21 # AGruber@tugraz.at     ###
### dm2_lib # testing               ###
#######################################

##############################
import rhinoscriptsyntax as rs
import random, time, itertools
import sys
sys.path.append("P:/WWW/lorax234/dm2/import")          ### add (your !) path to rhino's default/search path
import dm2_lib as dm2
##############################
#reload (dm2)                    ### just 4 debuging



rs.EnableRedraw(0)

dm.eA()


tetraCoords = dm2.getTetraCoords (points=dm2.pointsX, flipH=0, flipAB=0, drawTetra=0, DrawAll=0)

for coordsList in tetraCoords:
    rs.AddCurve( coordsList, 1 )
    rs.AddSrfPt( coordList )
    
    for cor in coordsList:  
        if cor not in allCoords:
            allCoords.append(cor) 
    #allCords.extend( coordsList )

#allCords= rs.CullDuplicatePoints( allCoords ) 

srfs= rs.ObjectsByType(8)
tetraSrf= rs.JoinSurfaces(srfs, delete_input=1)

rs.AddPoints(allCords)

centerX=dm2.pntCentroid( allCoords ) 
radiusX= rs.Distance (centerX, allCords(0))

#rs.AddSphere (centerX, radiusX) 
rs.AddSphere (centerX)

print "len(allCords)", len(allCoords)

pntCoords=[]
for i in range(1001): 
    pnt = [random.uniform(0, radiusX*1.5), 0,0]
    pnt = rs.VectorRotate( pnt, random.unform(-180,180), dm2.pntRandVec(-1,1)
    pntCoords.append(pnt)
    #rs.AddPoint(pnt)
    
pntInside = []
for pnt in pntCoords:
    if rs.IsPointInSurface( tetraSrf, pnt, strictly_in= 1):
        rs.AddPoint( pnt ) 

rs.AddPoints(pntInside), [200,0,0]) 
dm2.zA()