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 = "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
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
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
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
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
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
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