⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rlplot.h

📁 Linux/windows 环境下跨平台开发程序
💻 H
📖 第 1 页 / 共 5 页
字号:
	FitFunc(GraphObj *par, DataObj *d);	FitFunc(int src);	~FitFunc();	bool SetSize(int select, double value);	bool SetColor(int select, DWORD col);	void DoPlot(anyOutput *o);	bool Command(int cmd, void *tmpl, anyOutput *o);	bool PropertyDlg();	void RegGO(void *n);
	bool FileIO(int rw);private:	double x1, x2, xstep, conv, chi2;	char *ssXref, *ssYref;	long nPoints;	int maxiter;	LineDEF Line;	Symbol **Symbols;	char *cmdxy, *parxy;	Function *dl;};class GridLine:public GraphObj{public:	DWORD flags;	long ncpts;	POINT pts[6], *cpts;	LineDEF LineDef;	POINT3D *gl1, *gl2, *gl3;	line_segment **ls;	bool bModified;
	anyOutput *mo;
	RECT mrc;	GridLine(GraphObj *par, DataObj *d, int type, DWORD df);	GridLine(int src);	~GridLine();	virtual void DoPlot(anyOutput *o);	virtual void DoMark(anyOutput *o, bool mark);	virtual bool Command(int cmd, void *tmpl, anyOutput *o);	bool PropertyDlg();	bool FileIO(int rw);};class GridLine3D:public GridLine {public:	GridLine3D(GraphObj *par, DataObj *d, int type, DWORD df);	GridLine3D(int src);	~GridLine3D();	void DoPlot(anyOutput *o);	void DoMark(anyOutput *o, bool mark);	bool Command(int cmd, void *tmpl, anyOutput *o);};class GridRadial:public GridLine {public:	GridRadial(GraphObj *par, DataObj *d, int type, DWORD df);	GridRadial(int src);	~GridRadial();	void DoPlot(anyOutput *o);	void DoMark(anyOutput *o, bool mark);	bool Command(int cmd, void *tmpl, anyOutput *o);};class Tick:public GraphObj{public:	Tick(GraphObj *par, DataObj *d, double val, DWORD Flags);	Tick(int src);	~Tick();	double GetSize(int select);	bool SetSize(int select, double value);	bool SetColor(int select, DWORD col);	void DoMark(anyOutput *o, bool mark);	bool Command(int cmd, void *tmpl, anyOutput *o);	bool PropertyDlg();	void RegGO(void *n);
	bool FileIO(int rw);	void DoPlot(double six, double csx, anyOutput *o);	private:	double value, size, fix, fiy, fiz, lsi, lcsi, angle, lbx, lby;	bool bModified;	anyOutput *mo;
	RECT mrc;
	int gl_type;	GridLine *Grid;	Label *label;	DWORD flags;	POINT pts[2];	line_segment *ls;};class Axis:public GraphObj{public:	AxisDEF *axis;	LineDEF axline;	Axis(GraphObj *par, DataObj *d, AxisDEF *ax, DWORD flags);	Axis(int src);	~Axis();	double GetSize(int select);	bool SetSize(int select, double value);	DWORD GetColor(int select);	bool SetColor(int select, DWORD col);	void DoPlot(anyOutput *o);	void DoMark(anyOutput *o, bool mark);	bool Command(int cmd, void *tmpl, anyOutput *o);	bool PropertyDlg();	void RegGO(void *n);
	bool FileIO(int rw);	AxisDEF *GetAxis() {return axis;};	bool GetValuePos(double val, double *fix, double *fiy, double *fiz, anyOutput *o);	void TickFile(char *name);	void BreakSymbol(POINT3D *p1, double dsi, double dcsi, bool connect, anyOutput *o);	void DrawBreaks(anyOutput *o);private:	double sizAxLine, sizAxTick, sizAxTickLabel;	double si, csi;	double brksymsize, brkgap, tick_angle;	int brksym, nl_segs, gl_type, tick_type;	bool bModified;	DWORD colAxis;	LineDEF GridLine;	Tick **Ticks;	GraphObj *axisLabel;	long NumTicks;	POINT pts[2];	POINT3D pts3D[2];	fPOINT3D flim[2];	lfPOINT lbdist, tlbdist;	TextDEF tlbdef;	anyOutput *drawOut, *scaleOut;	line_segment **l_segs;	char *ssMATval, *ssMATlbl, *ssMITval; 	anyOutput *mo;	RECT mrc;	void SetTick(long idx, double val, DWORD flags, char *txt);	void CreateTicks();	void ManuTicks(double sa, double st, int n, DWORD flags);	void UpdateTicks();	bool ssTicks();};class Plot3D:public Plot{	typedef struct {		double Zmin, Zmax;		GraphObj *go;		}obj_desc;public:	long nPlots, nAxes;	Axis **Axes;	GraphObj **plots;	double *RotDef;	fPOINT3D cub1, cub2, rotC;
	Plot3D(GraphObj *par, DataObj *d, DWORD flags);	Plot3D(int src);	~Plot3D();	double GetSize(int select);	bool SetColor(int select, DWORD col);	void DoPlot(anyOutput *o);	void DoMark(anyOutput *o, bool mark);	virtual bool Command(int cmd, void *tmpl, anyOutput *o);	virtual bool PropertyDlg();	virtual void RegGO(void *n);
	virtual bool FileIO(int rw);	void * ObjThere(int x, int y);	void Track(POINT *p, anyOutput *o);	void CreateAxes();	void DoAutoscale();	void CalcRotation(double dx, double dy, anyOutput *o, bool accept);	bool AcceptObj(GraphObj *go);	void SortObj();	bool Rotate(double dx, double dy, double dz, anyOutput *o, bool accept);private:	long nObs, nmaxObs;	DWORD crea_flags;	Drag3D *drag;	fPOINT3D cu1, cu2, rc;	obj_desc **dispObs;	bool AddPlot(int family);};class Chart25D:public Plot3D {public:	Chart25D(GraphObj *par, DataObj *d, DWORD flags);	~Chart25D();	bool PropertyDlg();private:	fPOINT3D dspm;};class Ribbon25D:public Plot3D {public:	Ribbon25D(GraphObj *par, DataObj *d, DWORD flags);	~Ribbon25D();	bool PropertyDlg();private:	fPOINT3D dspm;};class BubblePlot3D:public Plot3D {public:	BubblePlot3D(GraphObj *par, DataObj *d);	~BubblePlot3D();	bool PropertyDlg();};
