Introduction
The console
How to operate the interfaces
Log files
GEOPROVE is a library which was designed to make it easy to instrument existing CAVE software with probing facilities. Currently, the probing facilities offered by GEOPROVE measure very simple quantities: position, distance, angle and length of a linestrip. It should be relatively easy however to extend GEOPROVE to measure more interesting quantities like volume or curvature.
The goal of using GEOPROVE is to make quantitative measurements in virtual environments. You do this by placing markers in 3d space and combining these markers in configurations which represent interesting quantities like distance or volume. The article GEOPROVE: Geometric Probes for Virtual Environments gives some theoretical backround. You are adivised to read it.
This text explains how to use the probing user interface (probingUI) in the CAVE. probingUI is a layer on top of the actual probing software, and handles all interaction between the user and the probing software. You interact with the probing software using:
the wand: The wand is used to indicate positions and orientations in 3d space. It is
also used to point at menu items.
speech: If you have a Speech Server running, the user
can interact with the menu using speech instead of pointing and clicking at it.
your head: When a snapshot (a photograph) is made,
you use your head to indicate the position and orientation of the virtual camera.
Figure 1 shows the console. By default, it is operated with the left wandbutton, but this can be changed. To avoid confusion, the wandbutton used to operate the console will be called the consolebutton below. The button used to modify markers, place the calibration frame and to activate the snapshot camera is called the probingbutton. By default, the probingbutton is the middle wandbutton.
|
Figure 1 |
The console is a floating 3d window. You can move it around by pointing the wand at it's border and pushing the consolebutton. As long as you keep the consolebutton down, the console will move around as if it were fixed to the wand. When you bring the console in the vicinity of a CAVE wall it will 'stick' to it.
The left part of the console presents the choices the current interface offers you.
As you can see in figure 1, there are nine positions available (six of which are used in figure 1, three
are unused and marked with a dash). If the current interfae offers more than nine choices,
the 'scroll up' and 'scroll down' buttons at the lower left of the console become
active and you can use them to scroll through the choices.
When you point at a choice and click the consolebutton it is activated, unless it
is grayed out, which indicates that that choice is currently disabled.
The operation of the various interfaces is explained below.
The middle part of the console shows the measurement you have made. The big gray square
textbox displays the measurement text. The delete button at the top can be used to delete
the current measurement, and the 'previous' and 'next' button are used to scroll through the
measuments.
On the right, the console shows the possible snapshot you have added to the current measurement
(or a big red cross like in figure 1 when there is no snapshot available).
You can change this snapshot in the measurement interface.
The main interface, shown in figure 2, gives you access to all other interfaces in GEOPROVE. If you click 'create/modify marker', you enter the marker interface, if you click 'calibration', you enter the calibration interface, etc, etc. The measurement interface can be entered from the main interface without actually making a measurement. This is usefull when you only want to change the snapshot of a measurement.
|
|
Figure 2 |
Figure 3 |
All measurements made with GEOPROVE are reported relative to a calibration frame or base. Internally GEOPROVE stores all quantities in navigated CAVE coordinates, but when a measurement is made, the quantities are transformed to the calibration frame. The properties of the calibration frame can be changed at runtime by the user or (pre-)set by the application software. The properties of the frame are: position, orientation, metric and scale. The position and orientation describe where the frame is relative to the navigated CAVE origin. All measurements are reported in the calibration metric. The metric can be one of: meters, centimeters, feet, inches or a user/application specified metric (e.g. lightyears). The scale has no influence on the measurements. It's only used to increase or decrease the calibration frame with factors of 10 in case it's to small or large. Changing the calibration frame has no influence on measurements which have already been made, only on future measurements.
When the calibration interface is active, a frame is drawn at the wand position with lines made of 'marching ants'. This frame represents the position, orientation, metric and scale of the new calibration frame. When you push the probingbutton, the calibration frame is placed at the current position and orientation of the wand.
The following table describes the choices of the calibration interface:
snap to 90 degrees / |
Under normal circumstances it makes little sense to define a calibration frame with axis which are not parallel to the navigated CAVE x, y and z axis. When this toggle button reads don't snap to 90 degrees, the calibration frame can have any orientation, when it reads snap to 90 degrees the calibration frame is always axis-parallel with the navigated CAVE x, y and z axis. |
draw base / |
When draw base is on, the calibration frame or base is always shown. Normally it is only shown when the calibration interface is active. Drawing the calibration frame is sometimes usefull, for instance to visually estimate a length. |
meters / centimeters / feet / inches / user specified metric |
This choice allows you to select the metric in which measurements are made. The user specified metric can be set by the application to some application-specific metric (lightyears, yards, miles, etc). Push it multiple times to 'scroll' through the options. |
Scale up and down |
Sometimes you may want to measure in inches, but one inch may be to small to see easily, or, the opposite, much to large. Then you can use the scale up and down buttons to enlarge and shrink the calibration frame with factors of 10. Scaling the frame has no effect on the measurements. |
|
|
Figure 4 |
Figure 5 |
Figures 4 and 5 show the marker interface. The marker interface is to large to fit into the console menu, so you must use the scroll up and scroll down buttons to reach all choices. The most important choices fit into the standard menu however.
You use the marker interface to create, modify or delete markers. Markers are the building blocks of distance, angle and linestrip (or trace) measurements. The marker interface has 4 main modes of operation: auto mode off, auto create, auto select and auto delete. The auto mode off mode is first explained, after which operation of the other modes is described.
Auto mode off
To create a marker, you push create with the consolebutton. A pulsating red wireframe sphere will appear at the end of your wand. Position the wand where you want the marker to be and push the probingbutton. A marker will be placed where the pulsating sphere was. It is red to indicate that it is the active or current marker. Inactive markers are white. In auto mode off mode you can always move the active marker around by pushing the probingbutton. If you need more precision while moving a marker, enable scaling by pushing scaling off. This toggle button turns scaling on and off. When scaling is on, the wand's motion is 'scaled down'. With scaling enabled you can position your markers more accurately.
For even more control, enable snapping by pushing snapping off. When snapping is turned on, marker snap to meaningfull positions in your CAVE application. For instance, if your application displays some curved surface which you want to do measumerents upon, your markers might snap to the surface (since any other position is useless). Remember that for snapping to work, your application needs to register a snapping callback. If the snapping off button is grayed out, this means that the application you are using has not registered a snapping callback function.
Note that when both snapping and scaling are enabled, markers may not move as expected. If the snapping callback of your application maps the continuous positions to discrete positions in space (e.g. the vertices a mesh), markers will stick to those positions unless you move the wand real fast. When it seems as if markers are 'stuck', disable either scaling or snapping.
If you want to select a marker, push the select button (it is grayed out if there are no markers available). A pulsating blue wireframe sphere will appear at the position of the marker closest to the wand. Push the probingbutton to make it the active marker. Push and hold down the probingbutton again to move the active marker around like when you just created it.
To delete a marker, push the delete button (it is grayed out if there are no markers available). A 'exploding' black/white sphere will appear at the position of the marker closest to the wand. Push the probingbutton to delete that marker.
When you want to measure the position of a marker, push measure (this button is grayed out when the is no active marker). After pushing measure, you enter the measurement interface and a new measurement appears in the middle of the console.
When you want less or more precision when scaling is enable, scroll down the menu by pushing scroll down twice. You can push less scaling precision and more scaling precision to change to scaling factor. These two buttons are located at the button of the menu, so you'll have to use scroll down to reach them.
Auto create mode
When you want to create a lot of markers, pushing create for every marker can get tedious. This is where auto create comes in. When the marker interface is in auto create mode, you can create and move a new marker with a single probingbutton click. The create/select/delete buttons are grayed out when in auto create mode. To enable them again, switch back to auto mode off. Moving, snapping and scaling a marker still works in auto create mode, except that you have to hold the probingbutton down directly after you have created the marker.
Auto select mode
To select markers quickly, go into auto select mode. When auto select mode is active, a pulsating blue sphere appears at the position of the marker which is closest to the wand. Click the probingbutton to select that marker. If you hold the probingbutton down for more than 1 second, you can move/snap/scaled move the marker around. Use the select modify time button (at the bottom of the menu) to change the time it takes before you can move the marker.
Auto delete mode
When you want to get rid of a lot of markers, go into auto delete mode. Every time you push the probingbutton, you delete the marker closest to the wand (as indicated by the exploding black/white sphere).
The generate events button
One button in the marker interface has not yet been discussed: the generate events button. Currently there are three types of events which the marker interface can generate: the creation of a marker, the selection of a marker and the deletion of a marker. When generate events is on, these events are generated and sent to the previous interfaces. When generate events is off, no events are generated. What is the use of these events? As you can read below, the distance, angle and linestrip/trace interfaces use the marker interface to do the actual work for them. For instance, when you want to create a trace, you select create a new trace. The marker interface is activated, and you can create or select markers for your linestrip/trace. Events are generated and the (inactive) trace interface receives these. In response to those events, the trace interface adds the markers you just created/selected to your trace. Same story for deletion events. But what if you just want to create/select some markers and not add them to your trace? Turn generate events off for a while, do your work, and then turn it back on.
|
|
Figure 6 |
Figure 7 |
When you have made a measurement, you enter the measurement interface (figure 6). Here you can add a snapshot (a virtual photograph) to your measurement. Snapshots are usefull to recall why you made a measurement after you have left the CAVE. When you make a snapshot, it is stored at two resolutions: 256x256 (used at runtime in the CAVE) and 1024x768.
To make a snapshot, first select the measurement you want to add the snapshot to (by pushing previous or next untill you reach the measurement). Then push add snapshot to measurement. A 'photograph frame' like the one shown in figure 7 will appear in front of your head. The square indicates what area of the virtual environment will be photographed. The circle in the middle both indicates the center of the photograph and helps you to estimate distance. The 'photograph frame' will move away from you a regular rate, also to help you estimate distance of objects.
To make the photograph, position and orientate your head so that you see the objects you want to photograph in the center of the frame and push the probingbutton. The CAVE environment may be unresponsively for a small amount of time, while the photograph is being rendered.
Just like in the real world, you can 'change the lens' of your camera. In the freestyle snapshot fov angle mode, you can change the 'lens' (field of view angle...) by moving the wand. The field of view angle is always set so the wand is on just frame of your photograph. In lock snapshot fov angle on X mode the field of view angle is always fixed to X degrees.
|
|
Figure 8, the distance interface |
Figure 9, the angle interface |
The distance interface, shown in figure 8, allows you to measure the distance between two point, or to measure or vector of some sort. Use create/select/modify head marker and create/select/modify tail marker to set the head and tail of the vector. The marker interface will appear and you can create or select the marker of your choice. Note that generate events must be on. Click done when you have selected the marker. The distance interface will reappear.
When both head and tail have been set, a line will be drawn between them. You can then use measure to measure the position of the head and tail, and the distance between them. The familiar measurement interface will popup and you can add a snapshot if you want to.
To select both head and tail at once, use create/select both marker. The marker interface will appear, and you can select the head, then the tail, then the head, etc, etc.
The angle interface (figure 9) is very similar to the distance interface, except that you have to select three markers: the base marker, the direction 1 marker and the direction 2 marker. Together they are used to measure the angle between the lines base->direction1 and base->direction2. When you have selected all three markers, two lines with a 'bow' between them will appear to indicate the angle. Use measure to measure the position of the three markers and the angle they define.
|
Figure 10, the trace interface |
The final interface of GEOPROVE is the trace or linestrip interface shown in figure 10. With both create/select/modify trace and create new trace you can specify a trace. The diffrence is that create new trace first deletes your current trace, as opposed to create/select/modify trace which allows you to add markers to the current trace, delete or move markers from the current trace, etc etc. Use measure to measure the length of your trace and the positions of the individual markers.
GEOPROVE writes several logs files to disk when it terminates. The most important to the user is the measurement log file, which called probing.log by default (this name can be changed by the application). In the measurement log file all measurements you have made (and not deleted) are stored, along with references to snapshots. Check the developer manual for (formats of) the other logs files.