Ejemplo n.º 1
0
# Original mesh will be treated as a background mesh
background_mtb = MeshTraitsBuilder.getDefault3D()
background_mtb.addNodeSet()
background_mesh = Mesh(background_mtb)
MeshReader.readObject3D(background_mesh, xmlDir)
if options.coplanarity:
	background_mesh.buildRidges(options.coplanarity)

# New mesh must not have connectivity
new_mtb = MeshTraitsBuilder()
new_mtb.addTriangleList()
new_mtb.addNodeList()
new_mesh = Mesh(new_mtb)

for point in background_mesh.getNodes():
	new_mesh.add(point)

# Split triangles into 4 new triangles
mapSeenTriangles = {}
for triangle in background_mesh.getTriangles():
	if triangle.hasAttributes(AbstractHalfEdge.OUTER): continue
	edge = triangle.getAbstractHalfEdge()
	newVertices = [None, None, None]
	for i in xrange(3):
		edge = edge.next()
		sym = edge.sym()
		if not sym: continue
		#  May be outer, but it does not matter
		symTri = sym.getTri()
		if symTri in mapSeenTriangles:
			v = mapSeenTriangles[symTri][sym.getLocalNumber()]
Ejemplo n.º 2
0
	sys.exit(1)

vtpFile = args[0]
outDir = args[1]

Utils.loadVTKLibraries()
reader = vtkXMLPolyDataReader()
reader.SetFileName(vtpFile)
reader.Update()
 
polydata = reader.GetOutput()

mesh = Mesh(MeshTraitsBuilder())
vertices = jarray.zeros(polydata.GetNumberOfPoints(), Vertex)
coord = jarray.zeros(3, "d")
for i in xrange(len(vertices)):
	polydata.GetPoint(i, coord)
	vertices[i] = mesh.createVertex(coord)

indices = Utils.getValues(polydata.GetPolys())
i = 0
while i < len(indices):
	if (indices[i] == 3):
		mesh.add(mesh.createTriangle(
			vertices[indices[i+1]],
			vertices[indices[i+2]],
			vertices[indices[i+3]]))
	i += indices[i] + 1

MeshWriter.writeObject3D(mesh, outDir, String())
Ejemplo n.º 3
0
# Original mesh will be treated as a background mesh
background_mtb = MeshTraitsBuilder.getDefault3D()
background_mtb.addNodeSet()
background_mesh = Mesh(background_mtb)
MeshReader.readObject3D(background_mesh, xmlDir)
if options.coplanarity:
    background_mesh.buildRidges(options.coplanarity)

# New mesh must not have connectivity
new_mtb = MeshTraitsBuilder()
new_mtb.addTriangleList()
new_mtb.addNodeList()
new_mesh = Mesh(new_mtb)

for point in background_mesh.getNodes():
    new_mesh.add(point)

# Split triangles into 4 new triangles
mapSeenTriangles = {}
for triangle in background_mesh.getTriangles():
    if triangle.hasAttributes(AbstractHalfEdge.OUTER): continue
    edge = triangle.getAbstractHalfEdge()
    newVertices = [None, None, None]
    for i in xrange(3):
        edge = edge.next()
        sym = edge.sym()
        if not sym: continue
        #  May be outer, but it does not matter
        symTri = sym.getTri()
        if symTri in mapSeenTriangles:
            v = mapSeenTriangles[symTri][sym.getLocalNumber()]