diff options
| author | Diederik van Lierop <mail@diedenrezi.nl> | 2011-09-16 23:00:05 +0000 |
|---|---|---|
| committer | Diederik van Lierop <mail@diedenrezi.nl> | 2011-09-16 23:00:05 +0000 |
| commit | ee17bac8a5d9b6bf840272885c1eda57c45fb4ad (patch) | |
| tree | 2df5e6001c742e2f7a73007977c75ecd86fb7947 /src/ui/tool/control-point-selection.cpp | |
| parent | Correct the formula of the displacement map so that zero alpha value (diff) | |
| download | inkscape-ee17bac8a5d9b6bf840272885c1eda57c45fb4ad.tar.gz inkscape-ee17bac8a5d9b6bf840272885c1eda57c45fb4ad.zip | |
Node tool, transforming a set of nodes: Fix crashes, and finish implementation of snapping
Fixed bugs:
- https://launchpad.net/bugs/590261
(bzr r10633)
Diffstat (limited to 'src/ui/tool/control-point-selection.cpp')
| -rw-r--r-- | src/ui/tool/control-point-selection.cpp | 20 |
1 files changed, 16 insertions, 4 deletions
diff --git a/src/ui/tool/control-point-selection.cpp b/src/ui/tool/control-point-selection.cpp index 13da4a712..fbcb337a5 100644 --- a/src/ui/tool/control-point-selection.cpp +++ b/src/ui/tool/control-point-selection.cpp @@ -16,6 +16,7 @@ #include "ui/tool/event-utils.h" #include "ui/tool/selectable-control-point.h" #include "ui/tool/transform-handle-set.h" +#include "ui/tool/node.h" namespace Inkscape { namespace UI { @@ -642,13 +643,24 @@ bool ControlPointSelection::event(GdkEvent *event) return false; } -std::vector<Inkscape::SnapCandidatePoint> ControlPointSelection::getOriginalPoints() +void ControlPointSelection::getOriginalPoints(std::vector<Inkscape::SnapCandidatePoint> &pts) { - std::vector<Inkscape::SnapCandidatePoint> points; + pts.clear(); for (iterator i = _points.begin(); i != _points.end(); ++i) { - points.push_back(Inkscape::SnapCandidatePoint(_original_positions[*i], SNAPSOURCE_NODE_HANDLE)); + pts.push_back(Inkscape::SnapCandidatePoint(_original_positions[*i], SNAPSOURCE_NODE_HANDLE)); + } +} + +void ControlPointSelection::getUnselectedPoints(std::vector<Inkscape::SnapCandidatePoint> &pts) +{ + pts.clear(); + ControlPointSelection::Set &nodes = this->allPoints(); + for (ControlPointSelection::Set::iterator i = nodes.begin(); i != nodes.end(); ++i) { + if (!(*i)->selected()) { + Node *n = static_cast<Node*>(*i); + pts.push_back(n->snapCandidatePoint()); + } } - return points; } void ControlPointSelection::setOriginalPoints() |
