mirror of https://github.com/tongzx/nt5src
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
52 lines
1.5 KiB
52 lines
1.5 KiB
// frame.h
|
|
|
|
#ifndef __INCLUDE_FRAME
|
|
#define __INCLUDE_FRAME
|
|
|
|
#ifdef __cplusplus
|
|
extern "C"
|
|
{
|
|
#endif
|
|
|
|
typedef POINT XY;
|
|
|
|
typedef struct tagFRAME
|
|
{
|
|
void *pvData; // Recognizer specific private data
|
|
STROKEINFO info; // Physical info about ink (Penwin.h)
|
|
UINT csmoothxy; // points in smoothed strokes
|
|
XY *rgrawxy; // tablet coords of all the points in the stroke
|
|
XY *rgsmoothxy; // array of points after smoothing
|
|
RECT rect; // bounding box of this stroke
|
|
int iframe; // pos of this frame in linked list of glyphs
|
|
} FRAME;
|
|
|
|
FRAME *NewFRAME(void);
|
|
void DestroyFRAME(FRAME *self);
|
|
RECT *RectFRAME(FRAME *self);
|
|
|
|
BOOL IsSafeForAdd(int a, int b);
|
|
BOOL IsSafeForMult(int a, int b);
|
|
|
|
BOOL TranslateFrame (FRAME *pFrame, int dx, int dy);
|
|
FRAME *copyFRAME(FRAME *pFrame);
|
|
|
|
#define SetIFrameFRAME(frame,i) ((frame)->iframe = (i))
|
|
#define IFrameFRAME(frame) ((frame)->iframe)
|
|
#define DeInitRectFRAME(frame) ((frame)->rect.left = -1)
|
|
#define IsVisibleSTROKE(info) (((info)->wPdk) & PDK_TIPMASK)
|
|
#define IsVisibleFRAME(frame) (IsVisibleSTROKE(&(frame)->info))
|
|
#define RgrawxyFRAME(frame) ((frame)->rgrawxy)
|
|
#define CrawxyFRAME(frame) ((frame)->info.cPnt)
|
|
#define RawxyAtFRAME(frame,i) ((frame)->rgrawxy[i])
|
|
#define LppointFRAME(frame) ((LPPOINT)(frame)->rgrawxy)
|
|
#define CpointFRAME(frame) ((frame)->info.cPnt)
|
|
#define CpointSmoothFRAME(frame) ((frame)->csmoothxy)
|
|
#define LpframeinfoFRAME(frame) (&(frame)->info)
|
|
|
|
|
|
#ifdef __cplusplus
|
|
};
|
|
#endif
|
|
|
|
#endif //__INCLUDE_FRAME
|