Files
envi-code/SourceCode/Code2026/CoreLibrary/Implement/XEquipmentImpl.h
T
gjm 164968b62e chore
把非utf8-bom编码的cpp/h文件改为 utf8 bom 编码, msvc识别utf8编码时,如果不是bom格式的,会使用当前cp_oem来解码.
2026-10-04 00:04:20 +08:00

459 lines
9.1 KiB
C++

#pragma once
#include <vector>
#include "define_class_xdata_key.h"
#include "EarThwormDef.h"
#include "AecDbObjXDataMap.h"
#ifdef EARTHWORM_EXPORT
#define DLLIMPEXP __declspec(dllexport)
#else
#define DLLIMPEXP __declspec(dllimport)
#endif
class XEquipmentImplBase
{
public:
XEquipmentImplBase(AecDbObjXDataMap *pXData): m_pXDataMap(pXData) {}
virtual ~XEquipmentImplBase() {}
public:
virtual void draw3d(AcDbVoidPtrArray &ar3d) = 0;
virtual void draw2d(AcDbVoidPtrArray &ar2d) = 0;
virtual void getInterfaces(AcArray<AecInterface> &inf);
virtual void transformBy(const AcGeMatrix3d& xform);
virtual void setElev(const double &dElev);
virtual AcGePoint3d getPos();
virtual AcGeVector3d getDir();
virtual XEquipmentImplBase* makeSelf(AecDbObjXDataMap *pXData) = 0;
virtual CString getUniqueName() const = 0;
virtual bool GetSpec(SH_BIM_BLOCK &spec) { return false; };
virtual bool GetJsonParams(SH_BIM_BLOCK &spec
, CString &mainType
, CString &subTyp);
protected:
AecDbObjXDataMap *m_pXDataMap;
};
#define DECLARATION_SUBCLASS(class_name)\
public:\
##class_name(AecDbObjXDataMap *pXData): XEquipmentImplBase(pXData){}\
~##class_name(){}\
public:\
virtual void draw3d(AcDbVoidPtrArray &ar3d);\
virtual void draw2d(AcDbVoidPtrArray &ar2d);\
virtual XEquipmentImplBase* makeSelf(AecDbObjXDataMap *pXData){return new class_name(pXData);}\
virtual CString getUniqueName() const;
#define DEF_KEY_FUNC(key,type)\
static const CString key;\
##type Get##key() const\
{\
type v;\
m_pXDataMap->GetAt(key, v);\
return v;\
}
namespace XGESHAN
{
class XHG: public XEquipmentImplBase
{
DECLARATION_SUBCLASS(XHG);
DEF_KEY_FUNC(H1, double);
DEF_KEY_FUNC(H2, double);
DEF_KEY_FUNC(H3, double);
DEF_KEY_FUNC(H4, double);
DEF_KEY_FUNC(w, double);
DEF_KEY_FUNC(a, double);
DEF_KEY_FUNC(L1, double);
DEF_KEY_FUNC(L2, double);
DEF_KEY_FUNC(B, double);
DEF_KEY_FUNC(B1, double);
DEF_KEY_FUNC(B2, double);
DEF_KEY_FUNC(B3, double);
DEF_KEY_FUNC(B6, double);
DEF_KEY_FUNC(b, double);
DEF_KEY_FUNC(Dir, AcGeVector3d);
DEF_KEY_FUNC(Pos, AcGePoint3d);
virtual bool GetSpec(SH_BIM_BLOCK &spec);
};
class SG: public XEquipmentImplBase
{
DECLARATION_SUBCLASS(SG);
DEF_KEY_FUNC(H, double);
DEF_KEY_FUNC(H1, double);
DEF_KEY_FUNC(H2, double);
DEF_KEY_FUNC(H3, double);
DEF_KEY_FUNC(H4, double);
DEF_KEY_FUNC(a, double);
DEF_KEY_FUNC(L1, double);
DEF_KEY_FUNC(L, double);
DEF_KEY_FUNC(B, double);
DEF_KEY_FUNC(B1, double);
DEF_KEY_FUNC(B6, double);
DEF_KEY_FUNC(b, double);
DEF_KEY_FUNC(Dir, AcGeVector3d);
DEF_KEY_FUNC(Pos, AcGePoint3d);
virtual bool GetSpec(SH_BIM_BLOCK &spec);
};
class ZG: public XEquipmentImplBase
{
DECLARATION_SUBCLASS(ZG);
DEF_KEY_FUNC(H1, double);
DEF_KEY_FUNC(H2, double);
DEF_KEY_FUNC(H3, double);
DEF_KEY_FUNC(a, double);
DEF_KEY_FUNC(A, double);
DEF_KEY_FUNC(B, double);
DEF_KEY_FUNC(D, double);
DEF_KEY_FUNC(d, double);
DEF_KEY_FUNC(L, double);
DEF_KEY_FUNC(l, double);
DEF_KEY_FUNC(Dir, AcGeVector3d)
DEF_KEY_FUNC(Pos, AcGePoint3d)
virtual bool GetSpec(SH_BIM_BLOCK &spec);
};
class XGC : public XEquipmentImplBase
{
DECLARATION_SUBCLASS(XGC);
virtual bool GetSpec(SH_BIM_BLOCK &spec);
};
class XJT : public XEquipmentImplBase
{
DECLARATION_SUBCLASS(XJT);
virtual bool GetSpec(SH_BIM_BLOCK &spec);
};
class ZSB : public XEquipmentImplBase
{
DECLARATION_SUBCLASS(ZSB);
DEF_KEY_FUNC(W, double);
DEF_KEY_FUNC(B, double);
DEF_KEY_FUNC(B2, double);
DEF_KEY_FUNC(B3, double);
DEF_KEY_FUNC(a, double);
DEF_KEY_FUNC(H, double);
DEF_KEY_FUNC(L1, double);
DEF_KEY_FUNC(Dir, AcGeVector3d)
DEF_KEY_FUNC(Pos, AcGePoint3d)
virtual bool GetSpec(SH_BIM_BLOCK &spec);
};
class BS : public XEquipmentImplBase
{
DECLARATION_SUBCLASS(BS);
DEF_KEY_FUNC(S, double);
DEF_KEY_FUNC(B, double);
DEF_KEY_FUNC(H, double);
DEF_KEY_FUNC(H1, double);
DEF_KEY_FUNC(W1, double);
DEF_KEY_FUNC(Dir, AcGeVector3d);
DEF_KEY_FUNC(Pos, AcGePoint3d);
virtual bool GetSpec(SH_BIM_BLOCK &spec);
};
class XL : public XEquipmentImplBase
{
DECLARATION_SUBCLASS(XL);
virtual bool GetSpec(SH_BIM_BLOCK &spec);
};
}
namespace XBAOQIQI
{
class BaoQiQi: public XEquipmentImplBase
{
DECLARATION_SUBCLASS(BaoQiQi);
DEF_KEY_FUNC(_L1, double);
DEF_KEY_FUNC(_PR, double);
DEF_KEY_FUNC(_L4, double);
DEF_KEY_FUNC(_H3, double);
DEF_KEY_FUNC(_Type, int);
DEF_KEY_FUNC(_h, double);
DEF_KEY_FUNC(_r, double);
DEF_KEY_FUNC(Pos, AcGePoint3d)
DEF_KEY_FUNC(Dir, AcGeVector3d)
virtual bool GetSpec(SH_BIM_BLOCK &spec);
};
}
namespace FLUME {}
namespace WEIR {}
namespace XSHASHUIFENLI
{
class XCS: public XEquipmentImplBase
{
DECLARATION_SUBCLASS(XCS);
virtual bool GetSpec(SH_BIM_BLOCK &spec);
};
class HXS: public XEquipmentImplBase
{
DECLARATION_SUBCLASS(HXS);
virtual bool GetSpec(SH_BIM_BLOCK &spec);
};
class LCS: public XEquipmentImplBase
{
DECLARATION_SUBCLASS(LCS);
virtual bool GetSpec(SH_BIM_BLOCK &spec);
};
}
namespace XLUOXUANBENG
{
class LXB: public XEquipmentImplBase
{
DECLARATION_SUBCLASS(LXB);
virtual bool GetSpec(SH_BIM_BLOCK &spec);
};
}
namespace XZHAMEN
{
class RectZhaMen: public XEquipmentImplBase
{
DECLARATION_SUBCLASS(RectZhaMen);
virtual bool GetSpec(SH_BIM_BLOCK &spec);
};
class CircleZhaMen: public XEquipmentImplBase
{
DECLARATION_SUBCLASS(CircleZhaMen);
virtual bool GetSpec(SH_BIM_BLOCK &spec);
};
class ShengNiFa: public XEquipmentImplBase
{
DECLARATION_SUBCLASS(ShengNiFa);
virtual bool GetSpec(SH_BIM_BLOCK &spec);
};
}
namespace XGUANIJI
{
class XZG: public XEquipmentImplBase
{
DECLARATION_SUBCLASS(XZG);
};
class CZG: public XEquipmentImplBase
{
DECLARATION_SUBCLASS(CZG);
};
class ZG: public XEquipmentImplBase
{
DECLARATION_SUBCLASS(ZG);
};
class QG: public XEquipmentImplBase
{
DECLARATION_SUBCLASS(QG);
};
class PJ: public XEquipmentImplBase
{
DECLARATION_SUBCLASS(PJ);
};
class SX: public XEquipmentImplBase
{
DECLARATION_SUBCLASS(SX);
};
class SB: public XEquipmentImplBase
{
DECLARATION_SUBCLASS(SB);
};
class LIANTIAO: public XEquipmentImplBase
{
DECLARATION_SUBCLASS(LIANTIAO);
};
}
namespace XNONGSUOJI
{
class NC: public XEquipmentImplBase
{
DECLARATION_SUBCLASS(NC);
virtual bool GetSpec(SH_BIM_BLOCK &spec);
};
class NB: public XEquipmentImplBase
{
DECLARATION_SUBCLASS(NB);
virtual bool GetSpec(SH_BIM_BLOCK &spec);
};
}
namespace XBAOQIJI
{
class YHG: public XEquipmentImplBase
{
DECLARATION_SUBCLASS(YHG);
virtual bool GetSpec(SH_BIM_BLOCK &spec);
};
class AD: public XEquipmentImplBase
{
DECLARATION_SUBCLASS(AD);
virtual bool GetSpec(SH_BIM_BLOCK &spec);
};
}
namespace XJIAYAOHUNHE
{
class GJ: public XEquipmentImplBase
{
DECLARATION_SUBCLASS(GJ);
};
class PJ: public XEquipmentImplBase
{
DECLARATION_SUBCLASS(PJ);
};
class TJ: public XEquipmentImplBase
{
DECLARATION_SUBCLASS(TJ);
};
class LJF: public XEquipmentImplBase
{
DECLARATION_SUBCLASS(LJF);
};
}
namespace XLVBUJI
{
class ZHUANPAN:public XEquipmentImplBase
{
DECLARATION_SUBCLASS(ZHUANPAN);
virtual bool GetSpec(SH_BIM_BLOCK &spec);
};
}
namespace XQIBIJI
{
class QS_I_P: public XEquipmentImplBase
{
DECLARATION_SUBCLASS(QS_I_P);
virtual bool GetSpec(SH_BIM_BLOCK &spec);
};
class QS_I_Y: public XEquipmentImplBase
{
DECLARATION_SUBCLASS(QS_I_Y);
virtual bool GetSpec(SH_BIM_BLOCK &spec);
};
class QS_I_L: public XEquipmentImplBase
{
DECLARATION_SUBCLASS(QS_I_L);
virtual bool GetSpec(SH_BIM_BLOCK &spec);
};
class QS_II_L: public XEquipmentImplBase
{
DECLARATION_SUBCLASS(QS_II_L);
virtual bool GetSpec(SH_BIM_BLOCK &spec);
};
class QS_II_Y: public XEquipmentImplBase
{
DECLARATION_SUBCLASS(QS_II_Y);
static void drawQBJ(const AcGePoint3d &Pos
, const AcGeVector3d &X
, const double &H
, const double &M
, const double &L
, AcDbVoidPtrArray &ar3d);
virtual bool GetSpec(SH_BIM_BLOCK &spec);
};
}
namespace XXIEBANGUAN
{
class XBG : public XEquipmentImplBase
{
DECLARATION_SUBCLASS(XBG);
virtual bool GetSpec(SH_BIM_BLOCK &spec);
};
}
namespace XGUANXIANG
{
class GUANXIANG_I : public XEquipmentImplBase
{
DECLARATION_SUBCLASS(GUANXIANG_I);
};
}
namespace XXICHENZHAO
{
class XICHENZHAO_I : public XEquipmentImplBase
{
DECLARATION_SUBCLASS(XICHENZHAO_I);
};
}
namespace XGUANDAOGUOLVQI
{
class DLD_FZ: public XEquipmentImplBase
{
DECLARATION_SUBCLASS(DLD_FZ);
virtual void getInterfaces(AcArray<AecInterface> &inf);
};
}
namespace XQIANCENGSHALV
{
class DMF_56: public XEquipmentImplBase
{
DECLARATION_SUBCLASS(DMF_56);
virtual void getInterfaces(AcArray<AecInterface> &inf);
};
}
namespace XYIBANXIANGTI
{
class FANGXINGXIANG: public XEquipmentImplBase
{
DECLARATION_SUBCLASS(FANGXINGXIANG);
virtual void getInterfaces(AcArray<AecInterface> &inf);
virtual bool GetSpec(SH_BIM_BLOCK &spec);
};
}
namespace XYIBANGUANTI
{
class YUANXINGGUAN: public XEquipmentImplBase
{
DECLARATION_SUBCLASS(YUANXINGGUAN);
virtual void getInterfaces(AcArray<AecInterface> &inf);
virtual bool GetSpec(SH_BIM_BLOCK &spec);
};
}
namespace XLABAKOU
{
class YUANXINGLABAKOU: public XEquipmentImplBase
{
DECLARATION_SUBCLASS(YUANXINGLABAKOU);
};
}