0001 function [new_model_cell] = bm_processor_process(obj, brain_data_cell, parm_type, parm)
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020 if ~exist('obj', 'var'), error('obj is a required parameter.'); end
0021 if ~exist('brain_data_cell', 'var')
0022 error('brain_data_cell is a required parameter.');
0023 end
0024 if ~exist('parm_type', 'var')
0025 error('parm_type is a required parameter.');
0026 end
0027 if ~exist('parm', 'var'), error('parm is a required parameter.'); end
0028
0029
0030
0031
0032 brain_data = brain_data_cell{1};
0033
0034 history = brain_data_get_history(brain_data);
0035 const = define_bm_edit_app;
0036 type = const.parm_type;
0037 new_model_cell = cell(0);
0038
0039 proc_str = [];
0040 switch(parm_type)
0041 case type.SURF_SMOOTH_PARM
0042 new_model_cell{1} = bm_processor_surf_smooth(obj, brain_data, parm);
0043 proc_str = 'vb_surf_smooth()';
0044 case type.SURF_SMOOTH_EXPAND_PARM
0045 new_model_cell{1} = bm_processor_surf_smooth_expand(obj, brain_data, parm);
0046 proc_str = 'vb_surf_smooth_expand()';
0047 case type.SURF_TO_FILLED_MASK_PARM
0048 new_model_cell{1} = bm_processor_surf_to_filled_mask(obj, brain_data, parm);
0049 proc_str = 'vb_surf_to_filled_mask()';
0050 case type.SEPARATE_SURF_PARM
0051 new_model_cell = bm_processor_separate_surf(obj, brain_data, parm);
0052 proc_str = 'vb_separate_surf()';
0053 case type.COMBINE_SURF_PARM
0054 new_model_cell{1} = bm_processor_combine_surf(obj, brain_data_cell, []);
0055 proc_str = 'vb_combine_surf() : ';
0056 Nmodel = length(brain_data_cell);
0057 for k=1:Nmodel
0058 data = brain_data_cell{k};
0059 model_name = brain_data_get_model_name(data);
0060 proc_str = [proc_str, model_name];
0061 if k ~= Nmodel
0062 proc_str = [proc_str, ' & '];
0063 end
0064 end
0065 history = history_new;
0066 case type.CLOSE_SURF_PARM
0067 new_model_cell{1} = bm_processor_close_surf(obj, brain_data, parm);
0068 proc_str = 'vb_close_surf()';
0069 case type.MORPHOLOGY_OPERATION_PARM
0070 new_model_cell{1} = bm_processor_morphology_operation(obj, brain_data, parm);
0071 proc_str = 'vb_morphology_operation()';
0072 case type.SURF_EXTRACT_PARM
0073 new_model_cell{1} = bm_processor_surf_extract(obj, brain_data, parm);
0074 proc_str = 'vb_surf_extract()';
0075 end
0076
0077 Nmodel = length(new_model_cell);
0078 for k=1:Nmodel
0079 copied_history = history;
0080 copied_history = history_add_item(copied_history, proc_str, parm);
0081 new_model_cell{k} = brain_data_set_history(new_model_cell{k}, copied_history);
0082 end