ELF>T@@)(   UH@dH%(HD$81HHt$HD$HFHD$$D$ t0H|$1HT$8dH+%(uhH@]@HT$H|$H5|$HtHt+HH5HPtHuH1Huff.fUSHHdH%(HD$81HHt$HD$HFHD$$D$ HD$t6H|$1HT$8dH+%(HH[]DHt$H|$tHl$H=HtHH=uHuHc@HH=tHH=tHUH0fnFdH%(HD$(1HH4$HD$HGfnȉD$fbfD$u=H(HtD$9D$t:H111HT$(dH+%(u^H0]fDHHuӐt$HHuH@HH H;tHfATH0fnFdH%(HD$(1HH4$HD$HGfnȉD$fbfD$uDH(HtD$9D$tIH11E1HD$(dH+%(H0LA\@HHufHHRxH;IMtoI$H5LPtZHuLIHoHbL1HHP@L8fE1H"DIjfATUSH@fnFdH%(HD$81HHt$HD$HGfnȉD$(fbfD$ uYHD$Ho(Ht!\$ +\$$tJH|$1HT$8dH+%(H@[]A\HHuːHt$H|$tD$$Ld$u`HELH@H;H=tLH=u-HaHcVf.LLH=tLH=tLfDHЉfAU1ATUHĀHNdH%(HD$x1HGAfnH%fnA)fbAtBAH5D1HT$xdH+%(HH]A\A]fL Ht$@LL$HL$PT$TT$XHHo(Ht{D$P+D$Tt|H|$@1@H Ht$@HL$HT$XfD$PH\Ho(Ht%D$P+D$TH|$@1(Ll$`Ld$@LLtD$`L$hHT$pD$T$L$D$f.D$`L$f.L$hT$f.T$pHRHHqLd$@Ht$(L Ht$0L Ht$8LT$8L$0HD$(wDHH1HH%1H,L1LfDATL%H ,HH5LuLHLA\AUIATUSHHtHH5LHudHL @HL9t7Hc{HHtH3HLHmuHHL9uH[]A\A]DHmuHH8fnFdH%(HD$(1HH4$HD$HGfnȉD$fbfD$u>H(HtD$9D$t;H111HT$(dH+%(uLH8HHuҐu$HHuHH@ff.H8fnFdH%(HD$(1HH4$HD$HGfnȉD$fbfD$u>H(HtD$9D$t;H111HT$(dH+%(uLH8HHuҐu$H0HuHH@ff.H8fnFdH%(HD$(1HH4$HD$HGfnȉD$fbfD$u>H(HtD$9D$t;H111HT$(dH+%(uLH8HHuҐu$HHuHH@ff.H8fnFdH%(HD$(1HH4$HD$HGfnȉD$fbfD$u>H(HtD$9D$t;H111HT$(dH+%(uLH8HHuҐu$HHuHH@ff.H8fnFdH%(HD$(1HH4$HD$HGfnȉD$fbfD$u>H(HtD$9D$t;H111HT$(dH+%(uLH8HHuҐu$HHuHH@HSafeDownCastvtkObjectBasevtkInteractorStyleUnicamIsTypeOfGetWorldUpVectorNewInstanceIsASetWorldUpVectorOnTimerOnLeftButtonMoveOnLeftButtonUpOnLeftButtonDownOnMouseMoveVTK_UNICAM_NONEVTK_UNICAM_BUTTON_LEFTVTK_UNICAM_BUTTON_MIDDLEVTK_UNICAM_BUTTON_RIGHTVTK_UNICAM_CAM_INT_ROTVTK_UNICAM_CAM_INT_CHOOSEVTK_UNICAM_CAM_INT_PANVTK_UNICAM_CAM_INT_DOLLYHHvtkInteractorStylevtkInteractorObservervtkObjectUH=Hu]ÐHH=tHH=tHH=tH]vtkInteractorStyleUnicam - provides Unicam navigation style Superclass: vtkInteractorStyle UniCam is a camera interactor. Here, just the primary features of the UniCam technique are implemented. UniCam requires just one mouse button and supports context sensitive dollying, panning, and rotation. (In this implementation, it uses the right mouse button, leaving the middle and left available for other functions.) For more information, see the paper at: ftp://ftp.cs.brown.edu/pub/papers/graphics/research/unicam.pdf The following is a brief description of the UniCam Camera Controls. You can perform 3 operations on the camera: rotate, pan, and dolly the camera. All operations are reached through the right mouse button & mouse movements. IMPORTANT: UniCam assumes there is an axis that makes sense as a "up" vector for the world. By default, this axis is defined to be the vector <0,0,1>. You can set it explicitly for the data you are viewing with the 'SetWorldUpVector(..)' method in C++, or similarly in Tcl/Tk (or other interpreted languages). 1. ROTATE: Position the cursor over the point you wish to rotate around and press and release the left mouse button. A 'focus dot' appears indicating the point that will be the center of rotation. To rotate, press and hold the left mouse button and drag the mouse.. release the button to complete the rotation. Rotations can be done without placing a focus dot first by moving the mouse cursor to within 10% of the window border & pressing and holding the left button followed by dragging the mouse. The last focus dot position will be re-used. 2. PAN: Click and hold the left mouse button, and initially move the mouse left or right. The point under the initial pick will pick correlate w/ the mouse tip-- (i.e., direct manipulation). 3. DOLLY (+ PAN): Click and hold the left mouse button, and initially move the mouse up or down. Moving the mouse down will dolly towards the picked point, and moving the mouse up will dolly away from it. Dollying occurs relative to the picked point which simplifies the task of dollying towards a region of interest. Left and right mouse movements will pan the camera left and right. @warning (NOTE: This implementation of Unicam assumes a perspective camera. It could be modified relatively easily to also support an orthographic projection.) vtkInteractionStylePython.vtkInteractorStyleUnicamV.IsTypeOf(string) -> int C++: static vtkTypeBool IsTypeOf(const char *type) Return 1 if this class type is the same type of (or a subclass of) the named class. Returns 0 otherwise. This method works in combination with vtkTypeMacro found in vtkSetGet.h. V.IsA(string) -> int C++: vtkTypeBool IsA(const char *type) override; Return 1 if this class is the same type of (or a subclass of) the named class. Returns 0 otherwise. This method works in combination with vtkTypeMacro found in vtkSetGet.h. V.SafeDownCast(vtkObjectBase) -> vtkInteractorStyleUnicam C++: static vtkInteractorStyleUnicam *SafeDownCast( vtkObjectBase *o) V.NewInstance() -> vtkInteractorStyleUnicam C++: vtkInteractorStyleUnicam *NewInstance() V.SetWorldUpVector([float, float, float]) C++: void SetWorldUpVector(double a[3]) V.SetWorldUpVector(float, float, float) C++: void SetWorldUpVector(double x, double y, double z) V.GetWorldUpVector() -> (float, float, float) C++: double *GetWorldUpVector() V.OnMouseMove() C++: void OnMouseMove() override; Concrete implementation of event bindings V.OnLeftButtonDown() C++: void OnLeftButtonDown() override; Concrete implementation of event bindings V.OnLeftButtonUp() C++: void OnLeftButtonUp() override; Concrete implementation of event bindings V.OnLeftButtonMove() C++: virtual void OnLeftButtonMove() Concrete implementation of event bindings V.OnTimer() C++: void OnTimer() override; OnTimer calls RotateCamera, RotateActor etc which should be overridden by style subclasses. ATL%UH-HHH=LHH=LH5HHH]A\HDGCC: (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0GNUzRx  0 D XEDPa AE zPLRx $HIbEY B }(EAD`n AAF ED@ AG (gFD@ EE 0LFAA D`  AABH 0FDA Dr  ABBJ MFF8FEA A(D0{ (A ABBF $ dFHN DAB4H@ I PH@ I lH@ I H@ I H@ I      ,eg`?|d1 S ~   *` g@     4) = N Z ^ o w   !" Sw"  GX"~!""b8Xh:ZM/< bw - _       1 I a v    _ZL36PyvtkInteractorStyleUnicam_StaticNewv_ZL39PyvtkInteractorStyleUnicam_SafeDownCastP7_objectS0__ZL35PyvtkInteractorStyleUnicam_IsTypeOfP7_objectS0__ZL43PyvtkInteractorStyleUnicam_GetWorldUpVectorP7_objectS0__ZL38PyvtkInteractorStyleUnicam_NewInstanceP7_objectS0__ZL30PyvtkInteractorStyleUnicam_IsAP7_objectS0__ZL43PyvtkInteractorStyleUnicam_SetWorldUpVectorP7_objectS0__ZL31PyvtkInteractorStyleUnicam_Type_ZL34PyvtkInteractorStyleUnicam_Methods_ZZ37PyVTKAddFile_vtkInteractorStyleUnicamE9constants_GLOBAL__sub_I_vtkInteractorStyleUnicamPython.cxx_ZL28vtkDebugLeaksManagerInstance_ZL37vtkInteractionStyle_AutoInit_Instance_ZL34PyvtkInteractorStyleUnicam_OnTimerP7_objectS0__ZL43PyvtkInteractorStyleUnicam_OnLeftButtonMoveP7_objectS0__ZL41PyvtkInteractorStyleUnicam_OnLeftButtonUpP7_objectS0__ZL43PyvtkInteractorStyleUnicam_OnLeftButtonDownP7_objectS0__ZL38PyvtkInteractorStyleUnicam_OnMouseMoveP7_objectS0_.LC0.LC1.LC2.LC6.LC3.LC4.LC5.LC7.LC8.LC9.LC10.LC12.LC13.LC14.LC15.LC16.LC11_ZN28vtkInteractionStyle_AutoInitD5Ev_ZN24vtkInteractorStyleUnicam16GetWorldUpVectorEv_ZN24vtkInteractorStyleUnicam3NewEv_ZNK24vtkInteractorStyleUnicam19NewInstanceInternalEv_ZN13vtkPythonArgs13ArgCountErrorEii_ZN13vtkPythonArgs17GetArgAsVTKObjectEPKcRbPyErr_Occurred_ZN13vtkPythonUtil20GetObjectFromPointerEP13vtkObjectBase__stack_chk_fail_ZN28vtkInteractionStyle_AutoInitD2EvDW.ref.__gxx_personality_v0_Z37vtkInteractionStyle_AutoInit_Destructv_ZN28vtkInteractionStyle_AutoInitD1Ev_ZN24vtkInteractorStyleUnicam3IsAEPKcstrcmp_ZN13vtkObjectBase8IsTypeOfEPKc_ZN13vtkPythonArgs8GetValueERPcPyLong_FromLong_ZN13vtkPythonArgs19GetSelfFromFirstArgEP7_objectS1__ZN13vtkPythonArgs10BuildTupleEPKdi_GLOBAL_OFFSET_TABLE_PyVTKObject_CheckPyVTKObject_GetObjectPyVTKObject_SetFlag_ZN13vtkPythonArgs13ArgCountErrorEiPKc_ZN13vtkPythonArgs8GetArrayEPdi_ZN24vtkInteractorStyleUnicam16SetWorldUpVectorEddd_Py_NoneStruct_ZN13vtkPythonArgs8GetValueERd_ZN13vtkPythonArgs8SetArrayEiPKdiPyvtkInteractorStyleUnicam_ClassNewPyVTKClass_AddPyvtkInteractorStyle_ClassNewPyType_ReadyPyVTKAddFile_vtkInteractorStyleUnicamPyDict_SetItemString_Py_Dealloc__dso_handle_ZN20vtkDebugLeaksManagerC1Ev_ZN20vtkDebugLeaksManagerD1Ev__cxa_atexit_Z38vtkInteractionStyle_AutoInit_Constructv_ZN24vtkInteractorStyleUnicam7OnTimerEv_ZN24vtkInteractorStyleUnicam16OnLeftButtonMoveEv_ZN24vtkInteractorStyleUnicam14OnLeftButtonUpEv_ZN24vtkInteractorStyleUnicam16OnLeftButtonDownEv_ZN24vtkInteractorStyleUnicam11OnMouseMoveEvPyType_TypePyVTKObject_DeletePyVTKObject_ReprPyVTKObject_StringPyObject_GenericGetAttrPyObject_GenericSetAttrPyVTKObject_AsBufferPyVTKObject_TraversePyVTKObject_GetSetPyVTKObject_NewPyObject_GC_Del,!`6"7#898: $J6}C#A%A8D&A'AB:!(n6E8F*3:)_6E*54#89HI%J48S:*6E+CN*@[#`An%sA|8D&A'AB:K+SK+6+&6NL~M8*NOO(OJMYEqE8P:# RS T" Q1 #< VG f D| V W W ,- 6Q En 8z *N ] : - 61 EN 8Z *Ni ^p : . 6 E. 8: *NI _P : / 6 E 8 *N) `0 :` 0 6 E 8 *N a:44 =#A&%+A9&>AL'QA^B XY$*Z/[4\;*?EJ[Q1X 0@ P#`=pTb@ 0cXdefghij8k@l4x Z(`8 @HXx `Nhx ^` = @ h `   0 w( 8@oH X> 4H\<   ,P` 8 T p ` @ .symtab.strtab.shstrtab.rela.text.data.bss.text._ZN24vtkInteractorStyleUnicam16GetWorldUpVectorEv.rela.text._ZNK24vtkInteractorStyleUnicam19NewInstanceInternalEv.rodata.str1.1.rela.text._ZN28vtkInteractionStyle_AutoInitD2Ev.gcc_except_table._ZN28vtkInteractionStyle_AutoInitD2Ev.rodata._ZN24vtkInteractorStyleUnicam3IsAEPKc.str1.1.rela.text._ZN24vtkInteractorStyleUnicam3IsAEPKc.rodata.str1.8.rela.text.startup.rela.init_array.rela.data.rel.ro.local.rela.data.rel.rela.data.rel.local.rela.data.rel.local.DW.ref.__gxx_personality_v0.comment.note.GNU-stack.note.gnu.property.rela.eh_frame.groupc@&3cH &5cT&2cd &@cp &< @<` &&,1 n i@H& 2m0@I&B"2F3\bW@ I&2p d@I& @K& @K&`! @K &# @L&$@P&(0$,1$A$ Y$T@(P&$'8 '3 1  Rj