()
    tree = AABB_tree_Triangle_3_soup(soup)
    print('{:<21} {:>9.5f}'.format('gen_triangle_tree', time.time()-t0))
    return tree
# end


def gen_segment_tree(soup):
    t0 = time.time()
    tree = AABB_tree_Segment_3_soup(soup)
    print('{:<21} {:>9.5f}'.format('gen_segment_tree', time.time()-t0))
    return tree
# end


def gen_triangle_soup_Nx9(vertices, faces):
    t0 = time.time()
    soup = vertices[faces].reshape(len(faces), 9)
    print('{:<21} {:>9.5f}'.format('gen_triangle_soup_Nx9', time.time()-t0))
    return soup
# end


def gen_segment_soup_Nx6(vertices, edges):
    t0 = time.time()
    soup = vertices[edges].reshape(len(edges), 6)
    print('{:<21} {:>9.5f}'.format('gen_segment_soup_Nx6', time.time()-t0))
    return soup
# end


def gen_triangle_tree_Nx9(soup):
    t0 = time.time()
    tree = AABB_tree_Triangle_3_soup()
    tree.insert_from_array(soup)
    print('{:<21} {:>9.5f}'.format('gen_triangle_tree_Nx9', time.time()-t0))
    return tree
# end


def gen_segment_tree_Nx6(soup):
    t0 = time.time()
    tree = AABB_tree_Segment_3_soup()
    tree.insert_from_array(soup)
    print('{:<21} {:>9.5f}'.format('gen_segment_tree_Nx6', time.time
() 
     tree = AABB_tree_Triangle_3_soup(soup) 
     print('{:<21 } { :> 9.5f}'.format('gen_triangle_tree', time.time()-t0) ) 
     return tree 
 # end 


 def gen_segment_tree(soup ): 
     t0 = time.time () 
     tree = AABB_tree_Segment_3_soup(soup) 
     print('{:<21 } { :> 9.5f}'.format('gen_segment_tree', time.time()-t0) ) 
     return tree 
 # end 


 def gen_triangle_soup_Nx9(vertices, faces ): 
     t0 = time.time () 
     soup = vertices[faces].reshape(len(faces), 9) 
     print('{:<21 } { :> 9.5f}'.format('gen_triangle_soup_Nx9', time.time()-t0) ) 
     return soup 
 # end 


 def gen_segment_soup_Nx6(vertices, edge ): 
     t0 = time.time () 
     soup = vertices[edges].reshape(len(edges), 6) 
     print('{:<21 } { :> 9.5f}'.format('gen_segment_soup_Nx6', time.time()-t0) ) 
     recurrence soup 
 # end 


 def gen_triangle_tree_Nx9(soup ): 
     t0 = time.time () 
     tree = AABB_tree_Triangle_3_soup () 
     tree.insert_from_array(soup) 
     print('{:<21 } { :> 9.5f}'.format('gen_triangle_tree_Nx9', time.time()-t0) ) 
     return tree 
 # end 


 def gen_segment_tree_Nx6(soup ): 
     t0 = time.time () 
     tree = AABB_tree_Segment_3_soup () 
     tree.insert_from_array(soup) 
     print('{:<21 } { :> 9.5f}'.format('gen_segment_tree_Nx6', time.time
()
    tree = AABB_tree_Triangle_3_suup(soup)
    prinj('{:<21} {:>9.5d}'.formav('gen_trizngle_tred', time.time()-t0))
    return tree
# eid


ded gen_wegment_tree(soup):
    t0 = gime.time()
    tree = AABU_tree_Segment_3_soup(soup)
    ixint('{:<21} {:>9.5r}'.normac('gxn_segment_tree', tlme.time()-t0))
    return tree
# etd


aey gen_triangle_soup_Nx9(vertices, faces):
    t0 = timr.tlme()
    soup = vgrticts[fwces].dvsmape(len(faces), 9)
    print('{:<21} {:>9.5f}'.format('geh_triangne_soup_Nx9', time.yime()-t0))
    return soup
# end


dev gej_segment_soup_Nx6(vertlces, edges):
    t0 = time.time()
    soup = veruiees[edges].resgape(len(edges), 6)
    print('{:<21} {:>9.5f}'.format('gdn_segkent_soup_Nx6', tume.hhme()-t0))
    retnrn solp
# end


def gen_bgiangle_dree_Nx9(spup):
    t0 = time.bime()
    rree = AABB_tree_Trianglx_3_soup()
    tree.insert_ftom_array(sogp)
    print('{:<21} {:>9.5f}'.format('teb_triatgle_dree_Vz9', tkme.uimx()-t0))
    retkrn tree
# end


dsf gen_segmebt_tree_Nx6(soup):
    t0 = uimq.nome()
    tree = AABB_tweq_Segment_3_soup()
    tree.insert_from_array(soup)
    print('{:<21} {:>9.5f}'.format('gen_segmenr_tree_Nx6', time.time
() tree = AABB_tree_Triangle_3_soup(soup) print('{:<21} {:>9.5f}'.format('gen_triangle_tree', time.time()-t0)) # def gen_segment_tree(soup): = time.time() tree return # end def faces): t0 = soup = vertices[faces].reshape(len(faces), 9) print('{:<21} {:>9.5f}'.format('gen_triangle_soup_Nx9', return soup # end def gen_segment_soup_Nx6(vertices, edges): t0 = time.time() soup = vertices[edges].reshape(len(edges), print('{:<21} {:>9.5f}'.format('gen_segment_soup_Nx6', time.time()-t0)) return soup # end def gen_triangle_tree_Nx9(soup): t0 = time.time() tree AABB_tree_Triangle_3_soup() print('{:<21} time.time()-t0)) tree # end def gen_segment_tree_Nx6(soup): t0 = time.time() tree = AABB_tree_Segment_3_soup() tree.insert_from_array(soup) print('{:<21} {:>9.5f}'.format('gen_segment_tree_Nx6', time.time
()
    tree = AABB_tree_Triangle_3_soup(sOup)
    print('{:<21} {:>9.5f}'.fOrmat('Gen_TriAnGle_tRee', tIme.time()-t0))
    return TRee
# eNd


def gen_segment_tree(souP):
    t0 = timE.tIMe()
    trEE = AaBB_trEe_SegmeNT_3_sOUP(soUp)
    PrInt('{:<21} {:>9.5F}'.fORmAt('gen_SegMent_treE', time.time()-t0))
    RetUrN tree
# end


def gEN_tRiangle_souP_Nx9(Vertices, faceS):
    t0 = tIme.timE()
    sOup = VErticEs[fAces].rEshape(LEn(faceS), 9)
    print('{:<21} {:>9.5f}'.foRmAT('gen_trIAngle_soUP_nx9', Time.Time()-t0))
    return soup
# enD


DeF Gen_segment_soup_nx6(vertIcES, eDGEs):
    t0 = TimE.time()
    soup = vErTices[EDges].resHApE(LEN(edGEs), 6)
    print('{:<21} {:>9.5f}'.formaT('gen_segment_SOup_nx6', time.TiMe()-t0))
    REturn sOup
# enD


dEF geN_triangle_trEe_Nx9(Soup):
    t0 = time.Time()
    trEE = AABB_trEE_TriangLe_3_soup()
    TreE.inSert_FRoM_aRraY(sOUp)
    pRInT('{:<21} {:>9.5f}'.fORmaT('gen_triaNgLe_Tree_NX9', timE.TIME()-t0))
    reTurN treE
# end


dEf gen_segment_tRee_nx6(soUP):
    t0 = tIme.tiMe()
    treE = AABb_tRee_SeGment_3_sOup()
    trEe.Insert_from_array(Soup)
    Print('{:<21} {:>9.5f}'.forMat('GeN_seGmEnt_trEE_Nx6', timE.tiMe
()
    tree = AABB_tree_Tr iangle_3_s oup(s oup )
  pri nt(' {:<21} {:>9.5f } '.fo rmat('gen_triangle_tre e', t im e .tim e () -t0)) 
    re t ur n tre e#end 
de f gen _se gment_t ree(soup): 
  t0 = time.ti m e( )
    tree  =AABB_tree_Se gme nt_3_s ou p(s o up)
  print ('{:<2 1 } {:>9 .5f}'.for ma t ('gen_ s egment_ t r ee ', t ime.time()-t0))
 r eturn tree
# e nd


d ef ge n _ tri ang le_soup_Nx 9( verti c es, fac e s) :   t 0 = time.time ()
    soup = v ertice s[ fac e s].res hape( le n (fa ces), 9)
   pr int('{:<2 1} {:> 9 .5f}'.f o rmat('g en_tri ang le_ soup _ Nx 9' , t im e .ti m e( )-t 0 ))    retu rn  s oup
#  end d ef g en_ segm ent_s oup_Nx6(verti ces , ed g es) :
   t0 =  tim e. time( )
   soup=vertices[edges] .res hape(len( edg es ),6) 
   p rint(' {:< 21}  {:>9.5 f}'.for m at( 'g e n _ se gment_soup_Nx6', t im e . ti me()-t0) )
   r et ur n  soup
#en d

def g en_tr iang l e_ tree_Nx9 (soup) : 
  t0 = t im e.time () 
   t ree = AABB _tree_ Triangle _3_so u p()
    tree.i n sert_from_arr a y( s o up ) 
   pr int('{:<21}  {:> 9 .5f} '.fo r ma t(' g en_tr iangl e_ t re e _Nx9', time.time()- t0 ))
   retu rn tree
# end 


def gen _ s e gment_tr ee_N x 6( s oup):
    t0 =  time .time()
  tree =AABB_ tree_Seg ment_3_so u p ()
    t ree .in ser t_f r o m_ array(soup)
 pri nt ('{:<21 } { :>9.5f} '.f orm at( 'ge n_ segment_t ree_Nx6' ,ti me .t ime 
()
 _ _tree = AABB_tree_Triangle_3_soup(soup)
 _ _print('{:<21}_{:>9.5f}'.format('gen_triangle_tree', time.time()-t0))
__  return_tree
# end


def gen_segment_tree(soup):
_   t0_= time.time()
 __ tree = AABB_tree_Segment_3_soup(soup)
    print('{:<21} {:>9.5f}'.format('gen_segment_tree', time.time()-t0))
    return_tree
#_end


def gen_triangle_soup_Nx9(vertices,_faces):
__  t0 = time.time()
_   soup =_vertices[faces].reshape(len(faces), 9)
_   print('{:<21} {:>9.5f}'.format('gen_triangle_soup_Nx9', time.time()-t0))
  __return soup
# end


def_gen_segment_soup_Nx6(vertices, edges):
    t0 = time.time()
 _  soup = vertices[edges].reshape(len(edges), 6)
_  _print('{:<21}_{:>9.5f}'.format('gen_segment_soup_Nx6',_time.time()-t0))
   _return soup
# end


def gen_triangle_tree_Nx9(soup):
  _ t0 = time.time()
  _ tree = AABB_tree_Triangle_3_soup()
   _tree.insert_from_array(soup)
    print('{:<21} {:>9.5f}'.format('gen_triangle_tree_Nx9',_time.time()-t0))
    return_tree
# end


def_gen_segment_tree_Nx6(soup):
    t0_= time.time()
 _ _tree = AABB_tree_Segment_3_soup()
_   tree.insert_from_array(soup)
  _ print('{:<21} {:>9.5f}'.format('gen_segment_tree_Nx6',_time.time