Commit 5f608438 authored by Inigo Martínez's avatar Inigo Martínez

Added AnnotCoord support.

Signed-off-by: Inigo Martínez's avatarIñigo Martínez <inigomartinez@gmail.com>
parent a6f70f46
...@@ -174,11 +174,8 @@ AnnotBorderEffect::AnnotBorderEffect(Dict *dict) { ...@@ -174,11 +174,8 @@ AnnotBorderEffect::AnnotBorderEffect(Dict *dict) {
// AnnotCalloutLine // AnnotCalloutLine
//------------------------------------------------------------------------ //------------------------------------------------------------------------
AnnotCalloutLine::AnnotCalloutLine(double x1, double y1, double x2, double y2) { AnnotCalloutLine::AnnotCalloutLine(double x1, double y1, double x2, double y2)
this->x1 = x1; : coord1(x1, y1), coord2(x2, y2) {
this->y1 = y1;
this->x2 = x2;
this->y2 = y2;
} }
//------------------------------------------------------------------------ //------------------------------------------------------------------------
...@@ -186,9 +183,8 @@ AnnotCalloutLine::AnnotCalloutLine(double x1, double y1, double x2, double y2) { ...@@ -186,9 +183,8 @@ AnnotCalloutLine::AnnotCalloutLine(double x1, double y1, double x2, double y2) {
//------------------------------------------------------------------------ //------------------------------------------------------------------------
AnnotCalloutMultiLine::AnnotCalloutMultiLine(double x1, double y1, double x2, AnnotCalloutMultiLine::AnnotCalloutMultiLine(double x1, double y1, double x2,
double y2, double x3, double y3) : AnnotCalloutLine(x1, y1, x2, y2) { double y2, double x3, double y3)
this->x3 = x3; : AnnotCalloutLine(x1, y1, x2, y2), coord3(x3, y3) {
this->y3 = y3;
} }
//------------------------------------------------------------------------ //------------------------------------------------------------------------
...@@ -262,78 +258,55 @@ AnnotQuadrilaterals::~AnnotQuadrilaterals() { ...@@ -262,78 +258,55 @@ AnnotQuadrilaterals::~AnnotQuadrilaterals() {
double AnnotQuadrilaterals::getX1(int quadrilateral) { double AnnotQuadrilaterals::getX1(int quadrilateral) {
if (quadrilateral >= 0 && quadrilateral < quadrilateralsLength) if (quadrilateral >= 0 && quadrilateral < quadrilateralsLength)
return quadrilaterals[quadrilateral]->x1; return quadrilaterals[quadrilateral]->coord1.getX();
return 0; return 0;
} }
double AnnotQuadrilaterals::getY1(int quadrilateral) { double AnnotQuadrilaterals::getY1(int quadrilateral) {
if (quadrilateral >= 0 && quadrilateral < quadrilateralsLength) if (quadrilateral >= 0 && quadrilateral < quadrilateralsLength)
return quadrilaterals[quadrilateral]->y1; return quadrilaterals[quadrilateral]->coord1.getY();
return 0; return 0;
} }
double AnnotQuadrilaterals::getX2(int quadrilateral) { double AnnotQuadrilaterals::getX2(int quadrilateral) {
if (quadrilateral >= 0 && quadrilateral < quadrilateralsLength) if (quadrilateral >= 0 && quadrilateral < quadrilateralsLength)
return quadrilaterals[quadrilateral]->x2; return quadrilaterals[quadrilateral]->coord2.getX();
return 0; return 0;
} }
double AnnotQuadrilaterals::getY2(int quadrilateral) { double AnnotQuadrilaterals::getY2(int quadrilateral) {
if (quadrilateral >= 0 && quadrilateral < quadrilateralsLength) if (quadrilateral >= 0 && quadrilateral < quadrilateralsLength)
return quadrilaterals[quadrilateral]->y2; return quadrilaterals[quadrilateral]->coord2.getY();
return 0; return 0;
} }
double AnnotQuadrilaterals::getX3(int quadrilateral) { double AnnotQuadrilaterals::getX3(int quadrilateral) {
if (quadrilateral >= 0 && quadrilateral < quadrilateralsLength) if (quadrilateral >= 0 && quadrilateral < quadrilateralsLength)
return quadrilaterals[quadrilateral]->x3; return quadrilaterals[quadrilateral]->coord3.getX();
return 0; return 0;
} }
double AnnotQuadrilaterals::getY3(int quadrilateral) { double AnnotQuadrilaterals::getY3(int quadrilateral) {
if (quadrilateral >= 0 && quadrilateral < quadrilateralsLength) if (quadrilateral >= 0 && quadrilateral < quadrilateralsLength)
return quadrilaterals[quadrilateral]->y3; return quadrilaterals[quadrilateral]->coord3.getY();
return 0; return 0;
} }
double AnnotQuadrilaterals::getX4(int quadrilateral) { double AnnotQuadrilaterals::getX4(int quadrilateral) {
if (quadrilateral >= 0 && quadrilateral < quadrilateralsLength) if (quadrilateral >= 0 && quadrilateral < quadrilateralsLength)
return quadrilaterals[quadrilateral]->x4; return quadrilaterals[quadrilateral]->coord4.getX();
return 0; return 0;
} }
double AnnotQuadrilaterals::getY4(int quadrilateral) { double AnnotQuadrilaterals::getY4(int quadrilateral) {
if (quadrilateral >= 0 && quadrilateral < quadrilateralsLength) if (quadrilateral >= 0 && quadrilateral < quadrilateralsLength)
return quadrilaterals[quadrilateral]->y4; return quadrilaterals[quadrilateral]->coord4.getY();
return 0; return 0;
} }
AnnotQuadrilaterals::AnnotQuadrilateral::AnnotQuadrilateral(double x1, double y1, AnnotQuadrilaterals::AnnotQuadrilateral::AnnotQuadrilateral(double x1, double y1,
double x2, double y2, double x3, double y3, double x4, double y4) { double x2, double y2, double x3, double y3, double x4, double y4)
this->x1 = x1; : coord1(x1, y1), coord2(x2, y2), coord3(x3, y3), coord4(x4, y4) {
this->y1 = y1;
this->x2 = x2;
this->y2 = y2;
this->x3 = x3;
this->y3 = y3;
this->x4 = x4;
this->y4 = y4;
}
//------------------------------------------------------------------------
// AnnotQuadPoints
//------------------------------------------------------------------------
AnnotQuadPoints::AnnotQuadPoints(double x1, double y1, double x2, double y2,
double x3, double y3, double x4, double y4) {
this->x1 = x1;
this->y1 = y1;
this->x2 = x2;
this->y2 = y2;
this->x3 = x3;
this->y3 = y3;
this->x4 = x4;
this->y4 = y4;
} }
//------------------------------------------------------------------------ //------------------------------------------------------------------------
...@@ -1530,6 +1503,9 @@ AnnotLine::AnnotLine(XRef *xrefA, Dict *dict, Catalog *catalog, Object *obj) : ...@@ -1530,6 +1503,9 @@ AnnotLine::AnnotLine(XRef *xrefA, Dict *dict, Catalog *catalog, Object *obj) :
} }
AnnotLine::~AnnotLine() { AnnotLine::~AnnotLine() {
delete coord1;
delete coord2;
if (interiorColor) if (interiorColor)
delete interiorColor; delete interiorColor;
...@@ -1542,6 +1518,7 @@ void AnnotLine::initialize(XRef *xrefA, Catalog *catalog, Dict *dict) { ...@@ -1542,6 +1518,7 @@ void AnnotLine::initialize(XRef *xrefA, Catalog *catalog, Dict *dict) {
if (dict->lookup("L", &obj1)->isArray() && obj1.arrayGetLength() == 4) { if (dict->lookup("L", &obj1)->isArray() && obj1.arrayGetLength() == 4) {
Object obj2; Object obj2;
double x1, y1, x2, y2;
(obj1.arrayGet(0, &obj2)->isNum() ? x1 = obj2.getNum() : x1 = 0); (obj1.arrayGet(0, &obj2)->isNum() ? x1 = obj2.getNum() : x1 = 0);
obj2.free(); obj2.free();
...@@ -1552,8 +1529,11 @@ void AnnotLine::initialize(XRef *xrefA, Catalog *catalog, Dict *dict) { ...@@ -1552,8 +1529,11 @@ void AnnotLine::initialize(XRef *xrefA, Catalog *catalog, Dict *dict) {
(obj1.arrayGet(3, &obj2)->isNum() ? y2 = obj2.getNum() : y2 = 0); (obj1.arrayGet(3, &obj2)->isNum() ? y2 = obj2.getNum() : y2 = 0);
obj2.free(); obj2.free();
coord1 = new AnnotCoord(x1, y1);
coord2 = new AnnotCoord(x2, y2);
} else { } else {
x1 = y1 = x2 = y2 = 0; coord1 = new AnnotCoord();
coord2 = new AnnotCoord();
} }
obj1.free(); obj1.free();
......
...@@ -42,6 +42,24 @@ enum AnnotExternalDataType { ...@@ -42,6 +42,24 @@ enum AnnotExternalDataType {
annotExternalDataMarkup3D // Markup3D annotExternalDataMarkup3D // Markup3D
}; };
//------------------------------------------------------------------------
// AnnotCoord
//------------------------------------------------------------------------
class AnnotCoord {
public:
AnnotCoord() : x(0), y(0) { }
AnnotCoord(double _x, double _y) : x(_x), y(_y) { }
double getX() const { return x; }
double getY() const { return y; }
protected:
double x, y;
};
//------------------------------------------------------------------------ //------------------------------------------------------------------------
// AnnotCalloutLine // AnnotCalloutLine
//------------------------------------------------------------------------ //------------------------------------------------------------------------
...@@ -52,14 +70,14 @@ public: ...@@ -52,14 +70,14 @@ public:
AnnotCalloutLine(double x1, double y1, double x2, double y2); AnnotCalloutLine(double x1, double y1, double x2, double y2);
virtual ~AnnotCalloutLine() { } virtual ~AnnotCalloutLine() { }
double getX1() const { return x1; } double getX1() const { return coord1.getX(); }
double getY1() const { return y1; } double getY1() const { return coord1.getY(); }
double getX2() const { return x2; } double getX2() const { return coord2.getX(); }
double getY2() const { return y2; } double getY2() const { return coord2.getY(); }
protected: protected:
double x1, y1, x2, y2; AnnotCoord coord1, coord2;
}; };
//------------------------------------------------------------------------ //------------------------------------------------------------------------
...@@ -72,12 +90,12 @@ public: ...@@ -72,12 +90,12 @@ public:
AnnotCalloutMultiLine(double x1, double y1, double x2, double y2, AnnotCalloutMultiLine(double x1, double y1, double x2, double y2,
double x3, double y3); double x3, double y3);
double getX3() const { return x3; } double getX3() const { return coord3.getX(); }
double getY3() const { return y3; } double getY3() const { return coord3.getY(); }
protected: protected:
double x3, y3; AnnotCoord coord3;
}; };
//------------------------------------------------------------------------ //------------------------------------------------------------------------
...@@ -113,7 +131,7 @@ class AnnotQuadrilaterals { ...@@ -113,7 +131,7 @@ class AnnotQuadrilaterals {
AnnotQuadrilateral(double x1, double y1, double x2, double y2, double x3, AnnotQuadrilateral(double x1, double y1, double x2, double y2, double x3,
double y3, double x4, double y4); double y3, double x4, double y4);
double x1, y1, x2, y2, x3, y3, x4, y4; AnnotCoord coord1, coord2, coord3, coord4;
}; };
public: public:
...@@ -136,29 +154,6 @@ protected: ...@@ -136,29 +154,6 @@ protected:
int quadrilateralsLength; int quadrilateralsLength;
}; };
//------------------------------------------------------------------------
// AnnotQuadPoints
//------------------------------------------------------------------------
class AnnotQuadPoints {
public:
AnnotQuadPoints(double x1, double y1, double x2, double y2, double x3,
double y3, double x4, double y4);
double getX1() const { return x1; }
double getY1() const { return y1; }
double getX2() const { return x2; }
double getY2() const { return y2; }
double getX3() const { return x3; }
double getY3() const { return y3; }
double getX4() const { return x4; }
double getY4() const { return y4; }
protected:
double x1, y1, x2, y2, x3, y3, x4, y4;
};
//------------------------------------------------------------------------ //------------------------------------------------------------------------
// AnnotBorder // AnnotBorder
//------------------------------------------------------------------------ //------------------------------------------------------------------------
...@@ -863,17 +858,17 @@ public: ...@@ -863,17 +858,17 @@ public:
Dict *getMeasure() const { return measure; } Dict *getMeasure() const { return measure; }
double getCaptionTextHorizontal() const { return captionTextHorizontal; } double getCaptionTextHorizontal() const { return captionTextHorizontal; }
double getCaptionTextVertical() const { return captionTextVertical; } double getCaptionTextVertical() const { return captionTextVertical; }
double getX1() const { return x1; } double getX1() const { return coord1->getX(); }
double getY1() const { return y1; } double getY1() const { return coord1->getY(); }
double getX2() const { return x2; } double getX2() const { return coord2->getX(); }
double getY2() const { return y2; } double getY2() const { return coord2->getY(); }
protected: protected:
void initialize(XRef *xrefA, Catalog *catalog, Dict *dict); void initialize(XRef *xrefA, Catalog *catalog, Dict *dict);
// required // required
double x1, y1, x2, y2; // L AnnotCoord *coord1, *coord2;
// optional // optional
// inherited from Annot // inherited from Annot
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment