/usr/share/octave/packages/nurbs-1.3.7/nrbexport.m is in octave-nurbs 1.3.7-1build1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 | function nrbexport (nurbs, filename)
%
% NRBEXPORT: export NURBS geometries to a format compatible with the one used in GeoPDEs (version 0.6).
%
% Calling Sequence:
%
% nrbexport (nurbs, filename);
%
% INPUT:
%
% nurbs : NURBS curve, surface or volume, see nrbmak.
% filename : name of the output file.
%
%
% Description:
%
% The data of the nurbs structure is written in the file, in a format
% that can be read by GeoPDEs.
%
% Copyright (C) 2011 Rafael Vazquez
%
% This program is free software: you can redistribute it and/or modify
% it under the terms of the GNU General Public License as published by
% the Free Software Foundation, either version 3 of the License, or
% (at your option) any later version.
% This program is distributed in the hope that it will be useful,
% but WITHOUT ANY WARRANTY; without even the implied warranty of
% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
% GNU General Public License for more details.
%
% You should have received a copy of the GNU General Public License
% along with this program. If not, see <http://www.gnu.org/licenses/>.
fid = fopen (filename, 'w');
if (fid < 0)
error ('nrbexport: cannot open file %s', filename);
end
ndim = numel (nurbs(1).order);
npatch = numel (nurbs);
fprintf (fid, '%s\n', '# nurbs mesh v.0.7');
fprintf (fid, '%s\n', '#');
fprintf (fid, '%s\n', ['# ' date]);
fprintf (fid, '%s\n', '#');
fprintf (fid, '%4i', ndim, npatch);
fprintf (fid, '\n');
for iptc = 1:npatch
fprintf (fid, '%s %i', 'PATCH', iptc);
fprintf (fid, '\n');
fprintf (fid, '%4i', nurbs(iptc).order-1);
fprintf (fid, '\n');
fprintf (fid, '%4i', nurbs(iptc).number);
fprintf (fid, '\n');
for ii = 1:ndim
fprintf (fid, '%1.7f ', nurbs(iptc).knots{ii});
fprintf (fid, '\n');
end
if (ndim == 2)
for ii = 1:ndim
fprintf (fid, '%1.15f ', nurbs(iptc).coefs(ii,:,:));
fprintf (fid, '\n');
end
fprintf (fid, '%1.15f ', nurbs(iptc).coefs(4,:,:));
fprintf (fid, '\n');
elseif (ndim == 3)
for ii = 1:ndim
fprintf (fid, '%1.15f ', nurbs(iptc).coefs(ii,:,:,:));
fprintf (fid, '\n');
end
fprintf (fid, '%1.15f ', nurbs(iptc).coefs(4,:,:,:));
fprintf (fid, '\n');
end
end
fclose (fid);
end
|