Show
Ignore:
Timestamp:
08/05/09 14:40:03 (15 years ago)
Author:
mido
Message:

panove, vite, jak jsem peclivej na upravu kodu.. snad se vam bude libit:) konfigurace je v souboru /system/astylerc

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • library/bdm/mex/config2mxstruct.h

    r413 r477  
    1111public: 
    1212        mxArray *mxconfig; 
    13         UImxConfig(const char * filename) { 
     13        UImxConfig ( const char * filename ) { 
    1414                Config config; 
    15                 config.readFile(filename); 
    16                 mxconfig = group2mxstruct(config.getRoot()); 
     15                config.readFile ( filename ); 
     16                mxconfig = group2mxstruct ( config.getRoot() ); 
    1717        } 
    18         UImxConfig(const Setting &setting) { 
    19                 mxconfig = group2mxstruct(setting); 
     18        UImxConfig ( const Setting &setting ) { 
     19                mxconfig = group2mxstruct ( setting ); 
    2020        } 
    2121 
    2222private: 
    2323 
    24         mxArray* array2mxvector(const Setting &setting)  { 
    25                 if (!setting.isArray()) mexErrMsgTxt("Given setting is not an array"); 
    26                 double *elements = new double[setting.getLength()]; 
    27                 for (int i=0; i<setting.getLength(); i++) { 
    28                         if (setting.getType() == Setting::TypeInt) { //TODO: tady je chyba -- zaporna cisla nejsou TypeInt 
     24        mxArray* array2mxvector ( const Setting &setting )  { 
     25                if ( !setting.isArray() ) mexErrMsgTxt ( "Given setting is not an array" ); 
     26                double *elements = new double[setting.getLength() ]; 
     27                for ( int i = 0; i < setting.getLength(); i++ ) { 
     28                        if ( setting.getType() == Setting::TypeInt ) { //TODO: tady je chyba -- zaporna cisla nejsou TypeInt 
    2929                                elements[i] = setting[i]; 
    3030                        } else { 
    31                                 elements[i] = (int) setting[i]; 
     31                                elements[i] = ( int ) setting[i]; 
    3232                        } 
    3333                } 
    34                 vec &v = *(new vec(elements, setting.getLength())); 
    35                 mxArray *result = mxCreateDoubleMatrix(1, setting.getLength(), mxREAL); 
    36                 vec2mxArray(v, result); 
     34                vec &v = * ( new vec ( elements, setting.getLength() ) ); 
     35                mxArray *result = mxCreateDoubleMatrix ( 1, setting.getLength(), mxREAL ); 
     36                vec2mxArray ( v, result ); 
    3737                delete &v; 
    3838                delete [] elements; 
     
    4040        } 
    4141 
    42         mxArray* list2mxmatrix(const Setting &setting)  { 
    43                 if (!setting.isList() || ("matrix" != setting[0])) 
    44                         mexErrMsgTxt("Given setting is not a matrix"); 
     42        mxArray* list2mxmatrix ( const Setting &setting )  { 
     43                if ( !setting.isList() || ( "matrix" != setting[0] ) ) 
     44                        mexErrMsgTxt ( "Given setting is not a matrix" ); 
    4545                int rows = setting[1]; 
    4646                int cols = setting[2]; 
    47                 if (setting[3].getLength() != rows*cols) 
    48                         mexErrMsgTxt("Matrix elements do not fit to rows*cols"); 
     47                if ( setting[3].getLength() != rows*cols ) 
     48                        mexErrMsgTxt ( "Matrix elements do not fit to rows*cols" ); 
    4949                double *elements = new double[rows*cols]; 
    50                 for (int i=0; i<rows*cols; i++) { 
     50                for ( int i = 0; i < rows*cols; i++ ) { 
    5151                        elements[i] = setting[3][i]; 
    5252                } 
    53                 mat &m = *(new mat(elements, rows, cols)); 
    54                 mxArray *result = mxCreateDoubleMatrix(rows, cols, mxREAL); 
    55                 mat2mxArray(m, result); 
     53                mat &m = * ( new mat ( elements, rows, cols ) ); 
     54                mxArray *result = mxCreateDoubleMatrix ( rows, cols, mxREAL ); 
     55                mat2mxArray ( m, result ); 
    5656                delete &m; 
    5757                delete [] elements; 
     
    5959        } 
    6060 
    61         mxArray* group2mxstruct(const Setting &setting) { 
    62                 if (!setting.isGroup()) mexErrMsgTxt("Given setting is not a group."); 
    63                 const char ** keys = new const char*[setting.getLength()]; 
    64                 for (int i=0; i < setting.getLength(); i++) { 
     61        mxArray* group2mxstruct ( const Setting &setting ) { 
     62                if ( !setting.isGroup() ) mexErrMsgTxt ( "Given setting is not a group." ); 
     63                const char ** keys = new const char*[setting.getLength() ]; 
     64                for ( int i = 0; i < setting.getLength(); i++ ) { 
    6565                        keys[i] = setting[i].getName(); 
    6666                } 
    67                 mxArray *result = mxCreateStructMatrix(1, 1, setting.getLength(), keys); 
     67                mxArray *result = mxCreateStructMatrix ( 1, 1, setting.getLength(), keys ); 
    6868                delete keys; 
    69                 for (int i=0; i < setting.getLength(); i++) { 
     69                for ( int i = 0; i < setting.getLength(); i++ ) { 
    7070                        Setting &value = setting[i]; 
    71                         mxArray *old = mxGetFieldByNumber(result, 0, i); 
    72                         if (old) mxDestroyArray(old); 
    73                         switch (value.getType()) { 
     71                        mxArray *old = mxGetFieldByNumber ( result, 0, i ); 
     72                        if ( old ) mxDestroyArray ( old ); 
     73                        switch ( value.getType() ) { 
    7474                        case Setting::TypeString: 
    75                                 mxSetFieldByNumber(result, 0, i, mxCreateString(value)); 
     75                                mxSetFieldByNumber ( result, 0, i, mxCreateString ( value ) ); 
    7676                                break; 
    7777                        case Setting::TypeBoolean: 
    78                                 mxSetFieldByNumber(result, 0, i, mxCreateLogicalScalar(value)); 
     78                                mxSetFieldByNumber ( result, 0, i, mxCreateLogicalScalar ( value ) ); 
    7979                                break; 
    8080                        case Setting::TypeGroup: 
    81                                 mxSetFieldByNumber(result, 0, i, group2mxstruct(value)); 
     81                                mxSetFieldByNumber ( result, 0, i, group2mxstruct ( value ) ); 
    8282                                break; 
    8383                        case Setting::TypeList: 
    84                                 mxSetFieldByNumber(result, 0, i, list2mxcell(value)); 
     84                                mxSetFieldByNumber ( result, 0, i, list2mxcell ( value ) ); 
    8585                                break; 
    8686                        case Setting::TypeArray: 
    87                                 mxSetFieldByNumber(result, 0, i, array2mxvector(value)); 
     87                                mxSetFieldByNumber ( result, 0, i, array2mxvector ( value ) ); 
    8888                                break; 
    8989                        case Setting::TypeInt: 
    9090                        case Setting::TypeInt64: 
    91                                 mxSetFieldByNumber(result, 0, i, mxCreateDoubleScalar((int) value)); 
     91                                mxSetFieldByNumber ( result, 0, i, mxCreateDoubleScalar ( ( int ) value ) ); 
    9292                                break; 
    9393                        case Setting::TypeFloat: 
    94                                 mxSetFieldByNumber(result, 0, i, mxCreateDoubleScalar(value)); 
     94                                mxSetFieldByNumber ( result, 0, i, mxCreateDoubleScalar ( value ) ); 
    9595                                break; 
    9696                        default: 
    9797                                //this should never happen 
    98                                 mexErrMsgTxt("Unknown type of a setting."); 
     98                                mexErrMsgTxt ( "Unknown type of a setting." ); 
    9999                        } 
    100100                } 
     
    102102 
    103103        } 
    104          
    105         mxArray* list2mxcell(const Setting &setting)  { 
    106                 if (!setting.isList()) mexErrMsgTxt("Given setting is not a list."); 
    107                 if (setting.getLength() == 0) { 
    108                         mxArray *result = mxCreateCellMatrix(1, 0); 
     104 
     105        mxArray* list2mxcell ( const Setting &setting )  { 
     106                if ( !setting.isList() ) mexErrMsgTxt ( "Given setting is not a list." ); 
     107                if ( setting.getLength() == 0 ) { 
     108                        mxArray *result = mxCreateCellMatrix ( 1, 0 ); 
    109109                        return result; 
    110110                } 
    111                 if ((setting[0].getType() == Setting::TypeString) && ("matrix" == setting[0])) { 
    112                         return list2mxmatrix(setting); 
     111                if ( ( setting[0].getType() == Setting::TypeString ) && ( "matrix" == setting[0] ) ) { 
     112                        return list2mxmatrix ( setting ); 
    113113                } 
    114                 mxArray *result = mxCreateCellMatrix(1, setting.getLength()); 
    115                 for (int i=0; i < setting.getLength(); i++) { 
     114                mxArray *result = mxCreateCellMatrix ( 1, setting.getLength() ); 
     115                for ( int i = 0; i < setting.getLength(); i++ ) { 
    116116                        Setting &value = setting[i]; 
    117                         mxArray *old = mxGetCell(result, i); 
    118                         if (old) mxDestroyArray(old); 
    119                         switch (value.getType()) { 
     117                        mxArray *old = mxGetCell ( result, i ); 
     118                        if ( old ) mxDestroyArray ( old ); 
     119                        switch ( value.getType() ) { 
    120120                        case Setting::TypeString: 
    121                                 mxSetCell(result, i, mxCreateString(value)); 
     121                                mxSetCell ( result, i, mxCreateString ( value ) ); 
    122122                                break; 
    123123                        case Setting::TypeBoolean: 
    124                                 mxSetCell(result, i, mxCreateLogicalScalar(value)); 
     124                                mxSetCell ( result, i, mxCreateLogicalScalar ( value ) ); 
    125125                                break; 
    126126                        case Setting::TypeGroup: 
    127                                 mxSetCell(result, i, group2mxstruct(value)); 
     127                                mxSetCell ( result, i, group2mxstruct ( value ) ); 
    128128                                break; 
    129129                        case Setting::TypeList: 
    130                                 mxSetCell(result, i, list2mxcell(value)); 
     130                                mxSetCell ( result, i, list2mxcell ( value ) ); 
    131131                                break; 
    132132                        case Setting::TypeArray: 
    133                                 mxSetCell(result, i, array2mxvector(value)); 
     133                                mxSetCell ( result, i, array2mxvector ( value ) ); 
    134134                                break; 
    135135                        case Setting::TypeInt: 
    136136                        case Setting::TypeInt64: 
    137                                 mxSetCell(result, i, mxCreateDoubleScalar((int) value)); 
     137                                mxSetCell ( result, i, mxCreateDoubleScalar ( ( int ) value ) ); 
    138138                                break; 
    139139                        case Setting::TypeFloat: 
    140                                 mxSetCell(result, i, mxCreateDoubleScalar(value)); 
     140                                mxSetCell ( result, i, mxCreateDoubleScalar ( value ) ); 
    141141                                break; 
    142142                        default: 
    143143                                //this should never happen 
    144                                 mexErrMsgTxt("Unknown type of a setting."); 
     144                                mexErrMsgTxt ( "Unknown type of a setting." ); 
    145145                        } 
    146146                }