1#!/usr/local/bin/python3.8 2from gi.repository import v_sim 3import cProfile 4 5render = v_sim.uiMainClass_getDefaultRendering() 6data = render.getVisuData() 7 8def prox(data, (x0, y0, z0), c, rad): 9 (u, v, w) = data.convertXYZToReduced(c) 10 for dx in range(-1, 2): 11 for dy in range(-1, 2): 12 for dz in range(-1, 2): 13 (x, y, z) = data.convertReducedToXYZ((u + dx, v + dy, w + dz)) 14 dist2 = (x - x0)**2 + (y - y0)**2 + (z - z0)**2 15 if dist2 <= (rad) ** 2: 16 return True 17 return False 18 19def isolate(RAD, NODE): 20 coord0 = data.getNodeCoordinates(data.getNodeFromNumber(NODE)) 21 dataIter = data.iterNew() 22 data.iterStart(dataIter) 23 while (dataIter.node is not None): 24 if prox(data, coord0, data.getNodeCoordinates(dataIter.node), RAD): 25 print "Node ",dataIter.node.number," is visible" 26 dataIter.node.setVisibility(True) 27 else: 28 print "Node ",dataIter.node.number," is hidden" 29 dataIter.node.setVisibility(False) 30 data.iterNext(dataIter) 31 data.createAllNodes() 32 33 34##RAD = input('Choose a radius: ') 35##NODE = input('Choose a node id: ') 36RAD = 5. 37NODE = 21 38print "All nodes further than ",RAD," from node ",NODE," will be hidden." 39cProfile.run('isolate(RAD, NODE)') 40v_sim.object_redraw(None) 41 42#----------------------DUMP----------------------# 43outFilename = "diffOut.png" 44print '\n\t---DUMP dans du resultat dans %s---\n' % outFilename 45 46##outFilename = "diffOut.ascii" 47 48dumps = v_sim.dump_getAllModules() 49for dump in dumps: 50 if dump.fileType.match(outFilename): 51 render.dump(dump, outFilename, 450, 450, None, None) 52