[vtk-developers] Wrapping vtkConfigure.h, vtkType.h, etc.

David Gobbi david.gobbi at gmail.com
Wed Aug 18 11:40:38 EDT 2010


The TestSetGet failure is also my fault.  Whenever the Tcl wrappers
call a method that returns a vtkCommand they segfault.  I hadn't
realized that the Tcl wrappers can only handle vtkObjects, not
vtkObjectBase objects.

On Wed, Aug 18, 2010 at 7:11 AM, Dave Partyka <dave.partyka at kitware.com> wrote:
> Cool! Thank you :-)
>
> On Wed, Aug 18, 2010 at 8:48 AM, David Gobbi <david.gobbi at gmail.com> wrote:
>>
>> The failures are because I added vtkCommand to the wrap list, but
>> since vtkCommand didn't use vtkTypeMacro it didn't have SafeDownCast.
>> I've updated ParaView's VTK and will keep an eye on the dashboard.
>>
>>   David
>>
>>
>> On Wed, Aug 18, 2010 at 6:30 AM, Dave Partyka <dave.partyka at kitware.com>
>> wrote:
>> > Hey David,
>> > Can you look at the ParaView dashboard? I think some of these changes
>> > are
>> > causing build errors with client server wrapping.
>> >
>> > /home/kitware/dashboards/paraview-build-all-debug/Utilities/VTKClientServer/Common/vtkCommandClientServer.cxx:
>> > In function ‘int vtkCommandCommand(vtkClientServerInterpreter*,
>> > vtkObjectBase*, const char*, const vtkClientServerStream&,
>> > vtkClientServerStream&)’:
>> >
>> > /home/kitware/dashboards/paraview-build-all-debug/Utilities/VTKClientServer/Common/vtkCommandClientServer.cxx:14:20:
>> > error: ‘SafeDownCast’ is not a member of ‘vtkCommand’
>> > On Tue, Aug 17, 2010 at 2:52 PM, David Gobbi <david.gobbi at gmail.com>
>> > wrote:
>> >>
>> >> I tried wrapping vtkCommand, and python can wrap it because it's
>> >> already properly tagged as "abstract".  So it just can't be used the
>> >> way that I would like.  But all the constants are there.
>> >>
>> >> import vtk
>> >> print vtk.vtkCommand.ModifiedEvent
>> >> 33
>> >>
>> >>  David
>> >>
>> >>
>> >> On Tue, Aug 17, 2010 at 11:59 AM, David Gobbi <david.gobbi at gmail.com>
>> >> wrote:
>> >> > Wrapping vtkCommand.h is difficult, but not because of the constants.
>> >> > The vtkCommand class itself is internally handled in a very "special"
>> >> > way by the wrappers.  So while I do want to wrap this class and its
>> >> > constants, it won't happen immediately.
>> >> >
>> >> > For some things, you can substitute a string for the constants i.e.
>> >> > AddObserver("ModifiedEvent", func).  But I know that this doesn't
>> >> > work
>> >> > for everything.
>> >> >
>> >> >   David
>> >> >
>> >> >
>> >> > On Tue, Aug 17, 2010 at 11:48 AM, Jean-Christophe Fillion-Robin
>> >> > <jchris.fillionr at kitware.com> wrote:
>> >> >> Hi David,
>> >> >>
>> >> >> That's awesome :)
>> >> >>
>> >> >> Question:
>> >> >>   If we add vtkCommand.h to Kit_WRAP_HEADERS, would the eventid be
>> >> >> wrapped ?
>> >> >>
>> >> >> By eventid, i mean the enum regrouping ModifedEvent, ...
>> >> >>
>> >> >> Thks
>> >> >> Jc
>> >> >>
>> >> >> On Tue, Aug 17, 2010 at 1:42 PM, David Gobbi <david.gobbi at gmail.com>
>> >> >> wrote:
>> >> >>>
>> >> >>> For wrapping VTK constants, I've created an optional variable for
>> >> >>> the
>> >> >>> kits, e.g. in Common/CMakeLists.txt:
>> >> >>>
>> >> >>> SET(Kit_WRAP_HEADERS
>> >> >>>  vtkSystemIncludes.h
>> >> >>>  vtkType.h
>> >> >>>  ${VTK_BINARY_DIR}/vtkConfigure.h
>> >> >>>  )
>> >> >>>
>> >> >>> This tells the python wrappers to wrap these headers
>> >> >>> (Filtering/vtkCellType.h is also wrapped).  Since the constants are
>> >> >>> wrapped directly into the kit python modules, vtkConstants.py is
>> >> >>> obsolete.
>> >> >>>
>> >> >>>  David
>> >> >>>
>> >> >>>
>> >> >>> On Mon, Aug 16, 2010 at 11:45 AM, David Gobbi
>> >> >>> <david.gobbi at gmail.com>
>> >> >>> wrote:
>> >> >>> > Hi All,
>> >> >>> >
>> >> >>> > I'm looking for the best way to modify the VTK cmake scripts so
>> >> >>> > that
>> >> >>> > I
>> >> >>> > can automatically wrap constants like VTK_POLY_DATA.  Right now,
>> >> >>> > some
>> >> >>> > of these constants are hard-coded in e.g. vtkConstants.py but of
>> >> >>> > the
>> >> >>> > wrapper's "hard-coded" copies of the constants are never up to
>> >> >>> > date.
>> >> >>> > The only thing that is needed to python-wrap these constants is
>> >> >>> > to
>> >> >>> > pass the header files vtkConfigure.h, vtkType.h, etc. to
>> >> >>> > vtkWrapPython. One way to do this is to add these headers to the
>> >> >>> > source list:
>> >> >>> >
>> >> >>> > Set(Kit_SRCS vtkType.h ...)
>> >> >>> > SET_SOURCE_FILES_PROPERTIES(vtkType.h HEADER_FILE_ONLY)
>> >> >>> >
>> >> >>> > However, I'm reluctant do to this because no other VTK header
>> >> >>> > files
>> >> >>> > are handled this way.  The alternative is to make a separate list
>> >> >>> > for
>> >> >>> > header files, one that will be used by
>> >> >>> > KitCommonPythonWrapBlock.cmake:
>> >> >>> >
>> >> >>> > Set(Kit_HDRS vtkType.h ...)
>> >> >>> >
>> >> >>> > And then in KitCommonPythonWrapBlock.cmake:
>> >> >>> > SET(FILES_TO_WRAP ${Kit_SRCS} ${Kit_HDRS})
>> >> >>> > VTK_WRAP_PYTHON3(vtk${KIT}Python KitPython_SRCS
>> >> >>> > "${FILES_TO_WRAP}")
>> >> >>> >
>> >> >>> > I'm leaning towards this latter method, because it seems to be
>> >> >>> > the
>> >> >>> > tidier of the two approaches.
>> >> >>> >
>> >> >>> >  David
>> >> >>> >
>> >> >>> _______________________________________________
>> >> >>> Powered by www.kitware.com
>> >> >>>
>> >> >>> Visit other Kitware open-source projects at
>> >> >>> http://www.kitware.com/opensource/opensource.html
>> >> >>>
>> >> >>> Follow this link to subscribe/unsubscribe:
>> >> >>> http://www.vtk.org/mailman/listinfo/vtk-developers
>> >> >>>
>> >> >>
>> >> >>
>> >> >>
>> >> >> --
>> >> >> Phone: 1-518-836-2174
>> >> >> Ext: 304
>> >> >>
>> >> >
>> >> _______________________________________________
>> >> Powered by www.kitware.com
>> >>
>> >> Visit other Kitware open-source projects at
>> >> http://www.kitware.com/opensource/opensource.html
>> >>
>> >> Follow this link to subscribe/unsubscribe:
>> >> http://www.vtk.org/mailman/listinfo/vtk-developers
>> >>
>> >
>> >
>
>



More information about the vtk-developers mailing list