#define __GLYPHPOINTS_H__
#include "types.h"
+#include <stdio.h>
+// "IPoint" is an Integer based Point
struct IPoint
{
int32 x, y;
GlyphPoints operator+(const GlyphPoints &);
GlyphPoints operator+(const IPoint &);
GlyphPoints& operator+=(const IPoint &);
+ void Clear(void);
void InsertPoint(uint16, int, int, bool);
void InsertPoint(uint16, const IPoint &);
void DeletePoint(uint16);
uint16 GetNumPoints(void);
- uint16 GetNumPoints(uint16);
+ uint16 GetNumPoints(uint16 poly);
uint16 GetNumPolys(void);
int GetX(uint16);
int GetY(uint16);
bool GetOnCurve(uint16);
int GetX(uint16, uint16);
+ int GetNextX(uint16, uint16);
int GetY(uint16, uint16);
+ int GetNextY(uint16, uint16);
+ IPoint GetPoint(uint16, uint16);
bool GetOnCurve(uint16, uint16);
+ bool GetPrevOnCurve(uint16, uint16);
+ bool GetNextOnCurve(uint16, uint16);
+ uint16 GetPolyStart(uint16);
uint16 GetPolyEnd(uint16);
void OffsetPoints(int, int);
void OffsetPoly(uint16, int32, int32);
IPoint GetPrevPoint(uint16, uint16);
IPoint GetNextPoint(uint16, uint16);
+ IPoint RotatePoint(const double angle, const IPoint point, const IPoint center);
+ void RotatePoints(const double angle, const IPoint point);
+ IPoint GetPolyCentroid(const int16 poly);
+ void RotatePolyAroundCentroid(const int16 poly, const double angle);
+
+ bool LoadGlyphFromFile(FILE *);
+ bool SaveGlyphToFile(FILE *);
+
private:
void AllocateAndCopy(int, int, int *, int *, bool *, uint16 *);
+ void FreeAllocatedMemory(void);
private:
int numPoints, numPolys;