def __init__(self, renderWindow, camera, sceneManager, cegui):#, ind_nodes): sf.FrameListener.__init__(self, renderWindow, camera, True, True) OIS.MouseListener.__init__(self) OIS.KeyListener.__init__(self) self.text_overlays = [] self.toggle = 0 self.mouse_down = False self.cam_node = camera.parentSceneNode.parentSceneNode self.sceneManager = sceneManager self.cegui = cegui #curstudy = 'delta_tree_character3d.yml' curstudy = 'tree_character3d.yml' l = 7 ga = evolve.init_iga({'app_name': curstudy, 'geomNodes': l}) self.genomes = ga.draw() self.ga = ga ind_nodes = [] for i in range(len(self.genomes)): ind_node = sceneManager.getRootSceneNode().createChildSceneNode('Individual%d' % i) ind_node.position = (0, 0, 0) sep_node = sceneManager.getRootSceneNode().createChildSceneNode('Separator%d' % i) sep_node.position = (i*SPACE, 400, i*SPACE) sep_node.setScale(0.5, 0.5, 0.5) ind_nodes.append(ind_node) self.ind_nodes = ind_nodes # Register as MouseListener (Basic tutorial 5) self.Mouse.setEventCallback(self) self.Keyboard.setEventCallback(self) self.rotate = 0.20 self.move = MOVE self.currentObject = None self.raySceneQuery = None self.raySceneQuery = self.sceneManager.createRayQuery(ogre.Ray()) self.num_keys = ['%d' % i for i in range(10)]
def __init__(self): formatArray=GeomVertexArrayFormat() formatArray.addColumn(InternalName.make("drawFlag"), 1, Geom.NTUint8, Geom.COther) format=GeomVertexFormat(GeomVertexFormat.getV3n3cpt2()) format.addArray(formatArray) self.format=GeomVertexFormat.registerFormat(format) bodydata=GeomVertexData("body vertices", format, Geom.UHStatic) self.barkTexture=loader.loadTexture("barkTexture.jpg") treeNodePath=NodePath("Tree Holder") makeFractalTree(bodydata,treeNodePath,Vec3(4,4,7)) treeNodePath.setTexture(self.barkTexture,1) treeNodePath.reparentTo(render) self.accept("q", self.regenTree) self.accept("n", self.newPop) self.accept("w", self.addTree) self.accept("arrow_up", self.upIterations) self.accept("arrow_down", self.downIterations) self.accept("arrow_right", self.upCopies) self.accept("arrow_left", self.downCopies) [self.accept("%d" % i, self.selectBest, ['%d' % i]) for i in range(0,9)] self.numIterations=11 self.numCopies=4 self.upDownEvent = OnscreenText( text="Up/Down: Increase/Decrease the number of Iteratations("+str(self.numIterations)+")", style=1, fg=(1,1,1,1), pos=(-1.3, 0.85), align=TextNode.ALeft, scale = .05, mayChange=True) self.leftRightEvent = OnscreenText( text="Left/Right: Increase/Decrease branching("+str(self.numCopies)+")", style=1, fg=(1,1,1,1), pos=(-1.3, 0.80), align=TextNode.ALeft, scale = .05, mayChange=True) curstudy = 'speedtree.yml' ga = evolve.init_iga({'app_name': curstudy}) self.genomes = ga.draw() self.ga = ga print 'genomes', self.genomes
def keyPressed(self, evt): print 'pressed', self.Keyboard.getAsString(evt.key) if evt.key is OIS.KC_N: curstudy = 'character3d.yml' l = 6 ga = evolve.init_iga({'app_name': curstudy, 'geomNodes': l}) self.genomes = ga.draw() self.ga = ga self.newPop() elif evt.key is not OIS.KC_ESCAPE: best_selected = self.Keyboard.getAsString(evt.key) if self.ga and best_selected in self.num_keys: best_selected = int(best_selected) self.genomes = self.ga.web_step({'feedback': [best_selected]}) self.newPop() return True
def __init__(self, renderWindow, camera, sceneManager, cegui):#, ind_nodes): sf.FrameListener.__init__(self, renderWindow, camera, True, True) OIS.MouseListener.__init__(self) OIS.KeyListener.__init__(self) # initialized with garbage intentional self.peer_genomes = [0] self.toggle = 0 self.mouse_down = False self.cam_node = camera.parentSceneNode.parentSceneNode self.sceneManager = sceneManager self.cegui = cegui # Register as MouseListener (Basic tutorial 5) self.Mouse.setEventCallback(self) self.Keyboard.setEventCallback(self) collab = False import sys if len(sys.argv) > 1: collab = True #curstudy = 'delta_tree_character3d.yml' curstudy = 'vertex_shader.yml' l = 7 ga = evolve.init_iga({'app_name': curstudy, 'geomNodes': l, 'collaborate': collab}) self.genomes = ga.draw() self.ga = ga j, vj, vi, offset = 0, 0, 0, SPACE * 4 # begin animation stuff ogre.Animation.setDefaultInterpolationMode(ogre.Animation.IM_SPLINE) self.animationStates = [] self.animationSpeeds = [] # end animation stuff mesh = 'ninja.mesh' #mesh = 'robot.mesh' # create nodes to hold subset models and peers peer_nodes = [] ind_nodes = [] for i in range(len(self.genomes)): name = 'Node_%d_%d' % (i, (nextNum())) ent = sceneManager.createEntity(name, mesh) ent.setQueryFlags(self.OBJ_MASK) self.animationStates.append(ent.getAnimationState('Walk')) self.animationStates[-1].Enabled = True #self.animationSpeeds.append(ogre.Math.RangeRandom(0.5, 1.5)) self.animationSpeeds.append(1.0) node = sceneManager.getRootSceneNode().createChildSceneNode('Individual%d' % i) node.attachObject(ent) #node.position = (vi*SPACE, vj*VSPACE, vi*SPACE) node.position = (vi*SPACE, vj*VSPACE, 0) # incremental diagonal placement #node.position = (vi*SPACE, vj*VSPACE, 0) node.yaw(-135) #node.yaw(-90) #sep_node = sceneManager.getRootSceneNode().createChildSceneNode('Separator%d' % i) #sep_node.position = (0,0,0) #sep_node.setScale(0.25, 0.25, 0.25) #ent = sceneManager.createEntity('Separator%d' %i, 'knot.mesh') #ent.setMaterialName('Examples/OgreLogo') #sep_node.attachObject(ent) #sep_node.setVisible(True) #sep_node.position = (vi*SPACE, vj*VSPACE + offset, vi*SPACE + offset) name = 'Peer_%d_%d' % (i, (nextNum())) ent = sceneManager.createEntity(name, mesh) ent.setQueryFlags(self.OBJ_MASK) self.animationStates.append(ent.getAnimationState('Walk')) self.animationStates[-1].Enabled = True self.animationSpeeds.append(ogre.Math.RangeRandom(0.5, 1.5)) p_node = sceneManager.getRootSceneNode().createChildSceneNode('Peer%d' % i) p_node.attachObject(ent) #p_node.position = (vi*SPACE + offset, vj*VSPACE, vi*SPACE + offset) p_node.position = (vi*SPACE+offset, vj*VSPACE, 0) p_node.yaw(-135) #p_node.yaw(-180) p_node.setVisible(True) vi += 1 j += 1 if j % 3 == 0: vj -= 1 vi = 0 ind_nodes.append(node) peer_nodes.append(p_node) self.ind_nodes = ind_nodes self.peer_nodes = peer_nodes # add screen splitter split = sceneManager.getRootSceneNode().createChildSceneNode('ScreenSplit') ent = sceneManager.createEntity('SplitMesh', 'column.mesh') split.attachObject(ent) split.position = (3*SPACE, -SPACE*2, 0) split.setScale(0.25, 5.0, 0.25) self.pic_count = 0 self.mesh_rotate = 0. self.rotate = 0.20 self.move = MOVE self.currentObject = None self.best_selected = {'index': None, 'individual': None} self.peer_selected = {} self.raySceneQuery = None self.raySceneQuery = self.sceneManager.createRayQuery(ogre.Ray()) self.num_keys = ['%d' % i for i in range(10)] self.all_online = False self.collaborate = False
def initEntities(self): # load default entity, set texture and default configuration of mesh # then make copies to render ent = loader.loadModel("../mesh/nsplitninja") tex = loader.loadTexture('../mesh/textures/spacesky.jpg') ent.setTexGen(TextureStage.getDefault(), TexGenAttrib.MWorldPosition) ent.setTexture(tex) #ent.showBounds() # last coord is height ent.setPos(0, 0, 0) ent.setHpr(0, -90, 180) #ent.setScale(0.5, 0.5, 0.5) self.root_ent = ent scale_factor = 0.5 pos_offset = 10 ent_list = [ent.copyTo(NodePath('Individual')) for i in range(9)] self.entity_list = ent_list for i, entity in enumerate(ent_list): entity.reparentTo(render) entity.setPos(i*10, 0, 0) entity.setScale(scale_factor, scale_factor, scale_factor) #nodes = entity.findAllMatches('**/+GeomNode') #l = nodes.asList() #for path in nodes.asList(): # g_node = path.node() # #ent.setScale(scale_factor, scale_factor, scale_factor) # ent.setHpr(0,-90,180) # mat = ent.getMat() # #newCS = Mat4( 3, 0, 0, 0, # # 0, 3, 0, 0, # # 0, 0, 3, 0, # # 0, 0, 0, 1) # g_node.setTransform(TransformState.makeMat(mat)) #scale_factor = 0.1 #for i in range(9): # place_holder = render.attachNewNode('ent-place-holder') # place_holder.setPos(i*5, 0, 0) # place_holder.setScale(i*scale_factor, i*scale_factor, i*scale_factor) # ent.instanceTo(place_holder) # nodes = place_holder.findAllMatches('**/+GeomNode') # l = nodes.asList() # if i == 4: # for path in nodes.asList(): # g_node = path.node() # newCS = Mat4(1,-0.3,0,0, # 0,1,2,0, # 0,0,1,0, # 0,0,0,1) # g_node.setTransform(TransformState.makeMat(newCS)) nodes = ent.findAllMatches('**/+GeomNode') l = nodes.asList() curstudy = 'character3d.yml' ga = evolve.init_iga({'app_name': curstudy, 'geomNodes': len(l)}) self.genomes = ga.draw() self.ga = ga self.newPop()