diff --git a/src/sp-item.h b/src/sp-item.h
index 326ea27593e4b73be12cd83470e9a73b8d32b9de..43d2d8aa3f67685d15c07077dccf5c4a2e2a1e98 100644 (file)
--- a/src/sp-item.h
+++ b/src/sp-item.h
*
* Released under GNU GPL, read the file 'COPYING' for more information
*/
-
-#include <libnr/nr-matrix.h>
-#include <libnr/nr-rect.h>
+#include <vector>
#include "display/nr-arena-forward.h"
-#include "forward.h"
#include "sp-object.h"
-#include <vector>
+#include <libnr/nr-matrix.h>
+#include <libnr/nr-rect.h>
-namespace Inkscape { class URIReference; }
class SPGuideConstraint;
-
+struct SPClipPathReference;
+struct SPMaskReference;
+struct SPAvoidRef;
+struct SPPrintContext;
+namespace Inkscape { class URIReference; }
+
enum {
SP_EVENT_INVALID,
SP_EVENT_NONE,
struct SPItem : public SPObject {
unsigned int sensitive : 1;
unsigned int stop_paint: 1;
- double r_cx;
- double r_cy;
-
+ double transform_center_x;
+ double transform_center_y;
+
NR::Matrix transform;
SPClipPathReference *clip_ref;
std::vector<SPGuideConstraint> constraints;
sigc::signal<void, NR::Matrix const *, SPItem *> _transformed_signal;
-
+
+ void init();
bool isLocked() const;
void setLocked(bool lock);
bool isHidden() const;
void setHidden(bool hidden);
+
+ bool isEvaluated() const;
+ void setEvaluated(bool visible);
+ void resetEvaluated();
bool isHidden(unsigned display_key) const;
bool isExplicitlyHidden() const;
void setExplicitlyHidden(bool val);
-
+
+ void setCenter(NR::Point object_centre);
+ void unsetCenter();
+ bool isCenterSet();
+ NR::Point getCenter();
+
bool isVisibleAndUnlocked() const;
bool isVisibleAndUnlocked(unsigned display_key) const;
NR::Rect invokeBbox(NR::Matrix const &transform) const;
+ sigc::connection _clip_ref_connection;
+ sigc::connection _mask_ref_connection;
+
sigc::connection connectTransformed(sigc::slot<void, NR::Matrix const *, SPItem *> slot) {
return _transformed_signal.connect(slot);
}
+
+private:
+ enum EvaluatedStatus
+ {
+ StatusUnknown, StatusCalculated, StatusSet
+ };
+
+ mutable bool _is_evaluated;
+ mutable EvaluatedStatus _evaluated_status;
};
typedef std::back_insert_iterator<std::vector<NR::Point> > SnapPointsIter;