Exemple #1
0
 def replace(self, mesh):
     newMesh = Mesh()
     newNodes = []
     for n in mesh.points:
         normal = n.getNormal()
         normal.setMag(self.offset)
         node = Node(n)
         node.add(normal)
         newNodes.append(node)
     for oldFace in mesh.faces:
         newFace = Face()
         for node in oldFace.points:
             newFace.addPoint(newNodes[node.id])
         newFace.inverse()
         newMesh.addFace(newFace)
         newMesh.addFace(oldFace)
     if self.closeSides == True:
         for face in mesh.faces:
             edges = face.getEdges()
             for e in edges:
                 if e.f1 == None or e.f2 == None:
                     newMesh.addFace(e.n2, e.n1, newNodes[e.n1.id],
                                     newNodes[e.n2.id])
     newMesh.constructTopology()
     return newMesh
Exemple #2
0
 def getEdgePt(self, edge):
     node = Node(edge.getCenter())
     dX = edge.n2.x - edge.n1.x
     dY = edge.n2.y - edge.n1.y
     dZ = edge.n2.z - edge.n1.z
     if dZ > dX and dZ > dY:
         normal = edge.getNormal()
         normal.mult(self.factorEdge)
         node.add(normal)
     return node
    def getEdgePt(self,edge):
        node =Node(edge.getCenter())
        dX=abs(edge.n2.x-edge.n1.x)
        dY=abs(edge.n2.y-edge.n1.y)
        dZ=abs(edge.n2.z-edge.n1.z)
       

        if dX>dY and dX >dZ:
            normal=edge.getNormal()
            normal.mult(self.factorEdge)
            node.add(normal)
        else:
            e=PVector(dX,dY,dZ)
            e.normalize()
            normal=edge.getNormal()
            cross = normal.cross(e)
            cross.mult(self.factorEdge)
            node.add(cross)
            
        return node
Exemple #4
0
 def getFacePt(self, face):
     node = Node(face.getCenterAverage())
     normal = face.getNormal()
     normal.mult(self.factorFace)
     node.add(normal)
     return node