index c781f8e4dbc6f67627a3e74b138ea36d70c64c5a..ab46b21a6c955ee8c69fead5af637fa15cad043d 100644 (file)
--- a/src/vanishing-point.cpp
+++ b/src/vanishing-point.cpp
#include "event-context.h"
#include "xml/repr.h"
#include "perspective-line.h"
-
-#include "knotholder.h" // FIXME: can we avoid direct access to knotholder_update_knots?
+#include "shape-editor.h"
namespace Box3D {
}
static void
-vp_knot_moved_handler (SPKnot */*knot*/, NR::Point const *ppointer, guint state, gpointer data)
+vp_knot_moved_handler (SPKnot */*knot*/, Geom::Point const *ppointer, guint state, gpointer data)
{
VPDragger *dragger = (VPDragger *) data;
VPDrag *drag = dragger->parent;
- NR::Point p = *ppointer;
+ Geom::Point p = *ppointer;
// FIXME: take from prefs
double snap_dist = SNAP_DIST / inkscape_active_desktop()->current_zoom();
@@ -130,7 +129,7 @@ vp_knot_moved_handler (SPKnot */*knot*/, NR::Point const *ppointer, guint state,
// without Shift; see if we need to snap to another dragger
for (GList *di = dragger->parent->draggers; di != NULL; di = di->next) {
VPDragger *d_new = (VPDragger *) di->data;
- if ((d_new != dragger) && (NR::L2 (d_new->point - p) < snap_dist)) {
+ if ((d_new != dragger) && (Geom::L2 (d_new->point - p) < snap_dist)) {
if (have_VPs_of_same_perspective (dragger, d_new)) {
// this would result in degenerate boxes, which we disallow for the time being
continue;
return sel_boxes;
}
-VPDragger::VPDragger(VPDrag *parent, NR::Point p, VanishingPoint &vp)
+VPDragger::VPDragger(VPDrag *parent, Geom::Point p, VanishingPoint &vp)
{
this->parent = parent;
sp_knot_update_ctrl(this->knot);
// move knot to the given point
- sp_knot_set_position (this->knot, &this->point, SP_KNOT_STATE_NORMAL);
+ sp_knot_set_position (this->knot, this->point, SP_KNOT_STATE_NORMAL);
sp_knot_show (this->knot);
// connect knot's signals
}
void
-VPDragger::updateVPs (NR::Point const &pt)
+VPDragger::updateVPs (Geom::Point const &pt)
{
for (std::list<VanishingPoint>::iterator i = this->vps.begin(); i != this->vps.end(); ++i) {
(*i).set_pos (pt);
void
VPDragger::printVPs() {
- g_print ("VPDragger at position (%f, %f):\n", point[NR::X], point[NR::Y]);
+ g_print ("VPDragger at position (%f, %f):\n", point[Geom::X], point[Geom::Y]);
for (std::list<VanishingPoint>::iterator i = this->vps.begin(); i != this->vps.end(); ++i) {
g_print (" VP %s\n", (*i).axisString());
}
VPDrag::updateBoxHandles ()
{
// FIXME: Is there a way to update the knots without accessing the
- // (previously) statically linked function knotholder_update_knots?
+ // (previously) statically linked function KnotHolder::update_knots?
GSList *sel = (GSList *) selection->itemList();
if (!sel)
SPEventContext *ec = inkscape_active_event_context();
g_assert (ec != NULL);
- if (ec->shape_knot_holder != NULL) {
- knotholder_update_knots(ec->shape_knot_holder, (SPItem *) sel->data);
+ if (ec->shape_editor != NULL) {
+ ec->shape_editor->update_knotholder();
}
}
@@ -657,14 +656,14 @@ VPDrag::drawLinesForFace (const SPBox3D *box, Proj::Axis axis) //, guint corner1
default: g_assert_not_reached();
}
- NR::Point corner1, corner2, corner3, corner4;
+ Geom::Point corner1, corner2, corner3, corner4;
box3d_corners_for_PLs (box, axis, corner1, corner2, corner3, corner4);
g_return_if_fail (box3d_get_perspective(box));
Proj::Pt2 vp = persp3d_get_VP (box3d_get_perspective(box), axis);
if (vp.is_finite()) {
// draw perspective lines for finite VPs
- NR::Point pt = vp.affine();
+ Geom::Point pt = vp.affine();
if (this->front_or_rear_lines & 0x1) {
// draw 'front' perspective lines
this->addLine (corner1, pt, color);
@@ -677,7 +676,7 @@ VPDrag::drawLinesForFace (const SPBox3D *box, Proj::Axis axis) //, guint corner1
}
} else {
// draw perspective lines for infinite VPs
- NR::Maybe<NR::Point> pt1, pt2, pt3, pt4;
+ boost::optional<Geom::Point> pt1, pt2, pt3, pt4;
Persp3D *persp = box3d_get_perspective(box);
SPDesktop *desktop = inkscape_active_desktop (); // FIXME: Store the desktop in VPDrag
Box3D::PerspectiveLine pl (corner1, axis, persp);
// don't create draggers for infinite vanishing points
return;
}
- NR::Point p = vp.get_pos();
+ Geom::Point p = vp.get_pos();
for (GList *i = this->draggers; i != NULL; i = i->next) {
VPDragger *dragger = (VPDragger *) i->data;
- if (NR::L2 (dragger->point - p) < MERGE_DIST) {
+ if (Geom::L2 (dragger->point - p) < MERGE_DIST) {
// distance is small, merge this draggable into dragger, no need to create new dragger
dragger->addVP (vp);
return;
Create a line from p1 to p2 and add it to the lines list
*/
void
-VPDrag::addLine (NR::Point p1, NR::Point p2, guint32 rgba)
+VPDrag::addLine (Geom::Point p1, Geom::Point p2, guint32 rgba)
{
SPCanvasItem *line = sp_canvas_item_new(sp_desktop_controls(inkscape_active_desktop()), SP_TYPE_CTRLLINE, NULL);
sp_ctrlline_set_coords(SP_CTRLLINE(line), p1, p2);