File: pygi_isolate.v_sim.py

package info (click to toggle)
v-sim 3.6.0-2
  • links: PTS, VCS
  • area: main
  • in suites: wheezy
  • size: 15,860 kB
  • sloc: ansic: 75,222; sh: 10,239; makefile: 580; python: 572; cpp: 353; xml: 130
file content (51 lines) | stat: -rw-r--r-- 1,550 bytes parent folder | download | duplicates (6)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
#!/usr/bin/env python
from gi.repository import v_sim
import cProfile

render = v_sim.uiMainClass_getDefaultRendering()
data = render.getVisuData()

def prox(data, (x0, y0, z0), c, rad):
  (u, v, w) = data.convertXYZToReduced(c)
  for dx in range(-1, 2):
    for dy in range(-1, 2):
      for dz in range(-1, 2):
        (x, y, z) = data.convertReducedToXYZ((u + dx, v + dy, w + dz))
	dist2 = (x - x0)**2 + (y - y0)**2 + (z - z0)**2
	if dist2 <= (rad) ** 2:
	  return True
  return False

def isolate(RAD, NODE):
  coord0 = data.getNodeCoordinates(data.getNodeFromNumber(NODE))
  dataIter = data.iterNew()
  data.iterStart(dataIter)
  while (dataIter.node is not None):
    if prox(data, coord0, data.getNodeCoordinates(dataIter.node), RAD):
      print "Node ",dataIter.node.number," is visible"
      dataIter.node.setVisibility(True)
    else:
      print "Node ",dataIter.node.number," is hidden"
      dataIter.node.setVisibility(False)
    data.iterNext(dataIter)
  data.createAllNodes()


##RAD = input('Choose a radius: ')
##NODE = input('Choose a node id: ')
RAD = 5.
NODE = 21
print "All nodes further than ",RAD," from node ",NODE," will be hidden."
cProfile.run('isolate(RAD, NODE)')
v_sim.object_redraw(None)

#----------------------DUMP----------------------#
outFilename = "diffOut.png"
print '\n\t---DUMP dans du resultat dans %s---\n' % outFilename

##outFilename = "diffOut.ascii"

dumps = v_sim.dump_getAllModules()
for dump in dumps:
  if dump.fileType.match(outFilename):
    render.dump(dump, outFilename, 450, 450, None, None)