rendered paste body#just a quick test of scene graph nodesclass sceneNode(object): def __init__(self, name): self.__childNodes = [] self.__parent = None self.__name = name def attachNode(self, node): self.__childNodes.append(node) node.__parent = self def detach(self): self.__parent.__childNodes.remove(self) def display(self, deep=0): #do your own update routines here print ''.join(['\t' * deep, self.__name]) #update all children for node in self.__childNodes: node.display(deep+1) def find(self, name): if self.__name == name: return self for node in self.__childNodes: temp = node.find(name) if temp is not None: return temp return NonerootNode = sceneNode("root Node")for nodeA in range(2): levelA = sceneNode("level A, Node: %i" % (nodeA)) for nodeB in range(1): levelB = sceneNode("level B, Node: %i" % (nodeB)) levelA.attachNode(levelB) for nodeC in range(2): levelC = sceneNode("level C, Node: %i" % (nodeC)) levelB.attachNode(levelC) rootNode.attachNode(levelA)rootNode.display()print "\n\nFind Test:"rootNode.find("level C, Node: 0").display()