summaryrefslogtreecommitdiff
path: root/tree/text.c
diff options
context:
space:
mode:
authorTor Andersson <tor@ghostscript.com>2005-03-30 08:30:22 +0200
committerTor Andersson <tor@ghostscript.com>2005-03-30 08:30:22 +0200
commitee154f16bd09a43359967f7e7b86c3677c09461d (patch)
tree08896cfa9ff55e05bfe7855965c620d45115d4d5 /tree/text.c
parent460ad7040d67a4a93a153f98095ff952a2b15d37 (diff)
downloadmupdf-ee154f16bd09a43359967f7e7b86c3677c09461d.tar.xz
rename part 1 -- files
Diffstat (limited to 'tree/text.c')
-rw-r--r--tree/text.c141
1 files changed, 0 insertions, 141 deletions
diff --git a/tree/text.c b/tree/text.c
deleted file mode 100644
index d88e04ec..00000000
--- a/tree/text.c
+++ /dev/null
@@ -1,141 +0,0 @@
-#include <fitz.h>
-
-fz_error *
-fz_newtextnode(fz_textnode **textp, fz_font *font)
-{
- fz_textnode *text;
-
- text = fz_malloc(sizeof(fz_textnode));
- if (!text)
- return fz_outofmem;
-
- fz_initnode((fz_node*)text, FZ_NTEXT);
-
- text->font = fz_keepfont(font);
- text->trm = fz_identity();
- text->len = 0;
- text->cap = 0;
- text->els = nil;
-
- *textp = text;
- return nil;
-}
-
-fz_error *
-fz_clonetextnode(fz_textnode **textp, fz_textnode *oldtext)
-{
- fz_textnode *text;
-
- text = *textp = fz_malloc(sizeof(fz_textnode));
- if (!text)
- return fz_outofmem;
-
- fz_initnode((fz_node*)text, FZ_NTEXT);
-
- text->font = fz_keepfont(oldtext->font);
- text->trm = oldtext->trm;
- text->len = oldtext->len;
- text->cap = oldtext->len;
- text->els = nil;
-
- text->els = fz_malloc(sizeof(fz_textel) * text->len);
- if (!text->els)
- {
- fz_dropfont(text->font);
- fz_free(text);
- return fz_outofmem;
- }
-
- memcpy(text->els, oldtext->els, sizeof(fz_textel) * text->len);
-
- *textp = text;
- return nil;
-}
-
-void
-fz_droptextnode(fz_textnode *text)
-{
- fz_dropfont(text->font);
- fz_free(text->els);
-}
-
-fz_rect
-fz_boundtextnode(fz_textnode *text, fz_matrix ctm)
-{
- fz_matrix trm;
- fz_rect bbox;
- fz_rect fbox;
- int i;
-
- if (text->len == 0)
- return fz_emptyrect;
-
- /* find bbox of glyph origins in ctm space */
-
- bbox.min.x = bbox.max.x = text->els[0].x;
- bbox.min.y = bbox.max.y = text->els[0].y;
-
- for (i = 1; i < text->len; i++)
- {
- bbox.min.x = MIN(bbox.min.x, text->els[i].x);
- bbox.min.y = MIN(bbox.min.y, text->els[i].y);
- bbox.max.x = MAX(bbox.max.x, text->els[i].x);
- bbox.max.y = MAX(bbox.max.y, text->els[i].y);
- }
-
- bbox = fz_transformaabb(ctm, bbox);
-
- /* find bbox of font in trm * ctm space */
-
- trm = fz_concat(text->trm, ctm);
- trm.e = 0;
- trm.f = 0;
-
- fbox.min.x = text->font->bbox.min.x * 0.001;
- fbox.min.y = text->font->bbox.min.y * 0.001;
- fbox.max.x = text->font->bbox.max.x * 0.001;
- fbox.max.y = text->font->bbox.max.y * 0.001;
-
- fbox = fz_transformaabb(trm, fbox);
-
- /* expand glyph origin bbox by font bbox */
-
- 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;
-}
-
-static fz_error *
-growtext(fz_textnode *text, int n)
-{
- int newcap;
- fz_textel *newels;
-
- while (text->len + n > text->cap)
- {
- newcap = text->cap + 36;
- newels = fz_realloc(text->els, sizeof (fz_textel) * newcap);
- if (!newels)
- return fz_outofmem;
- text->cap = newcap;
- text->els = newels;
- }
-
- return nil;
-}
-
-fz_error *
-fz_addtext(fz_textnode *text, int cid, float x, float y)
-{
- if (growtext(text, 1) != nil)
- return fz_outofmem;
- text->els[text->len].cid = cid;
- text->els[text->len].x = x;
- text->els[text->len].y = y;
- text->len++;
- return nil;
-}
-