class Func3D:public Plot3D {
public:
	Func3D(GraphObj *par, DataObj *d);
	Func3D(int src);
	~Func3D();
	bool Command(int cmd, void *tmpl, anyOutput *o);
	bool PropertyDlg();
	void RegGO(void *n);
	bool FileIO(int rw);

private:
	bool Update();

	double x1, x2, xstep, z1, z2, zstep;
	int g_idx;
	LineDEF Line;
	FillDEF Fill;
	char *param, *cmdxy;
	DataObj *gda;
	Grid3D  *gob;
};
class Graph:public GraphObj{public:	long NumPlots;	int ToolMode, units, nscp;	anyOutput *Disp, *CurrDisp;	fRECT GRect, DRect, Bounds;	bool OwnDisp, bModified;	fRECT CurrRect;	GraphObj **Plots;	DWORD ColBG, ColAX;	GraphObj **Sc_Plots;	Axis **Axes;	char *filename;	Graph(GraphObj *par, DataObj *d, anyOutput *o);	Graph(int src);	~Graph();	double GetSize(int select);	bool SetSize(int select, double value);	DWORD GetColor(int select);	virtual void DoPlot(anyOutput *o);	virtual bool Command(int cmd, void *tmpl, anyOutput *o);	bool PropertyDlg();	void RegGO(void *n);
	virtual bool FileIO(int rw);private:	int NumAxes, AxisTempl, tickstyle, zoom_level;	RECT rcDim, rcUpd, rc_mrk;	DWORD ColDR, ColGR, ColGRL;	AxisDEF x_axis, y_axis;	FrmRect *frm_g, *frm_d;	bool dirty;	POINT *tl_pts;	long tl_nPts;	ZoomDEF *zoom_def;	bool AddPlot(int family);	void DoAutoscale();	void CreateAxes(int templ);	bool ExecTool(MouseEvent *mev);	bool Configure();	bool AddAxis();	bool MoveObj(int cmd, GraphObj *g); 	bool DoZoom(char *z);};class Page:public Graph{public:	Page(GraphObj *par, DataObj *d);	Page(int src);	void DoPlot(anyOutput *o);	bool Command(int cmd, void *tmpl, anyOutput *o);	void RegGO(void *n);
	bool FileIO(int rw);private:	LineDEF LineDef;	FillDEF FillDef;	bool Configure();};
class ObjTree:public GraphObj {
public:	ObjTree(GraphObj *par, DataObj *d, GraphObj *root);
	~ObjTree();
	void DoPlot(anyOutput *o);
	bool Command(int cmd, void *tmpl, anyOutput *o);

	anyOutput *CreateBitmap(int *w, int *h, anyOutput *tmpl);
	int count_lines(){ return count;};
	char *get_name(int line);
	int get_vis(int line);
	bool set_vis(int line, bool vis);
	GraphObj *get_obj(int line);

private:
	GraphObj **list, *base;
	int count, maxcount;
	TextDEF TextDef;
};

