PIPER  1.0.1
PIPER Graphical User Interface

This page provides basic documentation on the Graphical User Interface (GUI) of the PIPER application.

PIPER main window

The main window is composed of:

  • A menu bar which gives access to
  • Module Selection to load a module
  • The module area displays the current module user interface which are built using the same layout:
    • The center area of the main window is dedicated to the main module output, often a 3D Display of the model with feedback of the modifications applied by the module
    • The module functionalities are accessed through GUIs organized in toolbox windows
    • The right side of the main window contains:
      • specific buttons to show and hide these toolbox, this can also be done using keyboard shortcuts, Ctrl + Shift + specific letter
      • buttons to select the current mouse tool
  • The Log panel outputs status messages from the application and the modules (Log panel button: show/hide the log panel).

The toolbox windows let the user organize his display, even on multi monitors setups, according to its current task. Moreover the size and position of the toolbox windows are persistent through executions of the application.

app_mainWindow.png
Piper main window

Project menu

  • Project → New : Clear the current project and start with empty model, metadata, environment and target.
  • Project → Open : Open an existing Piper project .ppj file.
  • Project → Save : Save the current project, model, metadata, targets and links to the environment definition files.
  • Project → Import → Import HBM from vendor files : Creates a new Piper model from a human body model (From finite element model or from graphic format, only OBJ format is supported) . It tequires to select:
  • Project → Import → Import Piper metadata : Import Piper metadata from a .pmr file metadata with selection of metadata types to import
    app_importMetadata.png
    Import metadata from pmr file
  • Project → Export → Export HBM to vendor files : Exports the model (transformed by the Piper application) in a new directory. It Generates a copy of the original Finite Element Model files in the selected output directory with updated node coordinates and updated parameter values.
  • Project → Export → Export Piper metadata : Export Piper metadata to a .pmr file with selection of metadata types to export. All current metadata of selected types are deleted and replaced by imported ones.
    app_exportMetadata.png
    Import metadata from pmr file
    Export landmarks name and coordinates in a simple ascii file
  • Project → Export → Export nodes coordinates : Export entities nodes FE code id and coordinates in simple ascii files, one file per entity
  • Manage environment models: Add or remove environment models defined in vendor files.
    app_importEnv.png
    Manage environment models
  • Quit: Quit the application

Target menu

  • Target → Clear targets: Remove all current targets
  • Target → Import targets: Replace the current target list with the list contained in a .ptt file.
  • Target → Export targets: Export the current target list to a .ptt file.

Model History menu

All actions that modify the loaded model create a "history node" in the history menu. You can use this menu to undo those action. The history is linear, i.e. it is not possible to do multiple "branches": if you undo an action, you can redo it, but if you undo, then do some other action, the previously undone action will be lost forever. The current state is highlighted in the menu by bold font. The "state" is effectively the coordinates of the nodes of the model.

Module Selection

Available modules integrated in the PIPER application can be selected in the module selection panel, see PIPER Modules Overview page for documentation on each module. The application starts with the Check Module loaded.

Module parameters

Some modules have parameters which can be set in the Module Parameters dialog accessible in the Project menu and a tool icon. The description of these parameters can be display with the Help button. The modules parameters are saved in the project .ppj file.

app_moduleParameter.png
Set modules parameters

3D Display

The interactive navigation is performed using the mouse :

  • rotate (yaw+pitch) : right click "press&hold"
  • rotate (roll) : right click "press&hold" while "holding" the "Ctrl" key
  • pan : middle click "press&hold"
  • zoom : the scroll wheel

The left click is kept for interactive manipulation in the 3D view.

The application integrates two distinct viewer: The Physics simulation viewer available in physics based modules and the Generic viewer in other modules.

Generic viewer

