00001
00002
00003
00004
00005
00006
00007
00008 #ifndef ARCSEG_H
00009 #define ARCSEG_H
00010
00011 #ifdef __GNUG__
00012 #pragma interface
00013 #endif
00014
00017 #include "misc.h"
00018 #include "wxmatrix.h"
00019 #include "polyline.h"
00020 #include "gdserr.h"
00021 #include "shape.h"
00022 #include "path.h"
00023 #include <wx/image.h>
00024
00025 class DrawDriver;
00026 class Driver_out;
00027
00028
00029
00030
00031
00036
00037 {
00038 public:
00039
00040 Arcseg(int layernr = 0);
00041 ~Arcseg();
00042
00043 void OWrite(Driver_out& where);
00044 void DoWrite(DrawDriver& dr);
00045
00046 BoundingBox& CalcBoundingBox();
00047 int GetDatatype();
00048 G_Polyline* GetPolyline();
00049 void SetDatatype(int);
00050 void SetPolyline(G_Polyline*);
00051 TYPE GetType() {return ARCSEG;};
00052 void Transform(wxTransformMatrix* _Matrix);
00053 Element* Duplicate();
00054
00055 Arcseg& operator=(Arcseg &other);
00056 void Convert(G_Polygon* _converted, double);
00057
00058 bool Select(Point*);
00059 bool Select(BoundingBox*,wxTransformMatrix*);
00060 wxPropertySheet* GetPropList();
00061 void UpdatePropList();
00062
00063 protected:
00064
00065 G_Polyline* _polyline;
00066 int _datatype;
00067 };
00068
00069
00073
00074 {
00075 public:
00076
00077 Box(int layernr = 0);
00078 ~Box();
00079
00080 void OWrite(Driver_out& where);
00081 void DoWrite(DrawDriver& dr);
00082
00083 BoundingBox& CalcBoundingBox();
00084 int GetBoxtype();
00085 void SetBoxtype(int);
00086 void Set(G_Polygon* a_rec_poly);
00087 void Set(double x_centre,double y_centre,double ang, double w, double h);
00088 double GetW();
00089 double GetH();
00090 void SetW(double w);
00091 void SetH(double h);
00092 TYPE GetType() {return BOX;};
00093 void Transform(wxTransformMatrix* _Matrix);
00094 void Convert(G_Polygon* _polygon, double marge);
00095
00096 Element* Duplicate();
00097 Box& operator=(Box &other);
00098
00099 bool Select(Point*);
00100 bool Select(BoundingBox*,wxTransformMatrix*);
00101 void SetRelativeMatrix(wxTransformMatrix* m);
00102 wxTransformMatrix* GetRelativeMatrix();
00103 wxPropertySheet* GetPropList();
00104 void UpdatePropList();
00105
00106 protected:
00107
00108 double _w;
00109 double _h;
00110 wxTransformMatrix _relative_matrix;
00111 int _boxtype;
00112 };
00113
00114
00118
00119 {
00120 public:
00121
00122 Circle(int layernr = 0);
00123 ~Circle();
00124
00125 void OWrite(Driver_out& where);
00126 void DoWrite(DrawDriver& dr);
00127
00128 BoundingBox& CalcBoundingBox();
00129 int GetDatatype();
00130 void SetDatatype(int);
00131 TYPE GetType() {return CIRCLE;};
00132 void Transform(wxTransformMatrix* _Matrix);
00133 Point& GetMid();
00134 double GetRadius();
00135 void SetRadius(double radius);
00136 void SetMid(const Point& a_point);
00137 void SetMid(double X,double Y);
00138 void Convert(G_Polygon* _polygon, double marge);
00139
00140 Element* Duplicate();
00141 Circle& operator=(Circle &other);
00142
00143 bool Select(Point*);
00144 bool Select(BoundingBox*,wxTransformMatrix*);
00145 wxPropertySheet* GetPropList();
00146 void UpdatePropList();
00147
00148 protected:
00149
00150 Point _mid;
00151 double _radius;
00152 int _datatype;
00153 };
00154
00155
00159
00160 {
00161 public:
00162
00163 Image(int layernr,const wxString& path);
00164 Image();
00165 ~Image();
00166
00167 void OWrite(Driver_out& where);
00168 void DoWrite(DrawDriver& dr);
00169
00170 BoundingBox& CalcBoundingBox();
00171 TYPE GetType() {return IMAGE;};
00172 void Transform(wxTransformMatrix* _Matrix);
00173 Point GetPosition();
00174 void SetPosition(Point *a_point);
00175 void SetPosition(double X,double Y);
00176
00177 Element* Duplicate();
00178 Image& operator=(Image &other);
00179
00180 bool Select(Point*);
00181 bool Select(BoundingBox*,wxTransformMatrix*);
00182 wxPropertySheet* GetPropList();
00183 void UpdatePropList();
00184 void Convert(G_Polygon* _polygon, double aber);
00185 wxImage GetImage(){return m_image;}
00186
00187 double GetH();
00188 void SetH(double newheight);
00189 void SetRotation(double rotation);
00190 double GetRotation();
00191 double GetW();
00192 void SetW(double width);
00193 void SetPictureType(const wxString& type);
00194 wxString GetPictureType();
00195 void SetPath(const wxString& path);
00196 wxString GetPath();
00197 void SetRelativeMatrix(wxTransformMatrix* m);
00198 wxTransformMatrix* GetRelativeMatrix();
00199
00200
00201 protected:
00202 double m_w;
00203 double m_h;
00204 wxImage m_image;
00205 wxString m_path;
00206 wxTransformMatrix _relative_matrix;
00207 wxString m_type;
00208 };
00209
00210
00214
00215 {
00216 public:
00217
00218 SLine(int layernr = 0);
00219 ~SLine();
00220
00221 void OWrite(Driver_out& where);
00222 void DoWrite(DrawDriver& dr);
00223
00224 BoundingBox& CalcBoundingBox();
00225 void Set(double x1,double y1,double x2, double y2);
00226 double GetX1(){return m_x1;};
00227 double GetY1(){return m_y1;};
00228 double GetX2(){return m_x2;};
00229 double GetY2(){return m_y2;};
00230 void SetX1(double v){m_x1=v;};
00231 void SetY1(double v){m_y1=v;};
00232 void SetX2(double v){m_x2=v;};
00233 void SetY2(double v){m_y2=v;};
00234 TYPE GetType() {return SLINE;};
00235 void Transform(wxTransformMatrix* _Matrix);
00236 void Convert(G_Polygon* _polygon, double marge);
00237
00238 Element* Duplicate();
00239 SLine& operator=(SLine &other);
00240
00241 bool Select(Point*);
00242 bool Select(BoundingBox*,wxTransformMatrix*);
00243 wxPropertySheet* GetPropList();
00244 void UpdatePropList();
00245
00246 void SetPathtype(PATHTYPE);
00247 PATHTYPE GetPathtype();
00248
00249 protected:
00250
00251 PATHTYPE m_pathtype;
00252 Structure* m_arrow;
00253 double m_x1;
00254 double m_y1;
00255 double m_x2;
00256 double m_y2;
00257
00258 };
00259 #endif
00260
arc.h Source File -- Thu Nov 28 21:24:55 2002 -- 28 Nov 2002 -- 1.2.18 -- -- . --