0001 function [obj] = bm_edit_app_view3d_display_brain(...
0002 obj, display_factor, view_setting3d)
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('display_factor', 'var')
0022 error('display_factor is a required parameter.');
0023 end
0024 if ~exist('view_setting3d', 'var')
0025 error('view_setting3d is a required parameter.');
0026 end
0027
0028
0029
0030
0031 if ~ishandle(obj.h)
0032 obj = bm_edit_app_view3d_make_figure(obj, view_setting3d);
0033 end
0034
0035
0036 fclr = zeros(5, 3);
0037 face_color = cell(0);
0038 face_color{1} = [0.8 0.7 0.6];
0039 eclr = 'none';
0040 light_mode = 0;
0041 max_mode = 1;
0042
0043
0044 H = guihandles(obj.h);
0045 figure(obj.h);
0046 cla(H.model_axes);
0047 obj.patch_handles = [];
0048
0049
0050 Nelements = vb_display_factor_get_length(display_factor);
0051 model_names = cell(0);
0052 for k=1:Nelements
0053 element = vb_display_factor_get_element(display_factor, k);
0054 switch(element.class_name)
0055 case 'surf_element'
0056 vertex = vb_surf_element_get_vertex(element);
0057 face = vb_surf_element_get_face(element);
0058 name = vb_display_element_get_name(element);
0059 if strcmpi(name, 'csf')
0060 f_color = [11 132 199]/255;
0061 alpha = 1.0;
0062 elseif strcmpi(name, 'skull')
0063 f_color = [128 128 128]/255;
0064 alpha = 0.5;
0065 elseif strcmpi(name, 'scalp')
0066 f_color = [0.8 0.7 0.6];
0067 alpha = 0.4;
0068 else
0069 f_color = face_color{1};
0070 alpha = 1.0;
0071 end
0072 patch_h = bm_edit_app_view3d_plot_surf(...
0073 obj, ...
0074 H.model_axes, ...
0075 vertex, ...
0076 face, ...
0077 f_color, ...
0078 alpha, ...
0079 max_mode);
0080 obj.patch_handles = [obj.patch_handles; patch_h];
0081 model_names{length(model_names)+1} = vb_display_element_get_name(element);
0082 end
0083 end
0084
0085
0086 camlight(-60,0);
0087 camlight(60,0);
0088 camlight(180,0);
0089
0090
0091 set(H.model_listbox, 'String', model_names);
0092
0093 xlim('auto');
0094 ylim('auto');
0095 zlim('auto');
0096
0097
0098
0099
0100 if nargout ~= 1
0101 error('function caller should receive obj.');
0102 end