10 #ifndef __LIBPAGEMAKER_GEOMETRY_H__ 11 #define __LIBPAGEMAKER_GEOMETRY_H__ 15 #include <librevenge/librevenge.h> 24 template <
typename Unit>
struct Point 29 Point(Unit x, Unit y) : m_x(x), m_y(y)
45 PMDXForm(
const uint32_t rotationDegree,
const uint32_t skewDegree,
const PMDShapePoint xformTopLeft,
const PMDShapePoint xformBotRight,
const PMDShapePoint rotatingPoint,
const uint32_t xformId)
46 : m_rotationDegree(rotationDegree), m_skewDegree(skewDegree), m_xformTopLeft(xformTopLeft), m_xformBotRight(xformBotRight), m_rotatingPoint(rotatingPoint), m_xformId(xformId)
53 virtual std::vector<PMDShapePoint> getPoints()
const = 0;
54 virtual bool getIsClosed()
const = 0;
55 virtual double getRotation()
const = 0;
56 virtual double getSkew()
const = 0;
57 virtual PMDShapePoint getRotatingPoint()
const = 0;
58 virtual PMDShapePoint getXformTopLeft()
const = 0;
59 virtual PMDShapePoint getXformBotRight()
const = 0;
60 virtual uint8_t shapeType()
const = 0;
61 virtual PMDShapePoint getBboxTopLeft()
const = 0;
62 virtual PMDShapePoint getBboxBotRight()
const = 0;
65 virtual std::string getText()
const = 0;
66 virtual std::vector<PMDCharProperties> getCharProperties()
const = 0;
67 virtual std::vector<PMDParaProperties> getParaProperties()
const = 0;
68 virtual librevenge::RVNGBinaryData getBitmap()
const = 0;
85 : m_bboxTopLeft(bboxTopLeft), m_bboxBotRight(bboxBotRight), m_mirrored(mirrored), m_strokeProps(strokeProps)
120 return m_bboxTopLeft;
125 return m_bboxBotRight;
130 std::vector<PMDShapePoint> points;
139 points.push_back(m_bboxTopLeft);
140 points.push_back(m_bboxBotRight);
159 return m_strokeProps;
169 return std::vector<PMDCharProperties>(1);
174 return std::vector<PMDParaProperties>(1);
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 return std::vector<PMDCharProperties>(1);
278 return std::vector<PMDParaProperties>(1);
283 librevenge::RVNGBinaryData temp;
302 PMDTextBox(
const PMDShapePoint &bboxTopLeft,
const PMDShapePoint &bboxBotRight,
const PMDXForm &xFormContainer,
const std::string text,
const std::vector<PMDCharProperties> charProps,
const std::vector<PMDParaProperties> paraProps)
303 : m_bboxTopLeft(bboxTopLeft), m_bboxBotRight(bboxBotRight),m_xFormContainer(xFormContainer), m_text(text), m_charProps(charProps), m_paraProps(paraProps)
309 return (-1 * (
double)temp/1000 * (
M_PI/180));
315 return (-1 * (
double)temp/1000 * (
M_PI/180));
335 return m_bboxTopLeft;
340 return m_bboxBotRight;
350 std::vector<PMDShapePoint> points;
352 points.push_back(m_bboxTopLeft);
389 librevenge::RVNGBinaryData temp;
408 : m_bboxTopLeft(bboxTopLeft), m_bboxBotRight(bboxBotRight),m_xFormContainer(xFormContainer), m_fillProps(fillProps), m_strokeProps(strokeProps)
414 return (-1 * (
double)temp/1000 * (
M_PI/180));
420 return (-1 * (
double)temp/1000 * (
M_PI/180));
440 return m_bboxTopLeft;
445 return m_bboxBotRight;
455 std::vector<PMDShapePoint> points;
457 points.push_back(m_bboxTopLeft);
459 points.push_back(m_bboxBotRight);
477 return m_strokeProps;
487 return std::vector<PMDCharProperties>(1);
492 return std::vector<PMDParaProperties>(1);
497 librevenge::RVNGBinaryData temp;
516 : m_bboxTopLeft(bboxTopLeft), m_bboxBotRight(bboxBotRight), m_xFormContainer(xFormContainer), m_fillProps(fillProps), m_strokeProps(strokeProps)
522 return (-1 * (
double)temp/1000 * (
M_PI/180));
528 return (-1 * (
double)temp/1000 * (
M_PI/180));
553 std::vector<PMDShapePoint> points;
555 points.push_back(m_bboxTopLeft);
556 points.push_back(m_bboxBotRight);
563 return m_bboxTopLeft;
568 return m_bboxBotRight;
583 return m_strokeProps;
593 return std::vector<PMDCharProperties>(1);
598 return std::vector<PMDParaProperties>(1);
603 librevenge::RVNGBinaryData temp;
620 PMDBitmap(
const PMDShapePoint &bboxTopLeft,
const PMDShapePoint &bboxBotRight,
const PMDXForm &xFormContainer,
const librevenge::RVNGBinaryData &bitmap)
621 : m_bboxTopLeft(bboxTopLeft), m_bboxBotRight(bboxBotRight), m_xFormContainer(xFormContainer),m_bitmap(bitmap)
627 return (-1 * (
double)temp/1000 * (
M_PI/180));
633 return (-1 * (
double)temp/1000 * (
M_PI/180));
653 return m_bboxTopLeft;
658 return m_bboxBotRight;
668 std::vector<PMDShapePoint> points;
670 points.push_back(m_bboxTopLeft);
672 points.push_back(m_bboxBotRight);
700 return std::vector<PMDCharProperties>(1);
705 return std::vector<PMDParaProperties>(1);
724 : m_tl(bboxTopLeft), m_tr(topRight), m_bl(bottomLeft), m_br(bottomRight)
729 double xInches = point.
m_x.toInches(),
730 yInches = point.
m_y.toInches();
731 double newX = m_tl * xInches + m_tr * yInches,
732 newY = m_bl * xInches + m_br * yInches;
736 std::pair<InchPoint, InchPoint>
PMDShapePoint getRotatingPoint() const override
Definition: geometry.h:226
std::vector< PMDCharProperties > m_charProps
Definition: geometry.h:298
const uint8_t SHAPE_TYPE_ELLIPSE
Definition: constants.h:55
std::vector< PMDShapePoint > getPoints() const override
Definition: geometry.h:453
librevenge::RVNGBinaryData getBitmap() const override
Definition: geometry.h:495
const uint8_t SHAPE_TYPE_TEXTBOX
Definition: constants.h:56
PMDShapePoint m_bboxBotRight
Definition: geometry.h:194
librevenge::RVNGBinaryData getBitmap() const override
Definition: geometry.h:281
double getSkew() const override
Definition: geometry.h:417
std::string getText() const override
Definition: geometry.h:480
PMDBitmap(const PMDShapePoint &bboxTopLeft, const PMDShapePoint &bboxBotRight, const PMDXForm &xFormContainer, const librevenge::RVNGBinaryData &bitmap)
Definition: geometry.h:620
uint32_t m_rotationDegree
Definition: geometry.h:38
Definition: geometry.h:612
PMDShapePoint m_xformBotRight
Definition: geometry.h:41
PMDShapePoint m_bboxBotRight
Definition: geometry.h:295
PMDShapePoint getXformTopLeft() const override
Definition: geometry.h:636
double getSkew() const override
Definition: geometry.h:630
double getRotation() const override
Definition: geometry.h:306
PMDShapePoint getBboxBotRight() const override
Definition: geometry.h:566
std::vector< PMDShapePoint > getPoints() const override
Definition: geometry.h:666
PMDShapePoint getXformTopLeft() const override
Definition: geometry.h:318
Point< PMDShapeUnit > PMDShapePoint
Definition: geometry.h:33
double getSkew() const override
Definition: geometry.h:93
Point(Unit x, Unit y)
Definition: geometry.h:29
double getRotation() const override
Definition: geometry.h:411
librevenge::RVNGBinaryData getBitmap() const override
Definition: geometry.h:601
Definition: geometry.h:76
std::vector< PMDParaProperties > m_paraProps
Definition: geometry.h:299
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
std::vector< PMDCharProperties > getCharProperties() const override
Definition: geometry.h:167
librevenge::RVNGBinaryData getBitmap() const override
Definition: geometry.h:387
PMDShapePoint getRotatingPoint() const override
Definition: geometry.h:541
uint8_t shapeType() const override
Definition: geometry.h:357
PMDRectangle(const PMDShapePoint &bboxTopLeft, const PMDShapePoint &bboxBotRight, const PMDXForm &xFormContainer, const PMDFillProperties fillProps, const PMDStrokeProperties strokeProps)
Definition: geometry.h:407
double getRotation() const override
Definition: geometry.h:519
PMDShapePoint getXformTopLeft() const override
Definition: geometry.h:216
PMDShapePoint m_bboxTopLeft
Definition: geometry.h:78
std::string m_text
Definition: geometry.h:297
PMDFillProperties getFillProperties() const override
Definition: geometry.h:470
bool getIsClosed() const override
Definition: geometry.h:343
PMDShapePoint getBboxTopLeft() const override
Definition: geometry.h:561
std::vector< PMDShapePoint > getPoints() const override
Definition: geometry.h:128
PMDShapePoint getRotatingPoint() const override
Definition: geometry.h:433
std::pair< InchPoint, InchPoint > getBoundingBox(const PMDLineSet &lineSet, const TransformationMatrix &matrix)
Definition: geometry.cpp:16
PMDFillProperties m_fillProps
Definition: geometry.h:196
PMDShapePoint getRotatingPoint() const override
Definition: geometry.h:108
bool getIsClosed() const override
Definition: geometry.h:241
PMDShapePoint getBboxTopLeft() const override
Definition: geometry.h:651
bool getIsClosed() const override
Definition: geometry.h:546
std::vector< PMDShapePoint > getPoints() const override
Definition: geometry.h:551
PMDShapePoint getBboxTopLeft() const override
Definition: geometry.h:231
librevenge::RVNGBinaryData m_bitmap
Definition: geometry.h:617
double getRotation() const override
Definition: geometry.h:88
std::vector< PMDCharProperties > getCharProperties() const override
Definition: geometry.h:591
~PMDEllipse() override
Definition: geometry.h:607
Definition: geometry.h:24
librevenge::RVNGBinaryData getBitmap() const override
Definition: geometry.h:177
Definition: geometry.h:718
InchPoint transform(const Point< Unit > &point) const
Definition: geometry.h:727
PMDShapePoint getBboxBotRight() const override
Definition: geometry.h:443
PMDShapePoint getXformTopLeft() const override
Definition: geometry.h:98
std::vector< PMDParaProperties > getParaProperties() const override
Definition: geometry.h:490
uint8_t shapeType() const override
Definition: geometry.h:145
~PMDLine() override
Definition: geometry.h:183
uint8_t shapeType() const override
Definition: geometry.h:251
std::vector< PMDShapePoint > getPoints() const override
Definition: geometry.h:348
std::vector< PMDCharProperties > getCharProperties() const override
Definition: geometry.h:271
PMDShapePoint m_bboxTopLeft
Definition: geometry.h:614
PMDFillProperties m_fillProps
Definition: geometry.h:403
PMDShapePoint m_bboxBotRight
Definition: geometry.h:615
std::vector< PMDParaProperties > getParaProperties() const override
Definition: geometry.h:382
Definition: geometry.h:189
PMDStrokeProperties m_strokeProps
Definition: geometry.h:512
PMDShapePoint getXformTopLeft() const override
Definition: geometry.h:531
virtual ~PMDLineSet()
Definition: geometry.h:71
uint8_t m_fillType
Definition: PMDTypes.h:45
std::vector< PMDCharProperties > getCharProperties() const override
Definition: geometry.h:485
const uint8_t SHAPE_TYPE_POLY
Definition: constants.h:53
bool getIsClosed() const override
Definition: geometry.h:661
PMDShapePoint getBboxBotRight() const override
Definition: geometry.h:236
PMDShapePoint getBboxBotRight() const override
Definition: geometry.h:123
PMDFillProperties getFillProperties() const override
Definition: geometry.h:256
uint32_t m_skewDegree
Definition: geometry.h:39
PMDLine(const PMDShapePoint &bboxTopLeft, const PMDShapePoint &bboxBotRight, const bool mirrored, const PMDStrokeProperties strokeProps)
Definition: geometry.h:84
PMDShapePoint getXformBotRight() const override
Definition: geometry.h:323
PMDFillProperties getFillProperties() const override
Definition: geometry.h:362
~PMDBitmap() override
Definition: geometry.h:713
std::vector< PMDCharProperties > getCharProperties() const override
Definition: geometry.h:698
PMDShapePoint getBboxTopLeft() const override
Definition: geometry.h:438
std::vector< PMDParaProperties > getParaProperties() const override
Definition: geometry.h:276
PMDShapePoint getXformBotRight() const override
Definition: geometry.h:428
PMDStrokeProperties getStrokeProperties() const override
Definition: geometry.h:157
std::string getText() const override
Definition: geometry.h:372
PMDStrokeProperties getStrokeProperties() const override
Definition: geometry.h:688
PMDEllipse(const PMDShapePoint &bboxTopLeft, const PMDShapePoint &bboxBotRight, const PMDXForm &xFormContainer, const PMDFillProperties fillProps, const PMDStrokeProperties strokeProps)
Definition: geometry.h:515
~PMDTextBox() override
Definition: geometry.h:393
PMDShapePoint getXformBotRight() const override
Definition: geometry.h:221
uint8_t shapeType() const override
Definition: geometry.h:571
PMDShapePoint getBboxBotRight() const override
Definition: geometry.h:338
PMDShapePoint m_xformTopLeft
Definition: geometry.h:40
PMDShapePoint m_bboxBotRight
Definition: geometry.h:79
double getSkew() const override
Definition: geometry.h:525
PMDStrokeProperties getStrokeProperties() const override
Definition: geometry.h:581
PMDXForm m_xFormContainer
Definition: geometry.h:195
PMDShapePoint getRotatingPoint() const override
Definition: geometry.h:328
Unit m_x
Definition: geometry.h:26
double getRotation() const override
Definition: geometry.h:204
PMDShapePoint m_bboxTopLeft
Definition: geometry.h:400
PMDShapePoint getRotatingPoint() const override
Definition: geometry.h:646
uint8_t shapeType() const override
Definition: geometry.h:678
PMDShapePoint getBboxTopLeft() const override
Definition: geometry.h:333
std::vector< PMDCharProperties > getCharProperties() const override
Definition: geometry.h:377
~PMDRectangle() override
Definition: geometry.h:501
Unit m_y
Definition: geometry.h:27
PMDShapePoint getXformBotRight() const override
Definition: geometry.h:641
PMDShapePoint m_bboxBotRight
Definition: geometry.h:401
#define M_PI
Definition: libpagemaker_utils.h:28
Definition: geometry.h:50
PMDStrokeProperties getStrokeProperties() const override
Definition: geometry.h:367
bool m_mirrored
Definition: geometry.h:80
std::vector< PMDShapePoint > getPoints() const override
Definition: geometry.h:246
std::string getText() const override
Definition: geometry.h:693
PMDFillProperties getFillProperties() const override
Definition: geometry.h:683
const uint8_t FILL_SOLID
Definition: constants.h:62
uint8_t shapeType() const override
Definition: geometry.h:465
Point< double > InchPoint
Definition: geometry.h:34
PMDXForm m_xFormContainer
Definition: geometry.h:402
std::string getText() const override
Definition: geometry.h:586
PMDShapePoint getBboxBotRight() const override
Definition: geometry.h:656
PMDShapePoint getXformBotRight() const override
Definition: geometry.h:103
Definition: geometry.h:292
PMDFillProperties getFillProperties() const override
Definition: geometry.h:150
uint32_t m_xformId
Definition: geometry.h:43
Definition: PMDTypes.h:43
PMDShapePoint m_bboxTopLeft
Definition: geometry.h:508
PMDStrokeProperties m_strokeProps
Definition: geometry.h:197
PMDFillProperties getFillProperties() const override
Definition: geometry.h:576
PMDStrokeProperties m_strokeProps
Definition: geometry.h:404
PMDShapePoint m_rotatingPoint
Definition: geometry.h:42
PMDStrokeProperties getStrokeProperties() const override
Definition: geometry.h:261
PMDXForm m_xFormContainer
Definition: geometry.h:510
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:302
PMDShapePoint getXformTopLeft() const override
Definition: geometry.h:423
Definition: PMDTypes.h:53
PMDXForm m_xFormContainer
Definition: geometry.h:616
double getRotation() const override
Definition: geometry.h:624
bool getIsClosed() const override
Definition: geometry.h:113
Definition: geometry.h:22
librevenge::RVNGBinaryData getBitmap() const override
Definition: geometry.h:708
const uint8_t SHAPE_TYPE_RECT
Definition: constants.h:54
PMDShapePoint getBboxTopLeft() const override
Definition: geometry.h:118
Definition: geometry.h:506
~PMDPolygon() override
Definition: geometry.h:287
const uint8_t SHAPE_TYPE_LINE
Definition: constants.h:52
double getSkew() const override
Definition: geometry.h:312
std::vector< PMDParaProperties > getParaProperties() const override
Definition: geometry.h:703
std::string getText() const override
Definition: geometry.h:162
bool getIsClosed() const override
Definition: geometry.h:448
PMDStrokeProperties m_strokeProps
Definition: geometry.h:81
std::vector< PMDShapePoint > m_points
Definition: geometry.h:191
std::vector< PMDParaProperties > getParaProperties() const override
Definition: geometry.h:172
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:45
std::vector< PMDParaProperties > getParaProperties() const override
Definition: geometry.h:596
TransformationMatrix(double bboxTopLeft, double topRight, double bottomLeft, double bottomRight)
Definition: geometry.h:723
bool m_isClosed
Definition: geometry.h:192
PMDShapePoint m_bboxTopLeft
Definition: geometry.h:193
Definition: geometry.h:398
const uint8_t SHAPE_TYPE_BITMAP
Definition: constants.h:57
std::string getText() const override
Definition: geometry.h:266
PMDXForm m_xFormContainer
Definition: geometry.h:296
PMDShapePoint getXformBotRight() const override
Definition: geometry.h:536
PMDStrokeProperties getStrokeProperties() const override
Definition: geometry.h:475
double m_tr
Definition: geometry.h:720
PMDShapePoint m_bboxBotRight
Definition: geometry.h:509
PMDShapePoint m_bboxTopLeft
Definition: geometry.h:294
Definition: geometry.h:36
PMDFillProperties m_fillProps
Definition: geometry.h:511
double getSkew() const override
Definition: geometry.h:210