node.h
来自「故障诊断工作涉及的领域相当广泛」· C头文件 代码 · 共 286 行
H
286 行
// node.h: interface for the node class.
//
//////////////////////////////////////////////////////////////////////
#if !defined(AFX_NODE_H__DDA05662_B4D2_43F1_9BDB_7D914C7C0679__INCLUDED_)
#define AFX_NODE_H__DDA05662_B4D2_43F1_9BDB_7D914C7C0679__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
enum node_type{basic,indata,outdata,bpnet,dft,dwt};
#include "mydata.h"
#include "datastructure.h"
enum relation{add,abstract,mult,conect,invert,equ};
struct dpt
{double x,y;
dpt* pre;
dpt* next;
dpt()
{pre=next=NULL;
x=-10000;
y=-10000;
};
dpt(CPoint& pt)
{dpt();
this->x=pt.x;
this->y=pt.y;
}
dpt(CSize& pt)
{dpt();
this->x=pt.cx;
this->y=pt.cy;
}
dpt(double x,double y)
{dpt();
this->x=x;
this->y=y;
}
void operator=(dpt& pt)
{dpt();
x=pt.x;
y=pt.y;
}
dpt operator+(dpt& pt)
{dpt pt0;
pt0.x=pt.x+x;
pt0.y=pt.y+y;
return pt0;
}
dpt operator*(double& s)
{dpt pt0;
pt0.x=x*s;
pt0.y=y*s;
return pt0;
}
dpt operator-(dpt& pt)
{dpt pt0;
pt0.x=x-pt.x;
pt0.y=y-pt.y;
return pt0;
}
void operator+=(dpt& pt)
{x+=pt.x;
y+=pt.y;
}
void operator=(CPoint& pt)
{x=pt.x;
y=pt.y;
}
_declspec(dllexport) friend void operator<<(CArchive&,dpt&);
_declspec(dllexport) friend void operator>>(CArchive&,dpt&);
};
struct drec
{
double left,right,top,bottom;
drec()
{
};
drec(double x1,double y1,double x2,double y2)
{left=x1;
right=x2;
top=y1;
bottom=y2;
}
drec(dpt x,dpt y)
{left=x.x;
right=y.x;
top=x.y;
bottom=y.y;
}
void operator=(drec& rec)
{left=rec.left;
right=rec.right;
top=rec.top;
bottom=rec.bottom;
}
_declspec(dllexport) friend void operator<<(CArchive&,drec&);
_declspec(dllexport) friend void operator>>(CArchive&,drec&);
};
class ptlist
{ unsigned int cnt;
dpt* head;
dpt* tail;
dpt* pdpt;
public:
void setpath(CDC* pDC);
void scale(dpt rspt,double scale);
void move(dpt& pt);
void draw(CDC* pDC);
void clear();
BOOL add(dpt* pdpt);
ptlist();
virtual ~ptlist();
void operator =(ptlist &in);
void operator =(ptlist *in);
_declspec(dllexport) friend void operator<<(CArchive&,ptlist&);
_declspec(dllexport) friend void operator>>(CArchive&,ptlist&);
friend class mygraph;
};
class nd
{
public:
int index;//node编号
int32 p;//node指针
int which;//接受数据输入的针脚编号
nd* pre;
nd* next;
nd()
{pre=next=NULL;
index=-1;
which=-1;
p=0;
}
operator=(nd& in)
{
index=in.index;
p=in.p;
which=in.which;
};
_declspec(dllexport) friend void operator<<(CArchive&,nd&);
_declspec(dllexport) friend void operator>>(CArchive&,nd&);
};
class ndlist;
class myview;
class node : public CObject
{
double scale;
void* pnode;
public:
CView* pv;
myview* pmv;
char runinfo[1005];
unsigned int runinfolth;
node_type type;
int number;//节点编号
int grade;//节点级别
BOOL bfrosen;
BOOL bselect;
unsigned int frosencnt;
unsigned int infrosencnt;
unsigned int infreecnt;
unsigned int incnt;//输入参数数量
BOOL* binfrosen;//输入点是否编辑冻结
BOOL* binvalid;//输入点是否有效
ptlist* pptlist;//存放输入路经的点坐标
ptlist ptlstcon[5];//存放控制输入路经的点坐标
BOOL bconinfrosen[5];
unsigned int outcnt;//输出参数数量
BOOL* boutfrosen;//输出点是否编辑冻结
BOOL boutvalid;//输出点是否有效
BOOL bconoutfrosen[5];//输出点是否编辑冻结
BOOL bconoutvalid;//输出点是否有效
unsigned int concnt;
BOOL bconfrosen[5];
dpt concenter[10];
dpt contop[10];
dpt conbottom[10];
drec conrect[10];
mydata in;
mydata out;
nd precon[5];
int32 preconpin[5];
nd* pre;//存放为输入端提供数据的节点指针
int32* prepin;//存放为输入端提供数据的节点的针脚序号
ndlist* nextcon;
ndlist *next;
relation* prerelation;
unsigned int precnt;
unsigned int nextcnt;
node* pnn;//后邻居
node* ppn;//前邻居
//node* poutnn;//后输出邻居
//node* poutpn;//前输出邻居
command* pcmd;//封装的目标命令模块
unsigned int cmd_id;
unsigned int cmd_level;
int funcnumber;//目标接口索引号码
BOOL frenew;
public:
int invalidcnt;
BOOL bwait;
public:
dpt center;
drec dipan;//图形参数
drec area;
dpt* incenter;
dpt* inleft;
dpt* inright;
drec* inrect;
dpt* outcenter;
dpt* outleft;
dpt* outright;
drec* outrect;
public:
CWinThread* pthrd;
HANDLE m_hThread;
public:
int senddata();
void move(dpt pt);
void setdipan(CView* pv);
void finishflag(CView *pv);
BOOL is_in_snap(dpt& pt,int* ppin);
BOOL is_out_snap(dpt& pt,int* ppin);
BOOL is_con_snap(dpt& pt,int* ppin);
BOOL is_dipan_snap(dpt& pt);
void see();
void move();
void change();
CSize back;
BOOL is_snap(dpt point,BOOL bway);
void renew_graph(CDC* pDC,dpt pt);
void renew_node(CDC *pDC, dpt pt);
void rs(CDC*);
BOOL create(myview* pmv,CView* pv,dpt& point);
void draw(CView* pv,CDC* pDC);
void upgrade(int g);
mydata* prepare(double* in,unsigned int cnt=1);
mydata* prepare(mwArray* in,unsigned int cnt=1);
mydata* prepare(mydata* in,unsigned int cnt=1);
UINT run();
/*BOOL is_snap(const CPoint &point);*/
node();
node(void* pnode);
virtual ~node();
public:
_declspec(dllexport) void Serialize(CArchive&);
_declspec(dllexport) friend void operator<<(CArchive&,node&);
_declspec(dllexport) friend void operator>>(CArchive&,node&);
public:
void set_data_structure(int which);
node* pfirst;
CFile* pfile;
CString filename;
CArchive* par;
datastructure* pstructure;
BOOL conect_data_file();
};
class ndlist
{
unsigned int cnt;
nd* head;
nd* tail;
nd* pnd;
public:
void rebuild(node* head);
void upgrade(int g);
BOOL remove(int index);
BOOL add(node* pnd,int which);
ndlist();
virtual ~ndlist();
void operator =(ndlist &in);
void operator =(ndlist *in);
_declspec(dllexport) friend void operator<<(CArchive&,ndlist&);
_declspec(dllexport) friend void operator>>(CArchive&,ndlist&);
friend class mygraph;
friend class node;
};
#endif // !defined(AFX_NODE_H__DDA05662_B4D2_43F1_9BDB_7D914C7C0679__INCLUDED_)
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?