Home

Comp 991 - University of North Carolina at Chapel Hill

image

Contents

1. Centerpanel eseereeeeee 5 i eniem Figure 9 Left Center and Right panels of the Graphical User Interface window However the Object Inspector and Pipeline Browser panels on the left are applicable for all types of data sets Refer to Appendix 3 Vortex Visualization Workbench Manual of Visualization of Flow Instability in Centrifugal Pumps for a guide on how to use the graphical user interface Lee 2011 Future plans include incorporating the preprocessing stage of the data into the Collaborative Scientific Visualization Workbench and fixing the Phantom interaction for two users 3 2 2 5 1 Phantom Omni Device Instructions Testcase 6 08 2011 Page 15 Figure 10 Phantom Omni Device The Phantom Omni Device controls the position of the Phantom Cursor the Sphere drawn in the View Window To move the sphere around hold the Phantom device like a pen Figure 11 Hold the The Phantom Omni Device stylus like a pen Press the first button the one closest to the lower end of the Phantom Device in order to generate a stream tracer at the position of the sphere You can move the sphere around and generate new stream tracers at other positions 6 08 2011 u Page 16 Figure 12 Top Sphere shaped cursor for the Phantom Omni Device Bottom Stream tracer tubes generated starting from the position of the Phantom Cursor when the Phantom button is pressed CAUTION a Please use small movements and avoid
2. frame 5SplitVerticalButton show frame gt SplitHorizontalButton gt show In myMainWindow the View Manager is set to full screen on default this gt Internals gt MultiViewManager gt toggleFullScreen this gt Internals gt MultiViewManager gt getFrame this gt Internals gt MultiViewManager gt getActiveView gt setMenuAutoHide true 4 2 1 3 Other Behaviors The pqFixPathsInStateFilesBehavior blockDialog is set to true to hide the Fix File Path dialog box that usually appears upon loading and reloading ParaView state files pgFixPathsInStateFilesBehavior blockDialog true All other default ParaView behaviors are enabled using the pqParaViewBehaviors class 4 2 2 ParaView Plugin 4 2 2 1 Input Options Users can turn on each of the following feature independently head tracking world in hand data set manipulation stereo separation control Phantom stream tracer seeding see 3 2 2 5 Special Use Case Phantom Omni Device for Vortex Visualization In the following sections User1 refers to the user using ParaViewRO bat and User2 refers to the user using ParaViewR1 bat These files are included in the Appendix and located in ParaView Examples CustomApplications Clone1 in the source code tree 6 08 2011 Page 34 4 2 2 2 Viewpoint Setup vtkCamera s capability to provide head tracked perspective for Cave Automatic Virtual Environments CAVE is capitalized upon to set up th
3. Figure 9 reproduced here for easy lookup Left Center and Right panels of the Graphical User Interface window 4 2 1 1 1 Menus and Toolbars The File Edit Sources Filters and Tools menus and all toolbars in ParaView are enabled using pqParaViewMenuBuilders The Active Variables Control toolbar which consists of the Color Map menu items and the Time Step Index menu item s positions were dragged to the Right Panel position see Figure 9 to bring them to the user s attention for the Vortex Visualization Workbench Refer to 3 2 2 5 Special Use Case Phantom Omni Device for Vortex Visualization for a description of the Vortex Visualization Workbench The Common menu toolbar is retained at the top of the UI in case the user would like to apply common ParaView filters to the data set Other toolbars were hidden from the user s view because the system lacks robust testing to ensure that the toolbars functionalities are not impacted at all by the customizations 4 2 1 1 2 Panels The Object Inspector and Pipeline Browser panels are retained from the Clonel example These UI panels are child elements of a QDockWidget docked in the left panel shown in Figure 9 The other ParaView panels originally shown in the Clonel example are removed from the Qt UI XML file for example the Selection Inspector and Animation View panels See http www digitalfanatics org projects qt_tutorial chapter09 html for a practical introduc
4. foreach pgOutputPort outputPort outputPorts helper Add outputPort gt getSource gt getProxy outputPort gt getPortNumber pqChangelInputDialog dialog filterProxy pqCoreUtilities main Widget dialog setObjectName SelectInputDialog if QDialog Accepted dialog exec helper RemoveAlIlValues User aborted creation return 1 helper RemoveAIIValues namedInputs dialog selectedInputs o Invoke ParaView Object Builder s CreateFilter method In the following example filters is the ProxyGroup value in the xml file TubeFilter is the SourceProxy name value A filter can be cast as pqPipelineSource or pqPipelineFilter pqPipelineSource createdSource pqApplicationCore instance gt getObjectBuilder createFilter filters TubeFilter namedInputs pqActiveObjects instance activeServer Display the filter in all views Refer to Creating a Source Display the source in all views in 4 2 2 5 2 Creating An Object 4 2 2 5 3 Deleting An Object e Obtain the object pqPipelineSource source pqApplicationCore instance gt getServerManagerModel gt findItem lt pqPipelineSource gt Name1 e Invoke pqObjectBuilder destroy if source pqApplicationCore instance gt getObjectBuilder gt destroy source 6 08 2011 Page 39 4 2 2 6 3Dconnexion SpaceNavigator and TNG 3B Serial Interface These are tracked as vrpn Analog Remot
5. 4 2 1 1 3 4 2 1 1 4 4 2 1 1 5 4 2 1 1 6 4 2 1 1 7 4 2 1 2 4 2 1 3 4 2 2 4 2 3 4 2 3 1 4 2 3 1 1 4 2 3 1 2 4 2 3 1 3 4 2 3 2 4 2 3 3 4 2 3 4 4 2 3 4 1 4 2 3 4 2 Nvidia 3D Vision 3Dconnexion SpaceNavigator TNG 3B Serial Interface Phantom Omni Device Testing 3Dconnexion SpaceNavigator Phantom Omni Device and TNG 3B Serial Interface Obtaining the Collaborative Scientific Visualization Workbench Setting up the Collaborative Scientific Visualization Workbench Software Implementation 26 ParaView Custom Application e eere eee eene 26 Graphical User Interface Window Menus and Toolbars Panels GUI Buttons for the Vortex Visualization Workbench Toggling Data Set Visibility Saving To Shared State Data Set Switching Pull Down Menu Time Slider View Window Other Behaviors Para View Pe iuoueeseoeues oo tes ws queo Cad vea as vr oi deep ge NM DUE 33 Input Options je ieeece rn oath ERE SA EROS E essa sensor Ro E ERN E CREE ERE ENT PEN DE abr ME 33 Viewpoint Setup Enable Head tracking Define the Display Surface Set the Display Configuration Updating VRPN Devices with QTimer ceeeeee eee eene eene 34 Rendering in ParaView Creating Editing Deleting ParaView Objects cccsccsscccssccsscccsscees os 35 Editing An Object Creating An Object 4 2 3 4 3 Deleting An Object 4 2 3 5 4 2 3 6 4 2 3 7 4 2 3 8 4 2 3 9 3Dco
6. C Users alexisc Documents EVE ParaView Qt Components Resources Icons vortexcore png Connect Button s Qt Signal to myMainWindow s Qt Slot QObject connect this Internals ToggleVortexCore SIGNAL clicked this SLOT vortexIdentification All the UI Buttons except for the Pushed to Shared State button are used to toggle the visibility of a component of the centrifugal pump data set 4 2 1 1 4 Toggling Data Set Visibility Refer to 4 2 2 5 Creating Editing Deleting ParaView Objects for how to obtain the pqDataRepresentation object used in this section The following code is used to make a ParaView object visible pqDataRepresentation inputRepr source gt getRepresentation view if inputRepr inputRepr gt setVisible true vtkSMRenderViewProxy proxy vtkSMRenderViewProxy SafeDownCast view gt getViewProxy proxy gt GetRenderWindow gt Render The following code is used to make a ParaView object invisible pqDataRepresentation inputRepr source gt getRepresentation view if inputRepr inputRepr gt setVisible false vtkSMRenderViewProxy proxy vtkSMRenderViewProxy SafeDownCast view gt getViewProxy proxy gt GetRenderWindow gt Render 4 2 1 1 5 Saving To Shared State 6 08 2011 Page 29 When the Push to Shared State button is pressed the ParaView state of the application is saved into a pre defined state file Re
7. Data Arrays Name Data Type Data Ranges Pressure float 55451 7 4400 Total Pressure float 58666 4 3466 Total Pressure in 4 float 55176 2 32959 9 Turbulence Kinetic5 float 3 67766e 10 0 9 Velocity float 2 95935 4 443 Velocity in Stn Fr7 float 7 57625 8 9621 Li ox Figure 2 A data set entry is selected in the Pipeline Browser The data set s mesh type is shown in the Object Inspector Panel Refer to section 2 1 User Interface of the The ParaView Tutorial for a tutorial on how to use the Pipeline Browser and Object Inspector panels Kitware Inc 2009 3 1 3 Visualization Filters ParaView filters are functional units that process the data to generate extract or derive features from the data Kitware Inc 2009 Data set meshes represent surfaces filters allow one to probe different scalar and vector variables within the surfaces ParaView filters can be applied to data sets loaded into ParaView readers sources i e standard ParaView objects such as cylinders and other filters to form a visualization pipeline Kitware Inc 2009 Here are several examples of filters listed in section 2 4 Filters of the The ParaView Tutorial Kitware Inc 2009 e Calculator o Evaluates a user defined expression on a per point or per cell basis e Contour o Extracts the points curves or surfaces where a scalar field is equal to a user defined value with a t
8. SLOT onTimeStepsChanged This is how the slider s time index is sent to the pqAnimationScene Qt slot if pqPVApplicationCore instance gt animationManager gt getActiveScene pqTimeKeeper timekeeper pqPVApplicationCore instance gt animationManager gt getActiveScene gt getServer gt getTimeKeeper emit this gt changeSceneTime timekeeper gt getTimeStepValue value 4 2 1 2 View Window The View window is extracted from the GUI window and set to full screen in order to maximize the users field of view Figure 15 Original ParaView The View Window is embedded in the GUI Window 6 08 2011 Page 31 Figure 16 The View Window extracted from the GUI Window and set to full screen upon initialization This is done by extracting the pqViewManager Qt custom widget from the QMainWindow s central widget and wrapping with with a QDockWidget set to docked Original xml entry widget class QMainWindow name pqClientMainWindow gt lt widget class QWidget name centralwidget gt widget class pqViewManager name MultiViewManager native true gt lt widget gt Current xml entry widget class QMainWindow name pqClientMainWindow gt widget class QDockWidget name proxyTabDockl lt property name floating gt lt bool gt true lt bool gt lt property gt lt set gt QDockWidget DockWidgetFloatable QDockWidget DockWidgetMova
9. r Shutdown Figure 4 The 3rd Tech Wide Area Tracker running correctly 3 2 1 2 Starting other VRPN Devices 6 08 2011 Page 11 1 Make sure that the following are connected to the computer sutherland cs unc edu a TNG 3B Serial Interface b SpaceNavigator c Phantom Omni Device 2 If any of the devices in Step 1 are not connected to the computer refer to 4 1 2 External devices for connection details 3 Log into sutherland cs unc edu 4 Double click on the Windows Desktop Shortcut with the label vrpn server bat 3 2 1 3 Starting the Workbench 1 Onsutherland cs unc edu double click on the Windows Desktop Shortcut with the label ParaViewRO bat to start the Workbench for the first user This user should wear the headband with the Hiball 3008 2 Double click on the Windows Desktop Shortcut with the label ParaViewR1 bat to start the Workbench for the second user This user should wear the headband with the Hiball 3012 3 2 2 Using the External Devices In the following sections the data set in the Testcase sections refers to the computational fluid dynamics CFD simulation loaded upon initialization of the Collaborative Scientific Visualization Workbench See 3 2 2 5 Special Use Case Phantom Omni Device for Vortex Visualization The instructions in the Testcase sections apply to any other data set 3 2 2 1 Head tracker The headband with Hiball 3008 should be worn by th
10. 3B Serial Interface 1 Connect a Rotary Potentiometer to the TNG3 B Serial Interface s Analog Input 1 and Analog Input 2 Refer to TNG 3B Sensors for a description of Rotary Potentiometers SenSyr LLC 2009 2 Connect the TNG 3B Serial Interface to the computer via a RS 232 serial port 9 pin connector 4 1 2 5 Phantom Omni Device Install the Phantom Device Driver PDD and OpenHaptics Toolkit 1 Visit http www sensable com products openhaptics toolkit htm Click on Download the the Academic Edition of OpenHaptics v3 0 with QuickHaptics for no charge today link and follow instructions for registration and download Unzip OpenHapticsAE_v3_0 zip Within the OpenHapticsAE_v3_0 folder navigate to Hardware Documentation Open PHNTMOmni UserGuide pdf In the Installing the PHANTOM Device Drivers section skip steps 1 3 Instead navigate to OpenHapticsAE_v3_0 win32 PHANTOM Device Drivers Follow the steps 4 10 of Installing the PHANTOM Device Drivers en e g 6 08 2011 Page 22 6 7 Follow the instructions in Connecting the PHANTOM Omni Device and Run PHANTOM Test to Verify Setup sections of the PHNTMOmni UserGuide pdf Navigate to OpenHapticsAE v3 0 win32 OpenHaptics Academic Edition Double click on setup exe to install the OpenHaptics Toolkit and follow the instructions given by the wizard 4 1 2 6 Testing 3Dconnexion SpaceNavigator Phantom Omni Device and TNG 3B Serial Interface Navigate to the serv
11. PHANTOM_SERVER gt stereo stereo type Crystal Eyes 6 08 2011 Page 51 5 3 TestParaView V RPNDevices bat README GOTO EndREADME To test that the SpaceNavigator Phantom Omni Device and TNG 3B Serial Interface are working modify lt COMPILEDVRPN_DIRECTORY gt client_src Release vrpn_print_devices exe lt DEVICE gt lt MACHINE_ADDRESS gt Replace the following tags lt COMPILEDVRPN_DIRECTORY gt with the directory of the compiled VRPN project E g C Users alexisc Documents E VE Compiled VRPN client_src Release vrpn_print_devices exe lt DEVICE gt with the device that is being tested To test the SpaceNavigator use deviceO To test the Phantom Omni Device use PhantomO To test the TNG 3B Serial Interface use tng3name MACHINE ADDRESS with the network address of the VRPN server Use localhost NOTE If the device is plugged into a different computer from the one running TestParaViewV RPNDevices bat 1 Click the Windows 7 Start Menu Button 2 In the Search programs and files toolbar type cmd and press Enter 3 Type ipconfig all 4 Scroll to the top of the window In the second and third lines after ipconfig all locate Host Name and Primary Dns Suffix Example Host Name Sutherland Primary Dns Suffix cs unc edu 5 Replace MACHINE ADDRESS with your computer s Host Name and Primary Dns Suffix in the following for
12. This is not used in the current ParaView VRPN Plugin but included for general knowledge Create vtkXMLReader class or one of its subclasses Set the data set file name Invoke vtkX MLReader Update e Creating a Source O O O To create a custom source sources xml is edited directly search for PhantomCursorSource in the file Ideally this should be inserted in a separate xml file located in the Plugin directory See http www itk org Wiki ParaView Plugin_HowTo Adding_a_Reader This would require modifications to the CMakeLists txt file and regeneration of the project via CMake Refer to 4 1 4 Setting up the project Invoke ParaView Object Builder s CreateSource method In the following example sources is the ProxyGroup value in the xml file PhantomCursorSource is the SourceProxy name value pqApplicationCore core pqApplicationCore instance pqServerManagerModel serverManager core gt getServerManagerModel pqPipelineSource pipelineSource core gt getObjectBuilder gt createSource sources PhantomCursorSource pqActiveObjects instance activeServer Display the source in all views o Loop through View objects See 4 2 2 5 Rendering in ParaView o For each View obtain the ParaView Display Policy refer to the pqDisplayPolicy ParaView class pqView view serverManager gt getItemAtIndex lt pqView gt i vtkSMRenderViewProxy proxy vtkSMRenderViewProxy SafeDownCast view gt getVi
13. left corner of the application Click Open Project Solution c Inthe Open Project dialog navigate to the location of the compiled project E g C Users alexisc Documents EVE CompiledParaView Click the solution file i e ParaView sln Click Open d Click on the Build menu item Click Configuration Manager Change Debug to Release in the drop down selection menu under Active solution configuration 6 08 2011 Page 26 e In the Solution Explorer panel on the left right click on ALL BUILD Click on Build This should take approximately 3 hours Configuration Manager xm Active solution configuration Active solution platform win32 vem plo Release oommmm Platform Build RelWithDebInfo New Win32 VJ Edit z winz2 y AmbientSpheres Release Win32 y AnalyzeReader Release Win32 v AnalyzeWriter Release Win32 v ArrayBasics Release Win32 y Arraylteration Release Win32 y Arrays Release Win32 V BalloonWidget Release Win32 y BandedContours Release Win32 v Cone Release Win32 y Cone2 Release Win32 v 3 Modify Program startup batch file a In Windows Explorer navigate to the location of the ParaView directory E g C Users alexisc Documents EV E ParaView b Click on Examples CustomApplications 9 Clonel c Right click ParaViewRO bat Click Edit d Edit the file based on the instructi
14. map QObject connect RestoreSignalMapper SIGNAL mapped QWidget this SLOT restoreWidget QWidget Connect decorations signals QObject connect this SIGNAL hideFrameDecorations frame SLOT hideDecorations QObject connect this SIGNAL showFrameDecorations frame SLOT showDecorations In pqMultiViewFrame the code connecting the Qt UI Button s signals to pqMultiView are commented out 6 08 2011 Page 33 this gt connect this gt ActiveButton gt defaultAction SIGNAL triggered bool SLOT setActive bool this connect this CloseButton defaultAction SIGNAL triggered bool 7 SLOT close Qt QueuedConnection this connect this MaximizeButton defaultAction SIGNAL triggered bool SLOT maximize Qt QueuedConnection this connect this RestoreButton defaultAction th SIGNAL triggered bool SLOT restore Qt QueuedConnection this gt connect this gt SplitVerticalButton gt defaultAction SIGNAL triggered bool SLOT splitVertical Qt QueuedConnection this connect this SplitHorizontalButton defaultAction SIGNAL triggered bool eA SLOT splitHorizontal Qt QueuedConnection In pqViewManager code for showing the Qt UI Buttons are commented out frame MaximizeButton show frame CloseButton show
15. 2 3 and 4 of the HiBall 3000 Wide Area Tracker User Manual 3rdTech Inc 2002 The original system uses the Wide Area Tracker installed in the Effective Virtual Environments lab of University of North Carolina at Chapel Hill Refer to Chapter 6 2 Customizing the HiBall Server ofthe HiBall 3000 Wide Area Tracker User Manual for description of the required configuration files Two 3rdTech HiBalls should each be mounted on headbands that will be worn by the user In the Tracker Configuration File make sure that there are two tether lines referring to the HiBall Configuration Files of the headband mounted HiBalls The configuration files that were used in the original system are included in the ParaView Plugins VRPN directory for reference purposes only These files are hiball3008 cfg hiball3012 cfg tracker3008 3012 cfg vrpn3008 3012 cfg 4 1 2 2 Nvidia 3D Vision Refer to the Hardware and Drivers section of http cismm cs unc edu core projects visualization and analysis setting up a simple stereo system for how to install and test the Nvidia 3D Vision setup The steps in the subsection Setting up Stereo on Multiple Displays are required for this system 4 1 2 3 3Dconnexion SpaceNavigator To set up the 3Dconnexion SpaceNavigator plug in the SpaceNavigator s USB cable to a USB port on the computer The SpaceNavigator driver should then auto install on the computer 4 1 2 4 TNG 3B Serial Interface To setup the TNG
16. 6 08 2011 Page 1 Collaborative Scientific Visualization Workbench Manual Comp 991 Paper Spring 2011 by Alexis Yee Lyn Chan 6 08 2011 1 2 3 3 1 3 1 1 3 1 2 3 1 3 3 1 4 3 1 5 4 1 4 1 1 4 1 1 1 4 1 2 4 1 2 1 Page 2 Introduction sesoesesoessesessessesessesossoeos D ODPJECVES er TTD User Mamilia iocos Gas ccc a Meis EH Using ParaVIeW asecsceeecesvsusesxeexebsvexexzevexvscteseeso Data File Formats Data Set Mesh Types Visualization Filters Color Map Testcases Creating and Editing ParaView Readers Sources amp Filters Operating the Workbench ees 10 Initializing the System Starting the head tracking system Starting other VRPN Devices Starting the Workbench Using the External Devices ccccccsccccccsccccccccsccccccssccccees 11 Head tracker Testcase SpaceNavigator Testcase Stereo Glasses Stereo Input Dial Testcase Special Use Case Phantom Omni Device for Vortex Visualization Phantom Omni Device Instructions Testcase Operating ParaView in Shared Mode 18 External Devices Push to Shared State Setup and Maintenance Manual 19 Project Setup oen biete tor en totes sia enoenes coesen ursus EO Libraries Setup VRPN External devices HiBall 3000 Wide Area Tracker 6 08 2011 Page 3 4 1 2 2 4 1 2 3 4 1 2 4 4 1 2 5 4 1 2 6 4 1 3 4 1 4 4 2 4 2 1 4 2 1 1 4 2 1 1 1 4 2 1 1 2
17. Area Tracker tracker address Replace TRACKER SERVER with the address of the VRPN server that is running the 3rdTech Hiball 3000 Wide Area Trackers E g Tracker0 G trackerl cs cs unc edu See Plugin VRPN TestParaViewV RPNDevices bat for further information on VRPN server address Only applicable when tracker is specified tracker sensor Index of HiBall For this batch file it should be 1 Only applicable when tracker is specified tracker origin Initial position of the first user The values are specified in Tracker Space Coordinates Only applicable when tracker is specified spacenavigator Turn on world in hand manipulation of dataset using 3Dconnexion SpaceNavigator spacenavigator address Replace lt SPACENAVIGATOR_SERVER gt with the address of the VRPN server that is running the 3Dconnexion SpaceNavigator E g device0 localhost See Plugin VRPN TestParaViewV RPNDevices bat for further information on VRPN server address Only applicable when spacenavigator is specified 6 08 2011 Page 50 tng Turn on stereo separation control with TNG 3B Serial Interface tng address Replace lt TNG_SERVER gt with the address of the VRPN server that is running the TNG 3B Serial Interface E g tng3name localhost See Plugin VRPN TestParaViewV RPNDevices bat for further information on VRPN server address Only applicable when tng is specified phantom Turn on Phantom for seeding stream
18. Area Trackers 4 2 2 10 1 vtkVRPNTrackerCustomSensor Initialization pqVRPNStarter initializes vtkVRPNTrackerCustomSensor with e the tracker s VRPN server host address specified in ParaViewRO bat and ParaViewR1 bat e the sensor index i e the index that informs ParaView whether this tracker is used for User and User2 e the Tracker Space Inverse Translation matrix 6 08 2011 Page 42 o vtkVRPNTrackerCustomSensor adds this matrix to the position reported by the VRPN device This subtracts the Tracker position in Tracker Space from the reported position giving us the translation delta values e the Tracker to ParaView World Rotation matrix o vtkVRPNTrackerCustomSensor multiplies this matrix to the translation delta This rotates the translation delta values to align with the ParaView world axes o The axes aligned translation delta values are set as the vtk VRPNTRackerCustomSensor Position and used by vtk VRPNTrackerCustomSensorStyleCamera o vtkVRPNTrackerCustomSensor also multiplies the rotation matrix to the rotation quaternion reported by the VRPN device to align the rotation with the ParaView world axes o The axes aligned rotation quaternion are set as the vtkVRPNTRackerCustomSensor Rotation and used by vtk VRPNTrackerCustomSensorStyleCamera 4 2 2 10 2 vtkVRPNTrackerCustomSensorStyleCamera Initialization pqVRPNStarter initializes vtkVRPNTrackerCustomSensorStyleCamera with e the corresponding vtkVRPNTrackerCustomSensor e t
19. COMPILEDPARA VIEW_DIRECTORY gt Plugins VRPN vtkInteractionDevice lib Release lt COMPILEDPARAVIEW_DIRECTORY gt bin paraview_revised exe tracker tracker address lt TRACKER_SERVER3 tracker sensor 0 tracker origin 8 68 5 3 1 25 spacenavigator spacenavigator address lt SPACENAVIGATOR_SERVER gt tng tng address lt TNG_SERVER gt phantom phantom address lt PHANTOM_SERVER gt stereo stereo type Crystal Eyes 6 08 2011 Page 49 5 2 ParaViewR1 bat README GOTO EndREADME To run the project modify PATH PATH lt QT_DIRECTORY gt lt PYTHON_DIRECTORY gt lt COMPILEDPARA VIEW_DIRECTORY gt Plugins VRPN vtkInteractionDevice lib Release lt COMPILEDPARAVIEW_DIRECTORY gt bin paraview_revised exe tracker tracker address lt TRACKER_SERVER3 tracker sensor 1 vrpn origin 8 58 5 3 1 3 spacenavigator spacenavigator address lt SPACENAVIGATOR_SERVER3 gt tng tng address lt TNG_SERVER gt phantom phantom address lt PHANTOM_SERVER gt stereo stereo type Crystal Eyes Replace the following tags lt QT_DIRECTORY gt with the directory in which you installed Qt E g C Qt bin PYTHON DIRECTORY with the directory in which you installed Python E g C Python27 COMPILEDPARAVIEW DIRECTORY with the directory of the compiled ParaView E g C Users alexisc Documents E VE CompiledParaView Input Options tracker Turn on headtracking with 3rdTech Hiball 3000 Wide
20. ECTORY gt with the directory in which you installed Qt E g C Qt bin PYTHON DIRECTORY with the directory in which you installed Python E g C Python27 COMPILEDPARAVIEW DIRECTORY with the directory of the compiled ParaView E g C Users alexisc Documents E VE CompiledParaView Input Options tracker Turn on headtracking with 3rdTech Hiball 3000 Wide Area Tracker tracker address Replace TRACKER SERVER with the address of the VRPN server that is running the 3rdTech Hiball 3000 Wide Area Trackers E g Tracker0 G trackerl cs cs unc edu See Plugin VRPN TestParaViewV RPNDevices bat for further information on VRPN server address Only applicable when tracker is specified tracker sensor Index of HiBall For this batch file it should be 0 Only applicable when tracker is specified tracker origin Initial position of the first user The values are specified in Tracker Space Coordinates Only applicable when tracker is specified spacenavigator Turn on world in hand manipulation of dataset using 3Dconnexion SpaceNavigator spacenavigator address Replace lt SPACENAVIGATOR_SERVER gt with the address of the VRPN server that is running the 3Dconnexion SpaceNavigator E g device0 localhost See Plugin VRPN TestParaViewV RPNDevices bat for further information on VRPN server address Only applicable when spacenavigator is specified 6 08 2011 Page 48 tng Turn on stereo sep
21. apped to rotation about the cross product of the negative of the direction of projection and the view up vector with the focal point as the center of rotation For Userl the axis vector is the first row of the vtkCamera ViewTransform Matrix The rotation for User1 is implemented by using vtkCamera Elevation For User2 the axis vector is the third row of the vtkCamera ViewTransform Matrix The rotation for User2 is implemented by copying the code of vtkCamera Elevation and adapting it to use the third row of vtkCamera ViewTransform s matrix as the axis of rotation This is necessary because User2 s view projection plane is actually obtained by rotating the actual vtkCamera s projection plane which corresponds to Userl s view projection plane by 90degrees counter clockwise See 4 2 2 2 Viewpoint Setup For both users e Positive values are mapped to clockwise rotation e Negative values are mapped to counter clockwise rotation o Channel4 Positive values correspond to tilting the SpaceNavigator to the right of Userl i e towards User2 Negative values correspond to tilting the SpaceNavigator to the left of Userl i e away from User2 These are mapped to rotation about the direction of projection using vtkCamera Roll Positive values are mapped to clockwise rotation Negative values are mapped to counter clockwise rotation o Channel 5 Non zero values correspond to rotating the SpaceNavigator around its up vector Clo
22. aration control with TNG 3B Serial Interface tng address Replace lt TNG_SERVER gt with the address of the VRPN server that is running the TNG 3B Serial Interface E g tng3name Q localhost See Plugin VRPN TestParaViewV RPNDevices bat for further information on VRPN server address Only applicable when tng is specified phantom Turn on Phantom for seeding streamtracers in the Vortex Visualization Use Case See 3 2 2 5 Special Use Case Phantom Omni Device for Vortex Visualization of the Collaborative Scientific Visualization Workbench Manual phantom address Replace PHANTOM SERVER with the address of the VRPN server that is running the Phantom Omni Device E g Phantom0 localhost See Plugin VRPN TestParaViewV RPNDevices bat for further information on VRPN server address Only applicable when phantom is specified This is an example PATH PATH C Qt bin C Python27 C Users alexisc Documents E VE CompiledParaView Plugins VRPN Wwtk InteractionDevice lib Release C Users alexisc Documents EVE CompiledParaView bin Release paraview_revised exe tracker tracker address Tracker0 tracker1 cs cs unc edu tracker sensor 0 tracker origin 8 68 5 3 1 25 spacenavigator spacenavigator address device0 localhost tng tng address tng3name Q localhost phantom phantom address Phantom0 localhost stereo stereo type Crystal Eyes EndREADME PATH PATH lt QT_DIRECTORY gt lt PYTHON_DIRECTOR Y gt lt
23. ata set reader source or filter is rendered e g position orientation scale etc edit the Representation i e pqDataRepresentation This is shown in the following examples Modifications done to the Representation is only done to the corresponding view window representation of the object Refer to ParaView Servers ServerManager Resources views_and_representations xml for each Representation s list of properties To modify properties that affect the geometry of a source e g radius length geometrical mesh resolution etc edit the Pipeline Source Replace pqDataRepresentation in the following examples with pqPipelineSource Refer to ParaView Servers ServerManager Resources sources xml for each Source s list of properties o Filter To modify properties that affect the geometry of a filter e g radius length etc or the properties determining the source to filter conversion e g input vector random sampling scale factor etc edit the Pipeline Filter Replace pqDataRepresentation in the following examples with pqPipelineFilter Refer to ParaView Servers ServerManager Resources filters xml for each Filter s list of properties o Color Opacity Color Map Scale pqPipelineRepresentation provides several methods for changing the variable by which a Reader Source or Filter can be colored by the type of color map used the opacity of the rendering etc e Obtain the ParaView Repres
24. ble lt set gt widget class pqViewManager name MultiViewManager gt widget To overwrite the ParaView behavior pqMultiViewFrame pqViewManager and pqMultiView classes are edited to disable view splitting and view maximization or minimization Refer to http www paraview org ParaQ Doc Nightly html classpqMultiView html for a description of relationship between the classes Ideally new classes extending the original ParaView classes should have been written and integrated into the project using steps documented at http www vtk org Wiki Extending ParaView at Compile Time 6 08 2011 Page 32 The Qt UI buttons for splitting the view into two views vertically or horizontally maximizing the view and closing the view are removed Prog Figure 17 Original ParaView The Qt UI buttons are marked with the red box From left to right button for splitting the view vertically button for splitting the view horizontally button for maximizing the view button for closing the view E paraview_revised olez o Figure 18 The Collaborative Scientific Visualization Workbench s View Window The Qt UI buttons are removed see red box In pqMultiView the code for connecting pqMultiViewFrame s Qt signals to pqMultiView s Qt slots are commented out QSignalMapper CloseSignalMapper new QSignalMapper frame QSignalMapper HorizontalSignalMapper new QSignalMapper frame QSignalMapper VerticalSignalMa
25. ce git rm cached VTK rmdir VTK i git submodule add git github com alexisylchan VTK git moaos B0 6 08 2011 Page 24 j git submodule init k git submodule update 4 1 4 Setting up the Collaborative Scientific Visualization Workbench 1 Start CMake a Windows Desktop Start Menu 3 All Programs CMake 2 8 gt CMake cmake gui b Where is the source code i Specify the location of the ParaView directory E g C Users alexisc Documents EVE ParaView c Where to build the binaries i Specify the location to store the compiled project This should not be within the source code directory E g C Users alexisc Documents EVE CompiledPara View d Check Group Advanced Click Configure Click Yes when prompted to create a new build directory e In the Specify the generator for this project pop up panel select Visual Studio 9 2008 from the drop down selection menu Click on Finish Ignore any CMake Warning about the Qt version f Check the following entries i BUILD select BUILD SHARED LIBS BUILD EXAMPLES and BUILD TESTING ii DirectX 2 DirectX INCLUDE DIR type in the include folder path in your DirectX installation E g C Program Files x86 Microsoft DirectX June 2010 Include iii DirectX DirectX LIBRARY the full path of d3d9 lib E g C Program Files x86 Microsoft DirectX June 2010 Lib x86 d3d9 lib iv PARAVIEWselect PARAVIEW_BUILD_PLUGIN_VRPNPlu
26. ckwise rotation is mapped to clockwise rotation and counter clockwise rotation is mapped to counter clockwise rotation of the vtkCamera about the view up vector centered at the focal point using vtkCamera Azimuth e Suggestions for improvement o Instead of recording the value of the channel with the highest reading and discarding the rest the system should read all channels and update the world translation and rotation with all the values o Forthe translation values map the direction of SpaceNavigator translation to direction of the vtkCamera position translation do not translate focal point do not invert direction for Dolly 4 2 2 8 Stereo Separation Control using TNG 3B Serial Interface The TNG 3B s callback sets the stereo separation using vtkCamera SetEyeOffset 6 08 2011 Page 41 e Upon TNG 3B device initialization the initial reading is recorded in the struct that is passed to the TNG callback function e The difference between the current reading and initial reading is scaled by 0 001 e The difference is added to vtkCamera EyeOffset 4 2 2 9 3rd Tech Wide Area Tracker and Sensable Phantom Omni Device pqVRPNStarter uses the VTK Interaction Device library which was adapted from original created by David Borland https github com davidborland vtkInteractionDevice to map the readings from the Wide Area Tracker and Phantom Omni Device to changes in the rendering of the scene in ParaView The VTK Interaction De
27. contain values of several variables for the particular point in the data set geometry Many common scientific data file formats are supported by ParaView for e g e EnSight case sos o commonly used in computational fluid dynamics CFD and computer aided engineering CAE e Protein Data Bank pdb o commonly used in molecular biology e Cosmology Files cosmo o commonly used in cosmology e Stereo Lithography stl o commonly used in stereolithography e ParaView Data file format pvd e Visualization Toolkit file format vtp vtu vti vts vtr The data sets loaded into ParaView are referred to as readers Refer to http paraview org Wiki ParaView Users Guide List of readers for the full list of file formats that can be loaded onto ParaView Kitware Inc 2011 3 1 3 Data Set Mesh Types Spatially embedded data set can be sub sampled using mesh sampling ParaView supports the following mesh types Uniform Rectilinear Image Data a 1 2 and 3 D array of data with points orthonormal to each other and regularly spaced in each direction 2 Non uniform Rectilinear Rectilinear Grid a 1 2 and 3 D array of data with axes orthonormal to each other Spacing may vary along each axis 3 Curvilinear Structured Grid a Each point can be placed at an arbitrary coordinate provides more compact memory footprint and variation in mesh shape 4 Polygonal Poly Data a Basic rendering primitives consisting o
28. e vtkS MProxyManager pxm vtkSMProxyManager GetProxyManager vtkSMProxy prototype pxm gt GetPrototypeProxy filters TubeFilter o Obtain the output port of the Source or Filter that will be processed by the new filter pqPipelineSource item pqApplicationCore instance gt getServerManagerModel gt getItemAtIndex pqPipelineSource sourceIndex pqOutputPort opPort qobject cast pqOutputPort item pqPipelineSource source qobject_cast lt pqPipelineSource gt item if source outputPorts push_back source gt getOutputPort 0 else if opPort outputPorts push_back opPort o Assign the output port to the input port of the newly created Prototype Filter Proxy This code from pqFiltersMenuReaction createFilter creates a dialog if the proxy contains more than 1 input port 6 08 2011 Page 38 QMap lt QString QList lt pqOutputPort gt gt namedInputs QList lt const char gt inputPortNames pqPipelineFilter getInputPorts prototype namedInputs inputPortNames 0 outputPorts If the filter has more than 1 input ports we are simply going to ask the user to make selection for the inputs for each port We may change that in future to be smarter if pgPipelineFilter getRequiredInputPorts prototype size gt 1 vtkSMProxy filterProxy pxm gt GetPrototypeProxy filters name vtkSMPropertyHelper helper filterProxy inputPortNames 0 helper RemoveAIIV alues
29. e classes from the VRPN library http www cs unc edu Research vrpn vrpn Analog remote html The callback for these classes are implemented in the pqVRPNsStarter cxx but are not part of the class 4 2 2 7 World in hand Data Set Manipulation using SpaceNavigator Callback functions e SNAugmentChannelsToRetainLargestMagnitude o Code adapted from AugmentChannelsToRetainLargestMagnitude callback in ParaView VRPN cxx in ParaView 11 8 2 o Only the channel with the highest value is read from the SpaceNavigator e handleSpaceNavigatorPos o Code adapted from handleAnalogPos callback in ParaViewVRPN cxx in ParaView 11 8 2 o This code is written for a specific orientation of the SpaceNavigator The SpaceNavigator USB wire should be pointing towards User1 i e to the left of User2 The SpaceNavigator should be positioned approximately halfway between the two users for better collaboration This is not needed for the code to work correctly o Inthe following description pushing and tilting actions apply to the joystick part of the SpaceNavigator not the entire SpaceNavigator Refer to 3 2 2 2 SpaceNavigator for illustration o Channel 0 e Positive values correspond to pushing the SpaceNavigator to the right of Userl i e towards User2 e This is mapped to translating the vtkCamera position and focal point by a positive value along the cross product of the direction of projection and the up vector e Negative values correspond t
30. e two user viewpoints This is implemented in pqVRPNStarter initializeEyeAngle 4 2 2 2 1 Enable Head tracking e Invoke vtkCamera SetHeadTracked e Set Eye Angle to 0 to allow the user to gradually tune up the stereo separation See 4 2 2 8 Stereo Separation Control using TNG 3B Serial Interface 4 2 2 2 2 Define the Display Surface e The surface orientation of the display is defined with the lower left coordinate lower right coordinate and upper right coordinate of the screen in ParaView space For an example of how the code is implemented for CAVEs see vtkCaveSynchronizedRenderers vtkCaveSynchronizedRenderers which defines the display screen coordinates in ParaView cave pvx e Inthe ParaView VRPN Plugin of this system o for Userl the following surface orientation is used lower left coordinate 1 1 1 lower right coordinate 1 1 1 Upper right coordinate 1 1 1 This is the surface orientation commonly used for the front wall of the CAVE Therefore the display surface and projection plane for User1 is parallel to the projection plane of the actual vtkCamera o for User2 the following surface orientation is used lower left coordinate 1 1 1 lower right coordinate 1 1 1 upper right coordinate 1 1 1 This is the surface orientation commonly used for the left wall of the CAVE Therefore the vtkCamera s projection plane has to be rotate 90 degrees counter clockwise to form the display su
31. e user viewing the application started by ParaViewRO bat the headband with Hiball 3012 should be worn by the user viewing the application started by ParaViewR1 bat The knob of the headband should be at the back of the user s head Try to keep the Hiball in a mostly upright position Occasionally the ceiling trackers may lose tracking of the Hiball When this happens the visualization freezes In this scenario you should stop or stabilize the movement of your head until head tracking is restored 3 2 2 1 4 Testcase Wearing the headband with Hiball 3008 start ParaViewRO bat Move your head to the right of the screen When looking at the monitor you should get the sense that you are looking through a window to the data set and your head is moving to the right of the data set 3 2 2 2 SpaceNavigator This controls the rotation and translation of the data set In the following description pushing and tilting actions apply to the joystick part of the SpaceNavigator marked with a red square not the entire SpaceNavigator To rotate the data set around the up direction rotate the SpaceNavigator around the up direction Similarly to pitch the data set forward tilt the SpaceNavigator forward to roll the data set to the left and right tilt the SpaceNavigator to the left and right To bring the data set towards you pull the SpaceNavigator towards you To bring the data set to the right left push the SpaceNaviga
32. ed in For example one who is very familiar with ParaView s keyboard shortcuts may prefer to use the mouse and keyboard to slice clip and apply other filters to the dataset rather than try to use the headtracking stereo and SpaceNavigator 1 Retain ParaView s filtering functionality 1 Therefore retaining all of ParaView s filtering functionality is important for interactivity with dataset This is already implemented in the current system 2 Value addition to original ParaView 1 In the original ParaView seeding streamtracers integration of vector field to generate streamlines is a difficult task The mouse is not suitable for specifying a point in 3 dimensional space In order to analyze the flow at a critical point one would have to rotate the object several times to get the position of the streamtracer source correct The following improvements have been implemented in the current system 1 Seeding of streamtracers using the Phantom haptic device for a single user Done 2 The Phantom haptic device can be used in conjunction with the SpaceNavigator which provides world in hand manipulation of the data set 3 Weight of headtracker 1 The weight of the headtracker may become an important factor that influences preference between the l original ParaView 6 08 2011 Page 46 2 current system without headtracking and 3 current system with headtracking 2 Using the workbench with head tracking for hours for investigating the datase
33. entation pqDataRepresentation object pqApplicationCore instance gt getServerManagerModel gt getItemAtIndex pqDataRepresentation object index o Note this method only works if you know the order in which objects are created in the ParaView pipeline It is not recommended in cases where the user is allowed to delete all objects and recreated objects in different orders 6 08 2011 o Page 36 Here is another method that might be less performant with lower chances of obtaining the wrong Representation but requires knowledge of the name of the object in the ParaView pipeline The fact that ParaView names the objects by the object type and order in which it is created makes this fairly reliable For example a Tube filter will be named Tube1 If the user modifies the name of the object in the ParaView Pipeline Browser upon object creation this will not work pqDataRepresentation object pqApplicationCore instance gt getServerManagerModel gt findItem lt pqDataRepresentation gt Name1 e Obtain the Representation Proxy vtkSMPVRepresentationProxy repProxy 0 repProxy vtkSMPVRepresentationProxy SafeDownCast object gt getProxy e Edit Representation Proxy s property In this example Position is used vtkSMPropertyHelper repProxy Position Set newPosition 3 e Issue Update VTK Objects repProxy gt Update VTK Objects 4 2 2 5 2 Creating An Object e Creating a Reader Q Q O O
34. er_src Release folder within the compiled VRPN project directory E g C Users alexisc Documents EVE CompiledV RPN server_src Release Download https github com alexisylchan ParaView tree simpleTwoParaV iew Plugins V RPN vrpn cfg to this directory Start the vrpn server by clicking on vrpn_server exe in the directory Download https github com alexisylchan ParaView blob simpleT woParaView Plugins VRPN TestPara Vie wVRPNDevices bat Modify TestParaViewVRPNDevices bat by following the instructions between the lines README and EndREADME marks the start and end of block comments in the TestParaViewV RPNDevices bat file The devices are running correctly on VRPN if you see these outputs on the a Using spacenavigator Test console push or tilt the SpaceNavigator to get readings EA C Windows system32 cmd exe cJ t x deviceGPlocalhost chans gt chans gt chans gt chans gt chans gt chans gt chans gt chans gt device localhost 6 66 6 66 chans gt device Plocalhost 6 66 6 66 chans gt device localhost LP PEE chans gt LM LM LM 6 LM LM 6 LM 6 LM LM 6 device localhost 6 66 6 66 chans gt 6 08 2011 Page 23 b Phantom Omni Device Test console ES C Windows system32 cmd exe JS Phantom localhost sensor quat 6 06 8 H quatvel lt 0 00 quat IN EN A quatvel lt 6 66 T 8 06 8 A H quatvel lt 6 66 r Phantom localh
35. erland cs unc edu both of which are located in the Effective Virtual Environments laboratory at UNC Chapel Hill Otherwise refer to section Setup and Maintenance Manual section for instructions on setting up the workbench in your laboratory 3 2 1 Initializing the System 3 2 1 1 Starting the head tracking system 1 2 3 n Reserve the 3rdTech Wide Area Tracker Ceiling with the Effective Virtual Environments group eve cs unc edu Log into the computer tracker1 cs cs unc edu The 3rdTech HiBall 3000 Wide Area Tracker User Manual can be found in C Hiball Config HiBallManual_1 5f 3rdTech Inc 2002 Make sure that two headband mounted Hiballs with the labels 3008 and 3012 respectively are connected to the CIB Refer to the Wide Area Tracker user manual Turn on the Wide Area Tracker by pressing the red switch of the CIB Double click on the Windows Desktop Shortcut with the label 3008 3012 ing on port 3883 gt em software sion 8 8 rdvare Hibal1 Conf ig G La Hiball Control Panel M Update Rates H2 Uptime Hiball 0 Hiball 1 iial 2 00 01 05 Details lt lt Configuration VRPN Server Beacons Post Fitering Multimode Priority r Config files Main C Hiball Config G Lab_2010 track View Log Ceiling C HibalNConfigNG Lab 2010 G La Tether Hiball 0 C hiball config hiball3008 cfg v Hiball 1 C hiballconfigNhiball3012 cfg itj 2 ia
36. ew space for testing purposes 4 2 2 11 3 vtkVRPNPhantomStyleCamera e This ParaView VRPN Plugin for the Collaborative Scientific Visualization Workbench is built on top of the VTK Interaction Device library which is built on top of VTK All other vtkInteractionDeviceStyle implementation classes access VTK classes to modify rendering attributes and do not require access to ParaView classes They were also originally built to work for VTK Therefore these classes are located within the VTK Interaction Device library In the case of vtkVRPNTrackerCustomSensorStyleCamera the camera position and orientation is modified via ParaView s instance of the vtkCamera class vtkV RPNTrackerCustomSensorStyleCamera accesses the vtkCamera through vtkRenderer that was initialized with in pqV RPNStarter However the vtk VRPNPhantomStyleCamera is located in the ParaView VRPN Plugin because it needs to create and modify ParaView objects which requires access to ParaView classes e Phantom Cursor Creation o pqVRPNStarter createConeInParaView creates the Phantom Cursor object using the PhantomCursorSource Refer to 4 2 2 4 2 Creating An Object for further details This was run only once during the development process The ParaView state file during the run was saved as ParaView Plugins VRPN clean pvsm o clean pvsm is loaded upon pqVRPNStarter initialization This is a workaround Basically all objects in the ParaView pipeline are deleted and the entire applicat
37. ewProxy 6 08 2011 Page 37 pqDisplayPolicy displayPolicy pqApplicationCore instance gt getDisplayPolicy e For each output port of the Source create the preferred representation as per the current Display Policy o This code is copied directly from pqObjectInspectorWidget show pqDisplayPolicy displayPolicy pqApplicationCore instance gt getDisplayPolicy for int cc 0 cc lt pipelineSource gt getNumberOfOutputPorts cc pqDataRepresentation repr displayPolicy gt createPreferredRepresentation pipelineSource gt getOutputPort cc view false if repr Il repr gt getViewQ continue pqView cur_view repr gt getView pqPipelineFilter filter qobject_cast lt pqPipelineFilter gt pipelineSource if filter filter gt hideInputIfRequired cur_view e Creating a Filter o To modify the default properties upon filter creation filters xml is edited directly Ideally a new filter in a separate xml file located in the Plugin directory should be created See http www itk org Wiki ParaView Plugin HowTo Adding_ a Filter This would require modifications to the CMakeLists txt file and regeneration of the project via CMake Refer to 4 1 4 Setting up the project The following code is modified from pqFiltersMenuReaction createFilter o Create the filter proxy from a ParaView prototype filters is the ProxyGroup value in the xml file TubeFilter is the SourceProxy name valu
38. f Kitware Inc 2010 November 1 Retrieved from How to Write a Custom ParaView Application http www vtk org Wiki Writing Custom Applications Kitware Inc 2011 June 1 Retrieved from ParaView List of File Readers http paraview org Wiki ParaView Users Guide List of readers Lee J C 2011 Visualization of Flow Instability in Centrifugal Pumps Nvidia Corporation 2009 March NVIDIA Quadro vs GeForce GPUs Features and Benefits Retrieved from http www nvidia com object quadro geforce html SenSyr LLC 2009 February 16 Retrieved from TNG 3B Sensors http www sensyr com manuals T NG3BSensors pdf
39. f points lines and 2D polygons Connections between cells can be arbitrary or non existent 5 Unstructured Grid 6 08 2011 Page 7 a Consists of points lines 2D polygons 3D tetrahedral and nonlinear cells Similar to polygonal data except that they can represent 3D tetrahedra and nonlinear cells which cannot be directly rendered Refer to section 1 2 Basics of Visualization of the The ParaView Tutorial for further information Kitware Inc 2009 When a data set is loaded into the Collaborative Scientific Visualization Workbench or ParaView an entry will be created in the Pipeline Browser In the following example a data set SAS res t2564 21 vtu is loaded Figure 1 Data set entry in the Pipeline Browser To see the data mesh type of the data set e Click on the data set entry in the Pipeline Browser panel e Click on the Information tab of the Object Inspector panel 6 08 2011 Object Inspector Properties Display Information Properties Filename SAS res t2564 21 vtu Statistics Page 8 Path C Users alexisc Documents Comp7 15 Project S Variables of the data set SAS res 2564 21 vtu is selected The Eye icon appears next to a Pipelme Browser entry when the data set ts set to Visible m the view window Clicking on it toggles the visibility of the correspondmg Pipeline Browser entry 4 m Pipeline Browser T B builtin o SAS res t2564 21 vtu
40. fer to 3 2 3 2 Push to Shared State for a description of the state sharing mechanism The following code for saving into the state file is adapted from pqSaveStateReaction saveState const QString amp filename QString filename QString C Users alexisc Documents EVE CompiledParaView bin Release StateFiles 1 pvsm pqApplicationCore instance gt saveState filename pqServer server pqActiveObjects instance activeServer pqServerResource resource resource setScheme session resource setPath filename resource setSessionServer server getResource pqgApplicationCore instance serverResources add resource pqgApplicationCore instance serverResources save pqApplicationCore instance gt settings 4 2 1 1 6 Data Set Switching Pull Down Menu Refer to 3 2 2 ParaView Sources and State Files of the Visualization of Flow Instability in Centrifugal Pumps document for context Lee 2011 The data set switching pull down menu is implemented using QComboBox e The Qt signal raised by the QComboBox is connected to a myMainWindow class Qt slot which raises another Qt signal e The Qt signal raised by myMainWindow is connected to a Qt slot in the VRPN Plugin s pqVRPNStarter o The data set switching implementation has to happen within the VPRN Plugin i e pqVRPNStarter instead of the Custom Application i e myMainWindow because it requires reloading the state file
41. gin PARAVIEW_ENABLE_PYTHON and PARAVIEW_BUILD_QT_GUI A CMake 284 C Users alexisc Documents EVE CompiledParaView File Tools Options Help Where is the source code C Users alexisc Documents EVE ParaView Where to build the binaries C Users alexisc Documents EVE CompiledParaView Search Name Value PARAVIEW BUILD PLUGIN VRPNPlugin a a a a a a a 6 08 2011 Page 25 PARAVIEW BUILD QT GUI g Click Configure h Check the following entries i PYTHON PYTHON LIBRARY the full path of the file python27 lib E g C Python27 libs python27 lib ii PYTHONSPYTHON_INCLUDE_DIR the folder path in the python installation E g C Python27 include iii PYTHON PYTHON EXECUTABLE This may be under Ungrouped Entries full pathname of python exe for example C Python27 python exe i VRPN2 VRPN INCLUDE DIR the location of the VRPN directory E g C Users alexisc Documents EV E vrpn ii VRPN9 VRPN LIBRARY the location of the file vrpn lib E g C Users alexisc Documents EV E Compiled V RPN Release vrpn lib s ISISI IsISISIsIsIsIsIsIsIsIsIsIsIsIsIs i Click Configure again and CMake will process everything a second time This time you should not see any items in red j Click Generate 2 Start Microsoft Visual Studio 2008 a Windows Desktop Start Menu gt All Programs Microsoft Visual Studio 200823 Microsoft Visual Studio 2008 b Click on the File menu item in the top
42. he vtkRenderer that it will modify 4 2 2 10 3 vtkVRPNTrackerCustomSensorStyleCamera In vtkVRPNTrackerCustomSensorStyleCamera e the rotation quaternion from vtkVRPNTrackerCustomSensor Rotation is converted to a rotation matrix e the rotation matrix is concatenated to the translation delta vector from vtk VRPNTrackerCustomSensor Position to form o the Head Transform matrix supplied to ParaView via vtkCamera SetHeadPose vtkCamera contains code to utilize this matrix o to create perspective correct views 4 2 2 11 Vortex Streamline Seeding with Phantom Omni Device The vtkVRPNPhantom is a wrapper for the vrpn Tracker and vrpn Button classes that listen to the VRPN s Phantom values 4 2 2 11 1vtkVRPNPhantom Initialization pqVRPNStarter initializes vtkVRPNPhantom with e the Phantom s VRPN server host address specified in ParaViewRO bat and ParaViewR1 bat e the Phantom Space Inverse Translation matrix o vtkVRPNPhantom adds this matrix to the position reported by the VRPN device This subtracts the Phantom position in Phantom Space from the reported position giving us the translation delta values 6 08 2011 Page 43 o the number of vrpn Button that it is tracking The Phantom Omni Device has 2 buttons 4 2 2 11 2 vtkVRPNPhantomStyleCamera Initialization pqVRPNStarter initializes vtkVRPNPhantomStyleCamera with e the corresponding vtkVRPNPhantom e the vtkRenderer that it will modify e file used to log Phantom positions in ParaVi
43. in future implementation The state file time stamp is recorded in the Plugin o Set Up Viewpoint The user viewpoint is set up using the steps in 4 2 2 2 Viewpoint Setup o Reinitialize VRPN Devices All VRPN Devices are initialized See the following sections for details e 42 2 7 World in hand Data Set Manipulation using SpaceNavigator 4 2 2 8 Stereo Separation Control using TNG 3B Serial Interface 4 2 2 10 Head tracking using 3rdTech Wide Area Trackers 4 2 2 11 Vortex Streamline Seeding with Phantom Omni Device 4 2 2 13 Switching Data Sets for Vortex Visualization Refer to 3 2 2 ParaView Sources and State Files of the Visualization of Flow Instability in Centrifugal Pumps document for context Lee 2011 When the user switches the data set type the state file for that particular data set is loaded using the same operations described in Loading the new Shared State of 4 2 2 12 Push to Shared State Implementation 4 3 System Design Considerations amp Future Work 4 3 1 Interactivity with dataset compared to original Paraview Once the initial novelty of using Virtual Reality input devices with ParaView fades interactivity with dataset will become an important factor Rather than looking at a dataset from multiple viewpoints in order to perceive the shape of the structure scientists may prefer a measurement tool measurement feature that automatically generates all the values that they are interest
44. ing Warp by Scalar which maps Log AR s magnitude to height in Z axis Log M is mapped to the Red White Purple color map as seen in the color map legend on the right Log M color map and Log AR height in Z axis Log M M teks Wd 14 949828736177 Freqpeney pes F bg 400 T P 200 1fmets x10 3 Figure 3 The variable Log AR of a data set is mapped to height in Z axis using the Warp by Scalar filter and the variable Log M of the same data set is mapped to the Red White Purple color map To choose the variable by which a data set is colored with e Click on the data set entry in the Pipeline Browser panel e In the Right panel of the Collaborative Scientific Visualization workbench click on the drop down selection menu and select the desired variable See Figures 9 and 14 in 3 2 2 5 Special Use Case Phantom Omni Device for Vortex Visualization 3 1 5 Testcases Creating and Editing ParaView Readers Sources amp Filters 6 08 2011 Page 10 1 2 3 2 Download the test data sets from http www paraview org Wiki images 5 5d Para View TutorialData tar gz Perform Exercises 2 1 2 7 and Exercises 2 9 2 10 Exercise 2 8 is excluded because multiple view windows are not allowed in the Collaborative Scientific Visualization Workbench Operating the Workbench This section assumes that you have access to the 3rdTech Wide Area Tracker system and the computer suth
45. ion is reset before a ParaView state file can be loaded in order for this Plugin to work correctly The reason is that if a state is loaded after a source is created in pqgVRPNStarter createConeInParaView in general pqObjectBuilder createSource the source cannot be rendered using the steps in 4 2 2 4 Rendering in ParaView It is highly possible that there is a better solution Note State loading occurs when the ParaView application is being reset due to the loading of a shared state see 4 2 2 12 Push to Shared State Implementation and during data set switching see 4 2 2 13 Switching Data Sets for Vortex Visualization e Phantom Cursor Position Update o The Phantom position is obtained from vtkVRPNPhantom o This position value is transformed into the vtkCamera space This is necessary to ensure that the orientation of the Phantom Cursor s movement on the visual display corresponds to the orientation of the user s hand movement regardless of the vtkCamera s orientation which is user defined via the SpaceNavigator The transformation is done by multiplying the position with vtkCamera CameraLightTransformMatrix o The position value is scaled by the size of the vtkCamera FrustumPlanes See vtkVRPNPhantomStyleCamera ScaleByCameraFrustumPlanes 6 08 2011 Page 44 This is not satisfactory The Phantom Cursor is occasionally moved to a position that is very distant from the vtkCamera FocalPoint due to great cha
46. it with the following options i Adjusting your PATH environment Use Git Bash only ii Configuring the line ending conversions Checkout as is commit as is 7 VRPN download vrpn_07_08 zip refer to 4 1 1 1 Setup VRPN for installation and compilation instructions ftp ftp cs unc edu pub packages GRIP vrpn 4 1 1 1 Setup VRPN 1 Start CMake a Windows Desktop Start Menu gt All Programs CMake 2 82 CMake cmake gui b Where is the source code 6 08 2011 Page 20 i Specify the location of the VRPN directory E g C Users alexisc Documents EVE vrpn c Where to build the binaries i Specify the location to store the compiled VRPN project This should not be within the source code directory E g C Users alexisc Documents EVE CompiledV RPN d Check Group Advanced Click Configure Click Yes when prompted to create a new build directory e Inthe Specify the generator for this project pop up panel select Visual Studio 9 2008 from the drop down selection menu Click on Finish Ignore any CMake Warning about the Qt version Specify the generator for this project Visual Studio 9 2008 Use default native compilers Specify native compilers Specify toolchain file for cross compiling Specify options for cross compiling f Click Generate 2 Start Microsoft Visual Studio 2008 a Windows Desktop Start Menu gt All Programs Microsoft Visua
47. jerkiness when operating the 3Dconnexion SpaceNavigator This may cause the sphere Phantom Cursor to be lost in space b Ifthe Sphere disappears switch the Data set type to another data set and switch it back to the original one that you were looking at This is a workaround 6 08 2011 SST DataSe SST DataSet SAS DataSet T Toggle Contextual Flow Time Step 4 Push to Shared State Figure 13 Switching vortex visualization data sets Page 17 The stream tracer will take a few seconds to be generated the green progress bar will appear on the UD Occasionally the color map i e the map of colors representing a variable of the data set of the stream tracer may be reset to the first variable instead of the user selected variable You would have to change the color map Solid Color ReasonForTermination Angular Velocity IntegrationTime Normals Pressure Rotation Total Pressure Total Pressure in 4 TubeNormals Turbulence Kinetic5 9000000000 Velocity in Stn Fr7 Vorticity Figure 14 Changing the variable used for the color map 6 08 2011 Page 18 3 2 3 Operating ParaView in Shared Mode 32 3 1 External Devices 1 Each user has an independent view of the data set at all times because each user has a headband mounted HiBall tracker 2 Users can independently control the stereo separation of their views because each user has a TNG 3B Serial Interface dial or rota
48. l Studio 20083 Microsoft Visual Studio 2008 b Click on the File menu item in the top left corner of the application Click Open Project Solution c Inthe Open Project dialog navigate to the location of the compiled VRPN project E g C Users alexisc Documents EVE CompiledVRPN Click the solution file i e VRPN sln Click Open d Click on the Build menu item Click Configuration Manager Change Debug to Release in the drop down selection menu under Active solution configuration e In the Solution Explorer panel on the left right click on ALL BUILD Click on Build A VRPN Microsoft Visual Studio File Edit View Qt Project Build Debug Tools Test Window Hel H ab o E T 3 zd Solution VRPN 51 projects EE cH add vrpn cookie amp NIU Ez bdbox_client ij Build Ez c interface example Rebuild Ez client_and_server Clean EA clock drift estimato EA Continuous Project Only i jd Core VRPN Client Li Project Dependencies EH Core VRPN Server L Project Build Order Ez Experimental H EA tt client Custom Build Rules 4 1 2 External devices 6 08 2011 Page 21 4 1 2 1 HiBall 3000 Wide Area Tracker This system requires the installation and configuration of the HiBall 3000 Wide Area Tracker to enable head tracking The installation and configuration steps can be found in Chapters
49. mat Host Name Primary Dns Suffix Example Sutherland cs unc edu Examples SpaceNavigator Test C Users alexisc Documents EVE CompiledVRPN client_src Release vrpn_print_devices exe device0 localhost SpaceNavigator Test Result Analog device0 localhost 0 00 0 01 0 03 0 00 0 06 0 01 6 chans Phantom Omni Device Test C Users alexisc Documents EVE CompiledVRPN client_src Release vrpn_print_devices exe Phantom Q localhost Phantom Omni Device Test Result Tracker Phantom0 QG localhost sensor 0 pos 0 00 0 07 0 09 quat 0 13 0 16 0 74 0 64 Tracker Phantom G localhost sensor 0 vel 0 00 0 00 0 00 quatvel 0 00 0 00 0 00 1 00 TNG 3B Serial Interface Test C Users alexisc Documents EVE Compiled VRPN client_src Release vrpn_print_devices exe tng3name Q localhost TNG 3B Serial Interface Test Result 6 08 2011 Page 52 Analog tn3name G localhost 245 00 124 00 2 chans EndREADME lt COMPILEDVRPN_DIRECTORY gt client_src Release vrpn_print_devices exe lt DEVICE gt lt MACHINE_ADDRESS gt Works Cited 3rdTech Inc 2002 January 1 HiBall 3000 Wide Area Tracker User Manual IEEE Visualization Contest 2011 Committee 2011 March 21 Retrieved from IEEE Visualization Contest 2011 Data Set http viscontest sdsc edu 201 1 dataset dataset html Kitware Inc 2009 September 18 Retrieved from The ParaView Tutorial http www itk org Wiki images 8 88 ParaViewTutorial38 pd
50. nges in the vtkCamera s position and orientation via the SpaceNavigator The Phantom Cursor could not be retrieved because the Phantom Omni Device imposes a limit to the range of motion When this happens the workaround is to switch the Vortex Visualization data set which forces a state reloading and application resetting See 4 2 2 13 Switching Data Sets for Vortex Visualization o The Phantom Cursor s position is modified using the steps in 4 2 2 4 1 Editing An Object for ParaView Representation objects e Vortex Streamline Seeding o Change the StreamTracer position To change the Stream Tracer s seed position modify the Center property of the Stream Tracer s Point Source See http www vtk org Wiki ParaView Users_Guide List_of_filters Stream_Tracer The code is copied directly from pqStreamTracerPanel pqStreamTracerPanel o Delete the Tube filter that was previously applied to the Stream Tracer o Create a new Tube filter with the Stream Tracer as the input e Phantom Position Logging o The Phantom position is recorded to a standard ofstream for test data evaluation See 4 Visualization System Evaluation of Visualization of Flow Instability in Centrifugal Pumps Lee 2011 4 2 2 12 Push to Shared State Implementation Ideally the modifications to the ParaView objects should be propagated automatically between the two users during the Shared State mode However there are no available documentation on ho
51. nnexion SpaceNavigator and TNG 3B Serial Interface 39 World in hand Data Set Manipulation using SpaceNavigator Stereo Separation Control using TNG 3B Serial Interface 3rdTech Wide Area Tracker and Sensable Phantom Omni Device Head tracking using 3rd Tech Wide Area Trackers e 41 6 08 2011 Page 4 4 2 3 9 1 vtkVRPNTrackerCustomSensor Initialization 4 2 3 9 2 vtkVRPNTrackerCustomSensorStyleCamera Initialization 4 2 3 9 3 vtkVRPNTrackerCustomSensorStyleCamera 4 2 3 10 Vortex Streamline Seeding with Phantom Omni Device 42 4 2 3 10 1 vtk V RPNPhantom Initialization 4 2 3 10 2vtk V RPNPhantomStyleCamera Initialization 4 2 3 10 3vtk V RPNPhantomStyleCamera 4 2 3 11 Push to Shared State Implementation eeeee eee ee eee eene een 44 4 2 3 12 Switching Data Sets for Vortex Visualization 4 3 System Design Considerations amp Future Work 45 4 3 1 Interactivity with dataset compared to original Paraview 4 3 2 Fidelity of interaction with dataset 43 3 Collaboration 5 Appendix enaren H 5 1 ParaViewRO bat 5 2 ParaViewR1 bat 5 3 TestParaViewV RPNDevices bat 6 08 2011 Page 5 1 Introduction This is a manual for the Collaborative Scientific Visualization Workbench Manual created as part of a Comp 991 project at the University of North Carolina at Chapel Hill UNC Chapel Hill 3 User Manual is written for studen
52. o pushing the SpaceNavigator to the left of Userl i e away from User2 e This is mapped to translating the vtkCamera position and focal point by a negative value along the cross product of the direction of projection and the up vector o Channel 1 e Positive values correspond to pushing the SpaceNavigator towards Userl i e to the left of User2 e This is mapped to translating the vtkCamera position away from the focal point using vtkCamera Dolly pow 1 0 1 channel_value The choice to scale the translation value to the power of 1 is taken from ParaView VRPN cxx in ParaView 11 8 2 e Negative values correspond to pushing the SpaceNavigator away from Userl i e to the right of User2 e This is mapped to translating the vtkCamera position towards the focal point using vtkCamera Dolly pow 1 0 1 channel value o Channel2 e Positive values correspond to pulling the SpaceNavigator upwards e This is mapped to translating the vtkCamera position and focal point by a positive value along the up vector 6 08 2011 Page 40 Negative values correspond to pushing the SpaceNavigator downwards e This is mapped to translating the vtkCamera position and focal point by a negative value along the up vector o Channel3 Positive values correspond to tilting the SpaceNavigator away from Userl i e to the right of User2 Negative values correspond to tilting the SpaceNavigator towards Userl i e to the left of User2 The values are m
53. olerance of 5 decimal points This surface is often also called an isosurface e Clip 6 08 2011 Page 9 o Intersects the geometry with a half space The effect is to remove all the geometry on one side of a user defined plane e Slice o Intersects the geometry with a plane The effect is similar to clipping except that all that remains is the geometry where the plane is located e Threshold o Extracts cells volumetric for a 3D data set and planar for a 2D data set where a scalar field is equal to a user selected variable and user defined range with a tolerance of 5 decimal points default range is the entire range of values of that variable within the data set e Extract Subset o Extracts a subset of the data set by defining either a sub volume or a sub sampling rate e Stream Tracer o Seeds a vector field with points and then traces those seed points through the steady state vector field e Programmable Filter o Filters the data set according to a Python script given by the user To apply a filter to a data set click on the data set entry in the Pipeline Browser see Figure 2 In the menu toolbars select Filters Alphabetical name of filter 3 1 4 Color Map To simultaneously view multiple variables of a same data set it is common to apply a filter to a variable of the data set and map another variable to a set of colors referred to as the color map In the following example Log AR variable of a 2D data set is filtered us
54. ons between the lines marks the start and end of block comments in the ParaViewRO bat file README and EndREADME e Repeat steps 3c and 3d for ParaViewR1 bat The directories that you use to modify the tags within the ParaViewRO bat and ParaViewR1 bat files should be the same between both files 4 2 Software Implementation 4 2 1 ParaView Custom Application The Collaborative Scientific Visualization Workbench consists of two instances of a Custom ParaView Application written based on guidelines in http www vtk org Wiki Writing Custom Applications and extended from the Clonel example in ParaView 3 11 2 Each application consists of a Graphical User Interface window and a View window See Figures 8 and 9 4 2 1 1 Graphical User Interface Window The Graphical User Interface GUI is implemented by myMainWindow which extends QMainWindow from the Qt library 6 08 2011 Page 27 a ParaView ReVistd koea File Ed View Sources Filters Tools Macros Help Collaboration Surface Ruska was ERSA k ke EAE E AO AES Object Inspector me Properbes Display Information X ocete 7 Right panel f Tooge Vortex Core Direction Toggle Contextual Flow QD Prietoecursor 20 Togge Turbine Geometry E UserSeededStreamT acer Bree IB ceometry vtu Time Step IB Wsveantacers ovd BD VtPvertex pvd Toggle Fast Time Senes View E Penes 4 Push to Shared State Centerpanel B vi eetexCoreovd sees 0086
55. or the right eye should increase Put on the Stereo Glasses The data set should appear in 3D 3 2 2 5 Special Use Case Phantom Omni Device for Vortex Visualization A special use case that was implemented for the first user use ParaView0 bat and HiBall 3008 is the Vortex Visualization workbench This use case showcases how the Phantom Omni Device can be used to probe computational fluid dynamics CFD data via interactive seeding of stream tracers with the Phantom Omni Device The current implementation is tailored to a preprocessed version of the sets of data provided by the Institute of Applied Mechanics Clausthal University Germany Dipl Wirtsch Ing Andreas Lucius for the IEEE Visualization Contest 2011 at http viscontest sdsc edu 2011 data set data set html The data set is loaded upon initialization of the workbench Figure 8 Screenshot of the View Window Vortex visualization data is loaded upon initialization 6 08 2011 Page 14 AII the other VRPN devices work for the first user for the Vortex Visualization Workbench The center and right panel of the Graphical User Interface window is tailored for this use case Sources Filters Tools Macros Help Collaboration Surface T Hawkee Object Inspector Propertes Display information D reset 9 Odete 2 Right panel IB Wsveantracersovd BD Portex pd DvP vetces B vi PeetexCore_ovd
56. ost B 4 m quat 8 806 vel lt 8 808 8 00 380 0805 quatvel lt 6 66 r Phantom localhost sensor 6 66 0 07 09 gt quat 06 tom localhost sensor vel lt 6 06 6 60 quatvel lt 6 06 PhantomB localhost ILE 6 66 quat 66 H quatvel lt 6 66 e eos Ex chans gt 124 00 227 00 chans gt tng3name localho 125 00 227 66 chans gt tng3nameB localhost 126 66 227 06 chans gt tng3name localhost 127 00 227 00 lt 2 chans tng3nameBlocalhost 128 66 227 880 lt 2 chans tng3nameB localhost 129 00 227 8080 lt 2 chans gt tng3name localhost 136 66 227 06 chans gt tng3name localhost chans gt chans gt 2 chans gt tng3name localhost 134 00 227 00 lt 2 chans 4 1 3 Obtaining the Collaborative Scientific Visualization Workbench 1 Start Git Bash a Windows Desktop Start Menu gt All Programs Git gt Git Bash 2 Type the following commands in the Git Bash window a cd your folder path i E g I type cd c Users alexisc Documents EV E without quotes to store the project in C Users alexisc Documents EVE git clone git github com alexisylchan ParaV iew git b simpleTwoParaView cd ParaView git rm cached Plugins VRPN vtkInteractionDevice rmdir Plugins VRPN vtkInteractionDevice git submodule add b phantomManipulateObj git github com alexisylchan vtkInteractionDevice git Plugins VRPN vtkInteractionDevi
57. pper new QSignalMapper frame QSignalMapper MaximizeSignalMapper new QSignalMapper frame QSignalMapper RestoreSignalMapper new QSignalMapper frame CloseSignalMapper gt setMapping frame frame HorizontalSignalMapper gt setMapping frame frame VerticalSignalMapper gt setMapping frame frame MaximizeSignalMapper gt setMapping frame frame RestoreSignalMapper gt setMapping frame frame connect close button QObject connect frame SIGNAL closePressed CloseSignalMapper SLOT map QObject connect CloseSignalMapper SIGNAL mapped QWidget this SLOT removeWidget QWidget Qt QueuedConnection connect split buttons QObject connect frame SIGNAL splitHorizontalPressed HorizontalSignalMapper SLOT map QObject connect HorizontalSignalMapper SIGNAL mapped QWidget this SLOT splitWidgetHorizontal QWidget QObject connect frame SIGNAL splitVerticalPressed VerticalSignalMapper SLOT map QObject connect VerticalSignalMapper SIGNAL mapped QWidget this SLOT splitWidgetVertical QWidget QObject connect frame SIGNAL maximizePressed aximizeSignalMapper SLOT map QObject connect MaximizeSignalMapper SIGNAL mapped QWidget po this SLOT maximizeWidget QWidget QObject connect frame SIGNAL restorePressed RestoreSignalMapper SLOT
58. rface and projection plane for User2 4 2 2 2 3 Set the Display Configuration e The surface orientation coordinates from 4 2 2 2 3 Define the Display Surface are used to compute the parameters required by vtkCamera SetConfigParams The code for this is copied directly from vtkCaveSynchronizedRenderers SetDisplayConfig e The parameters are used in vtkCamera to compute head tracked perspective correct viewpoints and view frustums 4 2 2 3 Updating VRPN Devices with QTimer Within a QTimer callback input data is collected from the following VRPN devices After the collection the visualization of the data set is updated with the new information 4 2 2 4 Rendering in ParaView 6 08 2011 Page 35 To issue a render call to ParaView e Obtain the Server Manager Model pqServerManagerModel serverManager pqApplicationCore instance gt getServerManagerModel e Loop through View objects obtain each View object s View Proxy s Render Window Invoke the Render Window s render command pqView view serverManager gt getItemAtIndex lt pqView gt i vtkSMRenderViewProxy proxy vtkSMRenderViewProxy SafeDownCast view gt getViewProxy proxy gt GetRenderWindow gt Render 4 2 2 5 Creating Editing Deleting ParaView Objects 4 2 2 5 1 Editing An Object e Refer to 3 1 Using ParaView for explanation of ParaView Reader Source and Filter objects o Representation To modify properties that affect how an object d
59. ry potentiometer 3 The SpaceNavigator affects the world in hand manipulation of the data set for both users The afore mentioned behavior of the external devices holds true even when each user is independently applying filters and modifying the data set using the Graphical User Interface The modifications will not be automatically shared between the users 3 2 3 2 Push to Shared State To share your modification with the other user click on the UI button Push to Shared State The other user s workbench application will discard all its current modifications and load your modifications The other user has to do likewise to share his her modifications This requires clear communication between users before any modification is pushed to the shared state 6 08 2011 Page 19 4 Setup and Maintenance Manual 4 1 Project Setup The project is built for the Windows 7 operating system on a 32 bit system The hardware required include e HiBall 3000 Wide Area Tracker for head tracking the Nvidia 3D Vision bundle and two compatible monitors for stereo e the TNG 3B Serial Interface for manipulating stereo separation e 3Dconnexion SpaceNavigator to provide world in hand data set manipulation e optionally the Phantom Omni Device for Vortex Visualization see 3 2 2 5 Special Use Case Phantom Omni Device for Vortex Visualization Note In the original system the display consists of two Samsung SyncMaster 2233 LCD monitor
60. s and resetting the application which in turn requires reinitializing the VRPN devices managed by the VRPN Plugin o Fora description of the implementation within the pqVRPNStarter s Qt slot refer to 4 2 2 7 Switching Data Sets for Vortex Visualization 4 2 1 1 7 Time Slider The Time Slider in the right panel which enables interactive exploration of data set across multiple time steps is implemented using Qslider The Qt signal raised by the QSlider is connected to a myMainWindow class Qt slot which raises another Qt signal containing the slider s time index That Qt signal is connected to pqAnimationScene setAnimationTime which takes the slider s time index as an input This is the implementation within myMainWindow s initialization code Connect QSlider s Qt signal to myMainWindow s Qt slot QObject connect Slider0 SIGNAL valueChanged int this SLOT sliderTimeIndexChanged int Get the active scene QPointer lt pqAnimationScene gt Scene pqPVApplicationCore instance animationManager gt getActiveScene Connect myMainWindow s Qt signal to pqAnimationScene s Qt slot 6 08 2011 QObject connect this Page 30 SIGNAL changeSceneTime double Scene SLOT setAnimationTime double The slider s time index range has to be updated whenever the time index range of the Animation Scene is changed QObject connect Scene SIGNAL timeStepsChanged this
61. s that are Nvidia 3D Vision compatible The Nvidia Quadro cards are chosen over Geforce cards since only Quadro cards provide stereo for OpenGL applications and many scientific visualization software products are written in OpenGL Nvidia Corporation 2009 Each monitor is connected via a dual linked DVI cable to an Nvidia Quadro 5000 card Because Quadro cards only have one DVI output port it takes two cards to support the dual display The two cards are connected with an Nvidia SLI Connector with the SLI Mosaic Mode turned on to enable stereo on both displays at the same time 4 1 1 Libraries Install and compile the following libraries 1 Microsoft Visual Studio 2008 Professional Edition available free of charge for students at https www dreamspark com 2 32 bit Qt compile from source using the Microsoft Visual Studio 2008 previously installed Instructions can be found here http dcsoft wordpress com 2010 01 30 how to setup qt 4 5 visual studio integration 3 Microsoft DirectX SDK 32 bit http www microsoft com downloads en details aspx displaylang en amp FamilyID 3021d52b 514e 41d3 ad02 438a3ba730ba 4 Python 2 7 1 install from binaries http python org ftp python 2 7 1 python 2 7 1 msi 5 CMake 2 8 4 install from binaries http www cmake org cmake resources software html 6 Git for Windows select Full installer for official Git 1 7 4 http code google com p msysgit downloads list a Install G
62. t causes discomfort 4 3 2 Fidelity of interaction with dataset A question would be whether fidelity of interaction with dataset in as much as one could envision interacting with the dataset in real life would produce new insights or whether displaying measurements would suffice To ensure high fidelity the following should be implemented 1 Accurate Head tracking accurate rendering based on head tracked position 2 Haptic Rendering the ability to feel the data set using the sense of touch via the Phantom Omni Device 4 333 Collaboration To enable collaboration there are three stages of implementation 1 Continuous observation occasional modification in shared state Done 2 Continuous modification continuous sync between two users 3 Enable switching between viewpoints 6 08 2011 Page 47 5 Appendix 5 1 ParaViewR0 bat README GOTO EndREADME To run the project modify PATH PATH lt QT_DIRECTORY gt lt PYTHON_DIRECTOR Y gt lt COMPILEDPARAVIEW_DIRECTORY gt Plugins VRPN vtkInteractionDevice lib Release lt COMPILEDPARAVIEW_DIRECTORY gt bin paraview_revised exe tracker tracker address lt TRACKER_SERVER3 tracker sensor 0 tracker origin 8 68 5 3 1 25 spacenavigator spacenavigator address lt SPACENAVIGATOR_SERVER3 gt tng tng address lt TNG_SERVER gt phantom phantom address lt PHANTOM_SERVER gt stereo stereo type Crystal Eyes Replace the following tags lt QT_DIR
63. tion to XML editing for Qt applications Alternatively you can download a WYSIWYG what you see is what you get Qt Microsoft Visual Studio Add In designer from http qt nokia com downloads visual studio add in Refer to http doc qt nokia com vs add in 1 1 7 index html for a tutorial on how to use the add in 6 08 2011 Page 28 The center panel shown in Figure 9 is a QDockWidget docked in the right area of the application QDockWidgets cannot be docked in the center area of a QMainWindow To form the right panel that is situated to the right of this center panel a vertical QToolBar is placed to the right of this QDockWidget See 4 2 1 1 1 Menus and Toolbars 4 2 1 1 3 GUI Buttons for the Vortex Visualization Workbench As ParaView is written based on Qt the UI buttons in the center panel are implemented using Qt signals and slots Refer to http doc qt nokia com 4 7 signalsandslots html for an introduction to Qt signals and slots The Qt UI buttons raise Qt signals which are connected to myMainWindow class Qt slots in myMainWindow cxx The UI button actions are implemented in these Qt slots The following example sets the icon for the Qt GUI Button Toggle Vortex Core and connects the button s Qt signal to myMainWindow s Qt slot Set Button Icon Size and Image Source this gt Internals gt ToggleVortexCore gt setIconSize QSize 24 24 this gt Internals gt ToggleVortexCore gt setIcon QIcon
64. tor to the left right to bring the data set upwards or downwards push the SpaceNavigator upwards or downwards 6 08 2011 Page 12 Figure 5 Joystick part of the SpaceNavigator 3 2 2 2 1 Testcase 1 Tilt the SpaceNavigator to the left The data set should tilt to the left 2 Push the SpaceNavigator away from you The data set should away from you 3 Pull the SpaceNavigator upwards The data set should move upwards 3 2 2 3 Stereo Glasses This is the easiest device to use Just put it on the glasses and press the Button if you do not see the data set rendered in stereo Refer to 3 2 2 4 Stereo Input Dial for the testcase Figure 6 The On Off button of Nvidia 3D Stereo glasses 3 2 2 4 Stereo Input Dial A dial actually a rotary potentiometer see 4 1 2 4 TNG 3B Serial Interface is connected to this blue box This dial will change the separation of images rendered on the screen for stereo viewing The user using ParaViewRO bat and HiBall 3008 should use the dial marked with 1 on the TNG 3B Serial Interface and the user using ParaViewR1 bat and HiBall 3012 should use the dial marked with 2 6 08 2011 Page 13 Input for Dial 1 Input for Dial 2 Figure 7 Input ports for Dial 1 and Dial 2 of the TNG 3B Serial Interface 3 2 2 4 1 Testcase Start ParaViewRO bat Turn Dial 1 clockwise The separation between the two images one for the left eye and one f
65. tracers in the Vortex Visualization Use Case See 3 2 2 5 Special Use Case Phantom Omni Device for Vortex Visualization of the Collaborative Scientific Visualization Workbench Manual phantom address Replace PHANTOM SERVER with the address of the VRPN server that is running the Phantom Omni Device E g Phantom0 localhost See Plugin VRPN TestParaViewV RPNDevices bat for further information on VRPN server address Only applicable when phantom is specified This is an example PATH PATH C Qt bin C Python27 C Users alexisc Documents E VE CompiledParaView Plugins VRPN Wwtk InteractionDevice lib Release C Users alexisc Documents EVE CompiledParaView bin Release paraview_revised exe tracker tracker address Tracker0 tracker1 cs cs unc edu tracker sensor 1 vrpn origin 8 58 5 3 1 3 spacenavigator spacenavigator address device0 localhost tng tng address tng3name Q localhost phantom phantom address Phantom0 localhost stereo stereo type Crystal Eyes EndREADME PATH PATH lt QT_DIRECTORY gt lt PYTHON_DIRECTOR Y gt lt COMPILEDPARA VIEW_DIRECTORY gt Plugins VRPN vtkInteractionDevice lib Release lt COMPILEDPARAVIEW_DIRECTORY gt bin paraview_revised exe tracker tracker address lt TRACKER_SERVER3 tracker sensor 1 tracker origin 8 68 5 3 1 25 spacenavigator spacenavigator address lt SPACENAVIGATOR_SERVER gt tng tng address lt TNG_SERVER gt phantom phantom address lt
66. ts faculty and staff in Computer Science or other scientific fields who have access to equipment at UNC Chapel Hill 4 Setup and Maintenance Manual is written for those with Computer Science background who may be interested in implementing similar projects or extending the work done in this project The project is implemented using ParaView a data analysis and visualization software Kitware Inc 2009 2 Objectives The objectives of this system are l to visualize scientific data sets as virtual objects by providing the single user s head tracked stereo world in hand manipulation of the data set and peripheral vision provided by a secondary display at right angles with the primary display 2 to enable collaborative observation of scientific data sets by two users 3 to enable occasional visualization modification of scientific data sets while in shared state 6 08 2011 Page 6 3 User Manual 3 1 Using ParaView This is a brief overview of how to use ParaView to visualize scientific data i e convert the raw data collected in scientific experiments or simulations into a form that is viewable and understandable to humans Kitware Inc 2009 Refer to http www vtk org Wiki images 6 65 Para ViewTutorial36 pdf for an in depth tutorial Kitware Inc 2009 3 1 Data File Formats ParaView can be used to visualize spatially embedded multi variable 2D and 3D data and 2D images Each record within a data set can
67. vice library classes used are e vtkDeviceInteractor o manages a list of vtkInteractionDevice and their corresponding vtkInteractionDeviceStyle pqV RPNStarter invokes vtkDeviceInteractor Update during the QTimer callback which invokes vtkInteractionDevice Update e vtkInteractionDevice applies Transforms to the VRPN device readings in its record vtkInteractionDevice InvokeInteractionEvent e vtkInteractionDevice invokes a vtkCommand UserEvent that is listened to by the vtkInteractionDeviceStyle e vtkInteractionDeviceStyle implements the changes in the rendering of the scene in ParaView e This decouples the VRPN device reading thread from the rendering thread e vtkVRPNTrackerCustomSensor o extends vtkVRPNTracker which implements vtkInteractionDevice e vtkVRPNTrackerCustomSensorStyleCamera o extends vtkVRPNTrackerStyleCamera which implements vtkInteractionDeviceStyle e More information about vtkVRPNTrackerCustomSensor and vtk VRPNTrackerCustomSensorStyleCamera is provided in 4 2 2 10 Head tracking using 3rdTech Wide Area Trackers e vtkVRPNPhantom o adapted from vtkVRPNTracker and implements vtkInteractionDevice e vtkVRPNPhantomsStyleCamera o adapted from vtkVRPNTrackerStyleCamera and implements vtkInteractionDeviceStyle e More information about vtkVRPNPhantom and vtkVRPNPhantomStyleCamera is provided below in 4 2 2 11 Vortex Streamline Seeding with Phantom Omni Device 4 2 2 10 Head tracking using 3rd Tech Wide
68. w to implement this at this point The idea of sharing a single state file between two ParaView applications came from Cory Quammen from the UNC Chapel Hill CISMM group This is the current implementation e When a user decides to push his her modifications to the Shared State the modifications are inserted into a pre created Paraview state file The ParaView application that edited the state file records the time stamp of the file after that particular modification e Each ParaView application periodically checks the time stamp of the state file i e within the QTimer callback See 4 2 2 3 Updating VRPN Devices with QTimer If the time stamp differs from the application s recorded time stamp it means that another ParaView application has modified the state file and the current application should load the new Shared State e Loading the new Shared State o Uninitialize VRPN Devices The QTimer thread is stopped The following objects are deleted e QTimer object e SpaceNavigator and TNG 3B Serial Interface vrpn Analog Remote instances e vtkDevicelInteractor used for managing the Wide Area Tracker and Phantom Omni Device o Reset Application Refer to pqCommandLineOptionsBehavior resetApplication 6 08 2011 Page 45 o Load New Shared State pqLoadStateReaction loadState is invoked with the name of the shared state file This file name is hardcoded due to time constraints It should be extracted into a constants file

Download Pdf Manuals

image

Related Search

Related Contents

Millex®-GP (33 mm)    Gear Head WC740i  RF-BL 設計・施工ガイド  FM – 6 FERROGRAM MAKER USER MANUAL  New Buck Corporation CR8T User's Manual  Whirlpool 3LE5710XK Clothes Dryer User Manual  modo de empleo español mode d`emploi français instructions for    In this user manual we have tried to describe the matters concerning  

Copyright © All rights reserved.
Failed to retrieve file