<div dir="ltr"><div class="gmail_extra">Still waiting for reviewers for <a href="http://review.source.kitware.com/#/c/17993" target="_blank">http://review.source.kitware.com/#/c/17993</a></div><div class="gmail_extra">(refactoring the python wrappers and wrapping enum types).  Big thanks</div><div class="gmail_extra">to Ben for his comments so far.</div><div class="gmail_extra"><br></div><div class="gmail_extra"> - David</div><div class="gmail_extra"><br></div><div class="gmail_extra"><br><div class="gmail_quote">On Fri, Nov 21, 2014 at 10:58 AM, David Gobbi <span dir="ltr"><<a href="mailto:david.gobbi@gmail.com" target="_blank">david.gobbi@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div dir="ltr">Hi All,<div><br></div><div>The enum support for the wrappers is done (pending merge).  The caveat</div><div>that I mentioned in my previous email no longer applies, i.e. with this new</div><div>patch _all_ enum types are wrapped, whether they are in the global</div><div>namespace, in a class namespace, or in any other namespace (except for</div><div>nested namespaces, which aren't supported by the wrappers yet).</div><div><br></div><div>This change isn't going to have much impact on the VTK core, because</div><div>most VTK class methods simply take "int" parameters instead of requiring</div><div>the use of enums.  However, it will have a _big_ impact for the wrapping</div><div>of third-party VTK classes which tend to use enum parameters quite often.</div><div>(In fact the change was motivated by the need to wrap some of my own</div><div>external classes).</div><div><br></div><div>Enum parameter support is only provided for the python wrappers, not for</div><div>Java or Tcl.</div><span class=""><font color="#888888"><div><br></div><div> - David</div><div><br></div></font></span></div><div class=""><div class="h5"><div class="gmail_extra"><br><div class="gmail_quote">On Mon, Nov 17, 2014 at 7:04 AM, David Gobbi <span dir="ltr"><<a href="mailto:david.gobbi@gmail.com" target="_blank">david.gobbi@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div dir="ltr">Hi All,<div><br></div><div>I have a patch in gerrit that modifies the python wrappers so that enum</div><div>types are wrapped.  This means that method parameters can be enum</div><div>types, something that wasn't possible for wrapped methods before.</div><div><a href="http://review.source.kitware.com/#/c/17993" target="_blank">http://review.source.kitware.com/#/c/17993</a><br></div><div><br></div><div>E.g.:</div><div><br></div><div>class vtkSomeObject</div><div>{</div><div>public:</div><div>  enum ColorEnum { Red, Blue };</div><div>  void SetColor(enum ColorEnum);</div><div>};</div><div><br></div><div>Each enum type is wrapped as a unique python type subclassed from</div><div>python's "int" type.  So an enum can be used wherever an int can be</div><div>used, but methods that take an enum will raise a TypeError unless</div><div>given a value of the correct enum type.</div><div><br></div><div>One caveat is that this only works if the method and the enum type are</div><div>members of the same class.  Sometime later I'll generalize it so that a</div><div>method can use an enum defined in a different class, but method & enum</div><div>in the same class seems to be the most common use case.</div><div><br></div><div>Cheers,</div><div><br></div><div>  - David</div></div>
</blockquote></div><br></div>
</div></div></blockquote></div><br></div></div>