Exemplo n.º 1
0
    def __init__(self,*args,**kwargs):
        self.gfxmeshes = []
        self.colmeshes = []
        self.lodmeshes = []
        self.polymeshes = []
        self.pset = pointset()
        self.nset = pointset()
        self.uset = pointset()
        self.reps = {}

        #self._def('reps',{},**kwargs)
        #self._def('filename','model.mesh',**kwargs)
        self.filename = 'model.mesh'
Exemplo n.º 2
0
 def test_disjoint(self):
     pset = pointset()
     self.assertTrue(pset.disjoint(self.pset))
     pset.ap(vec3(3,0,0))
     self.assertTrue(pset.disjoint(self.pset))
     pset.ap(vec3(0,0,0))
     self.assertFalse(pset.disjoint(self.pset))
Exemplo n.º 3
0
 def test_disjoint(self):
     pset = pointset()
     self.assertTrue(pset.disjoint(self.pset))
     pset.ap(vec3(3, 0, 0))
     self.assertTrue(pset.disjoint(self.pset))
     pset.ap(vec3(0, 0, 0))
     self.assertFalse(pset.disjoint(self.pset))
Exemplo n.º 4
0
 def test_ap(self):
     pset = pointset()
     np = vec3(0,4,0)
     x = pset.ap(np)
     self.assertEqual(pset.ps[x],np)
     self.assertTrue(pset.ps[x] is np)
     np = vec3(2,-1,3.2)
     x = pset.ap(np)
     self.assertEqual(pset.ps[x],np)
     self.assertTrue(pset.ps[x] is np)
Exemplo n.º 5
0
 def setUp(self):
     self.pset = pointset()
     self.pset.ap(vec3(0,0,0))
     self.pset.ap(vec3(1,0,0))
     self.pset.ap(vec3(1,1,0))
     self.pset.ap(vec3(1,1,1))
     self.pset.ap(vec3(0,1,1))
     self.pset.ap(vec3(0,0,1))
     self.pset.ap(vec3(1,0,1))
     self.pset.ap(vec3(0,1,0))
Exemplo n.º 6
0
 def test_ap(self):
     pset = pointset()
     np = vec3(0, 4, 0)
     x = pset.ap(np)
     self.assertEqual(pset.ps[x], np)
     self.assertTrue(pset.ps[x] is np)
     np = vec3(2, -1, 3.2)
     x = pset.ap(np)
     self.assertEqual(pset.ps[x], np)
     self.assertTrue(pset.ps[x] is np)
Exemplo n.º 7
0
 def setUp(self):
     self.pset = pointset()
     self.pset.ap(vec3(0, 0, 0))
     self.pset.ap(vec3(1, 0, 0))
     self.pset.ap(vec3(1, 1, 0))
     self.pset.ap(vec3(1, 1, 1))
     self.pset.ap(vec3(0, 1, 1))
     self.pset.ap(vec3(0, 0, 1))
     self.pset.ap(vec3(1, 0, 1))
     self.pset.ap(vec3(0, 1, 0))
Exemplo n.º 8
0
 def setUp(self):
     self.mesh = tmsh.trimesh()
     self.pset = pointset()
     self.nset = pointset()
     self.uset = pointset()
Exemplo n.º 9
0
 def setUp(self):
     self.mesh = dmsh.polygonmesh()
     self.pset = pointset()
Exemplo n.º 10
0
    def asurf(self,poly,tm = None,fm = 'generic',rv = False,
            ref = False,smo = False,hmin = 1,zfunc = None,minhmin = 0.1,
            uvstacked = None,autoconnect = False):
        if tm is None:tm = self.agfxmesh()
        if uvstacked is None:uvstacked = db.roundrobin((None,))
        eb,ibs = poly

        ngvs = []
        pset = pointset()
        def av(p,n):
            if autoconnect:
                px = pset.fp(p)
                if px > -1:v = ngvs[px]
                else:
                    pset.ap(p)
                    v = tm.avert(*self.avert(p.cp(),n,next(uvstacked)))
                    ngvs.append(v)
            else:
                v = tm.avert(*self.avert(p.cp(),n,next(uvstacked)))
                ngvs.append(v)
            return v

        if len(eb) < 5 and len(ibs) == 0 and not ref:

            if len(eb) == 3:
                p1,p2,p3 = eb
                n = gtl.nrm(p1,p2,p3)
                v1,v2,v3 = av(p1,n),av(p2,n),av(p3,n)
                if rv:f1 = tm.aface(v1,v3,v2,fm = fm) 
                else:f1  = tm.aface(v1,v2,v3,fm = fm) 
                ngvs.append(v1);ngvs.append(v2);ngvs.append(v3)

            elif len(eb) == 4:
                p1,p2,p3,p4 = eb
                n = gtl.nrm(p1,p2,p3)
                v1,v2,v3,v4 = av(p1,n),av(p2,n),av(p3,n),av(p4,n)
                if rv:
                    f1 = tm.aface(v1,v3,v2,fm = fm) 
                    f2 = tm.aface(v1,v4,v3,fm = fm) 
                else:
                    f1  = tm.aface(v1,v2,v3,fm = fm) 
                    f2  = tm.aface(v1,v3,v4,fm = fm) 
                ngvs.append(v1);ngvs.append(v2);ngvs.append(v3);ngvs.append(v4)

        else:
            eb,ibs = dtg.split_nondelauney_edges(eb,ibs)
            if ref:
                newhmin,eb,ibs = dtg.split_nondelauney_edges_chew1(eb,ibs)
                if newhmin < hmin:
                    hmin = newhmin
                    print('newhmin < hmin ...',newhmin)
                    #ax = dtl.plot_axes_xy(100)
                    #ax = dtl.plot_polygon_xy(eb,ax,lw = 2)
                    #plt.show()
                if newhmin < minhmin:
                    print('hmin is below threshold of surface->foregoing triangulation')
                    return []

            tris,bnds = dtg.triangulate(eb,ibs,hmin,ref,smo)
            if not tris:print('asurf: empty surface')
            for tri in tris:
                p1,p2,p3 = tri
                n = gtl.nrm(p1,p2,p3)
                v1,v2,v3 = av(p1,n),av(p2,n),av(p3,n)
                if rv:f1 = tm.aface(v1,v3,v2,fm = fm) 
                else:f1  = tm.aface(v1,v2,v3,fm = fm) 

        # need to somehow require all loops are placed before doing this
        # need to somehow require all loops are placed before doing this
        # need to somehow require all loops are placed before doing this
        # need to somehow require all loops are placed before doing this
        # need to somehow require all loops are placed before doing this
        if not zfunc is None:
            for ngv in ngvs:
                p = self.pset.ps[tm.verts[ngv][0]]
                p.ztrn(zfunc(p.x,p.y))
        return ngvs
Exemplo n.º 11
0
 def setUp(self):
     self.mesh = tmsh.trimesh()
     self.pset = pointset()
     self.nset = pointset()
     self.uset = pointset()
Exemplo n.º 12
0
 def setUp(self):
     self.mesh = dmsh.polygonmesh()
     self.pset = pointset()