The generic 3D viewer is a tool available in all modules where visual exploration of the data is relevant or helpful. Figure Generic 3D viewer: Tools shows an interface of a module using the generic viewer. The marked GUI controls operate tools available in the viewer: Display Settings - under number 1 in the Figure - provide a few additional options to control behaviour of camera and some rendering options; Display Options - under number 2 - are used to choose which parts of the loaded project should be displayed and which should be hidden; Picking - under number 3 - provide useful tools for selecting any part of the model seen on the screen using mouse; and Blanking - also under 3 - is a simple, yet effective tool to further ease exploration of the model by removing selected elements.
Each module that uses the generic 3D viewer is using the same "instance" of it. This means that whatever settings you change, data you load, the way you move the camera etc. will remain the same when you switch to another module. An exception for that are data that are module specific - for example, kriging control points you load in the Kriging Module will be removed from the viewer once you leave the module.
The display is capable of displaying all the geometry and metadata in your project. However, some features, such as e.g. highlighting of selected points, displaying normals, landmarks and others, require a graphic card with OpenGL 3.2 capabilities. OpenGL 3.2 is a standard from the year 2009, so you should not run into problems if your computer is not older than that. If it is, you will be warned in the application log. Some of the features will switch to using a "legacy code", so you should still be able to use them, but the performance will be significantly slower and might have some bugs, as the "legacy code" is not tested very thoroughly.
If you encounter some problems or glitches related to the 3D viewer, please first make sure that your graphic card drivers are up to date before reporting the issue.

generic3DViewerTools.png
Generic 3D viewer: Tools

Display Settings

The group of "display settings" buttons currently consists of five buttons in two rows. The first row serves to manipulate the camera by which the scene (your model) is observed, the second row contains tools for displaying geometrical properties of the model.
Camera settings (functionality of each button, from left to right):

  • Reset Camera: clicking this button will reset the focal point of the camera (the point the camera is "looking at") to (0,0,0), resets zoom factor to 1 (i.e. no zoom) and sets the camera position to such position that all visible objects in the scene are within sight. However, it does not change the direction of the camera. It is useful mainly if you "get lost" while exploring the data.
  • Toggle Projection Type: this button controls the type of geometrical projection the camera uses - perspective or parallel (orthogonal). When it is on (by default), parallel projection is used. Be aware that internally, many variables controlling the camera, e.g. zoom factor, are dependent on the type of projection, therefore, switching the projection types will likely make it appear that the moved or changed position.
  • Pick Focal Point: clicking this button will enable picking of custom focal point of the camera, which is, among other thigns, the center of rotation for the camera. Click anywhere on the model to set the point as the focal point. Note that until you disable the button, the focal point picking is still active, so you can try many different points until you find one you are satisfied with. Picking the focal point will disable any other Picking you might have active and vice versa, choosing some picking tool will disable the focal point picking. This tool is useful when you need to inspect part of the model from up close.

Geometrical properties (functionality of each button, from left to right):

  • See element edges: toggling this button (default off) allows you to see outlines of edges of each element.
  • See element normals: toggling this button (default off) allows you to see normalized normals of each element (this can take a few seconds for large models).

Display Options

In this group of buttons, there is one button for each type of metadata (left to right, top to bottom): entities, landmarks, generic metadata, frames, joints, contours and targets. Upon clicking it, you will open a window similar to the one in Figure Display options (that one is for the "entity" metadata type). By clicking on each object in the list, you will hide or show it - by default, everything is shown. There are also buttons for showing all, hiding all and inverting the selection.
The last button in the group contains visual settings, allowing you to change the colours, opacity and other visual properties of the metadata.
The "entity" window also contains two additional checkboxes: "visualize entities" and "visualize full model". This allows you to choose the mode in which the model is displayed - either as a set of multiple objects, one for each entity as they are defined by your metadata; or as a single mesh consisting of all the elements in the model. Since they obviously exist in the same place, you will usually want to have displayed only one of them, although you have the option to see both, which might be useful in conjuction with Blanking or the opacity settings (right next to the entities).

3dDisplayVtkEntityDisplay.png
Display options

Picking

