2025-04-27 07:49:33 -04:00

143 lines
8.7 KiB
C

/* ************************************************************************* */
/* * Fill in xr attributes routines AVP 1-1996* */
/* ************************************************************************* */
#ifndef XR_ATTR_H_INCLUDED
#define XR_ATTR_H_INCLUDED
/* ************************************************************************* */
/* * XR features definition table **************************************** */
/* ************************************************************************* */
#define FHR_JUNK 0x00
#define FHR_UPPER 0x01
#define FHR_LOWER 0x02
#define FHR_WILD 0x04
#define FHR_LEFT 0x08
#define FHR_RIGHT 0x10
#define XRM_LOWER 0x01
#define XRM_UPPER 0x02
#define XRM_LEFT 0x04
#define XRM_RIGHT 0x08
#define XRM_WILD 0x10
#define XRM_MVBLE 0x20
#define XRM_LINK 0x40
#define XRM_ENARC 0x80
#define XRM_GAMMA 0x0100
#define XRM_UW (XRM_UPPER | XRM_WILD)
#define XRM_LW (XRM_LOWER | XRM_WILD)
#define XRM_ANY (XRM_LW | XRM_UW)
#define XR_MERITS { \
XRM_LINK, /* X_NOCODE 0x00 No code - must be NULL. */ \
XRM_LINK, /* X_FF 1 Large space letter break */ \
XRM_LINK, /* X_ZZZ 2 Normal break */ \
XRM_LINK, /* X_ZZ 3 Break covered by crossing*/ \
XRM_LINK, /* X_Z 4 Break g with left move */ \
XRM_LINK, /* X_ZN 5 Artificialy made pseudo */ \
\
XRM_UPPER, /* X_IU_F 6 Forward maximum */ \
XRM_UPPER, /* X_UU_F 7 Forward upper arc */ \
XRM_UPPER, /* X_UUC_F 8 Forward upper circle arc */ \
XRM_UPPER, /* X_UUL_F 9 Forward upper arc with le*/ \
XRM_ENARC | XRM_UPPER, /* X_UUR_F 10 Forward upper arc with ri*/ \
XRM_UPPER, /* X_IU_BEG 11 Single max (in the beginn*/ \
XRM_UPPER, /* X_IU_STK 12 Stick up (up-down move in*/ \
\
XRM_UPPER, /* X_IU_B 13 Backward maximum */ \
XRM_UPPER, /* X_UU_B 14 Backward upper arc */ \
XRM_UPPER, /* X_UUC_B 15 Backward upper circle arc*/ \
XRM_ENARC | XRM_UPPER, /* X_UUL_B 16 Backward upper arc with l*/ \
XRM_UPPER, /* X_UUR_B 17 Backward upper arc with r*/ \
XRM_UPPER, /* X_IU_END 18 Single max (in the end) */ \
\
XRM_LOWER, /* X_ID_F 19 Forward minimum */ \
XRM_LOWER, /* X_UD_F 20 Forward lower arc */ \
XRM_LOWER, /* X_UDC_F 21 Forward lower circle arc */ \
XRM_LOWER, /* X_UDL_F 22 Forward lower arc with le*/ \
XRM_ENARC | XRM_LOWER, /* X_UDR_F 23 Forward lower arc with ri*/ \
XRM_LOWER, /* X_ID_END 24 Single min (in the end) */ \
XRM_LOWER, /* X_ID_STK 25 Stick down (down-up move */ \
\
XRM_LOWER, /* X_ID_B 26 Backward minimum */ \
XRM_LOWER, /* X_UD_B 27 Backward upper arc */ \
XRM_LOWER, /* X_UDC_B 28 Backward upper circle arc*/ \
XRM_ENARC | XRM_LOWER, /* X_UDL_B 29 Backward upper arc with l*/ \
XRM_LOWER, /* X_UDR_B 30 Backward upper arc with r*/ \
XRM_LOWER, /* X_ID_BEG 31 Single min (in the beginn*/ \
\
XRM_RIGHT | XRM_UPPER, /* X_DU_R 32 Double move upper with ri*/ \
XRM_RIGHT | XRM_UPPER, /* X_CU_R 33 Circle upper with right e*/ \
XRM_LEFT | XRM_UPPER, /* X_CU_L 34 Circle upper with left en*/ \
XRM_LEFT | XRM_UPPER, /* X_DU_L 35 Double move down with lef*/ \
XRM_RIGHT | XRM_LOWER, /* X_DD_R 36 Double move down with ri*/ \
XRM_RIGHT | XRM_LOWER, /* X_CD_R 37 Circle down with right e*/ \
XRM_LEFT | XRM_LOWER, /* X_CD_L 38 Circle down with left en*/ \
XRM_LEFT | XRM_LOWER, /* X_DD_L 39 Double move down with lef*/ \
\
XRM_GAMMA | XRM_UPPER, /* X_BGU 40 Big gamma up */ \
XRM_GAMMA | XRM_UPPER, /* X_SGU 41 Small gamma up */ \
XRM_GAMMA | XRM_LOWER, /* SX_SGD 42 mall gamma down */ \
XRM_GAMMA | XRM_LOWER, /* X_BGD 43 Big gamma down */ \
\
XRM_LEFT | XRM_WILD, /* X_GL 44 Gamma left */ \
XRM_LEFT, /* X_AL 45 Angle left */ \
XRM_WILD | XRM_LEFT, /* X_BL 46 Braket left */ \
XRM_WILD | XRM_RIGHT, /* X_BR 47 Braket right */ \
XRM_RIGHT, /* X_AR 48 Angle right */ \
XRM_RIGHT | XRM_WILD, /* X_GR 49 Gamma right */ \
0, /* X_TS 50 Type 'S' X extrema */ \
0, /* X_TZ 51 Type 'Z' X extrema */ \
\
XRM_MVBLE, /* X_ST 52 Separate point */ \
0, /* X_DF 53 Defis */ \
XRM_MVBLE, /* X_XT 54 Crossing defis */ \
\
\
0, /* X_VS 55 Vertical Stroke */ \
0, /* X_SS 56 Slash stroke */ \
0, /* X_BSS 57 Back Slash Stroke */ \
XRM_MVBLE, /* X_XT_ST 58 Non-crossing defis */ \
XRM_MVBLE, /* X_UMLAUT 59 Umlaut */ \
XRM_UPPER, /* X_AN_UR 60 Angle-like upper-right co*/ \
0, /* X_AN_UL 61 Angle-like upper-left cor*/ \
0, /* X_CEDILLA 62 Cedilla */ \
0 \
}
/* ---------------- STRUCTURES ----------------------------------------------- */
typedef struct {
_INT stp;
_INT enp;
_INT blp;
_INT stx;
_INT sty;
_INT enx;
_INT eny;
} vect_type, _PTR p_vect_type;
/* ---------------- PROTO ---------------------------------------------------- */
_INT FillXrFeatures(p_xrdata_type xrdata, low_type _PTR low_data);
_INT GetCurSlope(_INT num_points, p_PS_point_type trace);
_INT FillSHR(_INT slope, p_xrdata_type xrdata, low_type _PTR low_data);
_INT FillAH(p_xrdata_type xrdata, low_type _PTR low_data);
_INT FillOrients(_INT slope, p_xrdata_type xrdata, low_type _PTR low_data);
_INT GetAngle(_INT dx, _INT dy);
_INT GetVect(_INT dir, p_vect_type vect, _TRACE trace, _INT trace_len, _INT base);
_INT GetBlp(_INT dir, p_vect_type vect, _INT xrn, p_xrdata_type xrdata);
#endif //XR_ATTR_H_INCLUDED
/************************************************************************** */
/* End of all */
/************************************************************************** */