summaryrefslogtreecommitdiffstats
path: root/src/2geom/pointwise.cpp
diff options
context:
space:
mode:
authorJabier Arraiza Cenoz <jabier.arraiza@marker.es>2015-03-01 22:23:56 +0000
committerJabiertxof <jtx@jtx.marker.es>2015-03-01 22:23:56 +0000
commitf77b5496f69a5391bc548be95c85659539a92fe9 (patch)
tree119950ee4b1106292d43cc1de4d3eee8f664c3b5 /src/2geom/pointwise.cpp
parentadding mirror knot (diff)
downloadinkscape-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.cpp35
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: