Files
envi-code/SourceCode/Code2026/tg_shs/inc/geo/TchGeLib.h
T
2026-09-28 15:28:50 +08:00

274 lines
6.8 KiB
C++

//-------------------------------------------------------------------------------------------------------+
// Copyright (C), 1998-2007, Beijing Tangent Software Co. Ltd.
// = FileName : 全局结构体,定义 头文件
// = Version : ver2.0
// = Author : lfy
// = CreateDate : 2002-09-09
// = Description: 全局结构体,定义 头文件
// = Maintainers:
//
//-------------------------------------------------------------------------------------------------------+
#ifndef _TCHGELIB_H_
#define _TCHGELIB_H_
#ifndef _TADSPRINTF_H_
#include "TADSPrintf.h"
#endif
#include "accmd.h"
#include <map>
//class TArchAppDocGlobals;
static const signed char sizeOfType[]={
0, //RTNONE 5000 /* No result */
sizeof(ads_real), //RTREAL 5001 /* Real number */
sizeof(ads_point), //RTPOINT 5002 /* 2D point X and Y only */
sizeof(short ), //RTSHORT 5003 /* Short integer */
sizeof(ads_real), //RTANG 5004 /* Angle */
sizeof(TCHAR *), //RTSTR 5005 /* String */ !!Bugs may occure
sizeof(ads_name), //RTENAME 5006 /* Entity name */
sizeof(ads_name), //RTPICKS 5007 /* Pick set */
sizeof(ads_real), //RTORINT 5008 /* Orientation */
sizeof(ads_point), //RT3DPOINT 5009 /* 3D point - X, Y, and Z, Mod by Z*/
sizeof(long), //RTLONG 5010 /* Long integer */
0, //RTSTRUCT 5011 // Bug may exist
};
enum FormatType
{
WS_CHAR,
WS_INT,
WS_DOUBLE,
WS_STRING,
WS_FORMAT
};
enum CurveType
{
CURVE_LINE,
CURVE_ARC,
CURVE_CIRCLE
};
enum ShapeType
{
SHAPE_UNKNOWN,
SHAPE_CIRCLE,
SHAPE_RECTANGLE,
SHAPE_POLY
};
//线段类型
enum BLType
{
BLINESEG, //直线段
BARCSEG //圆弧段
};
extern "C"
{
extern HINSTANCE _hdllInstance;
}
namespace TchGeLib
{
extern GEOAPI BOOL g_bSaveProxyGraph; //默认不存储Proxy的图像
extern GEOAPI BOOL g_bLayoutRotate; //布图旋转
// extern TArchAppDocGlobals *g_pTArchAppDocGlobals;
extern AcDbObjectId g_idViewportLayer;
// 0--非法使用; 1--硬锁; 2--正式网卡号; 3--正式硬盘分区系列号; 4--特权码(不用了)
// 5--在初始时间内使用; 6--试用网卡号; 7--试用硬盘分区系列号; 8--网络网卡号(网络版);9--高教版
extern GEOAPI int g_nProtectCode1;//始终与g_nProtectCode1相等,For 6.5
extern GEOAPI double g_nUseHours; //非法使用的小时
extern GEOAPI int g_nArchType; // 1--零售版; 2-- ; 3--插件; 4--学习版
// extern GEOAPI int g_nLicenseMode;//0:试用版;1单机版;2网络版;3高教网络版
extern GEOAPI BOOL g_szArxContext;//tch_initstart.arx是否与tchinit.bin一致,加密
extern GEOAPI BOOL g_bValidLicense1;
extern GEOAPI BOOL g_bValidLicense2;
extern GEOAPI BOOL g_bValidLicense3;
extern GEOAPI BOOL g_bValidLicense4;
extern GEOAPI BOOL g_bValidLicense5;
extern GEOAPI BOOL g_bValidLicense6;
extern GEOAPI BOOL g_bValidLicense7;
extern GEOAPI BOOL g_bValidLicense8;
extern GEOAPI BOOL g_bValidLicense9;
extern GEOAPI BOOL g_bValidLicense10;
extern GEOAPI BOOL g_bValidLicense11;
extern GEOAPI BOOL g_bValidLicense12;
extern GEOAPI BOOL g_bValidLicense13;
extern GEOAPI BOOL g_bValidLicense14;
extern GEOAPI BOOL g_bValidLicense15;
extern GEOAPI BOOL g_bValidLicense16;
extern GEOAPI BOOL g_bValidLicense17;
extern GEOAPI BOOL g_bValidLicense18;
extern GEOAPI BOOL g_bValidLicense19;
extern GEOAPI BOOL g_bValidLicense20;
extern GEOAPI BOOL g_bSnapCurveBase;//是否捕捉曲线对象的基线
// 在位编辑支持
extern GEOAPI BOOL g_bExplodeSubText;
extern GEOAPI double g_nCirDeviation;
extern GEOAPI BOOL g_bExplodeMesh;
extern GEOAPI const ads_point org_point;
extern GEOAPI BOOL g_bWblockMaterial;
extern GEOAPI BOOL g_bMonitorDbAction;
extern GEOAPI BOOL g_bFindExtSpace;
extern GEOAPI double g_nAcadVer;
extern GEOAPI BOOL g_bFastCalMode;
extern GEOAPI BOOL g_bEchoSearch;
extern GEOAPI int g_iPackMode;
extern GEOAPI double g_nExtWidth;
extern GEOAPI double g_nIntWidth;
extern GEOAPI double g_nIntWallWidth;
extern GEOAPI BOOL g_bSubEntity;//子对象处理状态
extern GEOAPI BOOL g_bStetchEntity;//是否正在拉伸
extern GEOAPI BOOL g_bSnapCurveBas;//是否捕捉曲线对象的基线
extern GEOAPI int (*g_ptrCodePageConvert)(const TCHAR *);
extern BOOL g_bPrinting;
extern double g_globleSnap;
extern TCHAR g_cKeyword;
extern ads_matrix ads_identmat;
extern GEOAPI BOOL g_bQuickCalWallExtent;
extern GEOAPI bool g_bIsWBlock;
extern GEOAPI const TCHAR *LZW_EXT;
extern GEOAPI const TCHAR *JPG_EXT;
extern GEOAPI const TCHAR *BMB_TITLE;
extern GEOAPI const TCHAR *JPB_TITLE;
extern unsigned _stklen;
extern GEOAPI ads_real _distSnap, _angSnap,_DIST_SNAP;
extern GEOAPI double g_fZero;
extern GEOAPI double g_distZero;
extern GEOAPI double g_angleZero;
extern GEOAPI TADSPrintf adsout;
extern GEOAPI const TCHAR *DWB_TITLE;
extern GEOAPI const TCHAR *SLD_EXT;
extern GEOAPI const TCHAR *SLB_TITLE;
// 所有自定义实体的基类
extern GEOAPI BOOL g_bOsnapExpl;
extern GEOAPI BOOL g_bGetExtents;
extern GEOAPI AcDbDatabase* g_pCurrentDb;
extern GEOAPI BOOL g_bDynInput;
extern GEOAPI int g_iMaxDynDimNum;//最多动态数量
extern GEOAPI int g_nSaveTArchVer; // 保存控制,TArch3,TArch5,TArch6,TArch7,TArch8,TArch9
extern GEOAPI BOOL g_bCtrlToggle;
extern GEOAPI BOOL g_bCtrlToggle1[]; // 数组中,下一个可以使用的元素为11
extern GEOAPI TCHAR g_sDwbPath[];
extern GEOAPI TCHAR g_sAppPath[];
extern GEOAPI BOOL g_bSlabThickPolyline; //TArch6.5-日照,把含厚度的闭合多段线视为平板
extern GEOAPI BOOL g_bEnableAcis;
// 用于加密的变量
extern GEOAPI int g_nProtectCode;
extern GEOAPI BOOL g_bMakeBlock;
extern int g_nMaxCirDivNum;
extern GEOAPI BOOL g_bUpdateMViewBlock;
//add by xlc on 120424 控制墙内线图案填充裁剪特殊处理
extern GEOAPI BOOL g_bWallLinepatClip;
}
using namespace TchGeLib;
typedef ads_real ads_vector[3];
typedef struct resbuf rbtype;
typedef ads_real (* MatrixPointer)[4];
typedef struct STBinary
{
short length;
char *buffer;
}*STBINARY,*PSTBINARY;
struct STExtern_fun
{
const TCHAR *cmdname;
int (*cmdfunc)();
};
struct STArxCommandTable
{
const TCHAR *szCmdGlobal;
AcRxFunctionPtr pFun;
int nCmdFlag;
};
struct STPlanePara
{
double A, B, C, D;
};
struct STIniStruct
{
TCHAR *desc_handle;
TCHAR *desc_value;
struct STIniStruct *next;
};
struct STColorRGB
{
ads_real red, blue, green;
};
struct STCatalogue
{ //幻灯库的目录结构
char itemName[32];
long addr;
public:
STCatalogue()
{
for (int i = 0; i< 32; i++)
{
itemName[i] = 0;
}
addr = 0;
}
};
typedef struct
{
short l;
short r;
unsigned char k;
} STPACKTREE; //internal use in PackFile()
typedef struct
{
short p;
unsigned char k;
} STUNPACKTREE; //internal use in UnPackFile()
struct STDate
{
int da_year; /* current year */
TCHAR da_day; /* day of the month */
TCHAR da_mon; /* month (1 = Jan) */
};
#endif