#pragma once #include "TGGiDrawStreamBase.h" #include "GeCurveSegment.h" #include "GeLine.h" #include "GeRectAngle.h" #include "ADSGePointList.h" #include "GeArc.h" #include "GePoly2D.h" #include "GeCircle.h" #include "Ge3DFace.h" #include "ADSGePoint3d.h" #include "EntitySet.h" #define PS_DOTE 0 #define PS_NONE 1 #define PS_CROSS 2 #define PS_CROSS_SLANT 3 #define PS_BOX 11 #define IMG_UNISCALE 0x01 #define IMG_DRAW3D 0x02 #define IMG_WCS2UCS 0x04 #define EDF_XSCALE 0x01 // for Text #define EDF_OBLIQUE 0x02 // for Text #define EDF_NO_AUTOPROP 0x04 // only for explode control class TGGiScreenDrawStream: public TGGiDrawStreamBase { public: TGGiScreenDrawStream(short nColor = 7, short nMode = 0); virtual ~TGGiScreenDrawStream(); virtual const TCHAR *Desc(); virtual void DrawXEntity(const EntitySet & e); virtual void DrawXPoint(const ADSGePoint3d & pt); virtual void DrawX3DFace(const Ge3DFace & face); virtual void DrawXPoints(const ADSGePointList & pts); virtual void DrawXPoly(const GePoly2D & poly,double dThick = 0); virtual void DrawXCurve(const GeCurveSegment & curve,double dThick = 0); void SetMode(short nMode); void SetColor(short nColor); void Draw(const GeLine & ln); void Draw(const GePoly2D & poly); void Draw(const Ge3DFace & face); void Draw(const GeRectAngle & box); void Draw(const GeCurveSegment & curve); void Draw(const GeArc & arc, int nDiv = 30); void Draw(const GeCircle & cir, int nDiv = 30); void Draw( const ADSGePointList & pts, int bClose = 0); void Draw(const EntitySet & e,ads_matrix tranMat = NULL,int nBlkColor = 0); void Draw(const ADSGePoint3d & pt, int nStyle = PS_CROSS_SLANT, int nPercentage = 5); static const TCHAR *Descriptor(); public: short m_nFrontColor, m_nBackColor; short m_nDrawMode; // 0--normal 1--highlight int m_nFlag; ads_real m_nModelX, m_nModelY; // Screen Size protected: virtual void _Draw(const GeLine &ln); };