[Master Index]
[Index for Toolbox]
view_surface
(Toolbox/view_surface.m in BrainStorm 2.0 (Alpha))
Function Synopsis
[hf,hs,hl] = view_surface(figname,faces,verts,cdata);
Help Text
VIEW_SURFACE - Convenient function to consistently plot surfaces
function [hf,hs,hl] = view_surface(figname,faces,verts,cdata);
figname is the name of the figure window
faces is the triangle listing
- if faces is a cell array, verts needs to be a cell array of same length
alpha transparency is used to visualize the multiple surfaces.
Order in array goes from inner to outer surface.
verts are the corresponding vertices
- verts is either an array or a cell array
cdata is the colordata to use. If not given, uses random face color
- if cdata is a cell array, use on cell per surface for color coding
hf is the figure handle used
hs is the handles to the surfaces
hl is the handles to the lighting
Cross-Reference Information
This function calls
- windclf C:\BrainStorm_2001\Toolbox\windclf.m
- windfind C:\BrainStorm_2001\Toolbox\windfind.m
This function is called by
Listing of function C:\BrainStorm_2001\Toolbox\view_surface.m
function [hf,hs,hl] = view_surface(figname,faces,verts,cdata);
%VIEW_SURFACE - Convenient function to consistently plot surfaces
% function [hf,hs,hl] = view_surface(figname,faces,verts,cdata);
% figname is the name of the figure window
% faces is the triangle listing
% - if faces is a cell array, verts needs to be a cell array of same length
% alpha transparency is used to visualize the multiple surfaces.
% Order in array goes from inner to outer surface.
% verts are the corresponding vertices
% - verts is either an array or a cell array
%
% cdata is the colordata to use. If not given, uses random face color
% - if cdata is a cell array, use on cell per surface for color coding
% hf is the figure handle used
% hs is the handles to the surfaces
% hl is the handles to the lighting
%<autobegin> ---------------------- 26-May-2004 11:34:42 -----------------------
% --------- Automatically Generated Comments Block Using AUTO_COMMENTS ---------
%
% CATEGORY: Visualization
%
% Alphabetical list of external functions (non-Matlab):
% toolbox\windclf.m
% toolbox\windfind.m
%
% At Check-in: $Author: Mosher $ $Revision: 18 $ $Date: 5/26/04 10:02a $
%
% This software is part of BrainStorm Toolbox Version 2.0 (Alpha) 24-May-2004
%
% Principal Investigators and Developers:
% ** Richard M. Leahy, PhD, Signal & Image Processing Institute,
% University of Southern California, Los Angeles, CA
% ** John C. Mosher, PhD, Biophysics Group,
% Los Alamos National Laboratory, Los Alamos, NM
% ** Sylvain Baillet, PhD, Cognitive Neuroscience & Brain Imaging Laboratory,
% CNRS, Hopital de la Salpetriere, Paris, France
%
% See BrainStorm website at http://neuroimage.usc.edu for further information.
%
% Copyright (c) 2004 BrainStorm by the University of Southern California
% This software distributed under the terms of the GNU General Public License
% as published by the Free Software Foundation. Further details on the GPL
% license can be found at http://www.gnu.org/copyleft/gpl.html .
%
% FOR RESEARCH PURPOSES ONLY. THE SOFTWARE IS PROVIDED "AS IS," AND THE
% UNIVERSITY OF SOUTHERN CALIFORNIA AND ITS COLLABORATORS DO NOT MAKE ANY
% WARRANTY, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO WARRANTIES OF
% MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, NOR DO THEY ASSUME ANY
% LIABILITY OR RESPONSIBILITY FOR THE USE OF THIS SOFTWARE.
%<autoend> ------------------------ 26-May-2004 11:34:42 -----------------------
% /---Script Authors-------------------------------------\
% | |
% | *** John C. Mosher, Ph.D. |
% | Biophysics Group |
% | Los Alamos National Laboratory |
% | Los Alamos, New Mexico, USA |
% | mosher@lanl.gov |
% | |
% | *** Sylvain Baillet, Ph.D. |
% | Cognitive Neuroscience & Brain Imaging Laboratory |
% | CNRS UPR640 - LENA |
% | Hopital de la Salpetriere, Paris, France |
% | sylvain.baillet@chups.jussieu.fr |
% | |
% \------------------------------------------------------/
% Script History ----------------------------------------------------------------------------------------
%
% SB 10-Mar-2003 : faces and verts input arguments can now be cell arrays thereby yielding 3D plots
% using alpha transparency for each surface
% SB 03-Jun-2003 : changed axis management and default view point in 3D
% JCM 19-Aug-2003 : updated comments to explain outputs
% SB 21-Oct-2003 : Basic lightning is 'none'
% JCM 11-May-2004 : reset lighting to shiny, CBB would be an external switch
% --------------------------------------------------------------------------------------------------------
if iscell(faces) % Multiple plots requested on same figure window
if length(faces) ~= length(verts) % sanity check
errordlg('Faces and Vertices need to be cell arrays of same length', mfilename);
return
end
else
faces = {faces};
verts = {verts};
if nargin > 3
cdata = {cdata};
end
end
if nargin == 4
if ~iscell(cdata)
cdata = {cdata};
end
end
for k=1:length(faces) % For each requested surface
if(size(verts{k},2) > 3), % assume transposed
verts{k} = verts{k}'; % if the assumption is wrong, will crash below anyway
end
if nargin == 3
cdata{k} = repmat(rand(1,3),size(verts{k},1),1);
end
h = windfind(figname);
figure(h)
if isempty(h)
windclf
hold on
end
hs(k) = patch('faces',faces{k},'vertices',verts{k},...
'facevertexcdata',cdata{k},'facecolor','interp','edgecolor','none');
if length(faces)>1
set(hs(k),'FaceAlpha',k/10);
end
view(120,30)
axis equal, axis vis3d
axis off
if nargin == 3
colormap(bone(256))
end
switch 'shiny'
case 'dull'
material dull
lighting none
case 'shiny'
material metal
lighting phong
end
if k ==1 | isempty(findobj(h,'type','light')) % avoid accumulating too many light objects in same window
hl(1) = camlight(-20,30);
hl(2) = camlight(20,30);
hl(3) = camlight(-20,-30);
for i = 1:length(hl),
set(hl(i),'color',[.8 1 1]/length(hl)/1.2); % mute the intensity of the lights
end
end
if(nargout>0),
hf = h; % only if the user has output argument
end
end
Produced by color_mat2html, a customized BrainStorm 2.0 (Alpha) version of mat2html on Tue Oct 12 12:05:14 2004
Cross-Directory links are: ON