示例#1
0
文件: QUAD.py 项目: hosscara/GeoMACH
 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'
示例#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'
示例#3
0
文件: QUAD.py 项目: hosscara/GeoMACH
 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'
示例#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'
示例#5
0
文件: QUAD.py 项目: hosscara/GeoMACH
 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'
示例#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'
示例#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'
示例#8
0
文件: QUAD.py 项目: hosscara/GeoMACH
 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'
示例#9
0
文件: QUAD.py 项目: hosscara/GeoMACH
 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'
示例#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'
示例#11
0
文件: QUAD.py 项目: hosscara/GeoMACH
 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'
示例#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'
示例#13
0
文件: QUAD.py 项目: hosscara/GeoMACH
 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'
示例#14
0
文件: QUAD.py 项目: hosscara/GeoMACH
 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'
示例#15
0
文件: QUAD.py 项目: hosscara/GeoMACH
 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'
示例#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'
示例#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'
示例#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'
示例#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'
示例#20
0
文件: QUAD.py 项目: hosscara/GeoMACH
 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'
示例#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'
示例#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'
示例#23
0
文件: QUAD.py 项目: hosscara/GeoMACH
 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'
示例#24
0
文件: QUAD.py 项目: hosscara/GeoMACH
 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'
示例#25
0
文件: QUAD.py 项目: hosscara/GeoMACH
 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'
示例#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'
示例#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'
示例#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'
示例#29
0
文件: QUAD.py 项目: hosscara/GeoMACH
 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'
示例#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'
示例#31
0
文件: QUAD.py 项目: hosscara/GeoMACH
 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'
示例#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'
示例#33
0
文件: QUAD.py 项目: hosscara/GeoMACH
 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'
示例#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'
示例#35
0
文件: QUAD.py 项目: hosscara/GeoMACH
 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'
示例#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'