Update of /cvsroot/fink/dists/10.4/unstable/main/finkinfo/graphics
In directory sc8-pr-cvs17.sourceforge.net:/tmp/cvs-serv12618

Modified Files:
      Tag: pangocairo-branch
        potrace.info 
Added Files:
      Tag: pangocairo-branch
        potrace.patch 
Log Message:
new version


Index: potrace.info
===================================================================
RCS file: 
/cvsroot/fink/dists/10.4/unstable/main/finkinfo/graphics/potrace.info,v
retrieving revision 1.1
retrieving revision 1.1.2.1
diff -u -d -r1.1 -r1.1.2.1
--- potrace.info        20 Jan 2006 20:26:46 -0000      1.1
+++ potrace.info        9 Feb 2008 22:47:08 -0000       1.1.2.1
@@ -1,5 +1,5 @@
 Package: potrace
-Version: 1.7
+Version: 1.8
 Revision: 1
 Description: Trace bitmaps into scalable vector graphics
 DescDetail: <<
@@ -20,12 +20,18 @@
 as a pre-processor for potrace, applying scaling and various filters
 to an image before converting it to a bitmap. This is useful for
 potracing greyscale and color images.
-
+<<
+DescPackaging: <<
+Includes upstream patch to improve XFig backend.
 <<
 Homepage: http://potrace.sourceforge.net
 License: GPL
 Maintainer: Daniel Macks <[EMAIL PROTECTED]>
+BuildDepends: fink (>= 0.24.12-1)
 Source: mirror:sourceforge:%n/%n-%v.tar.gz
-Source-MD5: 8bfaabf935c03643a6875bde36fe6302
-ConfigureParams: --mandir='${prefix}/share/man' --disable-dependency-tracking
+Source-MD5: e73b45565737d64011612704dd4d9f86
+PatchFile: %n.patch
+PatchFile-MD5: 9178ac9357a61c2d40222f8f522baa77
+ConfigureParams: --mandir=%p/share/man --disable-dependency-tracking
+InstallScript: make install DESTDIR=%d
 DocFiles: AUTHORS COPYING ChangeLog NEWS README

--- NEW FILE: potrace.patch ---
Index: potrace/ChangeLog
===================================================================
--- potrace/ChangeLog   (revision 153)
+++ potrace/ChangeLog   (revision 154)
@@ -1,5 +1,9 @@
 ChangeLog
 
+       (2007/05/22) PS1 - xfig backend: added depth to opaque components
+       to avoid them floating to the background. Suggested by Rafael
+       Laboissiere.
+
 v1.8 2007/04/09
        (2007/04/08) PS1 - portability: use 'test' instead of '[' in shell
        scripts.
Index: potrace/src/backend_xfig.c
===================================================================
--- potrace/src/backend_xfig.c  (revision 153)
+++ potrace/src/backend_xfig.c  (revision 154)
@@ -124,13 +124,13 @@
   return n;
 }
 
-/* do one path. First should be 1 on the very first path, else 0. */
-static int xfig_path(FILE *fout, potrace_curve_t *curve, trans_t t, int sign) {
+/* do one path. */
+static void xfig_path(FILE *fout, potrace_curve_t *curve, trans_t t, int sign, 
int depth) {
   int i;
   dpoint_t *c;
   int m = curve->n;
 
-  fprintf(fout, "3 1 0 0 0 %d 50 0 20 0.000 0 0 0 %d\n", sign=='+' ? 32 : 33, 
npoints(curve, m));
+  fprintf(fout, "3 1 0 0 0 %d %d 0 20 0.000 0 0 0 %d\n", sign=='+' ? 32 : 33, 
depth, npoints(curve, m));
 
   for (i=0; i<m; i++) {
     c = curve->c[i];
@@ -154,15 +154,43 @@
       break;
     }
   }
-  return 0;
 }
 
+/* render a whole tree */
+static void xfig_write_paths(FILE *fout, potrace_path_t *plist, trans_t t, int 
depth) {
+  potrace_path_t *p, *q;
+
+  for (p=plist; p; p=p->sibling) {
+    xfig_path(fout, &p->curve, t, p->sign, depth);
+    for (q=p->childlist; q; q=q->sibling) {
+      xfig_path(fout, &q->curve, t, q->sign, depth >= 1 ? depth-1 : 0);
+    }
+    for (q=p->childlist; q; q=q->sibling) {
+      xfig_write_paths(fout, q->childlist, t, depth >= 2 ? depth-2 : 0);
+    }
+  }
+}
+
+/* calculate the depth of a tree. Call with d=0. */
+static int xfig_get_depth(potrace_path_t *plist) {
+  potrace_path_t *p;
+  int max =0;
+  int d;
+
+  for (p=plist; p; p=p->sibling) {
+    d = xfig_get_depth(p->childlist);
+    if (d > max) {
+      max = d;
+    }
+  }
+  return max + 1;
+}
+
 /* ---------------------------------------------------------------------- */
 /* Backend. */
 
 /* public interface for XFIG */
 int page_xfig(FILE *fout, potrace_path_t *plist, imginfo_t *imginfo) {
-  potrace_path_t *p;
   trans_t t;
   double si, co;
   double origx = imginfo->trans.orig[0] + imginfo->lmar;
@@ -174,6 +202,7 @@
   pageformat_t *f;
   int i;
   int x0, y0, x1, y1;  /* in xfig's coordinates */
+  int depth;
   
   si = sin(info.angle/180*M_PI);
   co = cos(info.angle/180*M_PI);
@@ -220,11 +249,21 @@
   fprintf(fout, "0 33 #%06x\n", info.fillcolor);
   fprintf(fout, "6 %d %d %d %d\n", x0-75, y1-35, x1+75, y0+35); /* bounding 
box */
 
+  /* determine depth of the tree */
+  depth = xfig_get_depth(plist);
+
+  /* figure out appropriate xfig starting depth. Note: xfig only has 1000 
depths available */
+  if (depth <= 40) {
+    depth = 50;
+  } else if (depth < 990) {
+    depth += 10;
+  } else {
+    depth = 999;
+  }
+
   /* write paths. Note: can never use "opticurve" with this backend -
      it just does not approximate Bezier curves closely enough.  */
-  list_forall (p, plist) {
-    xfig_path(fout, &p->curve, t, p->sign);
-  }
+  xfig_write_paths(fout, plist, t, depth);
 
   fprintf(fout, "-6\n"); /* end bounding box */
 


-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
Fink-commits mailing list
Fink-commits@lists.sourceforge.net
http://news.gmane.org/gmane.os.apple.fink.cvs

Reply via email to