Ejemplo n.º 1
0
 def computeQuadDominant(self):
     nvert = self.verts.shape[0]
     nedge = self.edges.shape[0]
     ntri = self.triangles.shape[0]
     nrem, removeEdge, removeTri = QUADlib.computequaddominant(nvert, nedge, ntri, self.verts, self.edges, self.edgeCon, self.triangles, self.tri2edge, self.edge2tri)
     self.edgeCon, self.edges, self.triangles, self.quads = QUADlib.mergetriangles(nedge, ntri, nedge-nrem, ntri-2*nrem+1, nrem+1, self.edgeCon, self.edges, self.triangles, self.edge2tri, removeEdge, removeTri)
     if self.output: print 'Done: computeQuadDominant'
Ejemplo n.º 2
0
 def computeQuadDominant(self):
     nvert = self.verts.shape[0]
     nedge = self.edges.shape[0]
     ntri = self.triangles.shape[0]
     nrem, removeEdge, removeTri = QUADlib.computequaddominant(nvert, nedge, ntri, self.verts, self.edges, self.edgeCon, self.triangles, self.tri2edge, self.edge2tri)
     self.edgeCon, self.edges, self.triangles, self.quads = QUADlib.mergetriangles(nedge, ntri, nedge-nrem, ntri-2*nrem+1, nrem+1, self.edgeCon, self.edges, self.triangles, self.edge2tri, removeEdge, removeTri)
     if self.output: print 'Done: computeQuadDominant'
Ejemplo n.º 3
0
 def computeQuads(self):
     nvert = self.verts.shape[0]
     nedge = self.edges.shape[0]
     nadj = self.adjMap.shape[0]
     nquad = nedge - nvert + 1
     nquad = int(QUADlib.countquads(nvert, nadj, self.adjPtr, self.adjMap)/8)
     self.quads = QUADlib.computequads(nvert, nadj, 8*nquad, self.adjPtr, self.adjMap)
     self.quads = QUADlib.removeduplicatequads(8*nquad, nquad, self.quads)
     QUADlib.rotatequads(nvert, nquad, self.verts, self.quads)
     if self.output: print 'Done: computeQuads'
Ejemplo n.º 4
0
 def computeQuads(self):
     nvert = self.verts.shape[0]
     nedge = self.edges.shape[0]
     nadj = self.adjMap.shape[0]
     nquad = nedge - nvert + 1
     nquad = int(QUADlib.countquads(nvert, nadj, self.adjPtr, self.adjMap)/8)
     self.quads = QUADlib.computequads(nvert, nadj, 8*nquad, self.adjPtr, self.adjMap)
     self.quads = QUADlib.removeduplicatequads(8*nquad, nquad, self.quads)
     QUADlib.rotatequads(nvert, nquad, self.verts, self.quads)
     if self.output: print 'Done: computeQuads'
Ejemplo n.º 5
0
 def splitTrisNQuads(self):
     nvert = self.verts.shape[0]
     nedge = self.edges.shape[0]
     ntri = self.triangles.shape[0] - 1
     nquad = self.quads.shape[0] - 1
     self.verts, self.edges, self.edgeCon = QUADlib.splittrisnquads(nvert, nedge, ntri+1, nquad+1, nvert+4*ntri+5*nquad, nedge+3*ntri+4*nquad, self.verts, self.edges, self.edgeCon, self.triangles, self.quads)
     if self.output: print 'Done: splitTrisNQuads'
Ejemplo n.º 6
0
 def splitTrisNQuads(self):
     nvert = self.verts.shape[0]
     nedge = self.edges.shape[0]
     ntri = self.triangles.shape[0] - 1
     nquad = self.quads.shape[0] - 1
     self.verts, self.edges, self.edgeCon = QUADlib.splittrisnquads(nvert, nedge, ntri+1, nquad+1, nvert+4*ntri+5*nquad, nedge+3*ntri+4*nquad, self.verts, self.edges, self.edgeCon, self.triangles, self.quads)
     if self.output: print 'Done: splitTrisNQuads'
