Interface Data
As a | CEP developer |
I would like to | add easily manipulate array of data (values, signals, vectors...) to any type of component (not MeshComponent nor ImageComponent) |
So that | I can visualize/interact data as colors on a mesh, as graph/curve |
Epic/Topics | Interface Data |
Description / Overview
The epic is called "Interface Data" or how to include 1D temporal signal in CamiTK.
This is a new facet for Component
that enables storage, manipulation, visualization and interaction with/of array of data. The idea is to offer data abstraction and minimal default behaviour for signal and temporal values.
In the design stage, first check:
- Check the Pulse project to check how they store the signals
- Check the work done by Nico (see
incubator-local/respirm
CEP) in order to handle 1D signal and their representation using a dedicated viewer based on vtkChart library (and some action to process them). In particular check the viewer and the defined actions. - Check open-source application that help manipulate data and display charts to deduce best practices
- Check for standard in signal processing data format and processing library (if any)
One idea would be to be able to use a python interface/shell/script in order to process the signal directly from a console...
Hints
As for any creation of interface in CamiTK, this can be done following these steps:
- Create a new interface that add the management of a list of
vtkDataArray
inComponent
- Create the corresponding helper class
- Create the corresponding viewer (using vtkChart and the possibility to add data as if it was a live physiological signal) and integrate it to camitk-imp
- Create another viewer to display data in a table/spreadsheet
- Take into account the fact that
MeshComponent
can project the data as colors - move addPointData/addCellData in
InterfaceGeometry
or to the newInterfaceData
interface (may be use an enum forFREE
,ATTACHED_TO_CELLS
,ATTACHED_TO_POINTS
etc...
Acceptance tests
-
a new tutorial component that shows how to add/remove/show these data in the new viewer -
a new tutorial MeshComponent that shows how data can be displayed directly on the mesh surface -
a new tutorial that shows generates random value based on a sinus function to show how update/acquisition can be done
Track
/label Track Technology Integration