📄 rlplot.h
字号:
void DoPlot(anyOutput *o); void DoMark(anyOutput *o, bool mark); bool Command(int cmd, void *tmpl, anyOutput *o); bool PropertyDlg(); bool FileIO(int rw);private: double size; lfPOINT pos1, pos2; POINT pts[5]; LineDEF Outline, Hatchline; FillDEF Fill; POINT *ssRef; long cssRef;};class Whisker:public GraphObj {public: Whisker(GraphObj *par, DataObj *d, lfPOINT fp1, lfPOINT fp2, int which, int xc1=-1, int xr1=-1, int yc1=-1, int yr1=-1, int xc2=-1, int xr2=-1, int yc2=-1, int yr2=-1); Whisker(int src); bool SetSize(int select, double value); 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(); bool FileIO(int rw);private: double size; POINT pts[6]; lfPOINT pos1, pos2; LineDEF LineDef; POINT *ssRef; long cssRef;};class DropLine:public GraphObj{public: DropLine(GraphObj *par, DataObj *d, double x, double y, int which, int xc = -1, int xr = -1, int yc = -1, int yr = -1); DropLine(int src); ~DropLine(); void DoPlot(anyOutput *o); void DoMark(anyOutput *o, bool mark); bool Command(int cmd, void *tmpl, anyOutput *o); bool PropertyDlg(); bool FileIO(int rw);private: lfPOINT fPos; POINT pts[4]; LineDEF LineDef; POINT *ssRef; long cssRef; bool bModified;};class line_segment:public GraphObj{public: line_segment(GraphObj *par, DataObj *d, LineDEF *ld, POINT3D *p1, POINT3D *p2); ~line_segment(); double GetSize(int select); void DoPlot(anyOutput *o); bool Command(int cmd, void *tmpl, anyOutput *o); void * ObjThere(int x, int y);private: LineDEF Line; POINT3D **ldata; fPOINT3D fmin, fmax; int *nldata, nli, ndf_go; double prop; bool bDrawDone; GraphObj *co, **df_go; void DoClip(GraphObj *co);};class sph_scanline:public GraphObj{public: int rad; bool vert; sph_scanline(POINT3D *center, int radius, bool bVert); bool Command(int cmd, void *tmpl, anyOutput *o); void DoClip(GraphObj *co); bool GetPoint(POINT *p, int sel);private: POINT3D p1, p2, cent; bool bValid1, bValid2;};class Sphere:public GraphObj{public: Sphere(GraphObj *par, DataObj *d, int sel, double x, double y, double z, double r, int xc = -1, int xr = -1, int yc = -1, int yr = -1, int zc = -1, int zr = -1, int rc = -1, int rr = -1); Sphere(int src); ~Sphere(); double GetSize(int select); bool SetSize(int select, double value); DWORD GetColor(int select);
bool SetColor(int select, DWORD col); void DoPlot(anyOutput *o); bool Command(int cmd, void *tmpl, anyOutput *o); bool PropertyDlg(); bool FileIO(int rw);private: int ix, iy, rx, ry, nscl; LineDEF Line; FillDEF Fill; fPOINT3D fPos, fip; double size; POINT *ssRef; long cssRef; GraphObj *co; bool bModified, bDrawDone; sph_scanline **scl; void DoClip(GraphObj *co); void DrawPG(anyOutput *o, int start);};class plane:public GraphObj{public: plane(GraphObj *par, DataObj *d, fPOINT3D *pts, int nPts, LineDEF *line, FillDEF *fill); ~plane(); double GetSize(int select); void DoPlot(anyOutput *o); void DoMark(anyOutput *o, bool mark); bool Command(int cmd, void *tmpl, anyOutput *o); void * ObjThere(int x, int y); bool GetPolygon(POINT3D **pla, int *npt, int sel); double *GetVec() {return PlaneVec;};
private: LineDEF Line; FillDEF Fill; double *PlaneVec; POINT3D **ldata, ReqPoint; int *nldata, nli, n_ipts, n_lines; POINT *ipts; lfPOINT xBounds, yBounds, zBounds; bool bDrawDone, bReqPoint; GraphObj *co; line_segment **lines; long totalArea; void DoClip(GraphObj *co); bool IsValidPG(POINT3D *pg, int npg);};class Plane3D:public GraphObj {public: Plane3D(GraphObj *par, DataObj *da, fPOINT3D *pt, long npt); Plane3D(int src); ~Plane3D(); bool SetSize(int select, double value); 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(); bool FileIO(int rw);private: plane *ipl; fPOINT3D *dt, *pts; long ndt; LineDEF Line; FillDEF Fill;};class Brick:public GraphObj{public: Brick(GraphObj *par, DataObj *da, double x, double y, double z, double d, double w, double h, DWORD flags, int xc = -1, int xr = -1, int yc = -1, int yr = -1, int zc = -1, int zr = -1, int dc = -1, int dr = -1, int wc = -1, int wr = -1, int hc = -1, int hr = -1); Brick(int src); ~Brick(); bool SetSize(int select, double value); 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(); bool FileIO(int rw);private: LineDEF Line; FillDEF Fill; fPOINT3D fPos; double depth, width, height; DWORD flags; POINT *ssRef; long cssRef; plane **faces; anyOutput *mo;
RECT mrc;
bool bModified;};class DropLine3D:public GraphObj{public: DropLine3D(GraphObj *par, DataObj *d, fPOINT3D *p1, int xc = -1, int xr = -1, int yc = -1, int yr = -1, int zc = -1, int zr = -1); DropLine3D(int src); ~DropLine3D(); void DoPlot(anyOutput *o); void DoMark(anyOutput *o, bool mark); bool Command(int cmd, void *tmpl, anyOutput *o); bool PropertyDlg(); bool FileIO(int rw);private: line_segment *ls[6]; POINT mpts[6][2]; LineDEF Line; fPOINT3D fPos; POINT *ssRef; long cssRef; bool bModified; anyOutput *mo; RECT mrc;};class Arrow3D:public GraphObj{public: Arrow3D(GraphObj *par, DataObj *d, fPOINT3D *p1, fPOINT3D *p2, int xc1 = -1, int xr1 = -1, int yc1 = -1, int yr1 = -1, int zc1 = -1, int zr1 = -1, int xc2 = -1, int xr2 = -1, int yc2 = -1, int yr2 = -1, int zc2 = -1, int zr2 = -1); Arrow3D(int src); ~Arrow3D(); bool SetSize(int select, double value); 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(); bool FileIO(int rw);private: line_segment *ls[3]; plane *cap; double cw, cl; POINT mpts[3][2]; LineDEF Line; fPOINT3D fPos1, fPos2; POINT *ssRef; long cssRef; bool bModified;};class Line3D:public GraphObj{public:
LineDEF Line;
Line3D(GraphObj *par, DataObj *d, char *rx, char *ry, char *rz); Line3D(GraphObj *par, DataObj *d, fPOINT3D *pt, int n_pt, int xc1 = -1,
int xr1 = -1, int yc1 = -1, int yr1 = -1, int zc1 = -1, int zr1 = -1,
int xc2 = -1, int xr2 = -1, int yc2 = -1, int yr2 = -1, int zc2 = -1,
int zr2 = -1);
Line3D(int src); ~Line3D(); void DoPlot(anyOutput *o); void DoMark(anyOutput *o, bool mark); bool Command(int cmd, void *tmpl, anyOutput *o); bool PropertyDlg(); bool FileIO(int rw);private: line_segment **ls; fPOINT3D *values, min, max; POINT *pts; long nPts, npts;
char *x_range, *y_range, *z_range; POINT *ssRef;
long cssRef;
bool bModified; anyOutput *mo; RECT mrc; void DoUpdate();};class Label:public GraphObj{public: Label(GraphObj *par, DataObj *d, double x, double y, TextDEF *td, DWORD flg, int xc = -1, int xr = -1, int yc = -1, int yr = -1, int tc = -1, int tr = -1); Label(int src); ~Label(); double GetSize(int select); bool SetSize(int select, double value); 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(); bool FileIO(int rw); void * ObjThere(int x, int y); void Track(POINT *p, anyOutput *o); bool CalcRect(anyOutput *o); void RedrawEdit(anyOutput *o); void ShowCursor(anyOutput *o); bool AddChar(int ci, anyOutput *o); void CalcCursorPos(int x, int y, anyOutput *o); void SetModified();
void DoPlotText(anyOutput *o); TextDEF *GetTextDef(){return &TextDef;};private: lfPOINT fPos, fDist; double si, csi, curr_z; DWORD flags, bgcolor; TextDEF TextDef; LineDEF bgLine; int ix, iy, CursorPos;
bool is3D; RECT Cursor; POINT pts[5]; POINT *ssRef; long cssRef; anyOutput *defDisp; bool bModified, bBGvalid;
fmtText *fmt_txt;};class mLabel:public GraphObj{public: mLabel(GraphObj *, DataObj *, double, double, TextDEF *, char *, int, DWORD); mLabel(GraphObj *, DataObj *, double, double, TextDEF *, char *); mLabel(int src); ~mLabel(); double GetSize(int select); bool SetSize(int select, double value); void DoPlot(anyOutput *o); bool Command(int cmd, void *tmpl, anyOutput *o); void RegGO(void *n);
bool FileIO(int rw); void Track(POINT *p, anyOutput *o);private: lfPOINT fPos, fDist, cPos, cPos1, dist; double si, csi, curr_z, lspc; DWORD flags, undo_flags; TextDEF TextDef; long nLines; int cli;
bool is3D; Label **Lines;};class segment:public GraphObj{public: segment(GraphObj *par, DataObj *d, lfPOINT *c, double r1, double r2, double a1, double a2); segment(int src); ~segment(); bool SetSize(int select, double value); void DoPlot(anyOutput *o); void DoMark(anyOutput *o, bool mark); bool Command(int cmd, void *tmpl, anyOutput *o); bool PropertyDlg(); bool FileIO(int rw); void * ObjThere(int x, int y); void Track(POINT *p, anyOutput *o);private: lfPOINT fCent; long nPts; double radius1, radius2, angle1, angle2, shift; LineDEF segLine, segFillLine; FillDEF segFill; POINT *pts; bool bModified;};class polyline:public GraphObj {public: lfPOINT *Values; long nPoints, nPts; POINT *pts; LineDEF pgLine, pgFillLine; FillDEF pgFill; bool bModified; polyline(GraphObj *par, DataObj *d, lfPOINT *fpts, int cpts); polyline(int src); ~polyline(); double GetSize(int select); bool SetSize(int select, double value); DWORD GetColor(int select); void DoPlot(anyOutput *o); void DoMark(anyOutput *o, bool mark); bool Command(int cmd, void *tmpl, anyOutput *o); virtual bool PropertyDlg(); bool FileIO(int rw); void * ObjThere(int x, int y); void Track(POINT *p, anyOutput *o);private: dragHandle **pHandles; void ShowPoints(anyOutput *o);};class polygon:public polyline {public: polygon(GraphObj *par, DataObj *d, lfPOINT *fpts, int cpts); polygon(int src):polyline(src){}; bool PropertyDlg();};class rectangle:public GraphObj {public: lfPOINT fp1, fp2; LineDEF Line, FillLine; FillDEF Fill; double rad; bool bModified; rectangle(GraphObj *par, DataObj *d, lfPOINT *p1, lfPOINT *p2); rectangle(int src); ~rectangle(); double GetSize(int select); bool SetSize(int select, double value); DWORD GetColor(int select){return Line.color;}; void DoMark(anyOutput *o, bool mark); void DoPlot(anyOutput *o); bool Command(int cmd, void *tmpl, anyOutput *o); bool PropertyDlg(); bool FileIO(int rw); void * ObjThere(int x, int y); void Track(POINT *p, anyOutput *o);private: POINT *pts; long nPts; dragRect *drc; void PlotRoundRect(anyOutput *o);};class ellipse:public rectangle {public: ellipse(GraphObj *par, DataObj *d, lfPOINT *p1, lfPOINT *p2); ellipse(int src);};class roundrec:public rectangle {public: roundrec(GraphObj *par, DataObj *d, lfPOINT *p1, lfPOINT *p2); roundrec(int src);};class LegItem:public GraphObj{public: LegItem(GraphObj *par, DataObj *d, LineDEF *ld, LineDEF *lf, FillDEF *fill); LegItem(GraphObj *par, DataObj *d, LineDEF *ld, Symbol *sy); LegItem(int src); ~LegItem(); double GetSize(int select); void DoPlot(anyOutput *o); void DoMark(anyOutput *o, bool mark); bool Command(int cmd, void *tmpl, anyOutput *o); void RegGO(void *n);
bool FileIO(int rw); void Track(POINT *p, anyOutput *o); bool HasFill(LineDEF *ld, FillDEF *fd); bool HasSym(LineDEF *ld, GraphObj *sy);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -