您现在的位置:网站首页 > 经验分享 > 鞋业CAD软件柔性内核技术:源码[1]
设计师介绍:

昵称:烦夫子
类别:界面/平面设计师
年龄:38
现所在地:北京

查看该设计师的主页>>

关注好友

统计中心

主页浏览总数:24255
总积分:89
文章数:88
作品数:70

鞋业CAD软件柔性内核技术:源码[1]

作者:烦夫子  更新时间: 2007-11-19   浏览人数:19050  评论:0  
分享到:
     柔性图形内核之一
                            Object类
 
//应用于鞋样放码CAD/CAM程序设计
//我将逐步开放数以十万记的自主版权软件源码,谢谢大家的支持!
 
 
一、OBJECT.H
 

// Object.h: interface for the Object class.
//
//////////////////////////////////////////////////////////////////////

#if !defined(AFX_OBJECT_H__03101BD5_CD5E_4313_BC87_02BF49AC3214__INCLUDED_)
#define AFX_OBJECT_H__03101BD5_CD5E_4313_BC87_02BF49AC3214__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

/***************************对 像基类****************************/

#include "vector.h"
#include "vectorRun.h"

typedef long HRESULT;
#define DEF_EXPORT _declspec(dllexport)

class Object;                       //申明对像类
typedef Object *PObject;           //指向对像的接口指针

class DEF_EXPORT Object 
{

protected:
 int   num;     //子元素的数目
 PObject  *data;                  //对象接口

public:
 Object   *parent;        //指向父对象的指针
 Vector   MinP;           //最小值范围
 Vector   MaxP;           //最大范围

 COLORREF     color;           //对象颜色
 int          linetype;        //线型
 int             linewidth;       //线宽
 int            plottype;        //绘图类型

 //对像重绘模式  正常  选择  灰色  擦除,,,
    enum DrawMode {DNormal, DSelected, DGray, DErase};

    //对像矩阵变换模式  比例打印  正常
    enum TransformFuncMode {PrintTrans, NullTrans};

    enum ObjType {TObject, TPline,TPlineArray, TText, TTextArray, TPolyreg, TPolyregArray,
           TBSpline, TBSplineArray, TShape, TShapeArray, TSymbol, TSymbolArray,
     TRing, TRingArray, TPoint2D, TPoint2DArray, TLabel, TLabelArray,TPattern, TOther};

 ObjType name; //对象名

public:
 Object (const Object *parent);  //构造函数
 virtual ~Object ();             //析造函数

 virtual void Flush ();          //释放全部内存空间
 virtual int  IsLeaf () const;   //对象名称

 virtual BOOL IncreaseSpace (int add);   //为对象分配内存空间,指定对象
 virtual void DecreaseSpace (int del);   //释放对象占用的内存空间

 virtual int Del (Object* aObject);                             //删除一个数据对象
 virtual int Replace (Object* oldObject, Object* newObject);    //以新对象更换老对象
    virtual Object* Duplicate (Object* aObject);

 virtual BOOL Insert (Object* aObject, int pos);                //在指定位置插入一个对象
 virtual BOOL Add (Object* aObject);                            //在尾部加入一个对象
 virtual void Swap(int iFrom, int iTo);                         //两数据对象进行交换
 
 virtual int  GetNum () const;                           //得到对象数量
 virtual long GetSize () const;                          //得到对象大小
 virtual int  GetIndex (const Object *cur) const;        //得到当前对象的索引号
 virtual void GetMinMax ();                              //得到最大最小值,对象范围
 virtual void GetMinMax (Vector& minp, Vector& maxp);

 virtual Object * GetNewObject () const;                     //得到新对象
 virtual Object * GetObject (int index) const;               //得到对象,按指定的索引号
 virtual Object * GetPrevious (const Object *cur) const;     //得到当前对象的前一个对象
 virtual Object * GetNext (const Object *cur) const;         //得到下一个对象

public:
 //绘制对像
 virtual void Draw (CDC* dc, float scale, DrawMode mode, int dispmode) const;        
 virtual void FastDraw (CDC* dc, float scale, DrawMode mode, TransformFuncMode f) const; 

 //矩阵变换
 virtual void TransformData (TransformFunc f);

public:
 virtual void SetObjType(ObjType objtype);           //设置对像类型
    virtual void GetObjType(ObjType& objtype) const;    //得到对像类型
 
 //得到对象属性,线型,线宽,刀笔设置
 virtual void GetProp(int& t,int& wd, COLORREF& c, int& plottype) const;

    //设置对象属性
 virtual void SetProp(int t,int wd, COLORREF c, int plottype);

 //绘图模式色彩设置
    virtual COLORREF GetColor (DrawMode mode);

public:
 //重载操作符
 virtual Object& ōperator = (const Object& aObject);
 virtual Object& operator += (Object& aObject);
 virtual BOOL ōperator == (const Object& aObject);
 virtual BOOL operator ^ (const Object& aObject);
};

#endif // !defined(AFX_OBJECT_H__03101BD5_CD5E_4313_BC87_02BF49AC3214__INCLUDED_)

(目前有0人发表看法,  我要发表评论
我要评论:
  只有登录后才能评论!
评论者: 匿名游客    (立即登录 或 注册)