function a_mesh = mesh_amira(filename, id, props)
% mesh_amira - Contains 3D mesh data imported from the Amira software.
%
% Usage:
% a_mesh = mesh_amira(filename, id, props)
%
% Parameters:
% filename: Amira mesh file (*.am).
% id: Identification string.
% props: A structure with any optional properties.
% isVerbose: If 1, produce verbose info while loading Amira file (for
% debugging).
%
% Returns a structure object with the following fields:
% nVertices, nEdges, nOrigins: Number of vertices, edges and origins, resp.,
% vertices: 3D coordinates of each vertex,
% neighborCount: Number of neighbors for each vertex,
% raddi: Radius of each vertex,
% neighborList: Index of vertices that are neighboring to each vertex,
% Origins: Indices of vertices marked as 'origin',
% origFilename, id, props
%
% Description:
% By default it reads an ASCII formatted v2 type Amira file and expects
% only vertex and edge information for representing 3D reconstructions
% of neurons.
%
% General methods of mesh_amira objects:
% mesh_amira - Construct a new mesh_amira object.
%
% Additional methods:
% See methods('mesh_amira')
%
% See also: private/loadAmiraMesh
%
% $Id$
%
% Author: Cengiz Gunay <cgunay@emory.edu>, 2012/02/03
% Copyright (c) 2012 Cengiz Gunay <cengique@users.sf.net>.
% This work is licensed under the Academic Free License ("AFL")
% v. 3.0. To view a copy of this license, please look at the COPYING
% file distributed with this software or visit
% http://opensource.org/licenses/afl-3.0.php.
if nargin == 0 % Called with no params
a_mesh = struct;
a_mesh.nVertices = 0;
a_mesh.nEdges = 0;
a_mesh.nOrigins = 0;
a_mesh.vertices = [];
a_mesh.neighborCount = [];
a_mesh.radii = [];
a_mesh.neighborList = [];
a_mesh.origins = [];
a_mesh.origFilename = '';
a_mesh.id = '';
a_mesh.props = struct;
a_mesh = class(a_mesh, 'mesh_amira');
elseif isa(filename, 'mesh_amira') % copy constructor?
a_mesh = filename;
else
if ~ exist('props', 'var')
props = struct;
end
a_mesh = ...
loadAmiraMesh(filename, getFieldDefault(props, 'isVerbose', 0));
a_mesh.origFilename = filename;
a_mesh.id = id;
a_mesh.props = props;
a_mesh = class(a_mesh, 'mesh_amira');
end