[poppler] Annot Improving (VIII)

Iñigo Martínez inigomartinez at gmail.com
Sun Dec 30 14:19:22 PST 2007


El dom, 30-12-2007 a las 16:56 -0500, Jeff Muizelaar escribió:
> On Sun, Dec 30, 2007 at 09:32:05PM +0100, Iñigo Martínez wrote:
> > Hi:
> > 
> > Here goes two new patches. The first one improves AnnotLink support,
> > anyway it lacks a lot of features. The best option should be to merge
> > the actual Link implementation with the AnnotLink one.
> > 
> > The second patch adds support for AnnotFreeText.
> > 
> > I have tested both (I have figured out the old problems, and now I can
> > test them correctly, anyway I have a few glib test on the way) but I
> > would prefer a review.
> 
> I had a quick look and things looked pretty good. My comments follow
> below.
> 
> -Jeff

Thank you very much Jeff. I have done the changes to every if wrong
typed. I wrote them incorrectly in the last patches too.

I have another question. I think I should move the AnnotQuadPoint
parsing from AnnotFreeTex code to the class implementation itself.
Something like (and yes, I will change quadrilateralsLength, I didn't
liked it neither when I writed it):

AnnotQuadPoints::AnnotQuadPoints(Array *array) {
    quadrilateralsLength = array->arrayGetLength();
    if ((quadrilateralsLength % 8) == 0) {
      Object obj2;

      quadrilaterals = (AnnotQuadPoints **) gmallocn
        ((quadrilateralsLength / 8), sizeof(AnnotQuadPoints *));
      for(int i = 0; i < quadrilateralsLength; i += 8) {
        double x1, y1, x2, y2, x3, y3, x4, y4;

        (array->arrayGet(i, &obj2)->isNum() ? x1 = obj2.getNum() : x1 =
0);
        obj2.free();
        (array->arrayGet((i + 1), &obj2)->isNum() ? y1 = obj2.getNum() :
y1 = 0);
        obj2.free();
        (array->arrayGet((i + 2), &obj2)->isNum() ? x2 = obj2.getNum() :
x2 = 0);
        obj2.free();
        (array->arrayGet((i + 3), &obj2)->isNum() ? y2 = obj2.getNum() :
y2 = 0);
        obj2.free();
        (array->arrayGet((i + 4), &obj2)->isNum() ? x3 = obj2.getNum() :
x3 = 0);
        obj2.free();
        (array->arrayGet((i + 5), &obj2)->isNum() ? y3 = obj2.getNum() :
y3 = 0);
        obj2.free();
        (array->arrayGet((i + 6), &obj2)->isNum() ? x4 = obj2.getNum() :
x4 = 0);
        obj2.free();
        (array->arrayGet((i + 7), &obj2)->isNum() ? y4 = obj2.getNum() :
y4 = 0);
        obj2.free();

        quadrilaterals[i / 8] =
          new AnnotQuadPoints(x1, y1, x2, y2, x3, y3, x4, y4);
      }
      quadrilateralsLength /= 8;
    } else {
      quadrilaterals = NULL;
      quadrilateralsLength = 0;
    }
}

I have some doubts with AnnotCalloutLine and AnnotCalloutMultiline.
Think that they use inheritance so they could need dynamic cast at some
point in the future.

-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: Esta parte del mensaje =?ISO-8859-1?Q?est=E1?= firmada
	digitalmente
Url : http://lists.freedesktop.org/archives/poppler/attachments/20071230/e83f32a8/attachment.pgp 


More information about the poppler mailing list