diff options
Diffstat (limited to 'inst/polygons2d/fillPolygon.m')
-rw-r--r-- | inst/polygons2d/fillPolygon.m | 105 |
1 files changed, 0 insertions, 105 deletions
diff --git a/inst/polygons2d/fillPolygon.m b/inst/polygons2d/fillPolygon.m deleted file mode 100644 index 1400f5b..0000000 --- a/inst/polygons2d/fillPolygon.m +++ /dev/null @@ -1,105 +0,0 @@ -## Copyright (C) 2003-2011 David Legland <david.legland@grignon.inra.fr> -## Copyright (C) 2016 Adapted to Octave by Juan Pablo Carbajal <carbajal@ifi.uzh.ch> -## All rights reserved. -## -## Redistribution and use in source and binary forms, with or without -## modification, are permitted provided that the following conditions are met: -## -## 1 Redistributions of source code must retain the above copyright notice, -## this list of conditions and the following disclaimer. -## 2 Redistributions in binary form must reproduce the above copyright -## notice, this list of conditions and the following disclaimer in the -## documentation and/or other materials provided with the distribution. -## -## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ''AS IS'' -## AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -## IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -## ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE FOR -## ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -## DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -## SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -## CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -## OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -## -## The views and conclusions contained in the software and documentation are -## those of the authors and should not be interpreted as representing official -## policies, either expressed or implied, of the copyright holders. - -## -*- texinfo -*- -## @deftypefn {Function File} {@var{h} =} fillPolygon (@var{p}) -## @deftypefnx {Function File} {@var{h} =} fillPolygon (@var{px},@var{py}) -## Fill a polygon specified by a list of points -## -## @var{p} is a single [N*2] array. -## With one input argument, it fills the interior of the polygon specified -## by @var{p}. The boundary of the polygon is not drawn, use 'drawPolygon' -## to do it. -## -## If @var{p} contains NaN-couples, each portion between the [NaN;NaN] will -## be filled separately. -## -## Two input arguments specify coordinates of the polygon in separate arrays. -## -## Also returns a handle to the created patch. -## -## @seealso{polygons2d, drawCurve, drawPolygon} -## @end deftypefn - -function h = fillPolygon (varargin) - - # check input - if isempty (varargin) - error ('need to specify a polygon'); - end - - # case of a set of polygons stored in a cell array - var = varargin{1}; - if iscell (var) - N = length (var); - h = zeros (N, 1); - for i = 1:N - # check for empty polygons - if ~isempty (var{i}) - h(i) = fillPolygon (var{i}, varargin{2:end}); - end - end - - return; - end - - # Extract coordinates of polygon vertices - if size (var, 2) > 1 - # first argument is a polygon array - px = var(:, 1); - py = var(:, 2); - varargin(1) = []; - else - # arguments 1 and 2 correspond to x and y coordinate respectively - if length (varargin) < 2 - error ('should specify either a N*2 array, or 2 N*1 vectors'); - end - - px = varargin{1}; - py = varargin{2}; - varargin(1:2) = []; - end - - # Find position of breaks, and copies first point of each loop at the - # end - inds = find (isnan (px(:))); - i1 = [inds ; length(px)+1]; - i0 = [1 ; inds+1]; - - px(i1, :) = px(i0, :); - py(i1, :) = py(i0, :); - - # set default line format - if isempty (varargin) - varargin = {'b'}; - end - - # fill the polygon with desired style - h = fill (px, py, varargin{:}, 'lineStyle', 'none'); - -endfunction |