[Paraview-developers] How to get active session from a plugin ?
houssen
houssen at ipgp.fr
Fri Aug 7 06:25:21 EDT 2015
Ideally, I'd like to get pipelines from the pipeline browser in order
to scan them, and, finally process each pipeline data.
First, from a writer, it seems not to be possible as writers seem to be
connected to only one pipeline (which seems to be the last one selected
in the GUI before "save data").
Then, from an exporter, I tried to go from renderers to actors to
mappers to get their inputs : at this point, my understanding is that
mapper inputs are "only" vtkPolyData (= "only" a representation [pure
visualization] of the "raw" data). I didn't find a way to go from
vtkPolyData to "raw" data (vtkUnstructuredGrid for instance). I believe
there is no way as I tried to debug a bit and went from stuffs like
"vtkPolyData * pData = reader -> GetOutput ()" to stuffs like "pPipeline
-> Add ( pData )". My understanding [not sure] is that mapper handles
visualization data (that have been built from "raw" data) but that are,
later on, disconnected from them.
So, finally, after browsing the Paraview code, I tried from the
exporter to get the pipelines from a vtkSession (to scan over
vtkSMProxy)... And see what I can find out.
Actually, for now, I "just write debug" code trying to understand how
to do find my way into Paraview internal architecture (from which I am
not familiar). I am still in the process to understand if I can do what
I'd like to.
Franck
Le 2015-08-06 23:56, Sebastien Jourdain a écrit :
> Is the goal to get all the proxy that compose the pipeline browser?
>
> On Thu, Aug 6, 2015 at 3:48 PM, houssen <houssen at ipgp.fr [23]> wrote:
>
>> Here is a code snippet from myExporter.cpp : crash occurs at line
>> 125 (according to stack below)
>> 105 vtkSMProxyManager * pProxyMgr =
>> vtkSMProxyManager::GetProxyManager ();
>> 106 if ( pProxyMgr )
>> 107 {
>> 108 vtkSMSession * pSession = pProxyMgr -> GetActiveSession
>> ();
>> 109 if ( pSession )
>> 110 {
>> 111 msg << "n get session";
>> 112 vtkSMSessionProxyManager * pProxyMgr = pSession ->
>> GetSessionProxyManager ();
>> 113 if ( pProxyMgr )
>> 114 {
>> 115 msg << "n get proxy mgr";
>> 116 vtkSmartPointer<vtkSMProxyIterator>
>> spProxyIterator = vtkSmartPointer<vtkSMProxyIterator>::New();
>> 117 spProxyIterator -> SetSessionProxyManager (
>> pProxyMgr );
>> 118 spProxyIterator -> SetSession ( pSession );
>> 119 spProxyIterator -> Begin ();
>> 120 vtkSMProxy * pProxy = spProxyIterator ->
>> GetProxy();
>> 121 msg << "nProxy : " << pProxy -> GetClassName ();
>> 122 while ( pProxy )
>> 123 {
>> 124 vtkObjectBase * pObj = pProxy ->
>> GetClientSideObject ();
>> 125 msg << "n Proxy client obj : " << pObj ->
>> GetClassName ();
>> 126
>> 127 spProxyIterator -> Next ();
>> 128 pProxy = spProxyIterator -> GetProxy();
>> 129 }
>> 130 }
>> 131 }
>> 133 }
>>
>> I tried to use GetClientSideObject as I believe it could be a way
>> to finally scan the pipeline browser. I would like to access each
>> pipeline of the pipeline browser from an exporter.
>>
>> Franck
>>
>> Le 2015-08-06 23:34, houssen a écrit :
>>
>>> I get this :
>>>
>>> Program received signal SIGSEGV, Segmentation fault.
>>> 0x00007ffff1e3db76 in vtkObjectBase::GetClassName (this=0x0) at
>>>
>>>
>>>
>>
>
> /home/houssen/Programs/ParaView/ParaView-v4.3.1-source/VTK/Common/Core/vtkObjectBase.cxx:112
>>> 112 return this->GetClassNameInternal();
>>> (gdb) l
>>> 107 return this->GetClassNameInternal();
>>> 108 }
>>> 109 #endif
>>> 110 const char* vtkObjectBase::GetClassName() const
>>> 111 {
>>> 112 return this->GetClassNameInternal();
>>> 113 }
>>> 114
>>> 115 int vtkObjectBase::IsTypeOf(const char *name)
>>> 116 {
>>> (gdb) bt
>>> #0 0x00007ffff1e3db76 in vtkObjectBase::GetClassName
>>> (this=0x0) at
>>>
>>>
>>>
>>
>
> /home/houssen/Programs/ParaView/ParaView-v4.3.1-source/VTK/Common/Core/vtkObjectBase.cxx:112
>>> #1 0x00007fffc07f0fb4 in slvPrvExporter::WriteData
>>> (this=0x57be820)
>>> at /mnt/users/houssen/Documents/myExporter/myExporter.cpp:125
>>> #2 0x00007fffd1db7971 in vtkExporter::Write (this=0x57be820)
>>> at
>>>
>>>
>>>
>>
>
> /home/houssen/Programs/ParaView/ParaView-v4.3.1-source/VTK/IO/Export/vtkExporter.cxx:65
>>> #3 0x00007ffff493bab2 in vtkSMRenderViewExporterProxy::Write
>>> (this=0x4e621f0)
>>> at
>>>
>>>
>>>
>>
>
> /home/houssen/Programs/ParaView/ParaView-v4.3.1-source/ParaViewCore/ServerManager/Default/vtkSMRenderViewExporterProxy.cxx:58
>>> #4 0x00007ffff7af57c5 in pqExportReaction::exportActiveView
>>> (this=0xa9d0e0)
>>> at
>>>
>>>
>>>
>>
>
> /home/houssen/Programs/ParaView/ParaView-v4.3.1-source/Qt/ApplicationComponents/pqExportReaction.cxx:170
>>> #5 0x00007ffff7b56b1c in pqExportReaction::onTriggered
>>> (this=0xa9d0e0)
>>> at
>>>
>>>
>>>
>>
>
> /home/houssen/Programs/ParaView/ParaView-v4.3.1-source/BUILD/Qt/ApplicationComponents/../../../Qt/ApplicationComponents/pqExportReaction.h:59
>>> #6 0x00007ffff7b5abc6 in pqReaction::qt_static_metacall
>>> (_o=0xa9d0e0, _c=QMetaObject::InvokeMetaMethod, _id=0,
>>> _a=0x7fffffffd120)
>>> at
>>>
>>>
>>>
>>
>
> /home/houssen/Programs/ParaView/ParaView-v4.3.1-source/BUILD/Qt/ApplicationComponents/moc_pqReaction.cxx:51
>>> #7 0x00007ffff581087a in QMetaObject::activate
>>> (sender=sender at entry=0xa945d0, m=m at entry=0x7ffff67d7de0
>>> <QAction::staticMetaObject>,
>>> local_signal_index=local_signal_index at entry=1,
>>> argv=argv at entry=0x7fffffffd120) at kernel/qobject.cpp:3539
>>> #8 0x00007ffff5d27a62 in QAction::triggered
>>> (this=this at entry=0xa945d0, _t1=false) at
>>> .moc/release-shared/moc_qaction.cpp:276
>>> #9 0x00007ffff5d29433 in QAction::activate
>>> (this=this at entry=0xa945d0, event=event at entry=QAction::Trigger)
>>> at
>>> kernel/qaction.cpp:1257
>>> #10 0x00007ffff6157509 in QMenuPrivate::activateCausedStack
>>> (this=this at entry=0x86c610, causedStack=...,
>>> action=action at entry=0xa945d0,
>>> action_e=action_e at entry=QAction::Trigger,
>>> self=self at entry=true)
>>> at widgets/qmenu.cpp:1038
>>> #11 0x00007ffff615ba39 in QMenuPrivate::activateAction
>>> (this=0x86c610, action=0xa945d0, action_e=QAction::Trigger,
>>> self=<optimized out>) at widgets/qmenu.cpp:1130
>>> #12 0x00007ffff5d7d51a in QWidget::event
>>> (this=this at entry=0x8fa300,
>>> event=event at entry=0x7fffffffd720) at kernel/qwidget.cpp:8376
>>> #13 0x00007ffff615f83b in QMenu::event (this=0x8fa300,
>>> e=0x7fffffffd720) at widgets/qmenu.cpp:2481
>>> #14 0x00007ffff5d2de2c in QApplicationPrivate::notify_helper
>>> (this=this at entry=0x6faae0, receiver=receiver at entry=0x8fa300,
>>> e=e at entry=0x7fffffffd720)
>>> at kernel/qapplication.cpp:4567
>>> #15 0x00007ffff5d345dd in QApplication::notify (this=<optimized
>>> out>,
>>> receiver=0x8fa300, e=0x7fffffffd720) at
>>> kernel/qapplication.cpp:4110
>>> #16 0x00007ffff57fc4dd in QCoreApplication::notifyInternal
>>> (this=0x7fffffffdea0, receiver=receiver at entry=0x8fa300,
>>> event=event at entry=0x7fffffffd720)
>>> at kernel/qcoreapplication.cpp:953
>>> #17 0x00007ffff5d33d93 in sendEvent (event=<optimized out>,
>>> receiver=<optimized out>) at
>>>
>>>
>>
> ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:231
>>> #18 QApplicationPrivate::sendMouseEvent
>>> (receiver=receiver at entry=0x8fa300,
>>> event=event at entry=0x7fffffffd720,
>>> alienWidget=alienWidget at entry=0x0,
>>> nativeWidget=nativeWidget at entry=0x8fa300,
>>> buttonDown=buttonDown at entry=0x7ffff6813318 <qt_button_down>,
>>> lastMouseReceiver=..., spontaneous=spontaneous at entry=true)
>>> at kernel/qapplication.cpp:3178
>>> #19 0x00007ffff5da8d1c in QETWidget::translateMouseEvent
>>> (this=this at entry=0x8fa300, event=event at entry=0x7fffffffda70) at
>>> kernel/qapplication_x11.cpp:4568
>>> #20 0x00007ffff5da8289 in QApplication::x11ProcessEvent
>>> (this=0x7fffffffdea0, event=event at entry=0x7fffffffda70) at
>>> kernel/qapplication_x11.cpp:3627
>>> #21 0x00007ffff5dcfb32 in x11EventSourceDispatch (s=0x7014c0,
>>> callback=0x0, user_data=0x0) at
>>> kernel/qguieventdispatcher_glib.cpp:146
>>> #22 0x00007fffebe71e04 in g_main_context_dispatch () from
>>> /lib/x86_64-linux-gnu/libglib-2.0.so.0
>>> #23 0x00007fffebe72048 in ?? () from
>>> /lib/x86_64-linux-gnu/libglib-2.0.so.0
>>> #24 0x00007fffebe720ec in g_main_context_iteration () from
>>> /lib/x86_64-linux-gnu/libglib-2.0.so.0
>>> #25 0x00007ffff58297a1 in QEventDispatcherGlib::processEvents
>>> (this=0x716010, flags=...) at
>>> kernel/qeventdispatcher_glib.cpp:434
>>> #26 0x00007ffff5dcfbe6 in QGuiEventDispatcherGlib::processEvents
>>> (this=<optimized out>, flags=...) at
>>> kernel/qguieventdispatcher_glib.cpp:204
>>> #27 0x00007ffff57fb0af in QEventLoop::processEvents
>>> (this=this at entry=0x7fffffffde40, flags=...) at
>>> kernel/qeventloop.cpp:149
>>> #28 0x00007ffff57fb3a5 in QEventLoop::exec
>>> (this=this at entry=0x7fffffffde40, flags=...) at
>>> kernel/qeventloop.cpp:204
>>> #29 0x00007ffff5800b79 in QCoreApplication::exec () at
>>> kernel/qcoreapplication.cpp:1225
>>> #30 0x00000000004094e6 in main (argc=1, argv=0x7fffffffdfd8) at
>>>
>>>
>>>
>>
>
> /home/houssen/Programs/ParaView/ParaView-v4.3.1-source/BUILD/Applications/ParaView/paraview_main.cxx:115
>>>
>>> Le 2015-08-06 23:12, Sebastien Jourdain a écrit :
>>>
>>>> Something else must be wrong. No matter what you should be able
>>>> to get
>>>> the ProxyManager.
>>>>
>>>> What does the debugger tell you about the cause of the crash?
>>>>
>>>> Seb
>>>>
>>>> On Thu, Aug 6, 2015 at 3:08 PM, houssen <houssen at ipgp.fr [11]
>>>> [11]> wrote:
>>>>
>>>>> Unfortunately, the code crashes when I call
>>>>> vtkSMProxyManager::GetProxyManager ().
>>>>> Is there another way ?
>>>>>
>>>>> Franck
>>>>>
>>>>> Le 2015-08-06 16:32, Sebastien Jourdain a écrit :
>>>>>
>>>>>> Try that:
>>>>>>
>>>>>> vtkSMProxyManager::GetProxyManager()->GetActiveSession()
>>>>>>
>>>>>> On Thu, Aug 6, 2015 at 2:50 AM, houssen <houssen at ipgp.fr
>>>>>> [5] [5]
>>>>>> [5]> wrote:
>>>>>>
>>>>>>> Hello,
>>>>>>>
>>>>>>> In ParaView, from an exporter plugin, how can I get the
>>>>>>> active
>>>>>>> session ? (= session associated to the plugin in order
>>>>>>> later
>>>>>>> on to
>>>>>>> scan over vtkSMProxy)
>>>>>>>
>>>>>>> Following some code samples found in
>>>>>>> /ParaViewCore/ClientServerCore/Rendering, I tried to do
>>>>>>> :
>>>>>>> vtkProcessModule * pProcMgr =
>>>>>>> vtkProcessModule::GetProcessModule
>>>>>>> ();
>>>>>>> vtkSMSession * pSession = ( pProcMgr ) ?
>>>>>>> vtkSMSession::SafeDownCast ( pProcMgr ->
>>>>>>> GetActiveSession () )
>>>>>>> :
>>>>>>> NULL;
>>>>>>> I get pProcMgr != NULL but pSession = NULL
>>>>>>>
>>>>>>> Franck
>>>>>>>
>>>>>>> PS : I run Ubuntu-14.04 and use ParaView-4.3.1 (built
>>>>>>> from
>>>>>>> source).
>>>>>>>
>>>>>>> _______________________________________________
>>>>>>> Powered by www.kitware.com [1] [1] [1]
>>>>>>>
>>>>>>> Visit other Kitware open-source projects at
>>>>>>> http://www.kitware.com/opensource/opensource.html [2]
>>>>>>> [2] [2]
>>>>>>>
>>>>>>> Search the list archives at:
>>>>>>> http://markmail.org/search/?q=Paraview-developers [3]
>>>>>>> [3] [3]
>>>>>>>
>>>>>>> Follow this link to subscribe/unsubscribe:
>>>>>>>
>>>>>>>
>>>>>>
>>>>>
>>>> http://public.kitware.com/mailman/listinfo/paraview-developers
>>>>>>> [4]
>>>>>>> [4] [4]
>>>>>>
>>>>>> Links:
>>>>>> ------
>>>>>> [1] http://www.kitware.com [6] [6]
>>>>>> [2] http://www.kitware.com/opensource/opensource.html [7]
>>>>>> [7]
>>>>>> [3] http://markmail.org/search/?q=Paraview-developers [8]
>>>>>> [8]
>>>>>> [4]
>>>>>>
>>>>>>
>>>>>
>>>> http://public.kitware.com/mailman/listinfo/paraview-developers
>>>>>> [9]
>>>>> [9]
>>>>>
>>>>>> [5] mailto:houssen at ipgp.fr [10] [10]
>>>>
>>>> Links:
>>>> ------
>>>> [1] http://www.kitware.com [12]
>>>> [2] http://www.kitware.com/opensource/opensource.html [13]
>>>> [3] http://markmail.org/search/?q=Paraview-developers [14]
>>>> [4]
>>>> http://public.kitware.com/mailman/listinfo/paraview-developers
>>>> [15]
>>>> [5] mailto:houssen at ipgp.fr [16]
>>>> [6] http://www.kitware.com [17]
>>>> [7] http://www.kitware.com/opensource/opensource.html [18]
>>>> [8] http://markmail.org/search/?q=Paraview-developers [19]
>>>> [9]
>>>> http://public.kitware.com/mailman/listinfo/paraview-developers
>>>> [20]
>>>> [10] mailto:houssen at ipgp.fr [21]
>>>> [11] mailto:houssen at ipgp.fr [22]
>
>
>
> Links:
> ------
> [1] http://www.kitware.com
> [2] http://www.kitware.com/opensource/opensource.html
> [3] http://markmail.org/search/?q=Paraview-developers
> [4] http://public.kitware.com/mailman/listinfo/paraview-developers
> [5] mailto:houssen at ipgp.fr
> [6] http://www.kitware.com
> [7] http://www.kitware.com/opensource/opensource.html
> [8] http://markmail.org/search/?q=Paraview-developers
> [9] http://public.kitware.com/mailman/listinfo/paraview-developers
> [10] mailto:houssen at ipgp.fr
> [11] mailto:houssen at ipgp.fr
> [12] http://www.kitware.com
> [13] http://www.kitware.com/opensource/opensource.html
> [14] http://markmail.org/search/?q=Paraview-developers
> [15] http://public.kitware.com/mailman/listinfo/paraview-developers
> [16] mailto:houssen at ipgp.fr
> [17] http://www.kitware.com
> [18] http://www.kitware.com/opensource/opensource.html
> [19] http://markmail.org/search/?q=Paraview-developers
> [20] http://public.kitware.com/mailman/listinfo/paraview-developers
> [21] mailto:houssen at ipgp.fr
> [22] mailto:houssen at ipgp.fr
> [23] mailto:houssen at ipgp.fr
More information about the Paraview-developers
mailing list