[Paraview] Property Panel and Inheritance?

Utkarsh Ayachit utkarsh.ayachit at kitware.com
Thu Oct 2 08:23:14 EDT 2014


I can't remember if the wrapping code can handle multiple inheritance.
If you removed the second superclass, does that work?

Also look the sphBoxSourceClientServer.h file generated in your build
directory. That will indicate which methods from this class are
getting wrapped and which ones aren't.

Utkarsh

On Thu, Oct 2, 2014 at 6:44 AM, B.W.H. van Beest <bwvb at xs4all.nl> wrote:
> Hello, I'm struggling with getting the properties panel right for a new
> Source defined in plugin that I'm writing.
>
> In the class below, I'm extending the VTK class for a rectangular box,
> vtkCubeSource. The class also derives from another class,
> that has the well known method  "foo".   I have made corresponding
> changes to the server manager file (xml), given below.
>
> In the xml-file, I can specify the panel entries for the vtkCubeSource,
> referring to the methods of this vtk class which are available via
> inheritance, for instance "SetXLength(double)". However, when I do the
> same for the method "foo(int)" of the other base class, ParaView bombs,
> telling me that:
>
> $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
> tkPVSessionCore (0x113a740): Object type: sphBoxSource, could not find
> requested method: "foo"
> or the method was called with incorrect arguments.
>
> while processing
> Message 0 = Invoke
>   Argument 0 = vtk_object_pointer {sphBoxSource (0x30fbe00)}
>   Argument 1 = string_value {foo}
>   Argument 2 = int32_value {1024}
> $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
>
> The problem is gone when I provide the derived class also with a method
> "foo", which calls the "foo" of the base class.
> In short, I can refer, in the panel, to the methods of vtkCubeSource (as
> expected due to inheritance), but not for the other base class.
> What am I overlooking here, and what do I need to do to have the
> expected inheritance?
>
> Your view
> Kind Regards,
> Bertwim
> ---------------------
>
>
> This is my class:
> =====================================
> class sphBoxSource : public vtkCubeSource
>                                  , public SPHParticleProps
> {
> public:
>   static sphBoxSource* New();
>    vtkTypeMacro(sphBoxSource,vtkCubeSource);
>
> public:
>    sphBoxSource( double, double, double );
>    ~sphBoxSource();
>
> public:  // testing purposes only
>    void foo( int i ){ SPHParticleProps::foo(i);}   // For the Properties
> pane,: Why can I can not just inherit the method "foo"?
> };
> =======================================
>
> The server manager configuration is taken from "sources.xml" that comes
> with ParaView (4.2), but extended with a property for "foo".
>
> =======================================
> <ServerManagerConfiguration>
>    <ProxyGroup name="sources">
>    <!--
> ==================================================================== -->
>    <SourceProxy class="sphBoxSource"
>                 label="SPHBox"
>                 name="SPHBoxSource">
>       ...
>       <DoubleVectorProperty animateable="1"
>                             command="SetXLength"
>                             default_values="10.0"
>                             name="XLength"
>                             number_of_elements="1"
>                             panel_visibility="default">
>          <DoubleRangeDomain min="0" name="range" />
>          <Documentation>This property specifies the length of the box in
> the X direction.</Documentation>
>       </DoubleVectorProperty>
>
>       ....
>
>       <!-- Add gui component for testing purposes -->
>       <IntVectorProperty command="foo"
>                          default_values="1024"
>                          name="foobar"
>                          number_of_elements="1">
>          <IntRangeDomain min="0" name="range" />
>          <Documentation>Just for testing. Does nothing.</Documentation>
>       </IntVectorProperty>
>
>       <!-- End Box -->
>    </SourceProxy>
>    <!--
> ==================================================================== -->
>   </ProxyGroup>
> </ServerManagerConfiguration>
>
> _______________________________________________
> Powered by www.kitware.com
>
> Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html
>
> Please keep messages on-topic and check the ParaView Wiki at: http://paraview.org/Wiki/ParaView
>
> Follow this link to subscribe/unsubscribe:
> http://public.kitware.com/mailman/listinfo/paraview


More information about the ParaView mailing list