📄 strk8.c
字号:
/*************************************************************************/
/* */
/* Copyright (c) 1997 - 1999 Accelerated Technology, Inc. */
/* */
/* PROPRIETARY RIGHTS of Accelerated Technology are involved in the */
/* subject matter of this material. All manufacturing, reproduction, */
/* use, and sales rights pertaining to this subject matter are governed */
/* by the license agreement. The recipient of this software implicitly */
/* accepts the terms of the license. */
/* */
/*************************************************************************/
/*************************************************************************/
/* */
/* FILE NAME VERSION */
/* */
/* STRK8.c 1.9 */
/* */
/* COMPONENT */
/* */
/* All */
/* */
/* DESCRIPTION */
/* */
/* This file contains the PolyMarker function. */
/* */
/* AUTHOR */
/* */
/* Giac Dinh, Accelerated Technology, Inc. */
/* */
/* DATA STRUCTURES */
/* */
/* None */
/* */
/* FUNCTIONS */
/* */
/* None */
/* */
/* DEPENDENCIES */
/* */
/* None */
/* */
/* HISTORY */
/* */
/* NAME DATE REMARKS */
/* */
/* BobB 11/5/99 Corrected types of offsets to long */
/* */
/*************************************************************************/
#include "meta_wnd.h"
#include "metconst.h" /* MetaWINDOW Constant & Stucture Definitions */
#include "metports.h" /* MetaWINDOW Port & Bitmap Definitions */
#include "grafdata.h"
#include "metmacs3.h"
#include "metfonts.h"
#include "markers.h"
/* Function PolyMarker draws the current marker symbol centered at each point
specified in the XYPTS array. */
void PolyMarker ( short NPts, point * XYPts )
{
void mwSTRKINI();
void MoveTo(short argX, short argY);
void SetFont( fontRcd *FONT);
int i;
char markchar;
point *markPt;
char setFontBaseName[16] = "Marker Font";
char setFontSign[9] = "NU__FONT";
struct marker {
long svtxFont;
point svtxSize;
short svtxAngle;
short svtxPath;
};
struct marker Save;
/* initialize marker font structure and tables*/
MarkerFont.fontVer = 0x22;
MarkerFont.fontRev = 1;
MarkerFont.nameLen = 11;
MarkerFont.fontFacing = 0;
MarkerFont.fontWeight = 0;
MarkerFont.fontCoding = 0;
MarkerFont.fontSize = 0;
MarkerFont.fontMax = 79;
MarkerFont.fontMin = 65;
MarkerFont.fontPtSize = 0;
MarkerFont.fontfamily = 0;
MarkerFont.fontStyle = 0;
MarkerFont.fontFlags = 6;
MarkerFont.fontColor[0] = -1;
MarkerFont.fontColor[1] = 0;
MarkerFont.minChar = 65;
MarkerFont.maxChar = 79;
MarkerFont.chWidth = 10;
MarkerFont.chHeight = 14;
MarkerFont.chKern = 0;
MarkerFont.ascent = 14;
MarkerFont.decent = 0;
MarkerFont.leading = 17;
MarkerFont.chBad = 12;
MarkerFont.chCenter.X = 5;
MarkerFont.chCenter.Y = 7;
MarkerFont.chAngle = 0;
MarkerFont.chUnder = 2;
MarkerFont.chScore = 2;
/* BobB 11/5/99 - corrected types of offset to long
MarkerFont.locTbl = (unsigned short) ((long) &locnTable - (long) &MarkerFont); */
MarkerFont.locTbl = (long) &locnTable - (long) &MarkerFont;
MarkerFont.ofwdTbl = (long) &ofwdTable - (long) &MarkerFont;
MarkerFont.kernTbl = 0;
MarkerFont.sizeTbl = 0;
MarkerFont.bmapTbl = 0;
MarkerFont.rowTbl = 0;
/* BobB 11/5/99 - corrected types of offset to long
MarkerFont.fontTbl = (short) ((long) &FontTable - (long) &MarkerFont); */
MarkerFont.fontTbl = (long) &FontTable - (long) &MarkerFont;
for (i = 0; i < 16; i++)
{
MarkerFont.fontBaseName[i] = setFontBaseName[i];
}
for (i = 0; i < 8; i++)
{
MarkerFont.fontSign[i] = setFontSign[i];
}
locnTable[0] = &C_65[0] - &FontTable;
locnTable[1] = &C_66[0] - &FontTable;
locnTable[2] = &C_67[0] - &FontTable;
locnTable[3] = &C_68[0] - &FontTable;
locnTable[4] = &C_69[0] - &FontTable;
locnTable[5] = &C_70[0] - &FontTable;
locnTable[6] = &C_71[0] - &FontTable;
locnTable[7] = &C_72[0] - &FontTable;
locnTable[8] = &C_73[0] - &FontTable;
locnTable[9] = &C_74[0] - &FontTable;
locnTable[10] = &C_75[0] - &FontTable;
locnTable[11] = &C_76[0] - &FontTable;
locnTable[12] = &C_77[0] - &FontTable;
locnTable[13] = &C_78[0] - &FontTable;
locnTable[14] = &C_79[0] - &FontTable;
locnTable[15] = &C_80[0] - &FontTable; /* 56 "Bad character" */
txtStrokeIDV = mwSTRKINI;
/* Save the text state */
Save.svtxFont = grafPort.txFont;
Save.svtxSize.X = grafPort.txSize.X;
Save.svtxSize.Y = grafPort.txSize.Y;
Save.svtxPath = grafPort.txPath;
Save.svtxAngle= grafPort.txAngle;
/* set stroke text settings from marker settings */
grafPort.txSize.X = grafPort.mkSize.X;
grafPort.txSize.Y = grafPort.mkSize.Y;
grafPort.txAngle = grafPort.mkAngle;
grafPort.txPath = 0;
if (grafPort.mkFont == 0)
{
SetFont(&MarkerFont);
}
else
{
SetFont((fontRcd *)grafPort.mkFont);
}
markchar = grafPort.mkType + 64;
markPt = XYPts;
for(i=0; i < NPts; i++)
{
MoveTo(markPt->X,markPt->Y);
txtDrwIDV(&markchar, 0, 1, 0);
markPt++;
}
grafPort.txSize.X = Save.svtxSize.X ;
grafPort.txSize.Y = Save.svtxSize.Y ;
grafPort.txAngle= Save.svtxAngle;
grafPort.txPath = Save.svtxPath ;
/* BobB 11/5/99 - added the following line to restore the font */
grafPort.txFont = Save.svtxFont;
SetFont((fontRcd *)grafPort.txFont) ;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -