10 #ifndef VSDCONTENTCOLLECTOR_H
11 #define VSDCONTENTCOLLECTOR_H
34 librevenge::RVNGDrawingInterface *painter,
35 std::vector<std::map<unsigned, XForm> > &groupXFormsSequence,
36 std::vector<std::map<unsigned, unsigned> > &groupMembershipsSequence,
37 std::vector<std::list<unsigned> > &documentPageShapeOrders,
45 void collectEllipticalArcTo(
unsigned id,
unsigned level,
double x3,
double y3,
double x2,
double y2,
double angle,
double ecc);
48 void collectOLEData(
unsigned id,
unsigned level,
const librevenge::RVNGBinaryData &oleData);
49 void collectEllipse(
unsigned id,
unsigned level,
double cx,
double cy,
double xleft,
double yleft,
double xtop,
double ytop);
50 void collectLine(
unsigned level,
const boost::optional<double> &strokeWidth,
const boost::optional<Colour> &c,
const boost::optional<unsigned char> &linePattern,
51 const boost::optional<unsigned char> &startMarker,
const boost::optional<unsigned char> &endMarker,
52 const boost::optional<unsigned char> &lineCap);
53 void collectFillAndShadow(
unsigned level,
const boost::optional<Colour> &colourFG,
const boost::optional<Colour> &colourBG,
54 const boost::optional<unsigned char> &fillPattern,
const boost::optional<double> &fillFGTransparency,
55 const boost::optional<double> &fillBGTransparency,
const boost::optional<unsigned char> &shadowPattern,
56 const boost::optional<Colour> &shfgc,
const boost::optional<double> &shadowOffsetX,
const boost::optional<double> &shadowOffsetY);
57 void collectFillAndShadow(
unsigned level,
const boost::optional<Colour> &colourFG,
const boost::optional<Colour> &colourBG,
58 const boost::optional<unsigned char> &fillPattern,
const boost::optional<double> &fillFGTransparency,
59 const boost::optional<double> &fillBGTransparency,
const boost::optional<unsigned char> &shadowPattern,
60 const boost::optional<Colour> &shfgc);
61 void collectThemeReference(
unsigned level,
const boost::optional<long> &lineColour,
const boost::optional<long> &fillColour,
62 const boost::optional<long> &shadowColour,
const boost::optional<long> &fontColour);
63 void collectGeometry(
unsigned id,
unsigned level,
bool noFill,
bool noLine,
bool noShow);
64 void collectMoveTo(
unsigned id,
unsigned level,
double x,
double y);
65 void collectLineTo(
unsigned id,
unsigned level,
double x,
double y);
66 void collectArcTo(
unsigned id,
unsigned level,
double x2,
double y2,
double bow);
67 void collectNURBSTo(
unsigned id,
unsigned level,
double x2,
double y2,
unsigned char xType,
unsigned char yType,
unsigned degree,
68 const std::vector<std::pair<double, double> > &ctrlPnts,
const std::vector<double> &kntVec,
const std::vector<double> &weights);
69 void collectNURBSTo(
unsigned id,
unsigned level,
double x2,
double y2,
double knot,
double knotPrev,
double weight,
double weightPrev,
unsigned dataID);
70 void collectNURBSTo(
unsigned id,
unsigned level,
double x2,
double y2,
double knot,
double knotPrev,
double weight,
double weightPrev,
const NURBSData &data);
71 void collectPolylineTo(
unsigned id,
unsigned level,
double x,
double y,
unsigned char xType,
unsigned char yType,
72 const std::vector<std::pair<double, double> > &points);
73 void collectPolylineTo(
unsigned id,
unsigned level,
double x,
double y,
unsigned dataID);
75 void collectShapeData(
unsigned id,
unsigned level,
unsigned char xType,
unsigned char yType,
unsigned degree,
double lastKnot,
76 std::vector<std::pair<double, double> > controlPoints, std::vector<double> knotVector, std::vector<double> weights);
77 void collectShapeData(
unsigned id,
unsigned level,
unsigned char xType,
unsigned char yType, std::vector<std::pair<double, double> > points);
80 void collectShapesOrder(
unsigned id,
unsigned level,
const std::vector<unsigned> &shapeIds);
81 void collectForeignDataType(
unsigned level,
unsigned foreignType,
unsigned foreignFormat,
double offsetX,
double offsetY,
double width,
double height);
82 void collectPageProps(
unsigned id,
unsigned level,
double pageWidth,
double pageHeight,
double shadowOffsetX,
double shadowOffsetY,
double scale);
83 void collectPage(
unsigned id,
unsigned level,
unsigned backgroundPageID,
bool isBackgroundPage,
const VSDName &pageName);
84 void collectShape(
unsigned id,
unsigned level,
unsigned parent,
unsigned masterPage,
unsigned masterShape,
unsigned lineStyle,
unsigned fillStyle,
unsigned textStyle);
85 void collectSplineStart(
unsigned id,
unsigned level,
double x,
double y,
double secondKnot,
double firstKnot,
double lastKnot,
unsigned degree);
86 void collectSplineKnot(
unsigned id,
unsigned level,
double x,
double y,
double knot);
88 void collectInfiniteLine(
unsigned id,
unsigned level,
double x1,
double y1,
double x2,
double y2);
89 void collectRelCubBezTo(
unsigned id,
unsigned level,
double x,
double y,
double a,
double b,
double c,
double d);
93 void collectRelQuadBezTo(
unsigned id,
unsigned level,
double x,
double y,
double a,
double b);
98 void collectCharIX(
unsigned id,
unsigned level,
unsigned charCount,
const boost::optional<VSDName> &font,
99 const boost::optional<Colour> &fontColour,
const boost::optional<double> &fontSize,
const boost::optional<bool> &bold,
100 const boost::optional<bool> &italic,
const boost::optional<bool> &underline,
const boost::optional<bool> &doubleunderline,
101 const boost::optional<bool> &strikeout,
const boost::optional<bool> &doublestrikeout,
const boost::optional<bool> &allcaps,
102 const boost::optional<bool> &initcaps,
const boost::optional<bool> &smallcaps,
const boost::optional<bool> &superscript,
103 const boost::optional<bool> &subscript);
104 void collectDefaultCharStyle(
unsigned charCount,
const boost::optional<VSDName> &font,
const boost::optional<Colour> &fontColour,
105 const boost::optional<double> &fontSize,
const boost::optional<bool> &bold,
const boost::optional<bool> &italic,
106 const boost::optional<bool> &underline,
const boost::optional<bool> &doubleunderline,
const boost::optional<bool> &strikeout,
107 const boost::optional<bool> &doublestrikeout,
const boost::optional<bool> &allcaps,
const boost::optional<bool> &initcaps,
108 const boost::optional<bool> &smallcaps,
const boost::optional<bool> &superscript,
const boost::optional<bool> &subscript);
109 void collectParaIX(
unsigned id,
unsigned level,
unsigned charCount,
const boost::optional<double> &indFirst,
110 const boost::optional<double> &indLeft,
const boost::optional<double> &indRight,
const boost::optional<double> &spLine,
111 const boost::optional<double> &spBefore,
const boost::optional<double> &spAfter,
const boost::optional<unsigned char> &align,
112 const boost::optional<unsigned> &flags);
113 void collectDefaultParaStyle(
unsigned charCount,
const boost::optional<double> &indFirst,
const boost::optional<double> &indLeft,
114 const boost::optional<double> &indRight,
const boost::optional<double> &spLine,
const boost::optional<double> &spBefore,
115 const boost::optional<double> &spAfter,
const boost::optional<unsigned char> &align,
const boost::optional<unsigned> &flags);
116 void collectTextBlock(
unsigned level,
const boost::optional<double> &leftMargin,
const boost::optional<double> &rightMargin,
117 const boost::optional<double> &topMargin,
const boost::optional<double> &bottomMargin,
118 const boost::optional<unsigned char> &verticalAlign,
const boost::optional<bool> &isBgFilled,
119 const boost::optional<Colour> &bgColour,
const boost::optional<double> &defaultTabStop,
120 const boost::optional<unsigned char> &textDirection);
122 void collectName(
unsigned id,
unsigned level,
const librevenge::RVNGBinaryData &name,
TextFormat format);
128 void collectStyleSheet(
unsigned id,
unsigned level,
unsigned parentLineStyle,
unsigned parentFillStyle,
unsigned parentTextStyle);
129 void collectLineStyle(
unsigned level,
const boost::optional<double> &strokeWidth,
const boost::optional<Colour> &c,
const boost::optional<unsigned char> &linePattern,
130 const boost::optional<unsigned char> &startMarker,
const boost::optional<unsigned char> &endMarker,
131 const boost::optional<unsigned char> &lineCap);
132 void collectFillStyle(
unsigned level,
const boost::optional<Colour> &colourFG,
const boost::optional<Colour> &colourBG,
133 const boost::optional<unsigned char> &fillPattern,
const boost::optional<double> &fillFGTransparency,
134 const boost::optional<double> &fillBGTransparency,
const boost::optional<unsigned char> &shadowPattern,
135 const boost::optional<Colour> &shfgc,
const boost::optional<double> &shadowOffsetX,
const boost::optional<double> &shadowOffsetY);
136 void collectFillStyle(
unsigned level,
const boost::optional<Colour> &colourFG,
const boost::optional<Colour> &colourBG,
137 const boost::optional<unsigned char> &fillPattern,
const boost::optional<double> &fillFGTransparency,
138 const boost::optional<double> &fillBGTransparency,
const boost::optional<unsigned char> &shadowPattern,
139 const boost::optional<Colour> &shfgc);
140 void collectCharIXStyle(
unsigned id,
unsigned level,
unsigned charCount,
const boost::optional<VSDName> &font,
141 const boost::optional<Colour> &fontColour,
const boost::optional<double> &fontSize,
const boost::optional<bool> &bold,
142 const boost::optional<bool> &italic,
const boost::optional<bool> &underline,
const boost::optional<bool> &doubleunderline,
143 const boost::optional<bool> &strikeout,
const boost::optional<bool> &doublestrikeout,
const boost::optional<bool> &allcaps,
144 const boost::optional<bool> &initcaps,
const boost::optional<bool> &smallcaps,
const boost::optional<bool> &superscript,
145 const boost::optional<bool> &subscript);
146 void collectParaIXStyle(
unsigned id,
unsigned level,
unsigned charCount,
const boost::optional<double> &indFirst,
147 const boost::optional<double> &indLeft,
const boost::optional<double> &indRight,
const boost::optional<double> &spLine,
148 const boost::optional<double> &spBefore,
const boost::optional<double> &spAfter,
const boost::optional<unsigned char> &align,
149 const boost::optional<unsigned> &flags);
150 void collectTextBlockStyle(
unsigned level,
const boost::optional<double> &leftMargin,
const boost::optional<double> &rightMargin,
151 const boost::optional<double> &topMargin,
const boost::optional<double> &bottomMargin,
152 const boost::optional<unsigned char> &verticalAlign,
const boost::optional<bool> &isBgFilled,
153 const boost::optional<Colour> &bgColour,
const boost::optional<double> &defaultTabStop,
154 const boost::optional<unsigned char> &textDirection);
155 void collectStyleThemeReference(
unsigned level,
const boost::optional<long> &lineColour,
const boost::optional<long> &fillColour,
156 const boost::optional<long> &shadowColour,
const boost::optional<long> &fontColour);
161 void collectTextField(
unsigned id,
unsigned level,
int nameId,
int formatStringId);
162 void collectNumericField(
unsigned id,
unsigned level,
unsigned short format,
double number,
int formatStringId);
180 double _NURBSBasis(
unsigned knot,
unsigned degree,
double point,
const std::vector<double> &knotVector);
201 void appendCharacters(librevenge::RVNGString &text,
const std::vector<unsigned char> &characters);
203 bool parseFormatId(
const char *formatString,
unsigned short &result);
207 bool _isUniform(
const std::vector<double> &weights)
const;
209 const std::vector<double> &knotVector,
const std::vector<double> &weights);
211 const std::vector<double> &knotVector);