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

240 lines
5.3 KiB
C++

//-------------------------------------------------------------------------------------------------------+
// Copyright (C), 1998-2007, SH Software Co. Ltd.
// = FileName : 全局结构体,定义 头文件
// = Version : ver2.0
// = Author : zjq
// = CreateDate : 2002-09-09
// = Description: 全局结构体,定义 头文件
// = Maintainers:
//
//-------------------------------------------------------------------------------------------------------+
#ifndef _ADSXRX_H_
#define _ADSXRX_H_
#ifndef _XADSOSTREAM_H_
#include "XAdsOStream.h"
#endif
#include "accmd.h"
#include <map>
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 XGeLib
{
extern GEOAPI BOOL g_bSaveProxyGraph; //默认不存储Proxy的图像
extern GEOAPI BOOL g_bLayoutRotate; //布图旋转
extern AcDbObjectId g_idViewportLayer;
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 XAdsOStream 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; // 保存控制
extern GEOAPI BOOL g_bCtrlToggle;
extern GEOAPI BOOL g_bCtrlToggle1[];
extern GEOAPI TCHAR g_sDwbPath[];
extern GEOAPI TCHAR g_sAppPath[];
extern GEOAPI BOOL g_bSlabThickPolyline; //把含厚度的闭合多段线视为平板
extern GEOAPI BOOL g_bEnableAcis;
// 用于加密的变量
extern GEOAPI int g_nProtectCode;
extern GEOAPI BOOL g_bMakeBlock;
extern int g_nMaxCirDivNum;
extern GEOAPI BOOL g_bUpdateMViewBlock;
}
using namespace XGeLib;
typedef ads_real ads_vector[3];
typedef struct resbuf rbtype;
typedef ads_real (* MatrixPointer)[4];
typedef struct Binary
{
short length;
char *buffer;
}*STBINARY,*PSTBINARY;
struct extern_fun
{
const TCHAR *cmdname;
int (*cmdfunc)();
};
struct ArxCommandTable
{
const TCHAR *szCmdGlobal;
AcRxFunctionPtr pFun;
int nCmdFlag;
};
struct plan_para
{
double A, B, C, D;
};
struct INI_struct
{
TCHAR *desc_handle;
TCHAR *desc_value;
struct INI_struct *next;
};
struct r_g_b
{
ads_real red, blue, green;
};
struct Catalogue
{ //幻灯库的目录结构
char itemName[32];
long addr;
public:
Catalogue()
{
for (int i = 0; i< 32; i++)
{
itemName[i] = 0;
}
addr = 0;
}
};
typedef struct
{
short l;
short r;
unsigned char k;
} PACKTREE; //internal use in pack()
typedef struct
{
short p;
unsigned char k;
} UNPACKTREE; //internal use in unpack()
struct STDate
{
int da_year; /* current year */
TCHAR da_day; /* day of the month */
TCHAR da_mon; /* month (1 = Jan) */
};
#endif