X !x!__text__TEXTo xp$t__data__DATAp  (.__cstring__TEXT \__compact_unwind__LDh )__eh_frame__TEXTH(" h2  )5@-T P%UHH=H5Hw H uHH=H]ÐUH]fDUHSPHH=H5H H uHH=H5 HHt H tH[]H=H[]fUHAVSH0HuHgHEЋFEHEHEH}ȃu\Hut^H]H=O HAtH=hHt HLcHuL1H0[A^]ÐUHAWAVSH(HuH/HED~D}HG]ԉ]؅yHHLw(HEMA)AuQHuH}t|}L}tYH=b LAtOH={LtAddWidget(w1); w1->SetInteractor(axialRenderWindow->GetInteractor()); vtkParallelopipedWidget *w2 = vtkParallelopipedWidget::New(); set->AddWidget(w2); w2->SetInteractor(coronalRenderWindow->GetInteractor()); vtkParallelopipedWidget *w3 = vtkParallelopipedWidget::New(); set->AddWidget(w3); w3->SetInteractor(sagittalRenderWindow->GetInteractor()); set->SetEnabled(1); @par Motivation: The motivation for this class is really to provide a usable API to tie together multiple widgets of the same kind. To enable this, subclasses of vtkAbstractWidget, must be written as follows: They will generally have callback methods mapped to some user interaction such as:this->CallbackMapper->SetCallbackMethod(vtkCommand::LeftButtonPress Event, vtkEvent::NoModifier, 0, 0, nullptr, vtkPaintbrushWidget::BeginDrawStrokeEvent, this, vtkPaintbrushWidget::BeginDrawCallback); The callback invoked when the left button is pressed looks like:void vtkPaintbrushWidget::BeginDrawCallback(vtkAbstractWidget *w) { vtkPaintbrushWidget *self = vtkPaintbrushWidget::SafeDownCast(w); self->WidgetSet->DispatchAction(self, &vtkPaintbrushWidget::BeginDrawAction); } The actual code for handling the drawing is written in the BeginDrawAction method.void vtkPaintbrushWidget::BeginDrawAction( vtkPaintbrushWidget *dispatcher) { // Do stuff to draw... // Here dispatcher is the widget that was interacted with, the one that // dispatched an action to all the other widgets in its group. You may, if // necessary find it helpful to get parameters from it. // For instance for a ResizeAction: // if (this != dispatcher) // { // double *newsize = dispatcher->GetRepresentation()->GetSize(); // this->WidgetRep->SetSize(newsize); // } // else // { // this->WidgetRep->IncrementSizeByDelta(); // } } @warning Actions are always dispatched first to the activeWidget, the one calling the set, and then to the other widgets in the set. IsTypeOfV.IsTypeOf(string) -> int C++: static vtkTypeBool IsTypeOf(const char *type) Standard methods for a VTK class. IsAV.IsA(string) -> int C++: vtkTypeBool IsA(const char *type) override; Standard methods for a VTK class. SafeDownCastV.SafeDownCast(vtkObjectBase) -> vtkWidgetSet C++: static vtkWidgetSet *SafeDownCast(vtkObjectBase *o) Standard methods for a VTK class. NewInstanceV.NewInstance() -> vtkWidgetSet C++: vtkWidgetSet *NewInstance() Standard methods for a VTK class. SetEnabledV.SetEnabled(int) C++: virtual void SetEnabled(int) Method for activating and deactivating all widgets in the group. EnabledOnV.EnabledOn() C++: virtual void EnabledOn() Method for activating and deactivating all widgets in the group. EnabledOffV.EnabledOff() C++: virtual void EnabledOff() Method for activating and deactivating all widgets in the group. AddWidgetV.AddWidget(vtkAbstractWidget) C++: void AddWidget(vtkAbstractWidget *) Add a widget to the set. RemoveWidgetV.RemoveWidget(vtkAbstractWidget) C++: void RemoveWidget(vtkAbstractWidget *) Remove a widget from the set GetNumberOfWidgetsV.GetNumberOfWidgets() -> int C++: unsigned int GetNumberOfWidgets() Get number of widgets in the set. GetNthWidgetV.GetNthWidget(int) -> vtkAbstractWidget C++: vtkAbstractWidget *GetNthWidget(unsigned int) Get the Nth widget in the set. vtkObjectvtkObjectBasevtkAbstractWidgetOP `!a!`!`a0!!a`a !azRx $0OAC $DX AC $l@AC B$AC G$0AC I$AC G$ AC G$4xAC I$\ AC G$AC G$@AC I$AC I$pAC G$$AC I^ --I 3-< -4 '-% 2-/----~-w)-\/-2--%=-(-.-/-tF--.%="-+- .-/-%=-o--W-,/-%=----l/-B#%=----&-1-/-tL -/-#-3-----/-rS3-F-3---.---l--W,-K4-C24-*0-/----r-j,-^4-VE4-=.0-$---#--zslV*-IB-=6/#-'!-    xh `XH@8( @8"!X0`@ `@ qp o OP-j``S0~` ` X4> (H2oU4{6_PyType_Ready_PyvtkWidgetSet_ClassNew_PyvtkObject_ClassNew_PyVTKObject_New__ZL24PyvtkWidgetSet_StaticNewv__ZN12vtkWidgetSet3NewEv__ZN12vtkWidgetSet18GetNumberOfWidgetsEv__ZN12vtkWidgetSet12RemoveWidgetEP17vtkAbstractWidget__ZN12vtkWidgetSet9AddWidgetEP17vtkAbstractWidget_PyVTKAddFile_vtkWidgetSet_PyVTKObject_GetSet__Py_NoneStruct_PyVTKObject_GetObject__ZL22PyvtkWidgetSet_Methods_PyObject_GenericSetAttr_PyObject_GenericGetAttr_PyVTKObject_Repr_PyVTKObject_AsBuffer_strcmp_PyObject_GC_Del_PyVTKObject_Check__ZN13vtkPythonArgs8GetValueERj__ZN12vtkWidgetSet12GetNthWidgetEj__ZN13vtkPythonArgs13ArgCountErrorEii__ZN13vtkPythonArgs8GetValueERi__ZN12vtkWidgetSet10SetEnabledEi_PyLong_FromLong_PyDict_SetItemString_PyVTKObject_String_PyVTKObject_SetFlag_PyVTKObject_Delete_PyVTKObject_Traverse__ZN13vtkPythonUtil20GetObjectFromPointerEP13vtkObjectBase__ZL19PyvtkWidgetSet_Type_PyType_Type_PyErr_Occurred_PyVTKClass_Add__Py_Dealloc__ZN13vtkPythonArgs8GetValueERPc__ZN13vtkObjectBase8IsTypeOfEPKc__ZN13vtkPythonArgs17GetArgAsVTKObjectEPKcRb__ZN13vtkPythonArgs19GetSelfFromFirstArgEP7_objectS1___ZL27PyvtkWidgetSet_SafeDownCastP7_objectS0___ZL27PyvtkWidgetSet_GetNthWidgetP7_objectS0___ZL27PyvtkWidgetSet_RemoveWidgetP7_objectS0___ZL24PyvtkWidgetSet_AddWidgetP7_objectS0___ZL33PyvtkWidgetSet_GetNumberOfWidgetsP7_objectS0___ZL24PyvtkWidgetSet_EnabledOnP7_objectS0___ZL25PyvtkWidgetSet_EnabledOffP7_objectS0___ZL23PyvtkWidgetSet_IsTypeOfP7_objectS0___ZL26PyvtkWidgetSet_NewInstanceP7_objectS0___ZL25PyvtkWidgetSet_SetEnabledP7_objectS0___ZL18PyvtkWidgetSet_IsAP7_objectS0_