01BIM社区

 找回密码
 立即注册

扫一扫,访问微社区

查看: 1432|回复: 0

CEntity与CLine类

[复制链接]

156

主题

647

帖子

2540

积分

金牌会员

Rank: 6Rank: 6

积分
2540
发表于 2015-11-27 09:40:52 | 显示全部楼层 |阅读模式
//////////////////////////////////////
//CEntity
class CEntity :        public CObject
{
public:
        CEntity();
        virtual ~CEntity();

protected:
        BOOL                m_bModified;
        CBox3D*                m_pBox;
        UINT                m_id;
        CString                m_name;
        COLORREF        m_color;
        BOOL                m_bVisible;
        BOOL                m_bHighlight;

public:
        enum Type {
                kSTLModel = 0,
                kPart,
                kBezierCurve,
                kBezierSurface,
                kNurbsCurve,
                kNurbsSurface,
                kLine,
                kPolyline,
                kArc,

        };

public:

        //display
        virtual void Draw(COpenGLDC* pDC) = 0;

        //serialize
        virtual        void Serialize(CArchive& ar);

        //attrib accessing
        BOOL                GetBox(CBox3D& box);

        void                SetID(UINT nID);
        UINT                GetID();

        void                SetName(LPCTSTR name);
        CString                GetName();

        void                SetColor(COLORREF color);
        COLORREF        GetColor();

        void                SetVisible(BOOL bVisible);
        BOOL                IsVisible();

        void                SetHighlight(BOOL bHighlight);
        BOOL                IsHighlight();

        //get entity type
        virtual CEntity::Type type() const = 0;

protected:
        virtual                void UpdateBox() = 0;
};
//////////////////////////////////////////////////////////////////////////////////////////
///CLine
class CLine : public CEntity
{
        DECLARE_SERIAL(CLine)
protected:
        CPoint3D        m_pointStart;
        CPoint3D        m_pointEnd;
        int m_width;

public:
        //////////////////////////////////////////////////////////////////////////////////////
        //构造函数和析构造函数
        CLine();
        CLine(CPoint3D pointStart, CPoint3D pointEnd,int width);
        virtual ~CLine();
        //////////////////////////////////////////////////////////////////////////////////////
        //设置和清除函数
        void clear();
        void set(CPoint3D pointStart, CPoint3D pointEnd, int width);
        //////////////////////////////////////////////////////////////////////////////////////
        //显示和保存函数
        virtual void Draw(COpenGLDC* pDC);
        virtual void Serialize(CArchive& ar);
        //////////////////////////////////////////////////////////////////////////////////////
        //判断函数
        BOOL        IsEmpty() const;
        virtual CEntity::Type type() const;
protected:
        //////////////////////////////////////////////////////////////////////////////////////
        //内部更新m_pBox函数
        virtual void UpdateBox();
};

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|01BIM社区 - 最专业的BIM技术交流平台 ( 渝ICP备15000873号 )

GMT+8, 2024-5-19 22:19 , Processed in 0.328672 second(s), 21 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表