Ejemplo n.º 7
0
 def computeCDT(self):
     nvert = self.verts.shape[0]
     nedge = self.edges.shape[0]
     ntri, triangles = CDTlib.computecdt(nvert, nedge, 2*nvert-5, self.verts, self.edges)
     self.edges = QUADlib.importtriangles(2*nvert-5, ntri, 3*ntri, triangles)
     self.edgeCon = numpy.ones(self.edges.shape[0], bool)
     if self.output: print 'Done: computeCDT'
Ejemplo n.º 8
0
 def computeCDT(self):
     nvert = self.verts.shape[0]
     nedge = self.edges.shape[0]
     ntri, triangles = CDTlib.computecdt(nvert, nedge, 2*nvert-5, self.verts, self.edges)
     self.edges = QUADlib.importtriangles(2*nvert-5, ntri, 3*ntri, triangles)
     self.edgeCon = numpy.ones(self.edges.shape[0], bool)
     if self.output: print 'Done: computeCDT'
Ejemplo n.º 9
0
 def computeTriangles(self):
     nvert = self.verts.shape[0]
     nedge = self.edges.shape[0]
     nadj = self.adjMap.shape[0]
     ntri = nedge - nvert + 1
     ntri = int(QUADlib.counttriangles(nvert, nadj, self.adjPtr, self.adjMap)/6)
     self.triangles = QUADlib.computetriangles(nvert, nadj, 6*ntri, self.adjPtr, self.adjMap)
     self.triangles = QUADlib.removeduplicatetriangles(6*ntri, ntri, self.triangles)
     QUADlib.rotatetriangles(nvert, ntri, self.verts, self.triangles)
     self.edge2tri, self.tri2edge = QUADlib.computetri2edge(nedge, ntri, self.edges, self.triangles)
     if self.output: print 'Done: computeTriangles'
Ejemplo n.º 10
0
 def computeTriangles(self):
     nvert = self.verts.shape[0]
     nedge = self.edges.shape[0]
     nadj = self.adjMap.shape[0]
     ntri = nedge - nvert + 1
     ntri = int(QUADlib.counttriangles(nvert, nadj, self.adjPtr, self.adjMap)/6)
     self.triangles = QUADlib.computetriangles(nvert, nadj, 6*ntri, self.adjPtr, self.adjMap)
     self.triangles = QUADlib.removeduplicatetriangles(6*ntri, ntri, self.triangles)
     QUADlib.rotatetriangles(nvert, ntri, self.verts, self.triangles)
     self.edge2tri, self.tri2edge = QUADlib.computetri2edge(nedge, ntri, self.edges, self.triangles)
     if self.output: print 'Done: computeTriangles'
Ejemplo n.º 11
0
 def addInteriorPts(self):
     nvert = self.verts.shape[0]
     nedge = self.edges.shape[0]
     npts = QUADlib.countinteriorpts(self.maxL, self.lengths)
     self.verts = QUADlib.addinteriorpts(nvert, nvert+npts, self.maxL, self.lengths, self.verts)
     if self.output: print 'Done: addInteriorPts'
Ejemplo n.º 12
0
 def splitEdges(self):
     nvert = self.verts.shape[0]
     nedge = self.edges.shape[0]
     nsplit = QUADlib.countsplits(nvert, nedge, self.verts, self.edges)
     self.edges, self.edgeCon = QUADlib.splitedges(nvert, nedge, nedge+nsplit, self.verts, self.edges, self.edgeCon)
     if self.output: print 'Done: splitEdges'
Ejemplo n.º 13
0
 def removeDuplicateEdges(self):
     nedge0 = self.edges.shape[0]
     nedge, ids = QUADlib.computeuniqueedges(nedge0, self.edges)
     self.edges, self.edgeCon = QUADlib.removeduplicateedges(nedge0, nedge, ids, self.edges, self.edgeCon)
     if self.output: print 'Done: removeDuplicateEdges'
Ejemplo n.º 14
0
 def removeDuplicateVerts(self):
     nvert0 = self.verts.shape[0]
     nedge = self.edges.shape[0]
     nvert, ids = QUADlib.computeuniqueverts(nvert0, self.verts)
     self.verts, self.edges = QUADlib.removeduplicateverts(nvert0, nvert, nedge, ids, self.verts, self.edges)
     if self.output: print 'Done: removeDuplicateVerts'
