/usr/share/octave/packages/geometry-1.7.0/io/@svg/svg.m is in octave-geometry 1.7.0-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 81 | ## Copyright (C) 2012 Juan Pablo Carbajal <carbajal@ifi.uzh.ch>
##
## 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/>.
## -*- texinfo -*-
## @deftypefn {Function File} {@var{obj} =} svg ()
## @deftypefnx {Function File} {@var{obj} =} svg (@var{str})
## Create object of the svg class.
##
## If no input argument is provided the object is empty. @var{str} can be a filename
## or a string defining an inline SVG.
##
## @end deftypefn
function svg = svg(name='')
svg = struct;
## SVG data. All the attributes of the <svg> node.
## The field unparsed contains all the attributes that are not being parsed.
svg.Data = struct('height',[],'width',[],'id','null','normalized',false);
## SVG metadata. All the attributes of the <metadata> node.
## The field unparsed contains all the attributes that are not being parsed.
svg.Metadata = struct('unparsed',' ');
## SVG paths. It is a vector of path structs. Maybe path can be a object too?
## Order of Path.Data is important so we store in a cell (could be a matrix padded with zeros).
## All the paths stored in polyval compatible format. Straigth segments are also stored as a polynomial.
svg.Path = struct();
svg = class (svg, 'svg');
if !isempty (name)
if exist(name,"file") == 2
name = file_in_path(path(), name);
else
error("svg:BadArguemnt", "File #s doesn't exist",name);
end
paths = loadpaths(svg, name);
svg.Path = paths;
data = loadsvgdata(svg, name);
svg.Data = data;
svg.Data.normalized = false;
elseif !ischar(name)
print_usage ;
endif
endfunction
%!test
%! dc = svg('drawing5.svg');
%! dc.getpath();
%! dc.pathid();
%! dc.getpath('path3756');
%!
%! dc = svg('drawing.svg');
%! ids = dc.pathid();
%! dc.getpath({ids{[1 3]}});
%!test
%! dc = svg('drawing6.svg');
%! ids = dc.pathid();
%! P = dc.path2polygon(ids{1});
%!test
%! dc = svg('drawing6.svg');
%! dc.plot();
%! dc.plot('color','r','linewidth',2);
|