ShapeViewer v1.4 - Project Management
Add capacity to display information about a user selected vertex
People Affected
| Person | Role | Notes |
| Craig Schwartz | Programmer, Architect | |
| Elizabeth Sowell | Researcher | |
| Eric Kan | Researcher | |
| Roger Woods | Sponsor, Researcher | |
Project Purpose
Add to the ShapeViewer the capacity for a user to select a vertex of a displayed shape, and display
the coordinates and attributes of the selected vertex
Use Cases
Use Case 1: Select Vertex
A neuroscientist starts the ShapeViewer and loads a single shape file (Ucf, Obj,..).
She uses the mouse to reposition the shape and then
double-clicks the mouse while it is positioned over
the display window. The ShapeViewer responds by showing
a previously hidden list of selected vertices.
This list is empty, to start with.
She then single-clicks near a vertex. The vertex nearest her click is visually highlighted,
and it's coordinates, index and other relevant data are appended to the list of selected vertices.
If a selected vertex (highlighted) is clicked a second time it is removed from the list of
selected vertices and it's visual highlight disappears.
At any time during this process she may use a control on the 'selected vertex' list to save
the coordinates and other information (t.b.d) of
the selected vertices to a file on the local computer disk drive.
When she is ready to re-position the display she
double-clicks the display, or chooses a [close] button on the list of vertices.
The ShapeViewer response by hiding the 'selected vertex' list.
If she again double-clicks the display,
the list appears with it's previous contents.
She may, at any time, instruct the list to clear itself.
Approach to be used
1) Determine how to do several basic type of actions using
java, java3d, and the shape viewer. These are:
- Investigate Java3D to determine
- how to select a vertex
- how to find which vertex is selected.
- Determine how to find the ShapeTools shape vertex corrosponding to a selected java 3d vertex.
- determine how to add a command primitive to the shape viewer scripting language.
- learn how to add a data display panel to the ShapeViewer GUI
- learn how to 'highlight" a specific vertex in the viewer display (e.g. show that it is "selected").
2) combine the above to:
Add a "select vertex" primitive to the ShapeViewer scripting language. This
command will update a data display panel in the viewer with the
particulars of the selected vertex. If possible, maintain a list of selected vertices that
can be saved in some form to an exported file. Ideally, if a meember of this list is
clicked then the corrosponding vertex is highlighted/
Milestones
| Item | Planned Date | Actual Date |
| Demo test bed vertex selection and pop-up list to Elizabeth and Eric | 8/15 | 8/15 |
| Demo ShapeViewer vertex selection and pop-up list w/ vtx removal to Eliz & Eric | 8/23 | 8/23 |
| Demo ShapeViewer with export of list | | |
| Demo ShapeViewer with vtx highlight | | |
| Submit updated SoftwareDownload Package | | |
RACI Plus Chart
- R = Responsible. Person owns the problem / project.
- A = Action. Person will need to do something.
- C = should be Consulted. Has information and/or capability necessary to complete the work.
- I = should be Informed. Must be notified of results, but need not be consulted.
- W30 = Week 30, et. cetera
- Bgt Hrs = Budeget Hours, Act Hrs = Actual Hours
Risk Assessment
Confusion and Difficulty get rated 1,2 or 3.
"Confusion" is opposite of understanding - if the step is well understood then
the confusion rating is low (1).
The
Risk column is the (confusion * difficulty). Tasks with high values
are more likely to have problem
Risk Mitigation Plans
(Contingency plans for risk > 5)
- highlight a vertex
- Omit feature.
- Add Script Command
- reschedule to next release
- Client/server test
- reschedule to next release
Development details
Lessons Learned (version 1.0 ... 1.3)
-
- Test early on all development platforms is most efficient
- establish resource requirements early.
- it worked to show a new feature and get quick feedback from expert users.
- write software for the users.
- complete documentation of all classes.
- define the context for major new features (e.g. firewall / client-server).
- prototype major new features or technology in all realistic contexts (firewall/client-server).
Future version plans