Ejemplo n.º 15
0
 def computeConstrainedEdges(self):
     nedge = self.edges.shape[0]
     nedge0 = self.edges0.shape[0]
     self.edgeCon = QUADlib.computeconstrainededges(nedge0, nedge, self.edges0, self.edges)
     if self.output: print 'Done: computeConstrainedEdges'
Ejemplo n.º 16
0
 def importEdges(self, lines):
     self.verts, self.edges = QUADlib.importedges(2*lines.shape[0], lines.shape[0], lines)
     self.edgeCon = numpy.ones(self.edges.shape[0], bool)
     if self.output: print 'Done: importEdges'
Ejemplo n.º 17
0
 def addInteriorPts(self):
     nvert = self.verts.shape[0]
     nedge = self.edges.shape[0]
     npts = QUADlib.countinteriorpts(self.maxL, self.lengths)
     self.verts = QUADlib.addinteriorpts(nvert, nvert+npts, self.maxL, self.lengths, self.verts)
     if self.output: print 'Done: addInteriorPts'
Ejemplo n.º 18
0
 def computeAdjMap(self):
     nvert = self.verts.shape[0]
     nedge = self.edges.shape[0]
     self.adjPtr, self.adjMap = QUADlib.computeadjmap(nvert, nedge, 2*nedge, self.edges)
     if self.output: print 'Done: computeAdjMap'
Ejemplo n.º 19
0
 def computeConstrainedEdges(self):
     nedge = self.edges.shape[0]
     nedge0 = self.edges0.shape[0]
     self.edgeCon = QUADlib.computeconstrainededges(nedge0, nedge, self.edges0, self.edges)
     if self.output: print 'Done: computeConstrainedEdges'
Ejemplo n.º 20
0
 def reorderCollinear(self):
     nvert = self.verts.shape[0]
     nedge = self.edges.shape[0]
     self.verts, self.edges = QUADlib.reordercollinear(nvert, nedge, self.verts, self.edges)
     if self.output: print 'Done: reorderCollinear'
Ejemplo n.º 21
0
 def addEdgePts(self):
     nvert = self.verts.shape[0]
     nedge = self.edges.shape[0]
     npts = QUADlib.countedgepts(nvert, nedge, self.maxL, self.lengths, self.verts, self.edges)
     self.verts = QUADlib.addedgepts(nvert, nedge, nvert+npts, self.maxL, self.lengths, self.verts, self.edges)
     if self.output: print 'Done: addEdgePts'
Ejemplo n.º 22
0
 def removeDuplicateEdges(self):
     nedge0 = self.edges.shape[0]
     nedge, ids = QUADlib.computeuniqueedges(nedge0, self.edges)
     self.edges, self.edgeCon = QUADlib.removeduplicateedges(nedge0, nedge, ids, self.edges, self.edgeCon)
     if self.output: print 'Done: removeDuplicateEdges'
Ejemplo n.º 23
0
 def computeAdjMap(self):
     nvert = self.verts.shape[0]
     nedge = self.edges.shape[0]
     self.adjPtr, self.adjMap = QUADlib.computeadjmap(nvert, nedge, 2*nedge, self.edges)
     if self.output: print 'Done: computeAdjMap'
Ejemplo n.º 24
0
 def computeConstrainedVerts(self):
     nvert = self.verts.shape[0]
     nedge = self.edges.shape[0]
     self.vertCon = QUADlib.computeconstrainedverts(nvert, nedge, self.edges, self.edgeCon)
     if self.output: print 'Done: computeConstrainedVerts'
Ejemplo n.º 25
0
 def importEdges(self, lines):
     self.verts, self.edges = QUADlib.importedges(2*lines.shape[0], lines.shape[0], lines)
     self.edgeCon = numpy.ones(self.edges.shape[0], bool)
     if self.output: print 'Done: importEdges'
