104 lines
3.0 KiB
C++
104 lines
3.0 KiB
C++
#pragma once
|
|
|
|
#include "Resource.h"
|
|
#include <iostream>
|
|
#include <map>
|
|
#include "PickEntSet.h"
|
|
|
|
class CSetDataSourceDlg : public CDialog
|
|
{
|
|
public:
|
|
CSetDataSourceDlg(CWnd* pParent = NULL);
|
|
//{{AFX_DATA(CSetDataSourceDlg)
|
|
enum { IDD = IDD_SETDATAFOUNTAINDLG };
|
|
CComboBox m_comDataSouceType;
|
|
int m_nDataSourceType;
|
|
int m_nLandForm;
|
|
//}}AFX_DATA
|
|
|
|
//{{AFX_VIRTUAL(CSetDataSourceDlg)
|
|
protected:
|
|
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
|
|
//}}AFX_VIRTUAL
|
|
|
|
public:
|
|
|
|
//得到选择的数据源类型索引
|
|
int GetDataSourceType();
|
|
void SetSelEntity(Entity ent);
|
|
// 获取有效数据源 cet 2010.4.14 add
|
|
void GetPickSet(PickSet &ssAll);
|
|
// 设置外部参照实体 cet 2011.12.2 add
|
|
void SetExternalBlk(Entity &ent);
|
|
// 设置实体是否为外部参照 cet 2011.12.2 add
|
|
void SetExternalBlk(bool bExternalBlk);
|
|
// 设置外部参照转换矩阵 cet 2011.12.2 add
|
|
void SetExnternalBlkMat(const AcGeMatrix3d &mat);
|
|
|
|
protected:
|
|
|
|
//{{AFX_MSG(CSetDataSourceDlg)
|
|
virtual BOOL OnInitDialog();
|
|
virtual void OnOK();
|
|
afx_msg void OnBtnAddDelDataSource();
|
|
afx_msg void OnSelchangeCombodatasourcetype();
|
|
afx_msg void OnChangeEdtMin();
|
|
afx_msg void OnButtonDel();
|
|
//}}AFX_MSG
|
|
DECLARE_MESSAGE_MAP()
|
|
private:
|
|
|
|
//过滤掉不正确的数据源类型
|
|
void FiltrateDataSourceType(Entity ent);
|
|
// 获取数据源的最大值和最小值 cet 2010.4.14 add
|
|
void GetMinMaxVal(PickSet &ssAll);
|
|
// 获取所有数据源 cet 2010.4.14 add
|
|
void GetPickSet();
|
|
// 过滤无效数据源(包含数值上下限) cet 2010.4.14 add
|
|
void FiltrateDataSource(PickSet &ssAll, int nType, bool bCompare = false);
|
|
// 过滤无效数据源(不包含数值上下限) cet 2010.4.14 add
|
|
void FiltrateDataSource(int nType);
|
|
// 是否为数值型字符串 cet 2010.4.14 add
|
|
bool IsValidNumber(const CString strText);
|
|
// 数值是否在有效范围内 cet 2010.4.14 add
|
|
bool IsValidNumber(double dVal);
|
|
//cet 2010.4.15 add
|
|
void ChangeDataSoureColor(std::map<AcDbObjectId,Adesk::UInt16> &mapOriginColor,
|
|
Entity &ent,
|
|
Adesk::UInt16 nColor);
|
|
// 恢复数据源颜色 cet 2010.4.15 add
|
|
void RecoverDataSoureColor(std::map<AcDbObjectId,
|
|
Adesk::UInt16> &mapOriginColor,
|
|
Entity &ent);
|
|
// cet 2010.4.15 add
|
|
void UpDateEdt();
|
|
// 清除扩张数据"Del" 为1的数据源 cet 2010.4.15 add
|
|
void CleanDataSource(PickSet &ssAll);
|
|
// 从外部参照获取数据 cet 2011.12.2 add
|
|
void GetEntFromExternalBlk(PickSet &ss);
|
|
|
|
private:
|
|
|
|
BOOL m_bEnable;
|
|
Entity m_ent;
|
|
CString m_sDataTypeText;
|
|
|
|
LPCTSTR m_sDataType1;
|
|
LPCTSTR m_sDataType2;
|
|
LPCTSTR m_sDataType3;
|
|
LPCTSTR m_sDataType4;
|
|
LPCTSTR m_sDataType5;
|
|
LPCTSTR m_sDataType6;
|
|
|
|
double m_dMinVal; // 标高最小值 cet 2010.4.14 add
|
|
double m_dMaxVal; // 标高最大值 cet 2010.4.14 add
|
|
PickSet m_ssAllCur; // 处理后有效数据源集合 cet 2010.4.14 add
|
|
PickSet m_ssAllOrigin; // 原始有效数据源集合 cet 2010.4.14 add
|
|
bool m_bChange; // cet 2010.4.15
|
|
bool m_bExternalBlock;// 是否为外部参照 cet 2011.12.2 add
|
|
Entity m_entExternalBlk;// 外部参照实体 cet 2011.12.2 add
|
|
AcGeMatrix3d m_mat; // 外部参照转换矩阵 cet 2011.12.2 add
|
|
|
|
};
|
|
|