Memory leak when pos is changed
Wojtek Frycz <[email protected]>
| Newsgroups | gmane.comp.python.visualpython.user |
|---|---|
| Message-ID | <CABmho6_28ChGrMH30PjRybboX+pBGWTPH1aD4q_fJX3C6OSteA@mail.gmail.com> |
Hi!
I'm new to VPython project but I found a memory leak. There was something
mentioned about this problem before. I found it here:
http://sourceforge.net/mailarchive/forum.php?thread_name=AANLkTim8RL8kjW0%3DSK%2B9f-2A5TCQv6wAu9aTpBmisbNS%40mail.gmail.com&forum_name=visualpython-users.
But unfortunately I didn't find the solution.
I want to use VPython to render a surface which is beeing changed during the
program execution. To show you what I'm talking about I changed one of the
example programs (faces_heighfield.py). Now it looks something like this:
<code>
from visual import *
class Model:
def __init__(self):
self.frame = frame()
self.model = faces(frame=self.frame, color=color.cyan)
self.vertices = []
def FacetedTriangle(self, v1, v2, v3, color=color.white):
"""Add a triangle to the model"""
for v in (v1,v2,v3):
self.vertices.append(v)
def FacetedPolygon(self, *v):
"""Appends a planar polygon of any number of vertices to the
model"""
for t in range(len(v)-2):
self.FacetedTriangle( v[0], v[t+1], v[t+2] )
class Mesh (Model):
def __init__(self):
Model.__init__(self)
def Draw(self, xvalues, yvalues, zvalues):
points = zeros( xvalues.shape + (3,), float )
points[...,0] = xvalues
points[...,1] = yvalues
points[...,2] = zvalues
self.vertices = []
for i in range(zvalues.shape[0]-1):
for j in range(zvalues.shape[1]-1):
self.FacetedPolygon( points[i,j], points[i,j+1],
points[i+1,j+1],
points[i+1,j] )
self.model.pos = self.vertices
self.model.make_normals()
self.model.smooth()
self.model.make_twosided()
x = arange(-1,1,2./20)
y = arange(-1,1,2./20)
z = zeros( (len(x),len(y)), float )
x,y = x[:,None]+z, y+z
m = Mesh()
i = 0
dt = 0.1
while True:
m.Draw( x, (sin(x*pi + i*dt)+sin(y*pi + i*dt))*0.2, y )
i += 1
rate(10)
</code>
When running this code we see quite a nice surface movement. That is what I
need. But the memory usage grows infinitely!
My question is... is there any fix for this memory leak? Or do you know
other way to achieve similar visual effect in VPython?
I also tried to render the surface using convexes or points instead of faces
but the memory leak always existed...
Thanks in advance for your help.
Greetings,
Wojciech Frycz
------------------------------------------------------------------------------
10 Tips for Better Web Security
Learn 10 ways to better secure your business today. Topics covered include:
Web security, SSL, hacker attacks & Denial of Service (DoS), private keys,
security Microsoft Exchange, secure Instant Messaging, and much more.
http://www.accelacomm.com/jaw/sfnl/114/51426210/
_______________________________________________
Visualpython-users mailing list
Visualpython-users-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org
https://lists.sourceforge.net/lists/listinfo/visualpython-users