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

David Gobbi david.gobbi at gmail.com
Wed Aug 18 08:48:25 EDT 2010


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