Upon clicking the "Picking" button in the right-hand panel, a pop-up window with picking tools will open - see the Figure below. In Piper, "picking" is the word we use for "selecting using the display". Whenever you need to select something, you will find all the available tools in this window. All selection is persistent across all modules that use the generic 3D viewer - what you select in one module, you can process in another one. Selected objects will be highlighted by bright green colour.
Hint: Note that in some cases, especially in the case of picking elements, the objects need to be coloured in another way - for example based on the element quality. This will disable the selection highlighting, but will not de-select the elements! They will still be selected - to turn the selection highlighting back on, simply click on some element picker (see below) and the "highlighting by selection mode" will be turned on again (while, naturally, "highlighting by quality" will be turned off).
The first part of the window is a grid of buttons called "Pickers". Each of the buttons initializes some type of picking on a specified "target". Currently, there are three different types and five different targets, though not all combinations are available. Before explaining each of them, a few general notes:

  • Picking is done by single clicking the left mouse button. This currently cannot be re-mapped.
  • You can change the behaviour of picking by using SHIFT and CTRL keys. The behaviour is slightly different based on the type of the picker, but the general idea is that by holding SHIFT, you are appending to the current selection, by holding CTRL you are de-selecting from the current selection and if you not hold anything, the previous selection is discarded before doing a new one.
  • Check the "See hints" checkbox on the bottom of the Picking window to see detailed description for each picker, including the behaviour of SHIFT and CTRL keys.

Picking types:

  • Single pick: picking is done by single left mouse button click on the target. Always selects only one target, useful when you are selecting only a handful of specific objects.
  • Rubber band: picking is done by holding the left mouse button and dragging. This will draw a rectangle and interactively (i.e. as you are dragging) select all that is on the surface beneath the rectangle.
  • Box: picking is done by holding left mouse button and dragging. As with the rubber band, this will draw a rectangle on the screen, however, picking is done only after the mouse is released. Upon the release, a box will be constructed by projecting the rectangle orthogonally "from the screen into the scene" - the front and back side of the box will be computed so that everything in the scene within the drawn rectangle is inside the box. Because the box is constructed based on orthogonal projection of the rectangle, the camera is automatically switched to orthogonal projection mode if it was in perspective. You can switch it to perspective manually after activating the picker, however, the shape of the resulting box you will get when using perspective projection will be rather counter-intuitive, so we recommend using orthogonal projection.

Picking targets:

  • Entity: will pick entire entities. Note that while this will colour the entity all in the birght green colour, it does not mean that the elements are selected. If you attempt to do some selected elements-based operation, it will not do anything as all the elements will still be internally marked as not selected.
  • Node: will pick nodes of the mesh. Picked nodes will be highlighted by small green spheres around them. When using the single picker for nodes, the nodes are selected based on vicinity to the point you click, i.e. you do not need to click "exactly" on the node (as that is theoretically not possible, since a node has no size), but rather a node that is closest to the point you click will be selected.
  • Element: will select elements. Known performance issue: in the current version of Piper, highlighting selected elements on transparent models uses up a lot of computational resources, resulting in slow performance of camera interaction. We are currently looking for a solution. In the meantime, it is recommended to turn off transparency when doing complicated element selection tasks (you can do that in the Display Options - entity window).
  • Landmark: will select landmark. You have to click directly on the sphere that represents the landmark. For landmarks that consist of multiple points, all points of the selected landmark will be highlighted by teal colour, while the exact selected point will be highlighted by the standard bright green.
  • Frame: will select a whole frame. Simply click on any of the arrows representing the frame.

3dDisplayVtkPicking.png
Picking

