Sophie

Sophie

distrib > Mandriva > 2008.1 > x86_64 > media > contrib-backports > by-pkgid > 5a28ce08f20e322d24ac159a4334c346 > files > 2437

python-enthought-mayavi2-2.2.0-1mdv2008.1.x86_64.rpm

Issues:

  + All TVTK objects in the MayaVi pipeline can be "used" only when
    the MayaVi object is "running".  This is a pain.  Consider for
    example the case when you create an IsoSurface module.  You cannot
    realistically set any properties at construction time since there
    is no data.  This means you can't specify contours at
    initialization.  If the object would have to support this, then
    the objects will need to check to see if it is running or not.
    Two options:

      1. Any attribute that only supports things at runtime could
         cache the setting till later.

      2. Create special 'pre_start' and 'post_start' methods that can
         be used for such things.

    Either option is problematic.  In case 1 there is additional
    complication for every single attribute and the feedback is never
    immediate.  In case 2, you can't set attrs at initialization --
    very unPythonic.

  + Should the components have a reference to their parent object?
    This seems handy.  Why am I making a fuss about this?  I can't
    think of a problem right now, but my gut feeling says something is
    wrong with doing this.


  + Fred had a problem that brought out a particular problem with
    extensibility of the design.  See this message and the next:

     http://mail.enthought.com/pipermail/enthought-dev/2006-June/001756.html

"""
Hmm, looking at some of the m2 code I see some design problems with
the components.  I thought of the following option for you:

 class FredContour(Contour):
   ...
   def _update_ranges(self):
      ...

i = IsoSurface()
i.contour = FredContour()
[...]
script.add_module(i)


If this would work, it would be awesome.  But it won't because there
isn't a handler for i._contour_changed.  Besides, Module.components
should also be more intelligent.  
"""