10 #ifndef __LIBPAGEMAKER_GEOMETRY_H__ 11 #define __LIBPAGEMAKER_GEOMETRY_H__ 16 #include <librevenge/librevenge.h> 22 template <
typename Unit>
struct Point 27 Point(Unit x, Unit y) : m_x(x), m_y(y)
43 PMDXForm(
const uint32_t rotationDegree,
const uint32_t skewDegree,
const PMDShapePoint xformTopLeft,
const PMDShapePoint xformBotRight,
const PMDShapePoint rotatingPoint,
const uint32_t xformId)
44 : m_rotationDegree(rotationDegree), m_skewDegree(skewDegree), m_xformTopLeft(xformTopLeft), m_xformBotRight(xformBotRight), m_rotatingPoint(rotatingPoint), m_xformId(xformId)
51 virtual std::vector<PMDShapePoint> getPoints()
const = 0;
52 virtual bool getIsClosed()
const = 0;
53 virtual double getRotation()
const = 0;
54 virtual double getSkew()
const = 0;
55 virtual PMDShapePoint getRotatingPoint()
const = 0;
56 virtual PMDShapePoint getXformTopLeft()
const = 0;
57 virtual PMDShapePoint getXformBotRight()
const = 0;
58 virtual uint8_t shapeType()
const = 0;
59 virtual PMDShapePoint getBboxTopLeft()
const = 0;
60 virtual PMDShapePoint getBboxBotRight()
const = 0;
63 virtual std::string getText()
const = 0;
64 virtual std::vector<PMDCharProperties> getCharProperties()
const = 0;
65 virtual std::vector<PMDParaProperties> getParaProperties()
const = 0;
66 virtual librevenge::RVNGBinaryData getBitmap()
const = 0;
83 : m_bboxTopLeft(bboxTopLeft), m_bboxBotRight(bboxBotRight), m_mirrored(mirrored), m_strokeProps(strokeProps)
118 return m_bboxTopLeft;
123 return m_bboxBotRight;
128 std::vector<PMDShapePoint> points;
137 points.push_back(m_bboxTopLeft);
138 points.push_back(m_bboxBotRight);
155 return m_strokeProps;
165 std::vector<PMDCharProperties> temp;
166 temp.push_back(
PMDCharProperties(0,0,0,0,0,0,0,0,0,0,0));
172 std::vector<PMDParaProperties> temp;
179 librevenge::RVNGBinaryData temp;
201 : m_points(points), m_isClosed(isClosed), m_bboxTopLeft(bboxTopLeft), m_bboxBotRight(bboxBotRight), m_xFormContainer(xFormContainer), m_fillProps(fillProps), m_strokeProps(strokeProps)
207 return (-1 * (
double)temp/1000 * (
M_PI/180));
213 return (-1 * (
double)temp/1000 * (
M_PI/180));
233 return m_bboxTopLeft;
238 return m_bboxBotRight;
263 return m_strokeProps;
273 std::vector<PMDCharProperties> temp;
274 temp.push_back(
PMDCharProperties(0,0,0,0,0,0,0,0,0,0,0));
280 std::vector<PMDParaProperties> temp;
287 librevenge::RVNGBinaryData temp;
306 PMDTextBox(
const PMDShapePoint &bboxTopLeft,
const PMDShapePoint &bboxBotRight,
const PMDXForm &xFormContainer,
const std::string text,
const std::vector<PMDCharProperties> charProps,
const std::vector<PMDParaProperties> paraProps)
307 : m_bboxTopLeft(bboxTopLeft), m_bboxBotRight(bboxBotRight),m_xFormContainer(xFormContainer), m_text(text), m_charProps(charProps), m_paraProps(paraProps)
313 return (-1 * (
double)temp/1000 * (
M_PI/180));
319 return (-1 * (
double)temp/1000 * (
M_PI/180));
339 return m_bboxTopLeft;
344 return m_bboxBotRight;
354 std::vector<PMDShapePoint> points;
356 points.push_back(m_bboxTopLeft);
393 librevenge::RVNGBinaryData temp;
412 : m_bboxTopLeft(bboxTopLeft), m_bboxBotRight(bboxBotRight),m_xFormContainer(xFormContainer), m_fillProps(fillProps), m_strokeProps(strokeProps)
418 return (-1 * (
double)temp/1000 * (
M_PI/180));
424 return (-1 * (
double)temp/1000 * (
M_PI/180));
444 return m_bboxTopLeft;
449 return m_bboxBotRight;
459 std::vector<PMDShapePoint> points;
461 points.push_back(m_bboxTopLeft);
463 points.push_back(m_bboxBotRight);
481 return m_strokeProps;
491 std::vector<PMDCharProperties> temp;
492 temp.push_back(
PMDCharProperties(0,0,0,0,0,0,0,0,0,0,0));
498 std::vector<PMDParaProperties> temp;
505 librevenge::RVNGBinaryData temp;
524 : m_bboxTopLeft(bboxTopLeft), m_bboxBotRight(bboxBotRight), m_xFormContainer(xFormContainer), m_fillProps(fillProps), m_strokeProps(strokeProps)
530 return (-1 * (
double)temp/1000 * (
M_PI/180));
536 return (-1 * (
double)temp/1000 * (
M_PI/180));
561 std::vector<PMDShapePoint> points;
563 points.push_back(m_bboxTopLeft);
564 points.push_back(m_bboxBotRight);
571 return m_bboxTopLeft;
576 return m_bboxBotRight;
591 return m_strokeProps;
601 std::vector<PMDCharProperties> temp;
602 temp.push_back(
PMDCharProperties(0,0,0,0,0,0,0,0,0,0,0));
608 std::vector<PMDParaProperties> temp;
615 librevenge::RVNGBinaryData temp;
632 PMDBitmap(
const PMDShapePoint &bboxTopLeft,
const PMDShapePoint &bboxBotRight,
const PMDXForm &xFormContainer,
const librevenge::RVNGBinaryData &bitmap)
633 : m_bboxTopLeft(bboxTopLeft), m_bboxBotRight(bboxBotRight), m_xFormContainer(xFormContainer),m_bitmap(bitmap)
639 return (-1 * (
double)temp/1000 * (
M_PI/180));
645 return (-1 * (
double)temp/1000 * (
M_PI/180));
665 return m_bboxTopLeft;
670 return m_bboxBotRight;
680 std::vector<PMDShapePoint> points;
682 points.push_back(m_bboxTopLeft);
684 points.push_back(m_bboxBotRight);
712 std::vector<PMDCharProperties> temp;
713 temp.push_back(
PMDCharProperties(0,0,0,0,0,0,0,0,0,0,0));
719 std::vector<PMDParaProperties> temp;
740 : m_tl(bboxTopLeft), m_tr(topRight), m_bl(bottomLeft), m_br(bottomRight)
745 double xInches = point.
m_x.toInches(),
746 yInches = point.
m_y.toInches();
747 double newX = m_tl * xInches + m_tr * yInches,
748 newY = m_bl * xInches + m_br * yInches;
752 std::pair<InchPoint, InchPoint>
virtual std::vector< PMDShapePoint > getPoints() const
Definition: geometry.h:457
std::vector< PMDCharProperties > m_charProps
Definition: geometry.h:302
const uint8_t SHAPE_TYPE_ELLIPSE
Definition: constants.h:55
virtual double getRotation() const
Definition: geometry.h:527
virtual PMDShapePoint getBboxTopLeft() const
Definition: geometry.h:569
const uint8_t SHAPE_TYPE_TEXTBOX
Definition: constants.h:56
virtual std::string getText() const
Definition: geometry.h:705
virtual PMDShapePoint getXformBotRight() const
Definition: geometry.h:327
PMDShapePoint m_bboxBotRight
Definition: geometry.h:194
virtual PMDShapePoint getXformBotRight() const
Definition: geometry.h:544
virtual PMDShapePoint getBboxBotRight() const
Definition: geometry.h:574
virtual PMDShapePoint getRotatingPoint() const
Definition: geometry.h:106
virtual PMDFillProperties getFillProperties() const
Definition: geometry.h:695
virtual bool getIsClosed() const
Definition: geometry.h:347
virtual PMDShapePoint getXformBotRight() const
Definition: geometry.h:101
PMDBitmap(const PMDShapePoint &bboxTopLeft, const PMDShapePoint &bboxBotRight, const PMDXForm &xFormContainer, const librevenge::RVNGBinaryData &bitmap)
Definition: geometry.h:632
uint32_t m_rotationDegree
Definition: geometry.h:36
virtual uint8_t shapeType() const
Definition: geometry.h:579
Definition: geometry.h:624
virtual std::vector< PMDCharProperties > getCharProperties() const
Definition: geometry.h:489
virtual ~PMDBitmap()
Definition: geometry.h:729
PMDShapePoint m_xformBotRight
Definition: geometry.h:39
PMDShapePoint m_bboxBotRight
Definition: geometry.h:299
virtual std::vector< PMDShapePoint > getPoints() const
Definition: geometry.h:126
virtual PMDShapePoint getBboxTopLeft() const
Definition: geometry.h:116
virtual PMDFillProperties getFillProperties() const
Definition: geometry.h:584
virtual uint8_t shapeType() const
Definition: geometry.h:469
virtual ~PMDTextBox()
Definition: geometry.h:397
virtual uint8_t shapeType() const
Definition: geometry.h:143
Point< PMDShapeUnit > PMDShapePoint
Definition: geometry.h:31
Point(Unit x, Unit y)
Definition: geometry.h:27
Definition: geometry.h:74
std::vector< PMDParaProperties > m_paraProps
Definition: geometry.h:303
Definition: PMDTypes.h:80
PMDPolygon(std::vector< PMDShapePoint > points, bool isClosed, const PMDShapePoint &bboxTopLeft, const PMDShapePoint &bboxBotRight, const PMDXForm &xFormContainer, const PMDFillProperties fillProps, const PMDStrokeProperties strokeProps)
Definition: geometry.h:200
virtual bool getIsClosed() const
Definition: geometry.h:111
virtual PMDFillProperties getFillProperties() const
Definition: geometry.h:148
virtual std::vector< PMDShapePoint > getPoints() const
Definition: geometry.h:559
PMDRectangle(const PMDShapePoint &bboxTopLeft, const PMDShapePoint &bboxBotRight, const PMDXForm &xFormContainer, const PMDFillProperties fillProps, const PMDStrokeProperties strokeProps)
Definition: geometry.h:411
virtual std::vector< PMDCharProperties > getCharProperties() const
Definition: geometry.h:163
PMDShapePoint m_bboxTopLeft
Definition: geometry.h:76
std::string m_text
Definition: geometry.h:301
virtual PMDFillProperties getFillProperties() const
Definition: geometry.h:366
virtual PMDShapePoint getXformTopLeft() const
Definition: geometry.h:322
virtual double getSkew() const
Definition: geometry.h:210
virtual std::vector< PMDParaProperties > getParaProperties() const
Definition: geometry.h:606
std::pair< InchPoint, InchPoint > getBoundingBox(const PMDLineSet &lineSet, const TransformationMatrix &matrix)
Definition: geometry.cpp:15
PMDFillProperties m_fillProps
Definition: geometry.h:196
virtual std::vector< PMDCharProperties > getCharProperties() const
Definition: geometry.h:271
virtual std::vector< PMDParaProperties > getParaProperties() const
Definition: geometry.h:717
librevenge::RVNGBinaryData m_bitmap
Definition: geometry.h:629
virtual uint8_t shapeType() const
Definition: geometry.h:251
Definition: geometry.h:22
Definition: geometry.h:734
virtual uint8_t shapeType() const
Definition: geometry.h:361
virtual double getSkew() const
Definition: geometry.h:533
virtual PMDShapePoint getBboxTopLeft() const
Definition: geometry.h:442
InchPoint transform(const Point< Unit > &point) const
Definition: geometry.h:743
virtual PMDShapePoint getXformBotRight() const
Definition: geometry.h:432
virtual PMDFillProperties getFillProperties() const
Definition: geometry.h:474
virtual librevenge::RVNGBinaryData getBitmap() const
Definition: geometry.h:177
virtual ~PMDRectangle()
Definition: geometry.h:509
virtual PMDShapePoint getBboxBotRight() const
Definition: geometry.h:121
virtual librevenge::RVNGBinaryData getBitmap() const
Definition: geometry.h:503
virtual PMDShapePoint getRotatingPoint() const
Definition: geometry.h:332
PMDShapePoint m_bboxTopLeft
Definition: geometry.h:626
PMDFillProperties m_fillProps
Definition: geometry.h:407
PMDShapePoint m_bboxBotRight
Definition: geometry.h:627
Definition: geometry.h:189
virtual PMDFillProperties getFillProperties() const
Definition: geometry.h:256
PMDStrokeProperties m_strokeProps
Definition: geometry.h:520
Definition: PMDTypes.h:65
virtual ~PMDLineSet()
Definition: geometry.h:69
virtual double getSkew() const
Definition: geometry.h:642
virtual librevenge::RVNGBinaryData getBitmap() const
Definition: geometry.h:285
const uint8_t SHAPE_TYPE_POLY
Definition: constants.h:53
virtual PMDShapePoint getBboxBotRight() const
Definition: geometry.h:342
virtual PMDShapePoint getXformBotRight() const
Definition: geometry.h:221
uint32_t m_skewDegree
Definition: geometry.h:37
virtual PMDShapePoint getBboxBotRight() const
Definition: geometry.h:668
virtual std::vector< PMDShapePoint > getPoints() const
Definition: geometry.h:352
virtual double getRotation() const
Definition: geometry.h:310
virtual double getRotation() const
Definition: geometry.h:204
PMDLine(const PMDShapePoint &bboxTopLeft, const PMDShapePoint &bboxBotRight, const bool mirrored, const PMDStrokeProperties strokeProps)
Definition: geometry.h:82
virtual PMDShapePoint getXformTopLeft() const
Definition: geometry.h:648
virtual std::string getText() const
Definition: geometry.h:266
virtual PMDShapePoint getXformTopLeft() const
Definition: geometry.h:96
virtual bool getIsClosed() const
Definition: geometry.h:241
virtual PMDStrokeProperties getStrokeProperties() const
Definition: geometry.h:700
virtual std::vector< PMDParaProperties > getParaProperties() const
Definition: geometry.h:386
virtual PMDShapePoint getBboxTopLeft() const
Definition: geometry.h:337
PMDEllipse(const PMDShapePoint &bboxTopLeft, const PMDShapePoint &bboxBotRight, const PMDXForm &xFormContainer, const PMDFillProperties fillProps, const PMDStrokeProperties strokeProps)
Definition: geometry.h:523
virtual ~PMDPolygon()
Definition: geometry.h:291
PMDShapePoint m_xformTopLeft
Definition: geometry.h:38
PMDShapePoint m_bboxBotRight
Definition: geometry.h:77
PMDXForm m_xFormContainer
Definition: geometry.h:195
virtual std::string getText() const
Definition: geometry.h:484
virtual uint8_t shapeType() const
Definition: geometry.h:690
Unit m_x
Definition: geometry.h:24
virtual PMDShapePoint getRotatingPoint() const
Definition: geometry.h:658
PMDShapePoint m_bboxTopLeft
Definition: geometry.h:404
virtual bool getIsClosed() const
Definition: geometry.h:554
virtual std::string getText() const
Definition: geometry.h:158
virtual ~PMDLine()
Definition: geometry.h:183
virtual ~PMDEllipse()
Definition: geometry.h:619
virtual std::vector< PMDParaProperties > getParaProperties() const
Definition: geometry.h:496
virtual PMDShapePoint getRotatingPoint() const
Definition: geometry.h:226
Unit m_y
Definition: geometry.h:25
PMDShapePoint m_bboxBotRight
Definition: geometry.h:405
#define M_PI
Definition: libpagemaker_utils.h:24
Definition: geometry.h:48
virtual PMDShapePoint getXformBotRight() const
Definition: geometry.h:653
virtual double getSkew() const
Definition: geometry.h:316
virtual PMDStrokeProperties getStrokeProperties() const
Definition: geometry.h:371
virtual PMDShapePoint getXformTopLeft() const
Definition: geometry.h:216
bool m_mirrored
Definition: geometry.h:78
virtual std::vector< PMDCharProperties > getCharProperties() const
Definition: geometry.h:599
virtual PMDStrokeProperties getStrokeProperties() const
Definition: geometry.h:261
const uint8_t FILL_SOLID
Definition: constants.h:62
Point< double > InchPoint
Definition: geometry.h:32
PMDXForm m_xFormContainer
Definition: geometry.h:406
virtual PMDShapePoint getBboxTopLeft() const
Definition: geometry.h:663
Definition: geometry.h:296
virtual std::string getText() const
Definition: geometry.h:376
virtual std::vector< PMDParaProperties > getParaProperties() const
Definition: geometry.h:278
virtual librevenge::RVNGBinaryData getBitmap() const
Definition: geometry.h:391
virtual std::vector< PMDCharProperties > getCharProperties() const
Definition: geometry.h:381
uint32_t m_xformId
Definition: geometry.h:41
virtual librevenge::RVNGBinaryData getBitmap() const
Definition: geometry.h:724
Definition: PMDTypes.h:40
PMDShapePoint m_bboxTopLeft
Definition: geometry.h:516
PMDStrokeProperties m_strokeProps
Definition: geometry.h:197
PMDStrokeProperties m_strokeProps
Definition: geometry.h:408
PMDShapePoint m_rotatingPoint
Definition: geometry.h:40
PMDXForm m_xFormContainer
Definition: geometry.h:518
PMDTextBox(const PMDShapePoint &bboxTopLeft, const PMDShapePoint &bboxBotRight, const PMDXForm &xFormContainer, const std::string text, const std::vector< PMDCharProperties > charProps, const std::vector< PMDParaProperties > paraProps)
Definition: geometry.h:306
Definition: PMDTypes.h:52
virtual PMDShapePoint getRotatingPoint() const
Definition: geometry.h:549
virtual PMDStrokeProperties getStrokeProperties() const
Definition: geometry.h:153
PMDXForm m_xFormContainer
Definition: geometry.h:628
virtual PMDStrokeProperties getStrokeProperties() const
Definition: geometry.h:479
Definition: geometry.h:20
const uint8_t SHAPE_TYPE_RECT
Definition: constants.h:54
virtual double getSkew() const
Definition: geometry.h:91
Definition: geometry.h:514
virtual bool getIsClosed() const
Definition: geometry.h:673
const uint8_t SHAPE_TYPE_LINE
Definition: constants.h:52
virtual PMDShapePoint getXformTopLeft() const
Definition: geometry.h:427
virtual std::vector< PMDShapePoint > getPoints() const
Definition: geometry.h:246
virtual librevenge::RVNGBinaryData getBitmap() const
Definition: geometry.h:613
virtual double getSkew() const
Definition: geometry.h:421
PMDStrokeProperties m_strokeProps
Definition: geometry.h:79
std::vector< PMDShapePoint > m_points
Definition: geometry.h:191
virtual double getRotation() const
Definition: geometry.h:415
PMDXForm(const uint32_t rotationDegree, const uint32_t skewDegree, const PMDShapePoint xformTopLeft, const PMDShapePoint xformBotRight, const PMDShapePoint rotatingPoint, const uint32_t xformId)
Definition: geometry.h:43
virtual std::vector< PMDParaProperties > getParaProperties() const
Definition: geometry.h:170
virtual std::string getText() const
Definition: geometry.h:594
virtual double getRotation() const
Definition: geometry.h:636
virtual bool getIsClosed() const
Definition: geometry.h:452
virtual PMDShapePoint getXformTopLeft() const
Definition: geometry.h:539
virtual PMDStrokeProperties getStrokeProperties() const
Definition: geometry.h:589
virtual double getRotation() const
Definition: geometry.h:86
TransformationMatrix(double bboxTopLeft, double topRight, double bottomLeft, double bottomRight)
Definition: geometry.h:739
bool m_isClosed
Definition: geometry.h:192
PMDShapePoint m_bboxTopLeft
Definition: geometry.h:193
virtual PMDShapePoint getBboxTopLeft() const
Definition: geometry.h:231
virtual PMDShapePoint getBboxBotRight() const
Definition: geometry.h:236
Definition: geometry.h:402
const uint8_t SHAPE_TYPE_BITMAP
Definition: constants.h:57
virtual std::vector< PMDShapePoint > getPoints() const
Definition: geometry.h:678
PMDXForm m_xFormContainer
Definition: geometry.h:300
virtual std::vector< PMDCharProperties > getCharProperties() const
Definition: geometry.h:710
virtual PMDShapePoint getBboxBotRight() const
Definition: geometry.h:447
double m_tr
Definition: geometry.h:736
PMDShapePoint m_bboxBotRight
Definition: geometry.h:517
PMDShapePoint m_bboxTopLeft
Definition: geometry.h:298
Definition: geometry.h:34
virtual PMDShapePoint getRotatingPoint() const
Definition: geometry.h:437
PMDFillProperties m_fillProps
Definition: geometry.h:519