Beispiel #1
0
    def traverse(self, recursive=True, verbose=False):
        packer = DNANode.traverse(self, recursive=False, verbose=verbose)
        packer.name = 'DNASignBaseline'  # Override the name for debugging.

        traversed_data = ''
        text = ''

        for child in self.children:
            if child.__class__.__name__ == 'DNASignText':
                text += child.letters
            else:
                if recursive:
                    traversed_data += child.traverse(recursive=recursive, verbose=verbose)

        packer.pack('sign node text', text, STRING)
        packer.pack('sign node code', self.code, STRING)
        packer.packColor('sign node color', *self.color)
        packer.pack('sign node flags', self.flags, STRING)
        packer.pack('sign node indent', self.indent, FLOAT32)
        packer.pack('sign node kern', self.kern, FLOAT32)
        packer.pack('sign node wiggle', self.wiggle, FLOAT32)
        packer.pack('sign node stumble', self.stumble, FLOAT32)
        packer.pack('sign node stomp', self.stomp, FLOAT32)
        packer.pack('sign node width', self.width, FLOAT32)
        packer.pack('sign node height', self.height, FLOAT32)

        if recursive:
            packer += traversed_data + chr(255)

        return packer
    def traverse(self, recursive=True, verbose=False):
        packer = DNANode.traverse(self, recursive=False, verbose=verbose)
        packer.name = 'DNASignBaseline'  # Override the name for debugging.

        traversed_data = ''
        text = ''

        for child in self.children:
            if child.__class__.__name__ == 'DNASignText':
                text += child.letters
            else:
                if recursive:
                    traversed_data += child.traverse(recursive=recursive,
                                                     verbose=verbose)

        packer.pack('sign node text', text, STRING)
        packer.pack('sign node code', self.code, STRING)
        packer.packColor('sign node color', *self.color)
        packer.pack('sign node flags', self.flags, STRING)
        packer.pack('sign node indent', self.indent, FLOAT32)
        packer.pack('sign node kern', self.kern, FLOAT32)
        packer.pack('sign node wiggle', self.wiggle, FLOAT32)
        packer.pack('sign node stumble', self.stumble, FLOAT32)
        packer.pack('sign node stomp', self.stomp, FLOAT32)
        packer.pack('sign node width', self.width, FLOAT32)
        packer.pack('sign node height', self.height, FLOAT32)

        if recursive:
            packer += traversed_data + chr(255)

        return packer
Beispiel #3
0
 def traverse(self, recursive=True, verbose=False):
     packer = DNANode.traverse(self, recursive=False, verbose=verbose)
     packer.name = "DNAProp"  # Override the name for debugging.
     packer.pack("code", self.code, STRING)
     packer.packColor("color", *self.color)
     if recursive:
         packer += self.traverseChildren(verbose=verbose)
     return packer
Beispiel #4
0
 def traverse(self, recursive=True, verbose=False):
     packer = DNANode.traverse(self, recursive=False, verbose=verbose)
     packer.name = 'DNAProp'  # Override the name for debugging.
     packer.pack('code', self.code, STRING)
     packer.packColor('color', *self.color)
     if recursive:
         packer += self.traverseChildren(verbose=verbose)
     return packer
Beispiel #5
0
 def traverse(self, recursive=True, verbose=False):
     packer = DNANode.traverse(self, recursive=False, verbose=verbose)
     packer.name = 'DNAWall'  # Override the name for debugging.
     packer.pack('code', self.code, STRING)
     packer.pack('height', int(self.height * 100), INT16)
     packer.packColor('color', *self.color)
     if recursive:
         packer += self.traverseChildren(verbose=verbose)
     return packer
Beispiel #6
0
    def traverse(self, recursive=True, verbose=False):
        packer = DNANode.traverse(self, recursive=False, verbose=verbose)
        packer.name = 'DNAFlatBuilding'  # Override the name for debugging.
        packer.pack('width', self.width * 10, UINT16)
        packer.pack('has door', self.hasDoor, BOOLEAN)

        if recursive:
            packer += self.traverseChildren(verbose=verbose)
        return packer
    def traverse(self, recursive=True, verbose=False):
        packer = DNANode.traverse(self, recursive=False, verbose=verbose)
        packer.name = 'DNALandmarkBuilding'  # Override the name for debugging.
        packer.pack('code', self.code, STRING)
        packer.packColor('wall color', *self.wallColor)

        if recursive:
            packer += self.traverseChildren(verbose=verbose)
        return packer
Beispiel #8
0
 def traverse(self, recursive=True, verbose=False):
     packer = DNANode.traverse(self, recursive=False, verbose=verbose)
     packer.name = 'DNAStreet'  # Override the name for debugging.
     packer.pack('code', self.code, STRING)
     packer.pack('street material', self.streetMaterial, STRING)
     packer.pack('side walk material', self.sideWalkMaterial, STRING)
     packer.pack('curb material', self.curbMaterial, STRING)
     packer.packColor('street color', *self.streetColor)
     packer.packColor('side walk color', *self.sideWalkColor)
     packer.packColor('curb color', *self.curbColor)
     return packer
Beispiel #9
0
 def traverse(self, recursive=True, verbose=False):
     packer = DNANode.traverse(self, recursive=False, verbose=verbose)
     packer.name = 'DNASignGraphic'  # Override the name for debugging.
     packer.pack('code', self.code, STRING)
     packer.packColor('color', *self.color)
     packer.pack('width', int(self.width * 100), INT16)
     packer.pack('height', int(self.height * 100), INT16)
     packer.pack('bDefaultColor', self.bDefaultColor, BOOLEAN)
     if recursive:
         packer += self.traverseChildren(verbose=verbose)
     return packer
Beispiel #10
0
 def traverse(self, recursive=True, verbose=False):
     packer = DNANode.traverse(self, recursive=False, verbose=verbose)
     packer.name = 'DNAStreet'  # Override the name for debugging.
     packer.pack('code', self.code, STRING)
     packer.pack('street texture', self.streetTexture, STRING)
     packer.pack('side walk texture', self.sideWalkTexture, STRING)
     packer.pack('curb texture', self.curbTexture, STRING)
     packer.packColor('street color', *self.streetColor)
     packer.packColor('side walk color', *self.sideWalkColor)
     packer.packColor('curb color', *self.curbColor)
     return packer
 def traverse(self, recursive=True, verbose=False):
     packer = DNANode.traverse(self, recursive=False, verbose=verbose)
     packer.name = 'DNASignText'  # Override the name for debugging.
     packer.pack('letters', self.letters, STRING)
     return packer
 def traverse(self, recursive=True, verbose=False):
     packer = DNANode.traverse(self, recursive=False, verbose=verbose)
     packer.name = 'DNASignBaseline'  # Override the name for debugging.
     traversed_data = ""
     text = ""
     # Generate the node and pack it
     for child in self.children:
         if child.__class__.__name__ == "DNASignText":
             text += child.letters
         else:
             if recursive:
                 traversed_data += child.traverse(recursive=recursive, verbose=verbose)
     packer.debug('Generating sign...')
     root = NodePath('signroot')
     x = 0.0
     for index, letter in enumerate(text):
         tn = TextNode('text')
         tn.setWtext(unicode(letter, sys.getdefaultencoding()))
         tn.setTextColor(self.color)
         font = globalStorage.getFont(self.code)
         tn.setFont(font)
         if (index == 0) and ('b' in self.flags):
             tn.setTextScale(1.5)
         np = root.attachNewNode(tn)
         np.setScale(self.scale)
         np.setDepthWrite(0)
         if (index % 2):
             np.setPos(x + self.stumble, 0, self.stomp)
             np.setR(-self.wiggle)
         else:
             np.setPos(x - self.stumble, 0, -self.stomp)
             np.setR(self.wiggle)
         x += tn.getWidth() * np.getSx() + self.kern
     map(lambda c: c.setX(c.getX() - x / 2), root.getChildren())
     if (self.width != 0) and (self.height != 0):
         for node in root.getChildren():
             theta = (node.getX() / (self.height / 2.)) + (self.indent * math.pi / 180)
             d = node.getY()
             x = math.sin(theta) * (self.width / 2.)
             y = (math.cos(theta) - 1) * (self.height / 2.)
             radius = math.hypot(x, y)
             if radius != 0:
                 j = (radius + d) / radius
                 x *= j
                 y *= j
             node.setPos(x, 0, y)
             node.setR(node, theta * 180 / math.pi)
     for np in root.findAllMatches('**/+TextNode'):
         np2 = np.getParent().attachNewNode(np.node().generate())
         np2.setTransform(np.getTransform())
         np.removeNode()
     root.flattenStrong()
     data = ""
     if root.getNumChildren():
         ss = StringStream()
         root.getChild(0).writeBamStream(ss)
         data = compressString(ss.getData(), 1)
     packer.pack('sign node data', data, STRING)
     if recursive:
         packer += traversed_data + chr(255)
     return packer