Files
envi-code/SourceCode/Code2026/EarthWormCmd/AecOutDrawingJig.h
T
2026-09-28 15:28:50 +08:00

82 lines
1.9 KiB
C++

#pragma once
typedef struct DrawFrame
{
AcGePoint3d ptGe[5];
AcGePoint3d ptPick;
int nIndex;
}DRAWFRAME;
class AecDbObjXDataMap;
class AecDrawingFrmsEntity : public AcDbEntity
{
public:
AecDrawingFrmsEntity();
virtual ~AecDrawingFrmsEntity(void);
void AppendDrawFrame(AcGePoint3d* pptGe,int nCount);
int GetDrawFrames(AcArray<DrawFrame>& arDrawFrames);
void SetDrawingEnts(const AcDbVoidPtrArray& arEntPtrs);
#if ARX < 18
virtual Adesk::Boolean worldDraw (AcGiWorldDraw *mode) ;
#else
virtual Adesk::Boolean subWorldDraw (AcGiWorldDraw *mode) ;
#endif
Adesk::Boolean worldDraw2d(AcGiWorldDraw *mode);
public:
AcArray<DrawFrame> m_arDrawFrames;
AcDbVoidPtrArray m_arEntPtrs;
};
class AecOutDrawingJig : public AcEdJig
{
public:
AecOutDrawingJig(void);
~AecOutDrawingJig(void);
void SetDrawingEnts(const AcDbVoidPtrArray& arEntPtrs,const AcGeVector3d& vtDir,bool bIsShowEntPtrs = false,bool bLastIsRoadLine = false);
void SetDrawingExt(const AcDbExtents& extUCS,const AcGeVector3d& vtDir,bool bIsShowEntPtrs = false);
void SetDrawingFrme(AcDbObjectId idRec,double dScale);
BOOL DoIt(bool bDrag = true);
BOOL GetDrawingEnts(AcDbVoidPtrArray& arEntPtrs,CPtrArray& arIndexGrpPtrs);
BOOL GetFrmeAtGroups( AcArray<DrawFrame>& arFrames);
public:
virtual AcEdJig::DragStatus sampler();
virtual AcDbEntity* entity() const;
virtual Adesk::Boolean update();
void SplitEntitiesOnDrawframe();
protected:
void GetEntsUCSExt(AcDbExtents& extAll);
void AddElevationPoint(AecDbObjXDataMap* pxData,AcDbCurve* pCurve,const AcGePoint3dArray& arPts,CMapWordToPtr& mapPos2PtPtr);
AecDrawingFrmsEntity* m_pDrawingFrms;
double m_dScale;
AcDbObjectId m_idRec;
AcGeVector3d m_vtDir;
AcDbVoidPtrArray m_arEntPtrs;
bool m_bIsShowEntPtrs;
CPtrArray m_arIndexsGrpPtrs;
AcDbExtents m_extAll;
bool m_bExtValid;
bool m_bHasRoadLine;
public:
AcGePoint3d m_ptGe;
};