def line_extractor():
    global extract
    extract=[]
    for data in stl_reader.data:
        #print("outer for : ",len(extract))
        for pt1 in data.face:
            for pt2 in data.face[data.face.index(pt1)+1:]:
                
                if not extract:
                    tmp_extract=stl_reader.facet()
                    tmp_extract.vector=data.vector
                    tmp_extract.face=[pt1,pt2]
                    extract.append(tmp_extract)
                    #print("if not : ",len(extract))
                    continue
                
                
                    
                for tmp in extract:
                    #print("inner for : ",len(extract))
                    #print("pt1 :{} pt2 :{} tmp.face :{}".format(pt1,pt2,tmp.face))
                    #print("brrrrrrrr",extract.index(tmp),extract.count(tmp),numpy.dot(data.vector,tmp.vector))
                    if (check_tol([pt1,pt2],tmp.face) or check_tol([pt2,pt1],tmp.face)) and numpy.dot(data.vector,tmp.vector)>=0.6:
                        #print("Heeeyyy1")
                        extract.remove(tmp)
                        break
                    
                    elif [pt1,pt2] != tmp.face and [pt2,pt1] != tmp.face and extract.index(tmp)==len(extract)-1: 
                        tmp_extract=stl_reader.facet()
                        tmp_extract.vector=data.vector
                        tmp_extract.face=[pt1,pt2]
                        extract.append(tmp_extract)
                        break
Tol=0.3
#view_vector=[-1/(3**0.5),-1/(3**0.5),-1/(3**0.5)]
#view_center=[10,10,10]
multiplier=0.5
pi=math.pi
cos=math.cos
sin=math.sin

visible_facets=[]
projected_faces=[]
lines=[]
#extract=[]
final_lines=[]


tmp_extract=stl_reader.facet()    
    

def initialize():
    visible_facets=[]
    projected_faces=[]
    lines=[]
    final_lines=[]

def diff(v1,v2):
    d=[v1[0]-v2[0],v1[1]-v2[1],v1[2]-v2[2]]
    return d
    
def scalar(x,v):
    return [v[0]*x,v[1]*x,v[2]*x]