/**
 * \page BoxAlgorithm_MultimodalGrazVisualization Multimodal Graz visualization
__________________________________________________________________

Detailed description
__________________________________________________________________

 * |OVP_DocBegin_BoxAlgorithm_MultimodalGrazVisualization_Description|
This is a generalization of the Graz visualization allowing to display the result of the classification on two or more classes, always choosing which action to ask the user.
 * |OVP_DocEnd_BoxAlgorithm_MultimodalGrazVisualization_Description|
__________________________________________________________________

Inputs description
__________________________________________________________________

 * |OVP_DocBegin_BoxAlgorithm_MultimodalGrazVisualization_Inputs|
 * |OVP_DocEnd_BoxAlgorithm_MultimodalGrazVisualization_Inputs|

 * |OVP_DocBegin_BoxAlgorithm_MultimodalGrazVisualization_Input1|
 The timeline of the events.
 * |OVP_DocEnd_BoxAlgorithm_MultimodalGrazVisualization_Input1|

 * |OVP_DocBegin_BoxAlgorithm_MultimodalGrazVisualization_Input2|
 For online use and feedback, the strength of the current activation.
 This can be for example the continuous output from a classifier. 
 * |OVP_DocEnd_BoxAlgorithm_MultimodalGrazVisualization_Input2|
__________________________________________________________________

Outputs description
__________________________________________________________________

 * |OVP_DocBegin_BoxAlgorithm_MultimodalGrazVisualization_Outputs|
 * |OVP_DocEnd_BoxAlgorithm_MultimodalGrazVisualization_Outputs|

 * |OVP_DocBegin_BoxAlgorithm_MultimodalGrazVisualization_Outputs|
 Vector of displayed Bar Size.
 * |OVP_DocEnd_BoxAlgorithm_MultimodalGrazVisualization_Outputs|

 * |OVP_DocBegin_BoxAlgorithm_MultimodalGrazVisualization_Outputs|
 Confusion matrix (recommended to save only last matrix if you want to save to csv).
 * |OVP_DocEnd_BoxAlgorithm_MultimodalGrazVisualization_Outputs|
__________________________________________________________________

Settings description
__________________________________________________________________

 * |OVP_DocBegin_BoxAlgorithm_MultimodalGrazVisualization_Settings|
 * |OVP_DocEnd_BoxAlgorithm_MultimodalGrazVisualization_Settings|

 * |OVP_DocBegin_BoxAlgorithm_MultimodalGrazVisualization_Setting1|
If true, the user will be shown the modalities.
 * |OVP_DocEnd_BoxAlgorithm_MultimodalGrazVisualization_Setting1|

 * |OVP_DocBegin_BoxAlgorithm_MultimodalGrazVisualization_Setting2|
Selection of the feedback mode:\n
None = no Feedback\n
Positive Only = only the expected modality is the predicted\n
Best Only = Feedback only for the predicted Feedback\n
All = Feedback of all modality
 * |OVP_DocEnd_BoxAlgorithm_MultimodalGrazVisualization_Setting2|

 * |OVP_DocBegin_BoxAlgorithm_MultimodalGrazVisualization_Setting3|
If true, feedback will be shown only after the trial. Otherwise immediately.
 * |OVP_DocEnd_BoxAlgorithm_MultimodalGrazVisualization_Setting3|

 * |OVP_DocBegin_BoxAlgorithm_MultimodalGrazVisualization_Setting4|
If true, a little matrix will display how many online trials matched the arrow direction.
 * |OVP_DocEnd_BoxAlgorithm_MultimodalGrazVisualization_Setting4|

 * |OVP_DocBegin_BoxAlgorithm_MultimodalGrazVisualization_Setting5|
How many predictions to integrate for computing the feedback bar.
 * |OVP_DocEnd_BoxAlgorithm_MultimodalGrazVisualization_Setting5|

 * |OVP_DocBegin_BoxAlgorithm_MultimodalGrazVisualization_Setting6|
 Path to the modality image if we don't show the instruction.
 * |OVP_DocEnd_BoxAlgorithm_MultimodalGrazVisualization_Setting6|

 * |OVP_DocBegin_BoxAlgorithm_MultimodalGrazVisualization_Setting7|
 Label of the stimulation for the first class.
 * |OVP_DocEnd_BoxAlgorithm_MultimodalGrazVisualization_Setting7|

 * |OVP_DocBegin_BoxAlgorithm_MultimodalGrazVisualization_Setting8|
 Path to the modality image of the first class.
 * |OVP_DocEnd_BoxAlgorithm_MultimodalGrazVisualization_Setting8|

 * |OVP_DocBegin_BoxAlgorithm_MultimodalGrazVisualization_Setting9|
 Label of the stimulation for the first class.
 * |OVP_DocEnd_BoxAlgorithm_MultimodalGrazVisualization_Setting9|

 * |OVP_DocBegin_BoxAlgorithm_MultimodalGrazVisualization_Setting10|
 Path to the modality image of the second class.
 * |OVP_DocEnd_BoxAlgorithm_MultimodalGrazVisualization_Setting10|
__________________________________________________________________

Examples description
__________________________________________________________________

 * |OVP_DocBegin_BoxAlgorithm_MultimodalGrazVisualization_Examples|
 * |OVP_DocEnd_BoxAlgorithm_MultimodalGrazVisualization_Examples|
__________________________________________________________________

Miscellaneous description
__________________________________________________________________

 * |OVP_DocBegin_BoxAlgorithm_MultimodalGrazVisualization_Miscellaneous|
The timeline required by the box can be generated by a Lua stimulator. 
OpenViBE is bundled with a few motor imagery examples illustrating 
this (in folder "bci-examples/").

In order to place the markers (stimulations) to the recorded EEG stream accurately in time, 
the box connects to the Acquisition Server's TCP Tagging plugin and forwards the received 
timeline there after rendering. The subsequent scenarios and writers should then use the timeline 
from the Acquisition Server output and not directly from the timeline generating box. But 
due to the long duration of time the motor imagery is typically integrated, this paradigm 
could be less sensitive to marker alignment issues compared e.g. to P300.
 * |OVP_DocEnd_BoxAlgorithm_MultimodalGrazVisualization_Miscellaneous|
 */
