301 lines
5.5 KiB
C++
301 lines
5.5 KiB
C++
#pragma once
|
|
#include <vector>
|
|
#include "define_class_xdata_key.h"
|
|
#include "AecDbObjXDataMap.h"
|
|
|
|
#ifdef EARTHWORM_EXPORT
|
|
#define DLLIMPEXP __declspec(dllexport)
|
|
#else
|
|
#define DLLIMPEXP __declspec(dllimport)
|
|
#endif
|
|
|
|
class CParamEquImplBase
|
|
{
|
|
|
|
|
|
public:
|
|
CParamEquImplBase(AecDbObjXDataMap *pXData): m_pXDataMap(pXData){}
|
|
virtual ~CParamEquImplBase(){}
|
|
|
|
public:
|
|
virtual void draw3d(AcDbVoidPtrArray &ar3d) = 0;
|
|
virtual void draw2d(AcDbVoidPtrArray &ar2d) = 0;
|
|
virtual void transformBy(const AcGeMatrix3d& xform);
|
|
virtual void setElev(const double &dElev);
|
|
virtual AcGePoint3d getPos();
|
|
virtual AcGeVector3d getDir();
|
|
virtual CParamEquImplBase* makeSelf(AecDbObjXDataMap *pXData) = 0;
|
|
|
|
protected:
|
|
AecDbObjXDataMap *m_pXDataMap;
|
|
};
|
|
|
|
#define DECLARATION_SUBCLASS(class_name)\
|
|
public:\
|
|
##class_name(AecDbObjXDataMap *pXData): CParamEquImplBase(pXData){}\
|
|
~##class_name(){}\
|
|
public:\
|
|
virtual void draw3d(AcDbVoidPtrArray &ar3d);\
|
|
virtual void draw2d(AcDbVoidPtrArray &ar2d);\
|
|
virtual CParamEquImplBase* makeSelf(AecDbObjXDataMap *pXData){return new class_name(pXData);}
|
|
|
|
#define DEF_KEY_FUNC(key,type)\
|
|
static const CString key;\
|
|
##type Get##key() const\
|
|
{\
|
|
type v;\
|
|
m_pXDataMap->GetAt(key, v);\
|
|
return v;\
|
|
}
|
|
|
|
namespace GESHAN
|
|
{
|
|
class XHG: public CParamEquImplBase
|
|
{
|
|
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)
|
|
};
|
|
|
|
class SG : public CParamEquImplBase
|
|
{
|
|
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)
|
|
};
|
|
|
|
class ZG : public CParamEquImplBase
|
|
{
|
|
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)
|
|
};
|
|
}
|
|
|
|
namespace BAOQIQI
|
|
{
|
|
class BaoQiQi : public CParamEquImplBase
|
|
{
|
|
DECLARATION_SUBCLASS(BaoQiQi);
|
|
|
|
DEF_KEY_FUNC(_L1, 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)
|
|
};
|
|
}
|
|
|
|
namespace FLUME { }
|
|
|
|
namespace WEIR { }
|
|
|
|
namespace SHASHUIFENLI
|
|
{
|
|
class XCS : public CParamEquImplBase
|
|
{
|
|
DECLARATION_SUBCLASS(XCS);
|
|
};
|
|
class HXS : public CParamEquImplBase
|
|
{
|
|
DECLARATION_SUBCLASS(HXS);
|
|
};
|
|
class LCS : public CParamEquImplBase
|
|
{
|
|
DECLARATION_SUBCLASS(LCS);
|
|
};
|
|
}
|
|
namespace LUOXUANBENG
|
|
{
|
|
class LXB : public CParamEquImplBase
|
|
{
|
|
DECLARATION_SUBCLASS(LXB);
|
|
};
|
|
}
|
|
namespace ZHAMEN
|
|
{
|
|
class RectZhaMen : public CParamEquImplBase
|
|
{
|
|
DECLARATION_SUBCLASS(RectZhaMen);
|
|
};
|
|
class CircleZhaMen : public CParamEquImplBase
|
|
{
|
|
DECLARATION_SUBCLASS(CircleZhaMen);
|
|
};
|
|
class ShengNiFa : public CParamEquImplBase
|
|
{
|
|
DECLARATION_SUBCLASS(ShengNiFa);
|
|
};
|
|
}
|
|
namespace GUANIJI
|
|
{
|
|
class XZG : public CParamEquImplBase
|
|
{
|
|
DECLARATION_SUBCLASS(XZG);
|
|
};
|
|
class CZG : public CParamEquImplBase
|
|
{
|
|
DECLARATION_SUBCLASS(CZG);
|
|
};
|
|
class ZG : public CParamEquImplBase
|
|
{
|
|
DECLARATION_SUBCLASS(ZG);
|
|
};
|
|
class QG : public CParamEquImplBase
|
|
{
|
|
DECLARATION_SUBCLASS(QG);
|
|
};
|
|
class PJ : public CParamEquImplBase
|
|
{
|
|
DECLARATION_SUBCLASS(PJ);
|
|
};
|
|
class SX : public CParamEquImplBase
|
|
{
|
|
DECLARATION_SUBCLASS(SX);
|
|
};
|
|
class SB : public CParamEquImplBase
|
|
{
|
|
DECLARATION_SUBCLASS(SB);
|
|
};
|
|
class LIANTIAO : public CParamEquImplBase
|
|
{
|
|
DECLARATION_SUBCLASS(LIANTIAO);
|
|
};
|
|
}
|
|
namespace NONGSUOJI
|
|
{
|
|
class NC : public CParamEquImplBase
|
|
{
|
|
DECLARATION_SUBCLASS(NC);
|
|
};
|
|
class NB : public CParamEquImplBase
|
|
{
|
|
DECLARATION_SUBCLASS(NB);
|
|
};
|
|
}
|
|
namespace BAOQIJI
|
|
{
|
|
class YHG : public CParamEquImplBase
|
|
{
|
|
DECLARATION_SUBCLASS(YHG);
|
|
};
|
|
class AD : public CParamEquImplBase
|
|
{
|
|
DECLARATION_SUBCLASS(AD);
|
|
};
|
|
}
|
|
namespace JIAYAOHUNHE
|
|
{
|
|
class GJ : public CParamEquImplBase
|
|
{
|
|
DECLARATION_SUBCLASS(GJ);
|
|
};
|
|
class PJ : public CParamEquImplBase
|
|
{
|
|
DECLARATION_SUBCLASS(PJ);
|
|
};
|
|
class TJ : public CParamEquImplBase
|
|
{
|
|
DECLARATION_SUBCLASS(TJ);
|
|
};
|
|
class LJF : public CParamEquImplBase
|
|
{
|
|
DECLARATION_SUBCLASS(LJF);
|
|
};
|
|
}
|
|
|
|
namespace LVBUJI
|
|
{
|
|
class ZHUANPAN :public CParamEquImplBase
|
|
{
|
|
DECLARATION_SUBCLASS(ZHUANPAN);
|
|
};
|
|
}
|
|
|
|
namespace QIBIJI
|
|
{
|
|
class QS_I_P : public CParamEquImplBase
|
|
{
|
|
DECLARATION_SUBCLASS(QS_I_P);
|
|
};
|
|
class QS_I_Y : public CParamEquImplBase
|
|
{
|
|
DECLARATION_SUBCLASS(QS_I_Y);
|
|
};
|
|
class QS_I_L : public CParamEquImplBase
|
|
{
|
|
DECLARATION_SUBCLASS(QS_I_L);
|
|
};
|
|
class QS_II_L : public CParamEquImplBase
|
|
{
|
|
DECLARATION_SUBCLASS(QS_II_L);
|
|
};
|
|
class QS_II_Y : public CParamEquImplBase
|
|
{
|
|
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);
|
|
};
|
|
}
|
|
|