diff options
| author | Jabier Arraiza Cenoz <jabier.arraiza@marker.es> | 2015-03-01 22:23:56 +0000 |
|---|---|---|
| committer | Jabiertxof <jtx@jtx.marker.es> | 2015-03-01 22:23:56 +0000 |
| commit | f77b5496f69a5391bc548be95c85659539a92fe9 (patch) | |
| tree | 119950ee4b1106292d43cc1de4d3eee8f664c3b5 /src/2geom/pointwise.cpp | |
| parent | adding mirror knot (diff) | |
| download | inkscape-f77b5496f69a5391bc548be95c85659539a92fe9.tar.gz inkscape-f77b5496f69a5391bc548be95c85659539a92fe9.zip | |
added mirror knots
(bzr r13645.1.26)
Diffstat (limited to 'src/2geom/pointwise.cpp')
| -rw-r--r-- | src/2geom/pointwise.cpp | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/src/2geom/pointwise.cpp b/src/2geom/pointwise.cpp index bc468343c..3c359eddc 100644 --- a/src/2geom/pointwise.cpp +++ b/src/2geom/pointwise.cpp @@ -123,6 +123,41 @@ Pointwise::findSatellites(int A, int B) const return ret; } +std::vector<Satellite> +Pointwise::findClosingSatellites(int A, int B) const +{ + std::vector<Satellite> ret; + bool finded = false; + for(unsigned i = 0; i < _satellites.size(); i++){ + if(finded && _satellites[i].second.getIsStart()){ + return ret; + } + if(finded && _satellites[i].second.getIsClosing()){ + ret.push_back(_satellites[i].second); + } + if(_satellites[i].first == A){ + finded = true; + } + } + return ret; +} + +std::vector<Satellite> +Pointwise::findPeviousSatellites(int A, int B) const +{ + std::vector<Satellite> ret; + for(unsigned i = 0; i < _satellites.size(); i++){ + if(_satellites[i].first == A){ + if(!_satellites[i].second.getIsStart()){ + ret = findSatellites(_satellites[i-1].first, B); + } else { + ret = findClosingSatellites(_satellites[i].first, B); + } + } + } + return ret; +} + } /* Local Variables: |
