summary | shortlog | log | commit | commitdiff | tree
raw | patch | inline | side by side (parent: f38d1b8)
raw | patch | inline | side by side (parent: f38d1b8)
author | johanengelen <johanengelen@users.sourceforge.net> | |
Sun, 7 Sep 2008 18:40:47 +0000 (18:40 +0000) | ||
committer | johanengelen <johanengelen@users.sourceforge.net> | |
Sun, 7 Sep 2008 18:40:47 +0000 (18:40 +0000) |
index 0daf6e69a2248216488022fe7388083ca7b94c6a..74b69b9c0b0ba2a2b7fb9bd68b52edfbf0931fb2 100644 (file)
#include "libnr/nr-matrix-fns.h"
#include <libnr/nr-pixops.h>
#include <libnr/nr-convert2geom.h>
-#include <libnr/nr-path.h>
#include "helper/geom.h"
/*
diff --git a/src/extension/internal/cairo-render-context.h b/src/extension/internal/cairo-render-context.h
index 535ab572f8103f6a523d8b13a9837caadfcfeb08..4c078f87f4ee63286b51aecf37e86294971d8987 100644 (file)
#include <set>
#include <string>
-#include "libnr/nr-path.h"
-#include <libnr/nr-matrix-ops.h>
#include <2geom/forward.h>
#include "style.h"
index 14747240708b280a166a1e1d09ec53a8b144ce4f..ab5d4cf58bf6bcc690d4af9b22a638626c4e94b0 100644 (file)
#include <set>
#include <string>
-#include "libnr/nr-path.h"
//#include "libnrtype/font-instance.h"
#include "style.h"
diff --git a/src/extension/internal/emf-win32-print.cpp b/src/extension/internal/emf-win32-print.cpp
index aaadf14acb57d5a2776ab5f56e84a7df51ff4d40..f9b65875acf0b11086975c5d97128082f957c567 100644 (file)
#include "libnr/nr-scale-translate-ops.h"
#include "libnr/nr-translate-scale-ops.h"
#include "libnr/nr-matrix-fns.h"
-#include "libnr/nr-path.h"
#include "libnr/nr-pixblock.h"
#include <libnr/n-art-bpath-2geom.h>
#include "display/canvas-bpath.h"
index b872aa425cf3c3783e225b641a70e35ed69fe868..92928b9e42415eb573bdef693ec43f268ad01ff3 100644 (file)
#include <set>
#include <string>
-#include "libnr/nr-path.h"
-
#include <libnrtype/font-instance.h>
#include "svg/stringstream.h"
diff --git a/src/extension/print.h b/src/extension/print.h
index de9c8c59830738be47f7f99918717827ff498614..8ae71b8e6a31bc5f9244e4e5d059ccc56a12c095 100644 (file)
--- a/src/extension/print.h
+++ b/src/extension/print.h
#include "extension.h"
-#include "libnr/nr-path.h"
#include "display/nr-arena-forward.h"
#include "forward.h"
index 3b99f8d39fe137025d22ed8602eaf5a2cddf7849..c7f5fd28c99a734a855ed0b2e2ac2e9bd223d77c 100644 (file)
libnr/nr-maybe.h \
libnr/nr-object.cpp \
libnr/nr-object.h \
- libnr/nr-path.cpp \
- libnr/nr-path.h \
libnr/nr-path-code.h \
libnr/nr-pixblock-line.cpp \
libnr/nr-pixblock-line.h \
diff --git a/src/libnr/nr-path.cpp b/src/libnr/nr-path.cpp
--- a/src/libnr/nr-path.cpp
+++ /dev/null
@@ -1,502 +0,0 @@
-#define __NR_PATH_C__
-
-/*
- * Pixel buffer rendering library
- *
- * Authors:
- * Lauris Kaplinski <lauris@kaplinski.com>
- *
- * This code is in public domain
- */
-
-#include <glib/gmem.h>
-#include "n-art-bpath.h"
-#include "nr-rect.h"
-#include "nr-path.h"
-
-static void nr_curve_bbox (NR::Coord x000, NR::Coord y000, NR::Coord x001, NR::Coord y001, NR::Coord x011, NR::Coord y011, NR::Coord x111, NR::Coord y111, NRRect *bbox);
-
-static void nr_curve_bbox(NR::Point const p000, NR::Point const p001,
- NR::Point const p011, NR::Point const p111,
- NRRect *bbox);
-
-NRBPath *nr_path_duplicate_transform(NRBPath *d, const_NRBPath *s, NR::Matrix const *transform)
-{
- int i;
-
- if (!s->path) {
- d->path = NULL;
- return d;
- }
-
- i = 0;
- while (s->path[i].code != NR_END) i += 1;
-
- d->path = g_new (NArtBpath, i + 1);
-
- i = 0;
- while (s->path[i].code != NR_END) {
- d->path[i].code = s->path[i].code;
- if (s->path[i].code == NR_CURVETO) {
- d->path[i].setC(1, s->path[i].c(1) * (*transform));
- d->path[i].setC(2, s->path[i].c(2) * (*transform));
- }
- d->path[i].setC(3, s->path[i].c(3) * (*transform));
- i += 1;
- }
- d->path[i].code = NR_END;
-
- return d;
-}
-
-NRBPath *nr_path_duplicate_transform(NRBPath *d, const_NRBPath *s, NR::Matrix const transform) {
- NR::Matrix tr = transform;
- return nr_path_duplicate_transform(d, s, &tr);
-}
-
-NArtBpath* nr_artpath_affine(NArtBpath const *s, NR::Matrix const &aff) {
- const_NRBPath bp;
- bp.path = s;
- NRBPath abp;
- nr_path_duplicate_transform(&abp, &bp, aff);
- return abp.path;
-}
-
-static void
-nr_line_wind_distance (NR::Coord x0, NR::Coord y0, NR::Coord x1, NR::Coord y1, NR::Point &pt, int *wind, NR::Coord *best)
-{
- NR::Coord Ax, Ay, Bx, By, Dx, Dy, s;
- NR::Coord dist2;
-
- /* Find distance */
- Ax = x0;
- Ay = y0;
- Bx = x1;
- By = y1;
- Dx = x1 - x0;
- Dy = y1 - y0;
- const NR::Coord Px = pt[NR::X];
- const NR::Coord Py = pt[NR::Y];
-
- if (best) {
- s = ((Px - Ax) * Dx + (Py - Ay) * Dy) / (Dx * Dx + Dy * Dy);
- if (s <= 0.0) {
- dist2 = (Px - Ax) * (Px - Ax) + (Py - Ay) * (Py - Ay);
- } else if (s >= 1.0) {
- dist2 = (Px - Bx) * (Px - Bx) + (Py - By) * (Py - By);
- } else {
- NR::Coord Qx, Qy;
- Qx = Ax + s * Dx;
- Qy = Ay + s * Dy;
- dist2 = (Px - Qx) * (Px - Qx) + (Py - Qy) * (Py - Qy);
- }
-
- if (dist2 < (*best * *best)) *best = sqrt (dist2);
- }
-
- if (wind) {
- /* Find wind */
- if ((Ax >= Px) && (Bx >= Px)) return;
- if ((Ay >= Py) && (By >= Py)) return;
- if ((Ay < Py) && (By < Py)) return;
- if (Ay == By) return;
- /* Ctach upper y bound */
- if (Ay == Py) {
- if (Ax < Px) *wind -= 1;
- return;
- } else if (By == Py) {
- if (Bx < Px) *wind += 1;
- return;
- } else {
- NR::Coord Qx;
- /* Have to calculate intersection */
- Qx = Ax + Dx * (Py - Ay) / Dy;
- if (Qx < Px) {
- *wind += (Dy > 0.0) ? 1 : -1;
- }
- }
- }
-}
-
-static void
-nr_curve_bbox_wind_distance (NR::Coord x000, NR::Coord y000,
- NR::Coord x001, NR::Coord y001,
- NR::Coord x011, NR::Coord y011,
- NR::Coord x111, NR::Coord y111,
- NR::Point &pt,
- NRRect *bbox, int *wind, NR::Coord *best,
- NR::Coord tolerance)
-{
- NR::Coord x0, y0, x1, y1, len2;
- int needdist, needwind, needline;
-
- const NR::Coord Px = pt[NR::X];
- const NR::Coord Py = pt[NR::Y];
-
- needdist = 0;
- needwind = 0;
- needline = 0;
-
- if (bbox) nr_curve_bbox (x000, y000, x001, y001, x011, y011, x111, y111, bbox);
-
- x0 = MIN (x000, x001);
- x0 = MIN (x0, x011);
- x0 = MIN (x0, x111);
- y0 = MIN (y000, y001);
- y0 = MIN (y0, y011);
- y0 = MIN (y0, y111);
- x1 = MAX (x000, x001);
- x1 = MAX (x1, x011);
- x1 = MAX (x1, x111);
- y1 = MAX (y000, y001);
- y1 = MAX (y1, y011);
- y1 = MAX (y1, y111);
-
- if (best) {
- /* Quicly adjust to endpoints */
- len2 = (x000 - Px) * (x000 - Px) + (y000 - Py) * (y000 - Py);
- if (len2 < (*best * *best)) *best = (NR::Coord) sqrt (len2);
- len2 = (x111 - Px) * (x111 - Px) + (y111 - Py) * (y111 - Py);
- if (len2 < (*best * *best)) *best = (NR::Coord) sqrt (len2);
-
- if (((x0 - Px) < *best) && ((y0 - Py) < *best) && ((Px - x1) < *best) && ((Py - y1) < *best)) {
- /* Point is inside sloppy bbox */
- /* Now we have to decide, whether subdivide */
- /* fixme: (Lauris) */
- if (((y1 - y0) > 5.0) || ((x1 - x0) > 5.0)) {
- needdist = 1;
- } else {
- needline = 1;
- }
- }
- }
- if (!needdist && wind) {
- if ((y1 >= Py) && (y0 < Py) && (x0 < Px)) {
- /* Possible intersection at the left */
- /* Now we have to decide, whether subdivide */
- /* fixme: (Lauris) */
- if (((y1 - y0) > 5.0) || ((x1 - x0) > 5.0)) {
- needwind = 1;
- } else {
- needline = 1;
- }
- }
- }
-
- if (needdist || needwind) {
- NR::Coord x00t, x0tt, xttt, x1tt, x11t, x01t;
- NR::Coord y00t, y0tt, yttt, y1tt, y11t, y01t;
- NR::Coord s, t;
-
- t = 0.5;
- s = 1 - t;
-
- x00t = s * x000 + t * x001;
- x01t = s * x001 + t * x011;
- x11t = s * x011 + t * x111;
- x0tt = s * x00t + t * x01t;
- x1tt = s * x01t + t * x11t;
- xttt = s * x0tt + t * x1tt;
-
- y00t = s * y000 + t * y001;
- y01t = s * y001 + t * y011;
- y11t = s * y011 + t * y111;
- y0tt = s * y00t + t * y01t;
- y1tt = s * y01t + t * y11t;
- yttt = s * y0tt + t * y1tt;
-
- nr_curve_bbox_wind_distance (x000, y000, x00t, y00t, x0tt, y0tt, xttt, yttt, pt, NULL, wind, best, tolerance);
- nr_curve_bbox_wind_distance (xttt, yttt, x1tt, y1tt, x11t, y11t, x111, y111, pt, NULL, wind, best, tolerance);
- } else if (1 || needline) {
- nr_line_wind_distance (x000, y000, x111, y111, pt, wind, best);
- }
-}
-
-void
-nr_path_matrix_point_bbox_wind_distance (const_NRBPath const *bpath, NR::Matrix const &m, NR::Point &pt,
- NRRect *bbox, int *wind, NR::Coord *dist,
- NR::Coord tolerance, NR::Rect *viewbox)
-{
- if (!bpath->path) {
- if (wind) *wind = 0;
- if (dist) *dist = NR_HUGE;
- return;
- }
-
- NR::Coord x0 = 0;
- NR::Coord y0 = 0;
- NR::Coord x1 = 0;
- NR::Coord y1 = 0;
- NR::Coord x2 = 0;
- NR::Coord y2 = 0;
- NR::Coord x3 = 0;
- NR::Coord y3 = 0;
-
- // remembering the start of subpath
- NR::Coord x_start = 0, y_start = 0; bool start_set = false;
- NR::Rect swept;
-
- for (const NArtBpath *p = bpath->path; p->code != NR_END; p+= 1) {
- switch (p->code) {
- case NR_MOVETO_OPEN:
- case NR_MOVETO:
- if (start_set) { // this is a new subpath
- if (wind && (x0 != x_start || y0 != y_start)) // for correct fill picking, each subpath must be closed
- nr_line_wind_distance (x0, y0, x_start, y_start, pt, wind, dist);
- }
- x0 = m[0] * p->x3 + m[2] * p->y3 + m[4];
- y0 = m[1] * p->x3 + m[3] * p->y3 + m[5];
- x_start = x0; y_start = y0; start_set = true;
- if (bbox) {
- bbox->x0 = (NR::Coord) MIN (bbox->x0, x0);
- bbox->y0 = (NR::Coord) MIN (bbox->y0, y0);
- bbox->x1 = (NR::Coord) MAX (bbox->x1, x0);
- bbox->y1 = (NR::Coord) MAX (bbox->y1, y0);
- }
- break;
- case NR_LINETO:
- x3 = m[0] * p->x3 + m[2] * p->y3 + m[4];
- y3 = m[1] * p->x3 + m[3] * p->y3 + m[5];
- if (bbox) {
- bbox->x0 = (NR::Coord) MIN (bbox->x0, x3);
- bbox->y0 = (NR::Coord) MIN (bbox->y0, y3);
- bbox->x1 = (NR::Coord) MAX (bbox->x1, x3);
- bbox->y1 = (NR::Coord) MAX (bbox->y1, y3);
- }
- if (dist || wind) {
- if (wind) { // we need to pick fill, so do what we're told
- nr_line_wind_distance (x0, y0, x3, y3, pt, wind, dist);
- } else { // only stroke is being picked; skip this segment if it's totally outside the viewbox
- swept = NR::Rect(NR::Point(x0, y0), NR::Point(x3, y3));
- //std::cout << "swept: " << swept;
- //std::cout << "view: " << *viewbox;
- //std::cout << "intersects? " << (swept.intersects(*viewbox)? "YES" : "NO") << "\n";
- if (!viewbox || swept.intersects(*viewbox))
- nr_line_wind_distance (x0, y0, x3, y3, pt, wind, dist);
- }
- }
- x0 = x3;
- y0 = y3;
- break;
- case NR_CURVETO:
- {
- x3 = m[0] * p->x3 + m[2] * p->y3 + m[4];
- y3 = m[1] * p->x3 + m[3] * p->y3 + m[5];
- x1 = m[0] * p->x1 + m[2] * p->y1 + m[4];
- y1 = m[1] * p->x1 + m[3] * p->y1 + m[5];
- x2 = m[0] * p->x2 + m[2] * p->y2 + m[4];
- y2 = m[1] * p->x2 + m[3] * p->y2 + m[5];
-
- swept = NR::Rect(NR::Point(x0, y0), NR::Point(x3, y3));
- swept.expandTo(NR::Point(x1, y1));
- swept.expandTo(NR::Point(x2, y2));
-
- if (!viewbox || swept.intersects(*viewbox)) { // we see this segment, so do full processing
- nr_curve_bbox_wind_distance (
- x0, y0,
- x1, y1,
- x2, y2,
- x3, y3,
- pt,
- bbox, wind, dist, tolerance);
- } else {
- if (wind) { // if we need fill, we can just pretend it's a straight line
- nr_line_wind_distance (x0, y0, x3, y3, pt, wind, dist);
- } else { // otherwise, skip it completely
- }
- }
- x0 = x3;
- y0 = y3;
- }
- break;
- default:
- break;
- }
- }
-
- if (start_set) {
- if (wind && (x0 != x_start || y0 != y_start)) // for correct picking, each subpath must be closed
- nr_line_wind_distance (x0, y0, x_start, y_start, pt, wind, dist);
- }
-}
-
-static void
-nr_curve_bbox(NR::Point const p000, NR::Point const p001,
- NR::Point const p011, NR::Point const p111,
- NRRect *bbox)
-{
- using NR::X;
- using NR::Y;
-
- nr_curve_bbox(p000[X], p000[Y],
- p001[X], p001[Y],
- p011[X], p011[Y],
- p111[X], p111[Y],
- bbox);
-}
-
-/* Fast bbox calculation */
-/* Thanks to Nathan Hurst for suggesting it */
-
-static void
-nr_curve_bbox (NR::Coord x000, NR::Coord y000, NR::Coord x001, NR::Coord y001, NR::Coord x011, NR::Coord y011, NR::Coord x111, NR::Coord y111, NRRect *bbox)
-{
- NR::Coord a, b, c, D;
-
- bbox->x0 = (NR::Coord) MIN (bbox->x0, x111);
- bbox->y0 = (NR::Coord) MIN (bbox->y0, y111);
- bbox->x1 = (NR::Coord) MAX (bbox->x1, x111);
- bbox->y1 = (NR::Coord) MAX (bbox->y1, y111);
-
- /*
- * xttt = s * (s * (s * x000 + t * x001) + t * (s * x001 + t * x011)) + t * (s * (s * x001 + t * x011) + t * (s * x011 + t * x111))
- * xttt = s * (s2 * x000 + s * t * x001 + t * s * x001 + t2 * x011) + t * (s2 * x001 + s * t * x011 + t * s * x011 + t2 * x111)
- * xttt = s * (s2 * x000 + 2 * st * x001 + t2 * x011) + t * (s2 * x001 + 2 * st * x011 + t2 * x111)
- * xttt = s3 * x000 + 2 * s2t * x001 + st2 * x011 + s2t * x001 + 2st2 * x011 + t3 * x111
- * xttt = s3 * x000 + 3s2t * x001 + 3st2 * x011 + t3 * x111
- * xttt = s3 * x000 + (1 - s) 3s2 * x001 + (1 - s) * (1 - s) * 3s * x011 + (1 - s) * (1 - s) * (1 - s) * x111
- * xttt = s3 * x000 + (3s2 - 3s3) * x001 + (3s - 6s2 + 3s3) * x011 + (1 - 2s + s2 - s + 2s2 - s3) * x111
- * xttt = (x000 - 3 * x001 + 3 * x011 - x111) * s3 +
- * ( 3 * x001 - 6 * x011 + 3 * x111) * s2 +
- * ( 3 * x011 - 3 * x111) * s +
- * ( x111)
- * xttt' = (3 * x000 - 9 * x001 + 9 * x011 - 3 * x111) * s2 +
- * ( 6 * x001 - 12 * x011 + 6 * x111) * s +
- * ( 3 * x011 - 3 * x111)
- */
-
- a = 3 * x000 - 9 * x001 + 9 * x011 - 3 * x111;
- b = 6 * x001 - 12 * x011 + 6 * x111;
- c = 3 * x011 - 3 * x111;
-
- /*
- * s = (-b +/- sqrt (b * b - 4 * a * c)) / 2 * a;
- */
- if (fabs (a) < NR_EPSILON) {
- /* s = -c / b */
- if (fabs (b) > NR_EPSILON) {
- double s, t, xttt;
- s = -c / b;
- if ((s > 0.0) && (s < 1.0)) {
- t = 1.0 - s;
- xttt = s * s * s * x000 + 3 * s * s * t * x001 + 3 * s * t * t * x011 + t * t * t * x111;
- bbox->x0 = (float) MIN (bbox->x0, xttt);
- bbox->x1 = (float) MAX (bbox->x1, xttt);
- }
- }
- } else {
- /* s = (-b +/- sqrt (b * b - 4 * a * c)) / 2 * a; */
- D = b * b - 4 * a * c;
- if (D >= 0.0) {
- NR::Coord d, s, t, xttt;
- /* Have solution */
- d = sqrt (D);
- s = (-b + d) / (2 * a);
- if ((s > 0.0) && (s < 1.0)) {
- t = 1.0 - s;
- xttt = s * s * s * x000 + 3 * s * s * t * x001 + 3 * s * t * t * x011 + t * t * t * x111;
- bbox->x0 = (NR::Coord) MIN (bbox->x0, xttt);
- bbox->x1 = (NR::Coord) MAX (bbox->x1, xttt);
- }
- s = (-b - d) / (2 * a);
- if ((s > 0.0) && (s < 1.0)) {
- t = 1.0 - s;
- xttt = s * s * s * x000 + 3 * s * s * t * x001 + 3 * s * t * t * x011 + t * t * t * x111;
- bbox->x0 = (NR::Coord) MIN (bbox->x0, xttt);
- bbox->x1 = (NR::Coord) MAX (bbox->x1, xttt);
- }
- }
- }
-
- a = 3 * y000 - 9 * y001 + 9 * y011 - 3 * y111;
- b = 6 * y001 - 12 * y011 + 6 * y111;
- c = 3 * y011 - 3 * y111;
-
- if (fabs (a) < NR_EPSILON) {
- /* s = -c / b */
- if (fabs (b) > NR_EPSILON) {
- double s, t, yttt;
- s = -c / b;
- if ((s > 0.0) && (s < 1.0)) {
- t = 1.0 - s;
- yttt = s * s * s * y000 + 3 * s * s * t * y001 + 3 * s * t * t * y011 + t * t * t * y111;
- bbox->y0 = (float) MIN (bbox->y0, yttt);
- bbox->y1 = (float) MAX (bbox->y1, yttt);
- }
- }
- } else {
- /* s = (-b +/- sqrt (b * b - 4 * a * c)) / 2 * a; */
- D = b * b - 4 * a * c;
- if (D >= 0.0) {
- NR::Coord d, s, t, yttt;
- /* Have solution */
- d = sqrt (D);
- s = (-b + d) / (2 * a);
- if ((s > 0.0) && (s < 1.0)) {
- t = 1.0 - s;
- yttt = s * s * s * y000 + 3 * s * s * t * y001 + 3 * s * t * t * y011 + t * t * t * y111;
- bbox->y0 = (NR::Coord) MIN (bbox->y0, yttt);
- bbox->y1 = (NR::Coord) MAX (bbox->y1, yttt);
- }
- s = (-b - d) / (2 * a);
- if ((s > 0.0) && (s < 1.0)) {
- t = 1.0 - s;
- yttt = s * s * s * y000 + 3 * s * s * t * y001 + 3 * s * t * t * y011 + t * t * t * y111;
- bbox->y0 = (NR::Coord) MIN (bbox->y0, yttt);
- bbox->y1 = (NR::Coord) MAX (bbox->y1, yttt);
- }
- }
- }
-}
-
-void
-nr_path_matrix_bbox_union(const_NRBPath *bpath, NR::Matrix const &m,
- NRRect *bbox)
-{
- using NR::X;
- using NR::Y;
-
- if (!bpath->path) {
- return;
- }
-
- NR::Point prev0(0, 0);
- for (NArtBpath const *p = bpath->path; p->code != NR_END; ++p) {
- switch (p->code) {
- case NR_MOVETO_OPEN:
- case NR_MOVETO: {
- NR::Point const c3(p->x3,
- p->y3);
- prev0 = c3 * m;
- nr_rect_union_pt(bbox, prev0);
- break;
- }
-
- case NR_LINETO: {
- NR::Point const c3(p->x3,
- p->y3);
- NR::Point const endPt( c3 * m );
- nr_rect_union_pt(bbox, endPt);
- prev0 = endPt;
- break;
- }
-
- case NR_CURVETO: {
- NR::Point const c1(p->x1, p->y1);
- NR::Point const c2(p->x2, p->y2);
- NR::Point const c3(p->x3, p->y3);
- NR::Point const endPt( c3 * m );
- nr_curve_bbox(prev0,
- c1 * m,
- c2 * m,
- endPt,
- bbox);
- prev0 = endPt;
- break;
- }
-
- default:
- break;
- }
- }
-}
diff --git a/src/libnr/nr-path.h b/src/libnr/nr-path.h
--- a/src/libnr/nr-path.h
+++ /dev/null
@@ -1,65 +0,0 @@
-#ifndef __NR_PATH_H__
-#define __NR_PATH_H__
-
-/*
- * NArtBpath: Curve component. Adapted from libart.
- */
-
-/*
- * libart_lgpl/art_bpath.h copyright information:
- *
- * Copyright (C) 1998 Raph Levien
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-
-#include <libnr/nr-forward.h>
-#include <libnr/nr-coord.h>
-
-NArtBpath* nr_artpath_affine(NArtBpath const *s, NR::Matrix const &transform);
-
-struct const_NRBPath {
- NArtBpath const *path;
-};
-struct NRBPath {
- NArtBpath *path;
- operator const_NRBPath() { const_NRBPath bp = { path }; return bp; };
-};
-
-
-NRBPath *nr_path_duplicate_transform(NRBPath *d, const_NRBPath *s, NR::Matrix const *transform);
-
-NRBPath *nr_path_duplicate_transform(NRBPath *d, const_NRBPath *s, NR::Matrix const transform);
-
-void nr_path_matrix_point_bbox_wind_distance (const_NRBPath const *bpath, NR::Matrix const &m, NR::Point &pt,
- NRRect *bbox, int *wind, NR::Coord *dist,
- NR::Coord tolerance, NR::Rect *viewbox);
-
-void nr_path_matrix_bbox_union(const_NRBPath *bpath, NR::Matrix const &m, NRRect *bbox);
-
-#endif
-
-/*
- Local Variables:
- mode:c++
- c-file-style:"stroustrup"
- c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +))
- indent-tabs-mode:nil
- fill-column:99
- End:
-*/
-// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4 :
diff --git a/src/object-snapper.cpp b/src/object-snapper.cpp
index 884b561b19ebca598a0185817d67ed198de2ec3f..084fd1c36ca122e97bc5374ef646dd064626b1ba 100644 (file)
--- a/src/object-snapper.cpp
+++ b/src/object-snapper.cpp
*/
#include "svg/svg.h"
-#include "libnr/nr-path.h"
#include "libnr/nr-rect-ops.h"
#include "libnr/nr-point-fns.h"
#include <2geom/path-intersection.h>
diff --git a/src/path-chemistry.cpp b/src/path-chemistry.cpp
index 32a7968b28b76b1ed68aa91e4a654cb63596c24e..0dd73bba961d05baa98ad174046bac825b0fddc2 100644 (file)
--- a/src/path-chemistry.cpp
+++ b/src/path-chemistry.cpp
#include "sp-path.h"
#include "sp-text.h"
#include "sp-flowtext.h"
-#include "libnr/nr-path.h"
#include "text-editing.h"
#include "style.h"
#include "desktop.h"