459 lines
9.1 KiB
C++
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);
|
|
};
|
|
}
|