Ejemplo n.º 26
0
 def reorderCollinear(self):
     nvert = self.verts.shape[0]
     nedge = self.edges.shape[0]
     self.verts, self.edges = QUADlib.reordercollinear(nvert, nedge, self.verts, self.edges)
     if self.output: print 'Done: reorderCollinear'
Ejemplo n.º 27
0
 def computeQuad2Edge(self):
     nvert = self.verts.shape[0]
     nedge = self.edges.shape[0]
     nquad = self.quads.shape[0]
     self.quad2edge = QUADlib.computequad2edge(nedge, nquad, self.edges, self.quads)
     if self.output: print 'Done: computeQuad2Edge'
Ejemplo n.º 28
0
 def computeConstrainedVerts(self):
     nvert = self.verts.shape[0]
     nedge = self.edges.shape[0]
     self.vertCon = QUADlib.computeconstrainedverts(nvert, nedge, self.edges, self.edgeCon)
     if self.output: print 'Done: computeConstrainedVerts'
Ejemplo n.º 29
0
 def computeQuad2Edge(self):
     nvert = self.verts.shape[0]
     nedge = self.edges.shape[0]
     nquad = self.quads.shape[0]
     self.quad2edge = QUADlib.computequad2edge(nedge, nquad, self.edges, self.quads)
     if self.output: print 'Done: computeQuad2Edge'
Ejemplo n.º 30
0
 def addIntersectionPts(self):
     nvert = self.verts.shape[0]
     nedge = self.edges.shape[0]
     nint = QUADlib.countintersectionpts(nvert, nedge, self.verts, self.edges)
     self.verts = QUADlib.addintersectionpts(nvert, nedge, nvert+nint, self.verts, self.edges)
     if self.output: print 'Done: addIntersectionPts'
Ejemplo n.º 31
0
 def addIntersectionPts(self):
     nvert = self.verts.shape[0]
     nedge = self.edges.shape[0]
     nint = QUADlib.countintersectionpts(nvert, nedge, self.verts, self.edges)
     self.verts = QUADlib.addintersectionpts(nvert, nedge, nvert+nint, self.verts, self.edges)
     if self.output: print 'Done: addIntersectionPts'
Ejemplo n.º 32
0
 def removeInvalidQuads(self):
     nquad = self.quads.shape[0]
     ninv = QUADlib.countinvalidquads(nquad, self.quads)
     self.quads = QUADlib.removeinvalidquads(nquad, nquad-ninv, self.quads)
     if self.output: print 'Done: removeInvalidQuads'
Ejemplo n.º 33
0
 def splitEdges(self):
     nvert = self.verts.shape[0]
     nedge = self.edges.shape[0]
     nsplit = QUADlib.countsplits(nvert, nedge, self.verts, self.edges)
     self.edges, self.edgeCon = QUADlib.splitedges(nvert, nedge, nedge+nsplit, self.verts, self.edges, self.edgeCon)
     if self.output: print 'Done: splitEdges'
Ejemplo n.º 34
0
 def removeDegenerateEdges(self):
     nedge = self.edges.shape[0]
     ndeg = QUADlib.countdegenerateedges(nedge, self.edges)
     self.edges = QUADlib.removedegenerateedges(nedge, nedge-ndeg, self.edges)
     if self.output: print 'Done: removeDegenerateEdges'
Ejemplo n.º 35
0
 def addEdgePts(self):
     nvert = self.verts.shape[0]
     nedge = self.edges.shape[0]
     npts = QUADlib.countedgepts(nvert, nedge, self.maxL, self.lengths, self.verts, self.edges)
     self.verts = QUADlib.addedgepts(nvert, nedge, nvert+npts, self.maxL, self.lengths, self.verts, self.edges)
     if self.output: print 'Done: addEdgePts'
Ejemplo n.º 36
0
 def removeDuplicateVerts(self):
     nvert0 = self.verts.shape[0]
     nedge = self.edges.shape[0]
     nvert, ids = QUADlib.computeuniqueverts(nvert0, self.verts)
     self.verts, self.edges = QUADlib.removeduplicateverts(nvert0, nvert, nedge, ids, self.verts, self.edges)
     if self.output: print 'Done: removeDuplicateVerts'