12 std::vector<Point>
vec;
16 std::vector<Point2d>
vec;
44 Parser() : currentptr(0), size(0) { }
46 int ParseEnum(std::string *strings,
int size, std::string s,
bool &success);
74 currentptr = (
char*)obj;
130 virtual int NumPoints(
int loop)
const {
return numpoints[loop]; }
132 virtual bool Inverse(
int loop)
const {
return inverse[loop]; }
134 virtual float Advance()
const {
return advance; }
138 virtual void AddLoop() { numloops++; numpoints.push_back(0); inverse.push_back(
false); }
139 virtual void AddPoint(
int loop,
Point2d pos) { numpoints[loop]++;
Data d = { loop, numpoints[loop]-1, pos }; points.push_back(
d); }
153 int s = points.size();
157 if (
d.loop==loop &&
d.point==point)
163 std::cout <<
"DUMMY RETURNED" << std::endl;
168 std::vector<int> numpoints;
169 mutable std::vector<Data> points;
170 std::vector<bool> inverse;
184 return chars[ch].character;
188 int s =
chars.size();
192 if (
d.character == character)
return i;
215 GlyphToPointCollection(
const FontCharacter &ch,
int loop) : ch(ch), loop(loop) { }
217 Point2d
Index(
int i)
const
223 const FontCharacter &ch;
246 ScaleFontCharacter(
const FontCharacter &orig,
float scalex,
float scaley) : orig(orig), scalex(scalex), scaley(scaley) { }
247 virtual ~ScaleFontCharacter() { }
249 virtual int NumPoints(
int loop)
const {
return orig.NumPoints(loop); }
250 virtual Point2d
LoopPoint(
int loop,
int point)
const
252 Point2d p = orig.LoopPoint(loop, point);
257 virtual bool Inverse(
int loop)
const {
return orig.Inverse(loop); }
259 virtual float Advance()
const {
return orig.Advance()*scalex; }
260 virtual Point2d
PosTL()
const
262 Point2d p = orig.PosTL();
268 virtual Point2d
PosBR()
const
270 Point2d p = orig.PosBR();
277 const FontCharacter &orig;
278 float scalex, scaley;
285 ScaleFont(
Font &f,
float scalex,
float scaley) : f(f), scalex(scalex), scaley(scaley) { }
296 virtual int Character(
int ch)
const {
return f.Character(ch); }
297 virtual int FindCharacter(
int character)
const {
return f.FindCharacter(character); }
299 virtual float BaseLine()
const {
return f.BaseLine() * scaley; }
300 virtual float Height()
const {
return f.Height() * scaley; }
304 float scalex, scaley;
314 Parse(text, success);
318 if (!success)
return 0;
319 std::cout << fd.vec << std::endl;
320 return fd.vec->Size();
324 if (!success)
return 0;
325 return fd.vec->Index(loop).points->Size();
329 if (!success)
return Point2d();
330 return fd.vec->Index(loop).points->Index(point);
334 if (!success)
return false;
335 return fd.vec->Index(loop).inverse ==1;
338 virtual float Advance()
const {
return fd.advance; }
356 vec=
new VectorArray<Loop2>;
358 void visit(Visitor2 &v)
368 void Parse(std::string s,
bool &success)
371 fd = p.ParseStruct<FontData>(s,success);
BufferRef RenderFont(Font *font, Array< int, int > &text, int zoomlevel)
Definition Font.cc:9
virtual int Size() const=0
Color Index(bool b) const
Definition Font.hh:231
ChooseColorFunction(Color c1, Color c2)
Definition Font.hh:230
Definition VectorTools.hh:380
virtual void SetTL(Point2d p)
Definition Font.hh:143
virtual bool Inverse(int loop) const
Definition Font.hh:132
virtual void AddLoop()
Definition Font.hh:138
virtual void ToggleInverse(int loop)
Definition Font.hh:141
virtual float Advance() const
Definition Font.hh:134
virtual void MovePoint(int loop, int point, Point2d newpos)
Definition Font.hh:140
DynamicFontCharacter()
Definition Font.hh:128
virtual int NumPoints(int loop) const
Definition Font.hh:130
virtual int NumLoops() const
Definition Font.hh:129
virtual void SetBR(Point2d p)
Definition Font.hh:144
virtual Point2d LoopPoint(int loop, int point) const
Definition Font.hh:131
virtual void SetAdvance(float val)
Definition Font.hh:142
virtual Point2d PosBR() const
Definition Font.hh:136
Point2d & find(int loop, int point) const
Definition Font.hh:151
virtual Point2d PosTL() const
Definition Font.hh:135
virtual void AddPoint(int loop, Point2d pos)
Definition Font.hh:139
std::vector< Data > chars
Definition Font.hh:205
virtual int FindCharacter(int character) const
Definition Font.hh:186
virtual float BaseLine() const
Definition Font.hh:197
virtual int Character(int ch) const
Definition Font.hh:182
virtual const FontCharacter * FontGlyph(int ch) const
Definition Font.hh:180
virtual float Height() const
Definition Font.hh:198
float baseline
Definition Font.hh:206
float height
Definition Font.hh:207
virtual int NumCharacters() const
Definition Font.hh:179
virtual void SetBR(Point2d p)=0
virtual void ToggleInverse(int loop)=0
virtual void AddPoint(int loop, Point2d pos)=0
virtual void MovePoint(int loop, int point, Point2d newpos)=0
virtual void SetTL(Point2d p)=0
virtual void SetAdvance(float val)=0
virtual float Advance() const =0
virtual int NumLoops() const =0
virtual bool Inverse(int loop) const =0
virtual Point2d PosBR() const =0
virtual Point2d PosTL() const =0
virtual Point2d LoopPoint(int loop, int point) const =0
virtual int NumPoints(int loop) const =0
virtual int NumCharacters() const =0
virtual int Character(int ch) const =0
virtual float BaseLine() const =0
virtual float Height() const =0
virtual int FindCharacter(int character) const =0
virtual const FontCharacter * FontGlyph(int ch) const =0
virtual Point2d Index(int a) const=0
int ParseEnum(std::string *strings, int size, std::string s, bool &success)
Parser()
Definition Font.hh:44
bool ParseBool(std::string s, bool &success)
Path2d2 ParsePath2d(std::string s, bool &success)
int ParseInt(std::string s, bool &success)
float ParseFloat(std::string s, bool &success)
VectorArray< T > * ParseArray2(std::string s, bool &success)
Loop2 ParseLoop(std::string s, bool &success)
Definition Font.hh:56
VectorArray< T > * ParseArray(std::string s, bool &success)
T ParseStruct(std::string s, bool &success)
Path3d2 ParsePath3d(std::string s, bool &success)
Point ParsePoint(std::string s, bool &success)
T ParseStruct2(std::string s, bool &success)
Point2d ParsePoint2d(std::string s, bool &success)
Definition Effect.hh:2663
virtual int NumCharacters() const
Definition Font.hh:286
virtual const FontCharacter * FontGlyph(int ch) const
Definition Font.hh:287
virtual int FindCharacter(int character) const
Definition Font.hh:297
ScaleFont(Font &f, float scalex, float scaley)
Definition Font.hh:285
virtual int Character(int ch) const
Definition Font.hh:296
virtual float Height() const
Definition Font.hh:300
virtual float BaseLine() const
Definition Font.hh:299
Definition Effect.hh:1122
virtual void visit(int &a)=0
virtual void visit(VectorArray< Point2d > *array)=0
virtual void visit(Point &p)=0
virtual void visit(Point2d &p)=0
virtual void visit(float &b)=0
virtual void visit(bool &b)=0
virtual void visit(VectorArray< Loop2 > *array)=0
d
Definition meshpage.php:3895
n< br > font size
Definition meshpage.php:3536
double f(const std::string &, double, bool) noexcept
Definition profile_cpp_calls_2.cpp:4
Point2d pos
Definition Font.hh:149
int loop
Definition Font.hh:147
int point
Definition Font.hh:148
DynamicFontCharacter ch
Definition Font.hh:201
int character
Definition Font.hh:202
virtual bool Inverse(int loop) const
Definition Font.hh:332
virtual Point2d LoopPoint(int loop, int point) const
Definition Font.hh:327
virtual float Advance() const
Definition Font.hh:338
FontCharacterImpl(std::string text)
Definition Font.hh:311
virtual Point2d PosBR() const
Definition Font.hh:340
virtual int NumLoops() const
Definition Font.hh:316
virtual int NumPoints(int loop) const
Definition Font.hh:322
virtual Point2d PosTL() const
Definition Font.hh:339
int inverse
Definition Font.hh:23
void init()
Definition Font.hh:26
VectorArray< Point2d > * points
Definition Font.hh:24
std::vector< Point2d > vec
Definition Font.hh:16
std::vector< Point > vec
Definition Font.hh:12
Definition VectorTools.hh:910
float x
Definition VectorTools.hh:911
float y
Definition VectorTools.hh:911