class notary{public:	notary();	~notary();	unsigned long RegisterGO(GraphObj *go);	void AddRegGO(GraphObj *go);	bool PushGO(unsigned long id, GraphObj *go);	GraphObj *PopGO(unsigned long id);	void FreeStack();private:	unsigned long NextPopGO, NextPushGO, NextRegGO;	GraphObj ***gObs;	GraphObj ***goStack;};class Default{public:	int dUnits, cUnits;	char DecPoint[2], ColSep[2];	char *svgAttr, *svgScript, *currPath, *IniFile;	char *File1, *File2, *File3, *File4, *File5, *File6;	double min4log, ss_txt;	RECT clipRC;	Default();	~Default();	void SetDisp(anyOutput *o);	double GetSize(int select);	DWORD Color(int select);	LineDEF *GetLine();	void SetLine(int u, LineDEF *l, int which);	FillDEF *GetFill();	void SetFill(int u, FillDEF *fd);	LineDEF *GetOutLine();	bool PropertyDlg();	LineDEF *plLineDEF(LineDEF *ld);	LineDEF *pgLineDEF(LineDEF *ol);	FillDEF *pgFillDEF(FillDEF *fd);	double rrectRad(double rad);	void FileHistory(char *path);private:	LineDEF Line_0, Line_1, Line_2, *pl, *pgl;	FillDEF Fill_0, Fill_1, Fill_2, *pg;	LineDEF FillLine_0, FillLine_1, FillLine_2, *pg_fl;	LineDEF OutLine_0, OutLine_1, OutLine_2;	double *rrect_rad;	anyOutput *cdisp;	DWORD axis_color;};class DefsRW:public GraphObj{public:	DefsRW():GraphObj(0, 0){Id = 0; return;};	DefsRW(int rw):GraphObj(0,0){FileIO(rw);Id=GO_DEFRW;return;};	~DefsRW() {return;};	bool FileIO(int rw);};class ReadCache{public:	unsigned char last, *Cache, Line[4096];	int iFile, idx, max;	bool eof;	ReadCache();	~ReadCache();	virtual bool Open(char *name);	virtual void Close();	virtual unsigned char Getc();	virtual unsigned char *GetField();	void ReadLine(char *dest, int size);	bool GetInt(long *in);	bool GetFloat(double *fn);	unsigned char Lastc();	bool IsEOF();};class MemCache:public ReadCache{public:	MemCache(unsigned char *ptr);	~MemCache();	bool Open(char *name){return false;};	void Close(){return;};	unsigned char Getc();	unsigned char *GetField();};#define UNDO_CONTINUE 0x01#define UNDO_STORESET 0x1000class UndoObj {	enum {UNDO_UNDEFINED, UNDO_DEL_GO, UNDO_GOLIST, UNDO_DROPMEM,		UNDO_VALDWORD, UNDO_VALINT, UNDO_VALLONG, UNDO_OBJCONF, UNDO_OBJCONF_1,		UNDO_LFP, UNDO_POINT, UNDO_VOIDPTR, UNDO_MOVE, UNDO_RECT,
		UNDO_STRING, UNDO_ROTDEF, UNDO_SETGO, UNDO_LINEDEF, UNDO_FILLDEF,
		UNDO_AXISDEF, UNDO_LFP3D, UNDO_FLOAT, UNDO_MEM, UNDO_MUTATE, 
		UNDO_DROPGOLIST, UNDO_TEXTDEF, UNDO_SAVVAR, UNDO_DATA, UNDO_ET};	typedef struct _UndoInfo {		int cmd;		DWORD flags;		GraphObj *owner;		void *data;		void **loc;		ZoomDEF zd;		}UndoInfo;	typedef struct _UndoList {		void *array;		void **loc_arr;		long count, size;		long *loc_count;		}UndoList;	typedef struct _UndoBuff {		int count;		UndoInfo **buff;		anyOutput *disp;		}UndoBuff;
	typedef struct _EtBuff {
		char *txt;
		DataObj *DaO;
		int *cur, *m1, *m2, vcur, vm1, vm2, row, col;
		}EtBuff;public:	int *pcb;	anyOutput *cdisp, *ldisp;
	bool busy;
	UndoObj();
	~UndoObj();	void Flush();	void SetDisp(anyOutput *o);
	void KillDisp(anyOutput *o);	void InvalidGO(GraphObj *go);	void Pop(anyOutput *o);	void Restore(bool redraw, anyOutput *o);	void ListGOmoved(GraphObj **oldlist, GraphObj **newlist, long size);	void DeleteGO(GraphObj **go, DWORD flags, anyOutput *o);	void MutateGO(GraphObj **old, GraphObj *repl, DWORD flags, anyOutput *o);	void StoreListGO(GraphObj *parent, GraphObj ***go, long *count, DWORD flags);	void DropListGO(GraphObj *parent, GraphObj ***go, long *count, DWORD flags);	void DropMemory(GraphObj *parent, void **mem, DWORD flags);	void SavVarBlock(GraphObj *parent, void **mem, DWORD flags);	void ValDword(GraphObj *parent, DWORD *val, DWORD flags);
	void Point(GraphObj *parent, POINT *pt, anyOutput * o, DWORD flags);	void VoidPtr(GraphObj *parent, void **pptr, void *ptr, anyOutput * o, DWORD flags);
	void ValInt(GraphObj *parent, int *val, DWORD flags);	void ValLong(GraphObj *parent, long *val, DWORD flags);
	void ObjConf(GraphObj *go, DWORD flags);	int SaveLFP(GraphObj *go, lfPOINT *lfp, DWORD flags);	void MoveObj(GraphObj *go, lfPOINT *lfp, DWORD flags);	void ValRe

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -