Math::PlanePath::Base::NSEW -- multi-inheritance mixin for North, South, East, West unit steps


 package Math::PlanePath::Foo;
 use Math::PlanePath;
 use Math::PlanePath::Base::NSEW;
 @ISA = ('Math::PlanePath::Base::NSEW', 'Math::PlanePath');


This is a multi-inheritance mixin for paths which take only steps North, South, East and West by distance 1 each time. This includes for example the SquareSpiral and also things like the DragonCurve or CCurve.

The following path descriptive methods are provided

    dx_minimum()         -1
    dx_maximum()          1
    dy_minimum()         -1
    dy_maximum()          1

    dsumxy_minimum()     -1
    dsumxy_maximum()      1
    ddiffxy_minimum()    -1
    ddiffxy_maximum()     1
    dir_maximum_dxdy()   0,-1    # maximum South


Math::PlanePath, Math::PlanePath::Base::Generic



Copyright 2014, 2015, 2016, 2017, 2018, 2019, 2020 Kevin Ryde

This file is part of Math-PlanePath.

Math-PlanePath 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, or (at your option) any later version.

Math-PlanePath 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 Math-PlanePath. If not, see <>.