0001 function [obj, result] = bm_fileio_export_file(...
0002 obj, file_type, out_file, analyze_info)
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022 if ~exist('obj', 'var'), error('obj is a required parameter.'); end
0023 if ~exist('file_type', 'var')
0024 error('file_type is a required parameter.');
0025 end
0026 if ~exist('out_file', 'var')
0027 error('out_file is a required parameter.');
0028 end
0029 if ~isfield(obj, 'bm_list') || isempty(obj.bm_list)
0030 error('bm_fileio has no data to export');
0031 end
0032
0033
0034
0035
0036 global vbmeg_inst;
0037 result = SUCCESS;
0038
0039 app_const = define_bm_edit_app;
0040
0041
0042 index = bm_list_get_brain_model_index(obj.bm_list);
0043 Ndata = length(index);
0044
0045
0046 model_name_cell = cell(Ndata, 1);
0047 V_cell = cell(Ndata, 1);
0048 F_cell = cell(Ndata, 1);
0049 xx_cell = cell(Ndata, 1);
0050 conduct_cell = cell(Ndata, 1);
0051
0052
0053 brain_data_cell = bm_list_get_brain_model(obj.bm_list, index);
0054
0055
0056 for k=1:length(brain_data_cell)
0057
0058 model_name_cell{k} = brain_data_get_model_name(brain_data_cell{k});
0059
0060
0061 V_cell{k} = vb_analyze_right_mm_to_spm_right(...
0062 surf_data_get_vertex(brain_data_cell{k}), ...
0063 vb_analyze_info_get_voxdim(analyze_info), ...
0064 vb_analyze_info_get_voxsize(analyze_info));
0065
0066 F_cell{k} = surf_data_get_face(brain_data_cell{k});
0067
0068 xx_cell{k} = surf_data_get_normal_vector(brain_data_cell{k});
0069
0070 conduct_cell{k} = brain_data_get_conductivity(brain_data_cell{k});
0071 end
0072 clear brain_data_cell;
0073
0074 Vinfo.Coord = 'SPM_Right_m';
0075
0076
0077 switch(file_type)
0078 case app_const.file_type.HEAD_FILE
0079 result = bm_fileio_write_head_file(out_file, ...
0080 V_cell, F_cell, xx_cell,...
0081 model_name_cell, conduct_cell);
0082 otherwise
0083 error('specified file_type is invalid.');
0084 end