]> Shamusworld >> Repos - ttedit/blobdiff - src/glyphpoints.h
Added rotation tool, save/load capability.
[ttedit] / src / glyphpoints.h
index fbcf0a80008110ea9036378b3321c9111e7b0ae8..09b422cde5967b107901e686e68c8d4dc0845060 100755 (executable)
 #define __GLYPHPOINTS_H__
 
 #include "types.h"
+#include <stdio.h>
 
 
+// "IPoint" is an Integer based Point
 struct IPoint
 {
        int32 x, y;
@@ -46,11 +48,12 @@ class GlyphPoints
                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);
@@ -63,6 +66,7 @@ class GlyphPoints
                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);
@@ -80,8 +84,17 @@ class GlyphPoints
                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;