Second part of the Picking window - "Selection on entire scene" - contains several buttons for performing global selection tasks, most of them rather self-explanatory. The tasks are performed on each object that is in the scene and is visible. The last two buttons in the that group - "Build boxes..." - server to create a selection box around selected elements and nodes. Note that clicking these buttons will not perform any actual selection, only creates the boxes - those can than be used for selection using the "Selection boxes options" (see below) or other tasks, e.g. in the Transformation smoothing. A simple algorithm for point clustering is used for building the boxes - the points/elements are clustered and box is built around each cluster. While the algorithm will work well for some basic cases of well defined clusters, in many cases a manually constructed box will have a better fit.
The last part is "Selection boxes option". You have to select some box picker to make this part of the window enabled. It groups together several control elements for using selection boxes (from top to bottom):

  • See selection boxes: this checkbox allows you to toggle the visibility of all selection boxes. When visible, boxes are rendered as semi-transparent green boxes.
  • Remove all boxes: this will remove all the boxes from the viewer, but note that it will not do any de-selection of the content within the boxes. This cannot be undone!
  • Select box: using these two buttons you can cycle through and select the created boxes. The selected box will be highlighted by a teal colour (it is recommended to check the "See selection boxes" if you are about to use this feature). Upon selecting some box, the buttons below will become enabled allowing some basic operations on the box:
    1. Remove selected box: removes the box from the scene. Again, note that this will not do any de-selection and that it cannot be undone!
    2. Select/deselect inside of the box: selects or deselects all primitives inside the box. The type of primitive that will be processed (element or node) depends on what picking target is chosen in the "Pickers" section of the Picking window - this, among other things, allows you to use the same box to select both the nodes and the elements using the same box.

Blanking

Element blanking is a simple tool that allows you to explore the inside of your FE model. Normally, you can only see the outer shell of your model and even with transparency, you cannot inspect the shape of internal elements. With blanking you can "cut off" part of the model to look inside. Upon clicking the "Blank elements" button, a simple window with three buttons will open: blank selected elements, undo last and undo all.
The first button will remove all elements that are currently selects among all visible objects. See Picking for description of the picking tools you can use to make the selection (box selection is probably the most useful for the purpose of blanking). Note that the blanking is done only on the visual representation of the model - it does not actually change your FE model, it is not an editing tool, simply an exploration tool.
The other two buttons serve for undoing. Undo last will undo the last action, while undo all will return to the original state. Although there is no re-do action, the elements selected before the blanking remain selected after the undo, so you can toggle back and forth between two blanked states (but going back more than one step will lose the latest selection entirely).
The following figure shows an exemplar workflow for model exploration using blanking - selects a part of the mesh by box, blanks the selection and then uses the VTK toolkit Quality metrics to inspect quality of elements inside the model:

3dDisplayVtkExample.png
Simple exploration workflow - select elements by box -> blank selected elements -> compute and visualize quality to inspect the elements inside (the See element edges option is turned on)

Metadata Editing Tools

In this group of buttons, there is one button for each type of metadata for editing the respective type of metadata (left to right, top to bottom): Entity Editor, Landmark Editor, Named Metadata Editor, Joint Editor, Control Point Editor.

Entity Editor

3dDisplayVtkEntityEditor.png
Entity Editor

Landmark Editor

3dDisplayVtkLandmarkEditor.png
Landmark Editor

Named Metadata Editor

3dDisplayVtkNamedMetadataEditor.png
Named Metadata Editor

Joint Editor

3dDisplayVtkJointEditor.png
Joint Editor

Control Point Editor

3dDisplayVtkControlPointEditor.png
Control Point Editor

Physics simulation viewer

This viewer is utilized in the Pre-Positioning Module and Fine-Positioning Module modules. The model displayed in this viewer is derived from the loaded FE model specifically for the purpose of physics based positioning. This means that the tools available in the Generic viewer are not available here, because the displayed model is technically not the original one.
Additional navigation tools in the Physics simulation viewer are:

MultiView

MultiView display is available by drag+dropping the very Top-Right corner of the 3D context towards the left hand side or towards the bottom. Alternatively, the bottom-left corner offers the same functionality in opposite directions.

In order to remove the Multiple views created, one has to operate backward, namely drag+dropping the very Top-Right corner of the multiple (sub) 3D context towards another sub 3D context located on its right side or on its upper side. Alternatively, the bottom left corner offers the same functionality in opposite directions.

The creation order should be reversely followed, for instance in the following image, one of the two vertically stacked 3D display context should be merged (removed) with the other one before trying to remove the remaining left or right 3D display context.

3ddisplaymultiview.png
Physics simulation viewer: Multiview