00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025 #include <map>
00026 #include <string>
00027
00028 #include "../common/WStringUtils.h"
00029 #include "../common/exceptions/WOutOfBounds.h"
00030 #include "../common/math/linearAlgebra/WLinearAlgebra.h"
00031 #include "WEEGPositionsLibrary.h"
00032
00033
00034 WEEGPositionsLibrary::WEEGPositionsLibrary( const std::map< std::string, WPosition >& positions )
00035 {
00036
00037 for( std::map< std::string, WPosition >::const_iterator iter = positions.begin(); iter != positions.end(); ++iter )
00038 {
00039 m_positions[string_utils::toUpper( iter->first )] = iter->second;
00040 }
00041 }
00042
00043 WPosition WEEGPositionsLibrary::getPosition( std::string label ) const throw( WOutOfBounds )
00044 {
00045 std::map< std::string, WPosition >::const_iterator iter = m_positions.find( string_utils::toUpper( label ) );
00046
00047 if( iter == m_positions.end() )
00048 {
00049 throw WOutOfBounds( std::string( "EEG Positions Library doesn't contain a position for electrode " + label ) );
00050 }
00051
00052 return iter->second;
00053 }