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

115 lines
3.3 KiB
C++

#pragma once
#include "AecDbCurveBase.h"
#include "AecMInterfaces.h"
#include "AecDbObjXDataMap.h"
#include "EarThwormDef.h"
#ifdef EARTHWORM_EXPORT
#define DLLIMPEXP __declspec(dllexport)
#else
#define DLLIMPEXP __declspec(dllimport)
#endif
//标准道路,一段 line,or Arc
class DLLIMPEXP AecDb3dRoad : public AecDbCurveBase,
public AecMInterfaces
{
public:
ACRX_DECLARE_MEMBERS(AecDb3dRoad);
protected:
static Adesk::UInt32 kCurrentVersionNumber;
public:
AecDb3dRoad(void);
virtual ~AecDb3dRoad(void);
public:
// 道路基本参数
void SetRoadParam(WPipe::RoadParam* pPipePar);
bool GetRoadParam(WPipe::RoadParam& rp) const;
// 设置LINE ARC 数据
Acad::ErrorStatus SetCurveSeg(const AcGePoint3d& ptS,const AcGePoint3d& ptE);
Acad::ErrorStatus SetCurveSeg(const AecEqui::AecCurveElement& el);
bool GetCurveSeg(AecEqui::AecCurveElement& el) const;
int GetCurveSegType() const;
Acad::ErrorStatus SetEndPoint(const AcGePoint3d& ptEnd);
AcGePoint3d EndPoint() const;
Acad::ErrorStatus SetStartPoint(const AcGePoint3d& ptSta);
AcGePoint3d StartPoint() const;
//获取首尾切线方向[接口方向]
AcGeVector3d GetHeadDir() const;
AcGeVector3d GetTailDir() const;
virtual Acad::ErrorStatus dwgInFields(AcDbDwgFiler* pFiler);
virtual Acad::ErrorStatus dwgOutFields(AcDbDwgFiler* pFiler) const;
virtual Acad::ErrorStatus dxfInFields(AcDbDxfFiler* pFiler);
virtual Acad::ErrorStatus dxfOutFields(AcDbDxfFiler* pFiler) const;
virtual Acad::ErrorStatus copyFrom(const AcRxObject* pSrc);
#if ARX>16
virtual void subList() const;
virtual Acad::ErrorStatus subTransformBy(const AcGeMatrix3d& xform);
virtual Acad::ErrorStatus subGetGripPoints(AcDbGripDataPtrArray& grips,
const double curViewUnitSize,
const int gripSize,
const AcGeVector3d& curViewDir,
const int bitflags) const;
virtual Acad::ErrorStatus subMoveGripPointsAt(const AcDbVoidPtrArray& appData, const AcGeVector3d& offset, const int bitflags);
virtual Acad::ErrorStatus subGetStretchPoints(AcGePoint3dArray& stretchPoints) const;
virtual Acad::ErrorStatus subMoveStretchPointsAt(const AcDbIntArray& indices,const AcGeVector3d& offset);
virtual void GetGripText(int nPos, CString& sText);
#endif
virtual AcDbCurve* GetBaseCurve(bool bOrthoProjectToXY = false) const;
virtual AcDbCurve* GetNativeCurve() const;
//AEC 派生
virtual Acad::ErrorStatus Draw2d(AcGiDraw &dc) const;
virtual Acad::ErrorStatus Draw3d(AcGiDraw &dc) const;
virtual LPCTSTR GetGripCmd() const;
virtual AecDbObjXDataMap* GetSpecialtyData(AcDb::OpenMode bMode = AcDb::kForWrite);
virtual const AecDbObjXDataMap* GetSpecialtyData() const;
//接口方法重载
MINTERFACES_METHODS
virtual bool GetBimInfoTip(CString& sInfoTip) const;
protected:
Acad::ErrorStatus ImpGetGripPonts(AcGePoint3dArray& gripPoints,const int bitflags) const;
EPosition ExplainGripIndex(int nIndex) const;
BOOL DrawMesh(AcGiDraw &mode,const Adesk::UInt32 rows,const Adesk::UInt32 columns,const AcGePoint3d* pVertexList) const;
void DrawRoadBordLine(AcGiDraw &dc,AcDbCurve* pCurve,int nColor,BOOL bIsDash,double dEl) const;
Acad::ErrorStatus TransformBy(const AcGeMatrix3d xform);
protected:
//专业数据
AecDbObjXDataMap m_mapSpecXData;
mutable AecEqui::AecCurveElement m_elBaseCrv;
public:
AecGripData* m_pGripAppData;
};