From 3b425b8bf0c58e25da576ed86496171ea19240f9 Mon Sep 17 00:00:00 2001
From: Tor Andersson <tor@ghostscript.com>
Date: Tue, 16 Nov 2004 08:58:17 +0100
Subject: removed c99-isms. improved bbox handling.

---
 tree/cmap.c       |  2 +-
 tree/colorspace.c |  4 ----
 tree/debug.c      |  1 -
 tree/node1.c      |  5 -----
 tree/node2.c      | 22 +++++++---------------
 tree/text.c       | 31 +++++++------------------------
 6 files changed, 15 insertions(+), 50 deletions(-)

(limited to 'tree')

diff --git a/tree/cmap.c b/tree/cmap.c
index 1d1b3e6d..577ba7c0 100644
--- a/tree/cmap.c
+++ b/tree/cmap.c
@@ -389,7 +389,7 @@ fz_lookupcid(fz_cmap *cmap, int cpt)
 	return -1;
 }
 
-char *
+unsigned char *
 fz_decodecpt(fz_cmap *cmap, unsigned char *buf, int *cpt)
 {
 	int i, k;
diff --git a/tree/colorspace.c b/tree/colorspace.c
index af0239f5..2a3e8e87 100644
--- a/tree/colorspace.c
+++ b/tree/colorspace.c
@@ -39,14 +39,10 @@ fz_stdconvcolor(fz_colorspace *srcs, float *srcv, fz_colorspace *dsts, float *ds
 	int i;
 	if (srcs != dsts)
 	{	
-//printf("convert color from %s to %s\n  ", srcs->name, dsts->name);
-//for(i=0;i<srcs->n;i++)printf("%g ", srcv[i]);printf("\n");
 		srcs->toxyz(srcs, srcv, xyz);
-//printf("  %g %g %g\n  ", xyz[0], xyz[1], xyz[2]);
 		dsts->fromxyz(dsts, xyz, dstv);
 		for (i = 0; i < dsts->n; i++)
 			dstv[i] = CLAMP(dstv[i], 0.0, 1.0);
-//for(i=0;i<dsts->n;i++)printf("%g ", dstv[i]);printf("\n");
 	}
 	else
 	{
diff --git a/tree/debug.c b/tree/debug.c
index e55d56e7..58cb35a1 100644
--- a/tree/debug.c
+++ b/tree/debug.c
@@ -165,7 +165,6 @@ static void lispnode(fz_node *node, int level)
 	case FZ_NPATH: lisppath((fz_pathnode*)node, level); break;
 	case FZ_NTEXT: lisptext((fz_textnode*)node, level); break;
 	case FZ_NIMAGE: lispimage((fz_imagenode*)node, level); break;
-	case FZ_NSHADE: break;//lispshade((fz_shadenode*)node, level); break;
 	case FZ_NLINK: lisplink((fz_linknode*)node, level); break;
 	}
 }
diff --git a/tree/node1.c b/tree/node1.c
index 2d98d63d..eb29391f 100644
--- a/tree/node1.c
+++ b/tree/node1.c
@@ -52,9 +52,6 @@ fz_dropnode(fz_node *node)
 	case FZ_NIMAGE:
 		fz_dropimagenode((fz_imagenode *) node);
 		break;
-	case FZ_NSHADE:
-		// XXX fz_dropshadenode((fz_shadenode *) node);
-		break;
 	case FZ_NLINK:
 		fz_droplinknode((fz_linknode *) node);
 		break;
@@ -87,8 +84,6 @@ fz_boundnode(fz_node *node, fz_matrix ctm)
 		return fz_boundtextnode((fz_textnode *) node, ctm);
 	case FZ_NIMAGE:
 		return fz_boundimagenode((fz_imagenode *) node, ctm);
-	case FZ_NSHADE:
-		// XXX return fz_boundshadenode((fz_shadenode *) node, ctm);
 	case FZ_NLINK:
 		return fz_boundlinknode((fz_linknode *) node, ctm);
 	case FZ_NMETA:
diff --git a/tree/node2.c b/tree/node2.c
index 0af3ab7d..542b1590 100644
--- a/tree/node2.c
+++ b/tree/node2.c
@@ -287,25 +287,17 @@ fz_newimagenode(fz_node **nodep, fz_image *image)
 void
 fz_dropimagenode(fz_imagenode *node)
 {
-	// XXX fz_dropimage(node->image);
+	fz_dropimage(node->image);
 }
 
 fz_rect
 fz_boundimagenode(fz_imagenode *node, fz_matrix ctm)
 {
-	fz_point ll, lr, ul, ur;
-	fz_rect r;
-
-	ll = fz_transformpoint(ctm, (fz_point){0,0});
-	lr = fz_transformpoint(ctm, (fz_point){1,0});
-	ul = fz_transformpoint(ctm, (fz_point){0,1});
-	ur = fz_transformpoint(ctm, (fz_point){1,1});
-
-	r.min.x = MIN4(ll.x, lr.x, ul.x, ur.x);
-	r.min.y = MIN4(ll.y, lr.y, ul.y, ur.y);
-	r.max.x = MAX4(ll.x, lr.x, ul.x, ur.x);
-	r.max.y = MAX4(ll.y, lr.y, ul.y, ur.y);
-
-	return r;
+	fz_rect bbox;
+	bbox.min.x = 0;
+	bbox.min.y = 0;
+	bbox.max.x = 1;
+	bbox.max.y = 1;
+	return fz_transformaabb(ctm, bbox);
 }
 
diff --git a/tree/text.c b/tree/text.c
index 951fdada..a7581cf9 100644
--- a/tree/text.c
+++ b/tree/text.c
@@ -30,7 +30,6 @@ fz_rect
 fz_boundtextnode(fz_textnode *text, fz_matrix ctm)
 {
 	fz_matrix trm;
-	fz_point ul, ur, ll, lr;
 	fz_rect bbox;
 	fz_rect fbox;
 	int i;
@@ -51,15 +50,7 @@ fz_boundtextnode(fz_textnode *text, fz_matrix ctm)
 		bbox.max.y = MAX(bbox.max.y, text->els[i].y);
 	}
 
-	ll.x = bbox.min.x; ll.y = bbox.min.y; ll = fz_transformpoint(ctm, ll);
-	ul.x = bbox.min.x; ul.y = bbox.max.y; ul = fz_transformpoint(ctm, ul);
-	ur.x = bbox.max.x; ur.y = bbox.max.y; ur = fz_transformpoint(ctm, ur);
-	lr.x = bbox.max.x; lr.y = bbox.min.y; lr = fz_transformpoint(ctm, lr);
-
-	bbox.min.x = MIN4(ll.x, ul.x, ur.x, lr.x);
-	bbox.min.y = MIN4(ll.y, ul.y, ur.y, lr.y);
-	bbox.max.x = MAX4(ll.x, ul.x, ur.x, lr.x);
-	bbox.max.y = MAX4(ll.y, ul.y, ur.y, lr.y);
+	bbox = fz_transformaabb(ctm, bbox);
 
 	/* find bbox of font in trm * ctm space */
 
@@ -72,22 +63,14 @@ fz_boundtextnode(fz_textnode *text, fz_matrix ctm)
 	fbox.max.x = text->font->bbox.max.x * 0.001;
 	fbox.max.y = text->font->bbox.max.y * 0.001;
 
-	ll.x = fbox.min.x; ll.y = fbox.min.y; ll = fz_transformpoint(trm, ll);
-	ul.x = fbox.min.x; ul.y = fbox.max.y; ul = fz_transformpoint(trm, ul);
-	ur.x = fbox.max.x; ur.y = fbox.max.y; ur = fz_transformpoint(trm, ur);
-	lr.x = fbox.max.x; lr.y = fbox.min.y; lr = fz_transformpoint(trm, lr);
-
-	fbox.min.x = MIN4(ll.x, ul.x, ur.x, lr.x);
-	fbox.min.y = MIN4(ll.y, ul.y, ur.y, lr.y);
-	fbox.max.x = MAX4(ll.x, ul.x, ur.x, lr.x);
-	fbox.max.y = MAX4(ll.y, ul.y, ur.y, lr.y);
+	fbox = fz_transformaabb(trm, fbox);
 
-	bbox.min.x += MIN4(ll.x, ul.x, ur.x, lr.x);
-	bbox.min.y += MIN4(ll.y, ul.y, ur.y, lr.y);
-	bbox.max.x += MAX4(ll.x, ul.x, ur.x, lr.x);
-	bbox.max.y += MAX4(ll.y, ul.y, ur.y, lr.y);
+	/* expand glyph origin bbox by font bbox */
 
-//	printf("text [ %g %g %g %g ]\n", bbox.min.x, bbox.min.y, bbox.max.x, bbox.max.y);
+	bbox.min.x += fbox.min.x;
+	bbox.min.y += fbox.min.y;
+	bbox.max.x += fbox.max.x;
+	bbox.max.y += fbox.max.y;
 
 	return bbox;
 }
-- 
cgit v1.2.3