diff --git a/src/seltrans.h b/src/seltrans.h
index a472f3366ebd4f6dad7f6cd826de9f7bfe0bd15a..0183683ffe028026dd0bbdd525a0c4e4cd04d5ba 100644 (file)
--- a/src/seltrans.h
+++ b/src/seltrans.h
#include "selcue.h"
#include "message-context.h"
#include <vector>
+#include "sp-item.h"
struct SPKnot;
class SPDesktop;
void increaseState();
void resetState();
void setCenter(Geom::Point const &p);
- void grab(Geom::Point const &p, gdouble x, gdouble y, bool show_handles);
+ void grab(Geom::Point const &p, gdouble x, gdouble y, bool show_handles, bool translating);
void transform(Geom::Matrix const &rel_affine, Geom::Point const &norm);
void ungrab();
void stamp();
return _empty;
}
bool isGrabbed() {
- return _grabbed;
+ return _grabbed;
}
bool centerIsVisible() {
return ( _chandle && SP_KNOT_IS_VISIBLE (_chandle) );
Geom::Point _getGeomHandlePos(Geom::Point const &visual_handle_pos);
Geom::Point _calcAbsAffineDefault(Geom::Scale const default_scale);
Geom::Point _calcAbsAffineGeom(Geom::Scale const geom_scale);
- void _keepClosestPointOnly(std::vector<Geom::Point> &points, const Geom::Point &reference);
+ void _keepClosestPointOnly(std::vector<Inkscape::SnapCandidatePoint> &points, const Geom::Point &reference);
+ void _display_snapsource();
enum State {
STATE_SCALE, //scale or stretch
STATE_ROTATE //rotate or skew
};
-
+
SPDesktop *_desktop;
std::vector<SPItem *> _items;
std::vector<SPItem const *> _items_const;
std::vector<Geom::Matrix> _items_affines;
std::vector<Geom::Point> _items_centers;
-
- std::vector<Geom::Point> _snap_points;
- std::vector<Geom::Point> _bbox_points;
-
+
+ std::vector<Inkscape::SnapCandidatePoint> _snap_points;
+ std::vector<Inkscape::SnapCandidatePoint> _bbox_points; // the bbox point of the selection as a whole, i.e. max. 4 corners plus optionally some midpoints
+ std::vector<Inkscape::SnapCandidatePoint> _bbox_points_for_translating; // the bbox points of each selected item, only to be used for translating
+
Inkscape::SelCue _selcue;
Inkscape::Selection *_selection;
bool _changed;
SPItem::BBoxType _snap_bbox_type;
-
+
Geom::OptRect _bbox;
Geom::OptRect _approximate_bbox;
Geom::OptRect _geometric_bbox;
gdouble _strokewidth;
-
+
Geom::Matrix _current_relative_affine;
Geom::Matrix _absolute_affine;
Geom::Matrix _relative_affine;
* lines into straight lines and parallel lines into parallel lines but may alter distance between points
* and angles between lines <affine geometry>
*/
-
- Geom::Point _opposite; ///< opposite point to where a scale is taking place
+
+ Geom::Point _opposite; ///< opposite point to where a scale is taking place
Geom::Point _opposite_for_specpoints;
Geom::Point _opposite_for_bboxpoints;
Geom::Point _origin_for_specpoints;