summaryrefslogtreecommitdiffstats
path: root/src/vanishing-point.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/vanishing-point.h')
-rw-r--r--src/vanishing-point.h20
1 files changed, 19 insertions, 1 deletions
diff --git a/src/vanishing-point.h b/src/vanishing-point.h
index 58b3b1427..76299541a 100644
--- a/src/vanishing-point.h
+++ b/src/vanishing-point.h
@@ -19,6 +19,8 @@
#include "line-geometry.h" // TODO: Remove this include as soon as we don't need create_canvas_(point|line) any more.
+class SP3DBox;
+
namespace Box3D {
enum VPState {
@@ -70,6 +72,7 @@ public:
private:
};
+class Perspective3D;
class VPDrag;
struct VPDragger {
@@ -89,6 +92,14 @@ public:
void addVP(VanishingPoint *vp);
void removeVP(VanishingPoint *vp);
+ /* returns the VP of the dragger that belongs to the given perspective */
+ VanishingPoint *getVPofPerspective (Perspective3D *persp);
+
+ bool hasBox (const SP3DBox *box);
+ guint numberOfBoxes(); // the number of boxes linked to all VPs of the dragger
+
+ bool hasPerspective (const Perspective3D *perps);
+ void mergePerspectives (); // remove duplicate perspectives
void reshapeBoxes(NR::Point const &p, Box3D::Axis axes);
void updateBoxReprs();
@@ -112,11 +123,18 @@ public:
void updateDraggers ();
//void updateLines ();
+ inline bool hasEmptySelection() { return this->selection->isEmpty(); }
+ bool allBoxesAreSelected (VPDragger *dragger);
+ GSList * selectedBoxesWithVPinDragger (VPDragger *dragger);
+
+ // FIXME: Should this be private? (It's the case with the corresponding function in gradient-drag.h)
+ // But vp_knot_grabbed_handler
+ void addDragger (VanishingPoint *vp);
+
private:
//void deselect_all();
//void addLine (NR::Point p1, NR::Point p2, guint32 rgba);
- void addDragger (VanishingPoint *vp);
Inkscape::Selection *selection;
sigc::connection sel_changed_connection;