|
|
#ifndef GDBX_DEFINE_H
|
|
|
#define GDBX_DEFINE_H
|
|
|
|
|
|
#include "../DrawModel/Rect8.h"
|
|
|
|
|
|
struct GDBXLINETO
|
|
|
{
|
|
|
double x; //线段x
|
|
|
double y; //线段y
|
|
|
};
|
|
|
|
|
|
struct xPoint
|
|
|
{
|
|
|
double x, y;
|
|
|
};
|
|
|
|
|
|
typedef struct {
|
|
|
uint8_t Red; //Red color (0-255)
|
|
|
uint8_t Green; //Green color (0-255)
|
|
|
uint8_t Blue; //Blue color (0-255)
|
|
|
uint8_t Reserved; //Not used
|
|
|
} GCOLORREF;
|
|
|
|
|
|
struct GDBXMapInfo
|
|
|
{
|
|
|
int nVersion; // 版本号
|
|
|
int nMapUnit; // 地图单位 (如:1: 米, 2: 千米, 3: 公里等)
|
|
|
int nMapType; // 图幅类型
|
|
|
int nMapSecret; // 地图保密级别 (-1: 不指定,0: 公开,1: 机密,2: 秘密,3: 绝密)
|
|
|
int nMapLevel; // 地图级别 (1: 国家级,2: 省级等)
|
|
|
int nYAxis; // Y轴方向 (1: 正北, 0: 非正北)
|
|
|
int nCoordSysType; // 坐标系类型 (1: 地理坐标, 2: 投影坐标)
|
|
|
long paperBackColor; // 纸张背景色
|
|
|
CRect8 llSpace; // 经纬度范围 (最小经度, 最小纬度)
|
|
|
CRect8 modelSpace; // 模型空间范围 (最小X, 最小Y)
|
|
|
CSize8 paperSize; // 纸张尺寸 (宽度, 高度)
|
|
|
double dMapLeft; // 地图左边界 (最大范围到工作范围的差值, 工作范围为实际范围)
|
|
|
double dMapTop; // 地图上边界
|
|
|
double dMapRight; // 地图右边界
|
|
|
double dMapBottom; // 地图下边界
|
|
|
double dMapScale; // 比例尺
|
|
|
CString sPasswd; // 密码
|
|
|
CString sName; // 图名
|
|
|
CString sMapDept; // 地图单位
|
|
|
CString sMapAuthor; // 地图作者
|
|
|
CString sAuthor; // 作者
|
|
|
CString sReviewer; // 审核人
|
|
|
CString sOriginalScale; // 原始比例尺
|
|
|
CString sDate; // 日期
|
|
|
CString sMapClass; // 图幅分类
|
|
|
CString sRemark; // 备注
|
|
|
CString sMapMarkLabel; // 标注
|
|
|
CString sCustomInfo; // 层级信息
|
|
|
|
|
|
void clear()
|
|
|
{
|
|
|
nVersion = 0;
|
|
|
nMapUnit = 0;
|
|
|
nMapType = 0;
|
|
|
nMapSecret = 0;
|
|
|
nMapLevel = 0;
|
|
|
nYAxis = 0;
|
|
|
nCoordSysType = 0;
|
|
|
paperBackColor = 0;
|
|
|
llSpace = CRect8(0,0,0,0);
|
|
|
modelSpace = CRect8(0, 0, 0, 0);
|
|
|
paperSize = CSize8(0, 0);
|
|
|
dMapLeft = 0;
|
|
|
dMapTop = 0;
|
|
|
dMapRight = 0;
|
|
|
dMapBottom = 0;
|
|
|
dMapScale = 0;
|
|
|
sPasswd = "";
|
|
|
sName = "";
|
|
|
sMapDept = "";
|
|
|
sMapAuthor = "";
|
|
|
sAuthor = "";
|
|
|
sReviewer = "";
|
|
|
sOriginalScale = "";
|
|
|
sDate = "";
|
|
|
sMapClass = "";
|
|
|
sRemark = "";
|
|
|
sMapMarkLabel = "";
|
|
|
sCustomInfo = "";
|
|
|
}
|
|
|
};
|
|
|
|
|
|
//投影参数
|
|
|
struct GDBXProjection
|
|
|
{
|
|
|
int nWorkID;
|
|
|
int nEarthType; // 椭球体类型 (椭球体索引号) Datum
|
|
|
int nProjType; // 投影类型 (投影方式索引号) type
|
|
|
int nBandType; // 分带方法(0:六度带,1:三度带,2:不分带)
|
|
|
int nBand; // 带号 ZAB
|
|
|
int nCoordType; // 坐标类型 0-用户坐标 1-经纬度坐标 2-大地坐标
|
|
|
int nCoordUnit; // 坐标单位 = 0 单位(毫米) = 1 单位(米)
|
|
|
double dAxisLong; // 椭球体长轴 A
|
|
|
double dAxisShort; // 椭球体短轴 B
|
|
|
double dCenterMeridian; // 中央子午线(弧度,下同) (中央经线) Lon0
|
|
|
double dLatOrig; // 原点纬度 Lat0
|
|
|
double dExPand1; // 扩展1 Lon1
|
|
|
double dLatFirst; // 第一纬线 (割线1) Lat1
|
|
|
double dExPand2; // 扩展2 Lon2
|
|
|
double dLatSecond; // 第二纬线 (割线2) Lat2
|
|
|
double dAzimuth;
|
|
|
double dScaleFactor; // 比例因子 k0
|
|
|
double dOffsetEast; // 东偏移 x0
|
|
|
double dOffsetNorth; // 北偏移 y0
|
|
|
CString sWorkName;
|
|
|
|
|
|
void clear()
|
|
|
{
|
|
|
nWorkID = 0;
|
|
|
nEarthType = 0;
|
|
|
nProjType = 0;
|
|
|
nBandType = 0;
|
|
|
nBand = 0;
|
|
|
nCoordType = 0;
|
|
|
nCoordUnit = 0;
|
|
|
dAxisLong = 0;
|
|
|
dAxisShort = 0;
|
|
|
dCenterMeridian = 0;
|
|
|
dLatOrig = 0;
|
|
|
dExPand1 = 0;
|
|
|
dLatFirst = 0;
|
|
|
dExPand2 = 0;
|
|
|
dLatSecond = 0;
|
|
|
dAzimuth = 0;
|
|
|
dScaleFactor = 0;
|
|
|
dOffsetEast = 0;
|
|
|
dOffsetNorth = 0;
|
|
|
sWorkName = "";
|
|
|
}
|
|
|
};
|
|
|
|
|
|
struct GDBXMeasure
|
|
|
{
|
|
|
int nMapUnit; // 地图单位,MapUnit="1"
|
|
|
double dPaperScale; // 纸张比例,PaperScale="503104.000000"
|
|
|
double dDpiX; // 水平分辨率,DPIX="96.000000"
|
|
|
double dDpiY; // 垂直分辨率,DPIY="96.000000"
|
|
|
double dDepth; // 深度,Depth="1.000000"
|
|
|
double dLevel; // 等级,Level="1.000000"
|
|
|
|
|
|
|
|
|
void clear()
|
|
|
{
|
|
|
nMapUnit = 0;
|
|
|
dPaperScale = 0;
|
|
|
dDpiX = 0;
|
|
|
dDpiY = 0;
|
|
|
dDepth = 0;
|
|
|
dLevel = 0;
|
|
|
}
|
|
|
};
|
|
|
|
|
|
struct GDBXSegments
|
|
|
{
|
|
|
int nSegmentCount; // 段数
|
|
|
int nBigPtsBlock; // 是否有大点块
|
|
|
int nBigPtsLen0; // 大点数据长度
|
|
|
CString sBigPts0; // 数据段 不需要bese64以及zlib解压字段
|
|
|
|
|
|
int nSegFlag; // 1表示存在需要bese64以及zlib解压字段(联动MemoryBlock)
|
|
|
|
|
|
void clear()
|
|
|
{
|
|
|
nSegmentCount = 0;
|
|
|
nBigPtsBlock = 0;
|
|
|
nBigPtsLen0 = 0;
|
|
|
sBigPts0 = "";
|
|
|
nSegFlag = 0;
|
|
|
}
|
|
|
};
|
|
|
|
|
|
struct GDBXMemoryBlock
|
|
|
{
|
|
|
int nLine; //行号
|
|
|
int nUncomLength; //未压缩数据长度
|
|
|
CString sDatName; //数据名称
|
|
|
int nNumber; //数据块编号
|
|
|
|
|
|
CString sData; //数据 需要bese64以及zlib解压字段
|
|
|
|
|
|
void clear()
|
|
|
{
|
|
|
nLine = 0;
|
|
|
nUncomLength = 0;
|
|
|
sDatName = "";
|
|
|
nNumber = 0;
|
|
|
sData = "";
|
|
|
}
|
|
|
};
|
|
|
|
|
|
//环形(两组多边形组成)
|
|
|
struct GDBXAnnulus
|
|
|
{
|
|
|
int nCount;
|
|
|
};
|
|
|
|
|
|
//边框矩形信息
|
|
|
struct GDBXRectInfo {
|
|
|
int nTypeId; // 类型ID,TypeID="100" 1点 2线 3面 5圆 7比例尺 28边框 30image
|
|
|
int nShapeId; // 图形ID,(对应线段修饰ID)ShapeID="100"
|
|
|
CString shapeName; // 图形名称,ShapeName=""
|
|
|
int nShapeFeatureId; // 图形特征ID,ShapeFeatureID="2110003"
|
|
|
CString shapeFeatureName; // 图形特征名称
|
|
|
int nVisible = 0; // 是否可见,Visible="1"
|
|
|
int nReadOnly; // 是否只读,ReadOnly="0"
|
|
|
double dAngle; // 角度,Angle="0.000000"
|
|
|
CRect8 boundingBox; // 边界框,BoundingBox="-0.529167,0.000000,95.250000,95.514583"
|
|
|
int nCanMove; // 是否可移动,CanMove="1"
|
|
|
int nIsLock; // 是否锁定,IsLock="0"
|
|
|
|
|
|
void clear()
|
|
|
{
|
|
|
nTypeId = 0;
|
|
|
nShapeId = 0;
|
|
|
shapeName = "";
|
|
|
nShapeFeatureId = 0;
|
|
|
shapeFeatureName = "";
|
|
|
nVisible = 0;
|
|
|
nReadOnly = 0;
|
|
|
dAngle = 0;
|
|
|
boundingBox = CRect8(0, 0, 0, 0);
|
|
|
nCanMove = 0;
|
|
|
nIsLock = 0;
|
|
|
}
|
|
|
};
|
|
|
|
|
|
//符号及其绘制信息
|
|
|
struct GDBXCustomTool
|
|
|
{
|
|
|
int nVersion = 0; // 版本号,Version="4000009"
|
|
|
|
|
|
//矩形信息
|
|
|
GDBXRectInfo rectInfo;
|
|
|
|
|
|
//Rectangle
|
|
|
double dRoundScale; // 圆形比例
|
|
|
|
|
|
//Ellipse
|
|
|
double dStartAngle; // 起始角度
|
|
|
double dEndAngle; // 结束角度
|
|
|
int nType; // 图形类型
|
|
|
|
|
|
//Polyline
|
|
|
int nIsClosed = 0; // 是否闭合
|
|
|
int nIsShowCtrlPt; // 是否显示控制点
|
|
|
int nIsReverse; // 是否反向
|
|
|
int nIsSmooth; // 是否平滑
|
|
|
double dTensile; // 拉伸系数
|
|
|
|
|
|
//Polygon
|
|
|
COLORREF nFeClrOfName; // 前景颜色
|
|
|
COLORREF nBkClrOfName; // 背景颜色
|
|
|
int nIsFillBk; // 是否填充背景
|
|
|
|
|
|
//IsoFault 断层线 (IsoLine)
|
|
|
double dZ; // Z 轴位置,通常表示深度或高度 等值线z值
|
|
|
int nShowLabel; // 是否显示标签,1 表示显示,0 表示不显示
|
|
|
int nLabelColor; // 标签颜色,通常是 ARGB 格式
|
|
|
int nLabelNumber; // 标签编号,用于标识标签 几个
|
|
|
int nDecimalPlaces; // 小数位数,-1 表示不限制
|
|
|
|
|
|
int nDrawType; // 绘制类型,具体含义可能根据需求定义
|
|
|
int nFault; // 是否为故障,1 表示是故障,0 表示不是
|
|
|
double dDirectWidth; // 直接宽度
|
|
|
double dDirectHeight; // 直接高度
|
|
|
double dDirectSite; // 直接位置,表示某个特定位置坐标
|
|
|
int nDirectUp; // 直接向上,1 表示向上,0 表示向下
|
|
|
int nFaultBegin; // 故障开始位置,具体含义视具体场景而定
|
|
|
int nFaultNum; // 故障数量,表示有多少个故障
|
|
|
double dFaultWidth; // 故障宽度,表示故障的宽度
|
|
|
int nFaultColor; // 故障颜色,通常是 ARGB 格式
|
|
|
int nFaultDirection; // 故障方向,具体含义根据业务需求确定
|
|
|
int nFaultStyle; // 故障样式,表示故障的具体样式
|
|
|
double dFaultLenScale; // 故障长度缩放因子,用于调整故障的长度
|
|
|
CString sFaultLineName; // 故障线名称
|
|
|
|
|
|
//Group
|
|
|
int nDrawBorder; // 是否绘制边框
|
|
|
int nLockChild; // 是否锁定子元素
|
|
|
|
|
|
//Shapes
|
|
|
int nCount; // 形状的数量
|
|
|
|
|
|
void clear()
|
|
|
{
|
|
|
nVersion =0;
|
|
|
|
|
|
rectInfo.clear();
|
|
|
dRoundScale =0;
|
|
|
dStartAngle =0;
|
|
|
dEndAngle =0;
|
|
|
nType =0;
|
|
|
|
|
|
nIsClosed =0;
|
|
|
nIsShowCtrlPt =0;
|
|
|
nIsReverse =0;
|
|
|
nIsSmooth =0;
|
|
|
dTensile =0;
|
|
|
|
|
|
nFeClrOfName =0;
|
|
|
nBkClrOfName =0;
|
|
|
nIsFillBk =0;
|
|
|
|
|
|
dZ =0;
|
|
|
nShowLabel =0;
|
|
|
nLabelColor =0;
|
|
|
nLabelNumber =0;
|
|
|
nDecimalPlaces =0;
|
|
|
nDrawType =0;
|
|
|
nFault =0;
|
|
|
dDirectWidth =0;
|
|
|
dDirectHeight =0;
|
|
|
dDirectSite =0;
|
|
|
nDirectUp =0;
|
|
|
nFaultBegin =0;
|
|
|
nFaultNum =0;
|
|
|
dFaultWidth =0;
|
|
|
nFaultColor =0;
|
|
|
nFaultDirection =0;
|
|
|
nFaultStyle =0;
|
|
|
dFaultLenScale =0;
|
|
|
sFaultLineName ="";
|
|
|
|
|
|
nDrawBorder =0;
|
|
|
nLockChild =0;
|
|
|
|
|
|
nCount =0;
|
|
|
}
|
|
|
};
|
|
|
|
|
|
//修饰信息
|
|
|
struct GDBXFillInfo
|
|
|
{
|
|
|
double dPenWidth; // 笔宽
|
|
|
COLORREF penColor; // 笔颜色
|
|
|
int nPenDashStyle; // 画笔样式(可能是虚线、实线等样式)
|
|
|
int nPenStyleID; // 笔样式ID
|
|
|
CString penStyleName; // 笔样式名称
|
|
|
int nBDefaultColor; // 是否使用默认颜色(0为否,1为是)
|
|
|
int nType; // 填充类型 (0 不填充, 1纯色填充, 2渐变填充, 3图片填充, 4纹理填充,5符号填充, 6线性填充)
|
|
|
COLORREF nClrBeg; // 起始颜色
|
|
|
COLORREF nClrEnd; // 结束颜色
|
|
|
int nBlend; // 混合模式
|
|
|
double dStyle; // 填充样式
|
|
|
CRect8 rc; // 矩形区域
|
|
|
CSize8 sz; // 尺寸
|
|
|
int nSymBk; // 背景符号
|
|
|
COLORREF nSymFillBk; // 填充背景色
|
|
|
int nPointType; // 点类型 (0平铺单色、1平铺彩色、2平铺设计....)
|
|
|
double dImgRotate; // 图片旋转角度
|
|
|
double dx; // X坐标
|
|
|
double dy; // Y坐标
|
|
|
CString nImgFile; // 图片文件标识
|
|
|
|
|
|
void clear()
|
|
|
{
|
|
|
dPenWidth = 0;
|
|
|
penColor = 0;
|
|
|
nPenDashStyle = 0;
|
|
|
nPenStyleID = 0;
|
|
|
penStyleName = "";
|
|
|
nBDefaultColor = FALSE;
|
|
|
nType = 0;
|
|
|
nClrBeg = 0;
|
|
|
nClrEnd = 0;
|
|
|
nBlend = 0;
|
|
|
dStyle = 0;
|
|
|
rc = CRect8(0, 0, 0, 0);
|
|
|
sz = CSize8(0, 0);
|
|
|
nSymBk = 0;
|
|
|
nSymFillBk = 0;
|
|
|
nPointType = 0;
|
|
|
dImgRotate = 0;
|
|
|
dx = 0;
|
|
|
dy = 0;
|
|
|
nImgFile = "";
|
|
|
}
|
|
|
};
|
|
|
|
|
|
// 字体信息结构体
|
|
|
struct GDBXFontInfo
|
|
|
{
|
|
|
double tSX; // 文字 X 轴缩放因子
|
|
|
double tSY; // 文字 Y 轴缩放因子
|
|
|
double tfWidth; // 文字宽度比例
|
|
|
double tfHeight; // 文字高度比例
|
|
|
double tfColSpace; // 文字列间距
|
|
|
double tfRowSpace; // 文字行间距
|
|
|
|
|
|
COLORREF tFeColor; // 前景色,通常为 ARGB 或 RGBA 颜色值
|
|
|
COLORREF tBkColor; // 背景色,通常为 ARGB 或 RGBA 颜色值
|
|
|
|
|
|
int nHeight; // 字体高度,负值表示向上,正值表示向下
|
|
|
int nWidth; // 字符宽度,0 表示默认宽度
|
|
|
int nEscapement; // 字形倾斜角度(通常用于斜体),以千分之一度为单位
|
|
|
int nOrientation; // 字形方向,通常为 0
|
|
|
int nWeight; // 字重,通常取值为 400(常规),700(加粗)等
|
|
|
int isItalic; // 是否斜体,0 表示否,1 表示是
|
|
|
int isUnderline; // 是否下划线,0 表示否,1 表示是
|
|
|
int isStrikeOut; // 是否删除线,0 表示否,1 表示是
|
|
|
int nCharSet; // 字符集,1 表示 ANSI 字符集,2 表示西欧字符集,等等
|
|
|
int nOutPrecision; // 输出精度,影响字体显示的精度
|
|
|
int nClipPrecision; // 剪裁精度,决定如何处理字体的显示
|
|
|
int nQuality; // 字体质量,通常为 0 表示标准质量,1 表示高质量
|
|
|
int nPitchAndFamily; // 字体的音调和家族(常用于选择等宽字体或其他特性)
|
|
|
|
|
|
// 新增的字体属性
|
|
|
int tAlign; // 文字对齐方式,0 表示左对齐,1 表示居中,2 表示右对齐等
|
|
|
int tItalic; // 文字斜体标志,0 表示否,1 表示是
|
|
|
int tFormat; // 文字格式,具体含义根据应用定义
|
|
|
int tSpecial; // 特殊文字标志,具体含义根据应用定义
|
|
|
int tSClr; // 文字前景色,通常为颜色的 RGB 值
|
|
|
int tDeviceSize; // 设备尺寸,具体含义根据应用定义
|
|
|
int tBkFill; // 背景填充标志,0 表示无填充,1 表示填充
|
|
|
|
|
|
CString faceName; // 字体名称,如 "新宋体"
|
|
|
|
|
|
void clear()
|
|
|
{
|
|
|
nHeight = 0;
|
|
|
nWidth = 0;
|
|
|
nEscapement = 0;
|
|
|
nOrientation = 0;
|
|
|
nWeight = 0;
|
|
|
isItalic = 0;
|
|
|
isUnderline = 0;
|
|
|
isStrikeOut = 0;
|
|
|
nCharSet = 0;
|
|
|
nOutPrecision = 0;
|
|
|
nClipPrecision = 0;
|
|
|
nQuality = 0;
|
|
|
nPitchAndFamily = 0;
|
|
|
|
|
|
// 新增的字体属性
|
|
|
tAlign = 0;
|
|
|
tItalic = 0;
|
|
|
tFormat = 0;
|
|
|
tSpecial = 0;
|
|
|
tSClr = 0;
|
|
|
tDeviceSize = 0;
|
|
|
tBkFill = 0;
|
|
|
tSX = 0.0;
|
|
|
tSY = 0.0;
|
|
|
tfWidth = 0.0;
|
|
|
tfHeight = 0.0;
|
|
|
tfColSpace = 0.0;
|
|
|
tfRowSpace = 0.0;
|
|
|
tFeColor = RGB(0, 0, 0); // 默认颜色为黑色
|
|
|
tBkColor = RGB(255, 255, 255); // 默认背景色为白色
|
|
|
faceName = _T("");
|
|
|
}
|
|
|
};
|
|
|
|
|
|
struct GDBXLayers
|
|
|
{
|
|
|
int nActiveLayer; //活跃的图层数量
|
|
|
int nLayersCount; //总图层级数量
|
|
|
};
|
|
|
|
|
|
struct GDBXLayerInfo
|
|
|
{
|
|
|
//Layer
|
|
|
int nIndex; //当前图层顺序
|
|
|
int nVisble; //当前图层显示属性
|
|
|
int nSelectable; //图层是否可选择,0表示不可选择,1表示可选择()
|
|
|
int nNextRecNO; //下一个记录号码
|
|
|
|
|
|
//LayerInfo
|
|
|
CString sLayerName; // 图层名称
|
|
|
CString sFeatureName; // 特征名称 (如果为空则无特征名)
|
|
|
long lFeatureID; // 特征ID
|
|
|
int nVersion; // 版本号
|
|
|
CString sClass; // 类别 (如果为空则无类别)
|
|
|
CString sReMark; // 备注
|
|
|
CString sCreateDate; // 创建日期,格式为 YYYYMMDD,HH:MM:SS
|
|
|
CString sCustomInfo; // 自定义信息 (如果为空则无)
|
|
|
CRect8 rWorkAreaRange; // 工作范围
|
|
|
int nTypeID; // 类型ID
|
|
|
CString sCiteSrc; // 引用来源 (如果为空则无)
|
|
|
int nLevel; // 图层的层级,数字表示层级
|
|
|
double dMinSc; // 最小比例尺 (-1表示没有限制)
|
|
|
double dMaxSc; // 最大比例尺 (-1表示没有限制)
|
|
|
int nbSaveShape; // 是否保存形状,2 表示保存
|
|
|
CString sMarkLabel; // 标注标签 (如果为空则无)
|
|
|
CString sParameterXml; // 参数 XML 配置 (如果为空则无)
|
|
|
CString sReserve; // 保留字段 (如果为空则无)
|
|
|
CString sBackup; // 备份字段 (如果为空则无)
|
|
|
|
|
|
//DefShapes
|
|
|
int nDefShapesCount;// 定义的形状数量
|
|
|
|
|
|
//Shapes
|
|
|
int nShapesCount; // 图层中实际的形状数量
|
|
|
|
|
|
|
|
|
void clear()
|
|
|
{
|
|
|
nIndex = 0;
|
|
|
nVisble = 0;
|
|
|
nSelectable = 0;
|
|
|
nNextRecNO = 0;
|
|
|
|
|
|
sLayerName = "";
|
|
|
sFeatureName = "";
|
|
|
lFeatureID = 0;
|
|
|
nVersion = 0;
|
|
|
sClass = "";
|
|
|
sReMark = "";
|
|
|
sCreateDate = "";
|
|
|
sCustomInfo = "";
|
|
|
rWorkAreaRange = CRect8(0,0,0,0);
|
|
|
nTypeID = 0;
|
|
|
sCiteSrc = "";
|
|
|
nLevel = 0;
|
|
|
dMinSc = 0;
|
|
|
dMaxSc = 0;
|
|
|
nbSaveShape = 0;
|
|
|
sMarkLabel = "";
|
|
|
sParameterXml = "";
|
|
|
sReserve = "";
|
|
|
sBackup = "";
|
|
|
|
|
|
nDefShapesCount = 0;
|
|
|
|
|
|
nShapesCount = 0;
|
|
|
}
|
|
|
};
|
|
|
|
|
|
struct GDBXImageInfo
|
|
|
{
|
|
|
GDBXRectInfo rectInfo;
|
|
|
int nIsotropic; //是否等比例缩放,"0"表示不是等比例缩放,"1"表示是等比例缩放
|
|
|
int nIfGif; //是否为 GIF 格式,"0"表示不是 GIF 格式,"1"表示是 GIF 格式
|
|
|
CString sName; //图片名称
|
|
|
CString sPath; //图片完整路径(没有带后缀)
|
|
|
|
|
|
void clear()
|
|
|
{
|
|
|
rectInfo.clear();
|
|
|
nIsotropic = 0;
|
|
|
nIfGif = 0;
|
|
|
sName = "";
|
|
|
sPath = "";
|
|
|
}
|
|
|
};
|
|
|
|
|
|
//图框?
|
|
|
struct GDBXInserMapInfo
|
|
|
{
|
|
|
GDBXRectInfo rectInfo; //矩形信息
|
|
|
CString sFileName; //图框GDBX文件名称
|
|
|
|
|
|
void clear()
|
|
|
{
|
|
|
rectInfo.clear();
|
|
|
sFileName = "";
|
|
|
}
|
|
|
};
|
|
|
|
|
|
struct GDBXLLGridInfo
|
|
|
{
|
|
|
//矩形信息
|
|
|
GDBXRectInfo rectInfo;
|
|
|
|
|
|
// 网格间距
|
|
|
double dXSpace; // X轴方向的网格间距,单位:度
|
|
|
double dYSpace; // Y轴方向的网格间距,单位:度
|
|
|
|
|
|
// 指定位置
|
|
|
double dXSpecified; // X方向的指定位置
|
|
|
double dYSpecified; // Y方向的指定位置
|
|
|
|
|
|
// 标签设置
|
|
|
int nLineLab; // 行标签,表示标签的类型或数量
|
|
|
int nXMinorLabDe; // X轴方向的小数位数,用于精度显示
|
|
|
int nYMinorLabDec; // Y轴方向的小数位数,用于精度显示
|
|
|
int nAddZero; // 是否添加零,1表示添加,0表示不添加
|
|
|
|
|
|
int LabUnitType; //标签的单位类型,"1"可能表示某种特定的单位(如米、度等)。
|
|
|
|
|
|
// 边框设置
|
|
|
int nBorderType; // 边框类型,可能有不同的样式
|
|
|
double dBorderDist12; // 边框12点的距离
|
|
|
double dBorderDist23; // 边框23点的距离
|
|
|
|
|
|
// 框架宽度和颜色
|
|
|
double dInFrameWid; // 内框宽度
|
|
|
COLORREF nClrInFrame; // 内框颜色(通过整数表示颜色值)
|
|
|
double dMidFrameWid; // 中框宽度
|
|
|
COLORREF nClrMidFrame; // 中框颜色
|
|
|
double dOutFrameWid; // 外框宽度
|
|
|
COLORREF nClrOutFrame; // 外框颜色
|
|
|
|
|
|
// 网格线宽度和颜色
|
|
|
double dGridLineWid; // 网格线宽度
|
|
|
COLORREF nClrGrid; // 网格线颜色(通过整数表示颜色值)
|
|
|
|
|
|
void clear()
|
|
|
{
|
|
|
//矩形信息
|
|
|
rectInfo.clear();
|
|
|
|
|
|
dXSpace = 0;
|
|
|
dYSpace = 0;
|
|
|
dXSpecified = 0;
|
|
|
dYSpecified = 0;
|
|
|
nLineLab = 0;
|
|
|
nXMinorLabDe = 0;
|
|
|
nYMinorLabDec = 0;
|
|
|
nAddZero = 0;
|
|
|
|
|
|
nBorderType = 0;
|
|
|
dBorderDist12 = 0;
|
|
|
dBorderDist23 = 0;
|
|
|
dInFrameWid = 0;
|
|
|
nClrInFrame = 0;
|
|
|
dMidFrameWid = 0;
|
|
|
nClrMidFrame = 0;
|
|
|
dOutFrameWid = 0;
|
|
|
nClrOutFrame = 0;
|
|
|
dGridLineWid = 0;
|
|
|
nClrGrid = 0;
|
|
|
}
|
|
|
};
|
|
|
|
|
|
struct GDBXNormalGridInfo
|
|
|
{
|
|
|
GDBXRectInfo rectInfo;
|
|
|
|
|
|
CRect8 rUserRect; //用户区域
|
|
|
CRect8 rMarkRect; //标记区域
|
|
|
|
|
|
// 网格间距
|
|
|
double dHorizontalSpace; //水平间距
|
|
|
double dVerticalSpace; //垂直间距
|
|
|
double dEnhGridLineWid; //增强网格线宽
|
|
|
double dclrEnhGrid; //增强网格颜色
|
|
|
|
|
|
int nDrawGridFlag; //绘制网格标志
|
|
|
int nInnerHorizontalSpace; //内部水平间距
|
|
|
int nXLabFlag; //X轴标签标志
|
|
|
int nXLabDecimal; //X轴小数位数
|
|
|
int nInnerVerticalSpace; //内部垂直间距
|
|
|
int nYLabFlag; //Y轴标签标志
|
|
|
int nYLabDecimal; //Y轴小数位数
|
|
|
double dXSpecified; //X指定值
|
|
|
double dYSpecified; //Y指定值
|
|
|
int nflag; //标志位
|
|
|
int nXMinorLabDe; //X次要标签小数位
|
|
|
int nYMinorLabDec; //Y次要标签小数位
|
|
|
int nLabUnitType; //标签单位类型
|
|
|
int nBorderType; //边框类型
|
|
|
|
|
|
double dBorderDist12; // 边框12点的距离
|
|
|
double dBorderDist23; // 边框23点的距离
|
|
|
// 框架宽度和颜色
|
|
|
double dInFrameWid; // 内框宽度
|
|
|
COLORREF nClrInFrame; // 内框颜色(通过整数表示颜色值)
|
|
|
double dMidFrameWid; // 中框宽度
|
|
|
COLORREF nClrMidFrame; // 中框颜色
|
|
|
double dOutFrameWid; // 外框宽度
|
|
|
COLORREF nClrOutFrame; // 外框颜色
|
|
|
|
|
|
// 网格线宽度和颜色
|
|
|
double dGridLineWid; // 网格线宽度
|
|
|
COLORREF nClrGrid; // 网格线颜色(通过整数表示颜色值)
|
|
|
|
|
|
void clear()
|
|
|
{
|
|
|
rectInfo.clear();
|
|
|
|
|
|
rUserRect = CRect8(0, 0, 0, 0);
|
|
|
rMarkRect = CRect8(0, 0, 0, 0);
|
|
|
dHorizontalSpace = 0;
|
|
|
dVerticalSpace = 0;
|
|
|
dEnhGridLineWid = 0;
|
|
|
dclrEnhGrid = 0;
|
|
|
nDrawGridFlag = 0;
|
|
|
nInnerHorizontalSpace = 0;
|
|
|
nXLabFlag = 0;
|
|
|
nXLabDecimal = 0;
|
|
|
nInnerVerticalSpace = 0;
|
|
|
nYLabFlag = 0;
|
|
|
nYLabDecimal = 0;
|
|
|
dXSpecified = 0;
|
|
|
dYSpecified = 0;
|
|
|
nflag = 0;
|
|
|
nXMinorLabDe = 0;
|
|
|
nYMinorLabDec = 0;
|
|
|
nLabUnitType = 0;
|
|
|
nBorderType = 0;
|
|
|
dBorderDist12 = 0;
|
|
|
dBorderDist23 = 0;
|
|
|
dInFrameWid = 0;
|
|
|
nClrInFrame = 0;
|
|
|
dMidFrameWid = 0;
|
|
|
nClrMidFrame = 0;
|
|
|
dOutFrameWid = 0;
|
|
|
nClrOutFrame = 0;
|
|
|
dGridLineWid = 0;
|
|
|
nClrGrid = 0;
|
|
|
}
|
|
|
};
|
|
|
|
|
|
// 锚点
|
|
|
struct GDBXAnchor
|
|
|
{
|
|
|
double dAnchorX; // 锚点 X 坐标
|
|
|
double dAnchorY; // 锚点 Y 坐标
|
|
|
double dAnchorZ; // 锚点 Z 坐标
|
|
|
double dWidth; // 宽度
|
|
|
double dHeight; // 高度
|
|
|
long nIndex; // 索引
|
|
|
COLORREF nClrBeg; // 开始颜色
|
|
|
COLORREF nClrEnd; // 结束颜色
|
|
|
COLORREF nClrFill; // 填充颜色
|
|
|
int nPointType; // 点类型
|
|
|
int nTransparent; // 是否透明 (1: true, 0: false)
|
|
|
int nFillTransparent; // 填充是否透明 (1: true, 0: false)
|
|
|
int nAnchorType; // 锚点类型
|
|
|
double dPenScale; // 笔刷比例
|
|
|
CString symbolName; // 符号名称
|
|
|
|
|
|
GDBXAnchor() {};
|
|
|
~GDBXAnchor() {};
|
|
|
|
|
|
void clear()
|
|
|
{
|
|
|
dAnchorX = 0;
|
|
|
dAnchorY = 0;
|
|
|
dAnchorZ = 0;
|
|
|
dWidth = 0;
|
|
|
dHeight = 0;
|
|
|
nIndex = 0;
|
|
|
nClrBeg = 0;
|
|
|
nClrEnd = 0;
|
|
|
nClrFill = 0;
|
|
|
nPointType = 0;
|
|
|
nTransparent = 0;
|
|
|
nFillTransparent = 0;
|
|
|
nAnchorType = 0;
|
|
|
dPenScale = 0;
|
|
|
symbolName = "";
|
|
|
}
|
|
|
|
|
|
GDBXAnchor& operator=(const GDBXAnchor& other) {
|
|
|
if (this != &other) {
|
|
|
dAnchorX = other.dAnchorX;
|
|
|
dAnchorY = other.dAnchorY;
|
|
|
dAnchorZ = other.dAnchorZ;
|
|
|
dWidth = other.dWidth;
|
|
|
dHeight = other.dHeight;
|
|
|
nIndex = other.nIndex;
|
|
|
nClrBeg = other.nClrBeg;
|
|
|
nClrEnd = other.nClrEnd;
|
|
|
nClrFill = other.nClrFill;
|
|
|
nPointType = other.nPointType;
|
|
|
nTransparent = other.nTransparent;
|
|
|
nFillTransparent = other.nFillTransparent;
|
|
|
nAnchorType = other.nAnchorType;
|
|
|
dPenScale = other.dPenScale;
|
|
|
symbolName = other.symbolName;
|
|
|
}
|
|
|
return *this;
|
|
|
}
|
|
|
};
|
|
|
|
|
|
//字体属性 //主要与次要字体属性(XMajorFont,XMinorFont,YMajorFont,YMinorFont)
|
|
|
struct GDBXGMFONT
|
|
|
{
|
|
|
double dHeight; // 字体高度
|
|
|
double dWidth; // 字体宽度
|
|
|
double dEscapement; // 字体行进度
|
|
|
double dOrientation; // 字体方向
|
|
|
int nWeight; // 字体粗细
|
|
|
int nItalic; // 是否斜体 (1: true, 0: false)
|
|
|
int nUnderline; // 是否下划线 (1: true, 0: false)
|
|
|
int nStrikeOut; // 是否删除线 (1: true, 0: false)
|
|
|
int nCharSet; // 字符集
|
|
|
int nOutPrecision; // 输出精度
|
|
|
int nClipPrecision; // 裁剪精度
|
|
|
int nQuality; // 字体质量
|
|
|
int nPitchAndFamily;// 字体家庭
|
|
|
CString faceName; // 字体名称
|
|
|
int nTAlign; // 对齐方式
|
|
|
int nTItalic; // 是否斜体
|
|
|
int nTFormat; // 字体格式 (横向 竖向1)
|
|
|
int nTSpecial; // 特殊字体设置
|
|
|
COLORREF nTSClr; // 字体颜色
|
|
|
double dTSX; // 字体 X 方向缩放因子
|
|
|
double dTSY; // 字体 Y 方向缩放因子
|
|
|
double dTDeviceSize; // 设备大小 //2是区域拉伸(文字标题需要)
|
|
|
double dTfWidth; // 字体宽度
|
|
|
double dTfHeight; // 字体高度
|
|
|
double dTfColSpace; // 字体列间距
|
|
|
double dTfRowSpace; // 字体行间距
|
|
|
COLORREF nTFeColor; // 前景色
|
|
|
COLORREF nTBkColor; // 背景色
|
|
|
int nTBkFill; // 是否填充背景 (1: true, 0: false)
|
|
|
|
|
|
void clear()
|
|
|
{
|
|
|
dHeight = 0;
|
|
|
dWidth = 0;
|
|
|
dEscapement = 0;
|
|
|
dOrientation = 0;
|
|
|
nWeight = 0;
|
|
|
nItalic = 0;
|
|
|
nUnderline = 0;
|
|
|
nStrikeOut = 0;
|
|
|
nCharSet = 0;
|
|
|
nOutPrecision = 0;
|
|
|
nClipPrecision = 0;
|
|
|
nQuality = 0;
|
|
|
nPitchAndFamily = 0;
|
|
|
faceName = "";
|
|
|
nTAlign = 0;
|
|
|
nTItalic = 0;
|
|
|
nTFormat = 0;
|
|
|
nTSpecial = 0;
|
|
|
nTSClr = 0;
|
|
|
dTSX = 0;
|
|
|
dTSY = 0;
|
|
|
dTDeviceSize = 0;
|
|
|
dTfWidth = 0;
|
|
|
dTfHeight = 0;
|
|
|
dTfColSpace = 0;
|
|
|
dTfRowSpace = 0;
|
|
|
nTFeColor = 0;
|
|
|
nTBkColor = 0;
|
|
|
nTBkFill = 0;
|
|
|
}
|
|
|
};
|
|
|
|
|
|
struct GDBXTextInfo
|
|
|
{
|
|
|
//矩形信息
|
|
|
GDBXRectInfo rectInfo;
|
|
|
CString text; // 文本内容
|
|
|
|
|
|
|
|
|
GDBXGMFONT gmFontInfo; // 字体部分
|
|
|
|
|
|
void clear()
|
|
|
{
|
|
|
//矩形信息
|
|
|
rectInfo.clear();
|
|
|
text = "";
|
|
|
|
|
|
gmFontInfo.clear();
|
|
|
}
|
|
|
};
|
|
|
|
|
|
// 标签偏移量
|
|
|
struct GDBXLableOffset
|
|
|
{
|
|
|
int nLableOffsetCount; // 标签数量
|
|
|
|
|
|
vector<CSize8> vPts;
|
|
|
|
|
|
void clear()
|
|
|
{
|
|
|
nLableOffsetCount = 0;
|
|
|
vPts.clear();
|
|
|
}
|
|
|
};
|
|
|
|
|
|
//
|
|
|
struct GDBXScaleInfo
|
|
|
{
|
|
|
//矩形信息
|
|
|
GDBXRectInfo rectInfo;
|
|
|
|
|
|
double dAxisWid; // 坐标轴宽度
|
|
|
double dScale; // 比例
|
|
|
CString sTitle; // 标题
|
|
|
double dTitleOff; // 标题偏移
|
|
|
double dGradLen; // 刻度长度
|
|
|
double dAxisStart; // 坐标轴起始位置
|
|
|
double dAxisEnd; // 坐标轴结束位置
|
|
|
double dInterval; // 刻度间隔
|
|
|
double dLabelOff; // 标签偏移
|
|
|
int nUnitType; // 单位类型
|
|
|
CString sUnitName; // 单位名称
|
|
|
double dUnitLen; // 单位长度
|
|
|
int nLabPrecision; // 标签精度
|
|
|
CSize8 basePoint; // 基点 (2 个浮点数)
|
|
|
CRect8 titleBox; // 标题框 (4 个浮点数)
|
|
|
CRect8 labelBox; // 标签框 (4 个浮点数)
|
|
|
CRect8 axisBox; // 坐标轴框 (4 个浮点数)
|
|
|
CRect8 gradBox; // 刻度框 (4 个浮点数)
|
|
|
double dUnitTxtWidth; // 单位文本宽度
|
|
|
double dSubGradLen; // 次刻度长度
|
|
|
double dSubInterval; // 次刻度间隔
|
|
|
COLORREF nTitleColor; // 标题颜色
|
|
|
COLORREF nLabelColor; // 标签颜色
|
|
|
double dSubGradPenWidth; // 次刻度线宽度
|
|
|
|
|
|
void clear()
|
|
|
{
|
|
|
//矩形信息
|
|
|
rectInfo.clear();
|
|
|
|
|
|
dAxisWid = 0;
|
|
|
dScale = 0;
|
|
|
sTitle = "";
|
|
|
dTitleOff = 0;
|
|
|
dGradLen = 0;
|
|
|
dAxisStart = 0;
|
|
|
dAxisEnd = 0;
|
|
|
dInterval = 0;
|
|
|
dLabelOff = 0;
|
|
|
nUnitType = 0;
|
|
|
sUnitName = "";
|
|
|
dUnitLen = 0;
|
|
|
nLabPrecision = 0;
|
|
|
basePoint = CSize8(0, 0);
|
|
|
titleBox = CRect8(0, 0, 0, 0);
|
|
|
labelBox = CRect8(0, 0, 0, 0);
|
|
|
axisBox = CRect8(0, 0, 0, 0);
|
|
|
gradBox = CRect8(0, 0, 0, 0);
|
|
|
dUnitTxtWidth = 0;
|
|
|
dSubGradLen = 0;
|
|
|
dSubInterval = 0;
|
|
|
nTitleColor = 0;
|
|
|
nLabelColor = 0;
|
|
|
dSubGradPenWidth = 0;
|
|
|
}
|
|
|
};
|
|
|
|
|
|
//符号井
|
|
|
struct GDBXWellInfo
|
|
|
{
|
|
|
//矩形信息
|
|
|
GDBXRectInfo rectInfo;
|
|
|
|
|
|
int nTopBkTransparent; // 顶部背景透明
|
|
|
int nBottomBkTransparent; // 底部背景透明
|
|
|
int nTextBkTransparent; // 文字背景透明
|
|
|
int nTopPointType; // 顶部符号颜色模式 3色模式(单色0、彩色1、设计2)
|
|
|
int nBottomPointType; // 底部符号颜色模式 3色模式(单色0、彩色1、设计2)
|
|
|
int nLinkLineType; // 连接线类型
|
|
|
|
|
|
CString strTopSymbolId; // 顶部符号名称
|
|
|
CString strBottomSymbol; // 底部符号名称
|
|
|
int nTopSymbolId; // 顶部符号ID
|
|
|
int nBottomSymbolId; // 底部符号ID
|
|
|
int nTopSymbolFrame; // 顶部符号框架
|
|
|
int nBottomSymbolFrame; // 底部符号框架
|
|
|
|
|
|
COLORREF nTopClr; // 顶部颜色
|
|
|
COLORREF nBottomClr; // 底部颜色
|
|
|
COLORREF nTextClr; // 文字颜色
|
|
|
COLORREF nTopBkClr; // 顶部背景颜色
|
|
|
COLORREF nBottomBkClr; // 底部背景颜色
|
|
|
COLORREF nTextBkClr; // 文字背景颜色
|
|
|
COLORREF nTopFillClr; // 顶部填充颜色
|
|
|
COLORREF nBottomFillClr; // 底部填充颜色
|
|
|
|
|
|
double dTopWidth; // 顶部宽度
|
|
|
double dTopHeight; // 顶部高度
|
|
|
double dBottomWidth; // 底部宽度
|
|
|
double dBottomHeight; // 底部高度
|
|
|
double dTopX; // 顶部X坐标
|
|
|
double dTopY; // 顶部Y坐标
|
|
|
double dBottomX; // 底部X坐标
|
|
|
double dBottomY; // 底部Y坐标
|
|
|
double dTopPenScale; // 顶部画笔比例
|
|
|
double dBottomPenScale; // 底部画笔比例
|
|
|
double doffsetX; // 偏移量X
|
|
|
double doffsetY; // 偏移量Y
|
|
|
double dTextWidth; // 文字宽度
|
|
|
double dTextHeight; // 文字高度
|
|
|
|
|
|
void clear()
|
|
|
{
|
|
|
rectInfo.clear();
|
|
|
|
|
|
nTopBkTransparent = 0;
|
|
|
nBottomBkTransparent = 0;
|
|
|
nTextBkTransparent = 0;
|
|
|
nTopPointType = 0;
|
|
|
nBottomPointType = 0;
|
|
|
nLinkLineType = 0;
|
|
|
|
|
|
strTopSymbolId = "";
|
|
|
strBottomSymbol = "";
|
|
|
|
|
|
nTopSymbolId = 0;
|
|
|
nBottomSymbolId = 0;
|
|
|
nTopSymbolFrame = 0;
|
|
|
nBottomSymbolFrame = 0;
|
|
|
nTopClr = 0;
|
|
|
nBottomClr = 0;
|
|
|
nTextClr = 0;
|
|
|
nTopBkClr = 0;
|
|
|
nBottomBkClr = 0;
|
|
|
nTextBkClr = 0;
|
|
|
nTopFillClr = 0;
|
|
|
nBottomFillClr = 0;
|
|
|
|
|
|
dTopWidth = 0;
|
|
|
dTopHeight = 0;
|
|
|
dBottomWidth = 0;
|
|
|
dBottomHeight = 0;
|
|
|
dTopX = 0;
|
|
|
dTopY = 0;
|
|
|
dBottomX = 0;
|
|
|
dBottomY = 0;
|
|
|
dTopPenScale = 0;
|
|
|
dBottomPenScale = 0;
|
|
|
doffsetX = 0;
|
|
|
doffsetY = 0;
|
|
|
dTextWidth = 0;
|
|
|
dTextHeight = 0;
|
|
|
}
|
|
|
};
|
|
|
|
|
|
//油气水柱
|
|
|
struct GDBXOilWaterInfo
|
|
|
{
|
|
|
COLORREF gasColor; //气相颜色
|
|
|
COLORREF oilColor; //油相颜色
|
|
|
COLORREF waterColor; //水相颜色
|
|
|
|
|
|
GDBXRectInfo rectInfo; //矩形信息
|
|
|
|
|
|
void clear()
|
|
|
{
|
|
|
gasColor = 0;
|
|
|
oilColor = 0;
|
|
|
waterColor = 0;
|
|
|
|
|
|
rectInfo.clear();
|
|
|
}
|
|
|
};
|
|
|
|
|
|
//油气水柱组
|
|
|
struct GDBXOilWaterGroupInfo
|
|
|
{
|
|
|
int nDrawEdge; // 是否绘制油水群体的边缘 (1: 是, 0: 否)
|
|
|
CString sGasOutput; // 气体输出量
|
|
|
CString sOilOutput; // 石油输出量
|
|
|
CString sWaterOutput; // 水输出量
|
|
|
double dPillarHig; // 柱高
|
|
|
double dCutGas; // 切割气体比例
|
|
|
double dCutOil; // 切割石油比例
|
|
|
double dCutWater; // 切割水比例
|
|
|
int nDecimalPlaces; // 小数位数
|
|
|
CString sRelationWellName; // 关联井名称
|
|
|
CRect8 rectPillar; // 柱体矩形区域 (left, top, right, bottom)
|
|
|
CRect8 rectText; // 文字矩形区域 (left, top, right, bottom)
|
|
|
|
|
|
void clear()
|
|
|
{
|
|
|
nDrawEdge = 0;
|
|
|
sGasOutput = "";
|
|
|
sOilOutput = "";
|
|
|
sWaterOutput = "";
|
|
|
dPillarHig = 0.0;
|
|
|
dCutGas = 0.0;
|
|
|
dCutOil = 0.0;
|
|
|
dCutWater = 0.0;
|
|
|
nDecimalPlaces = 0;
|
|
|
sRelationWellName = "";
|
|
|
rectPillar = CRect8(0, 0, 0, 0);
|
|
|
rectText = CRect8(0, 0, 0, 0);
|
|
|
}
|
|
|
};
|
|
|
|
|
|
|
|
|
#endif //GDBX_DEFINE_H
|