1 /***************************************************************
2  * Name:      matrixobejct.h
3  * Purpose:   Defines Class MatrixObject
4  * Author:    Christian Gr�fe (info@mcs-soft.de)
5  * Created:   2007-03-02
6  * Copyright: Christian Gr�fe (www.mcs-soft.de)
7  * License:	  wxWindows licence
8  **************************************************************/
9 
10 #ifndef MATRIXOBJECT_H
11 #define MATRIXOBJECT_H
12 
13 #include <wx/wx.h>
14 #include <string.h>
15 
16 class MatrixObject
17 {
18     public:
19 		MatrixObject();
20 		MatrixObject(const MatrixObject& mo);
21         MatrixObject(const char* data, int width, int height=0);
22         virtual ~MatrixObject();
23 
24         MatrixObject &operator=(const MatrixObject& mo);
25 
26         void Init(const char* data, int width, int height=0);
Init(const MatrixObject & mo)27         void Init(const MatrixObject& mo) {Init(mo.GetData(),mo.GetWidth(),mo.GetHeight());}
28         void Init(const wxImage img);
29 
30 		// Gr��e des Objektes ausgeben
GetWidth()31         int GetWidth()  const {return m_width;}
GetHeight()32         int GetHeight() const {return m_height;}
GetLength()33         int GetLength() const {return m_length;}
GetSize()34         wxSize GetSize() const {return wxSize(m_width,m_height);}
35 
36 		// Daten von einem bestimmtem Punkt
37         char GetDataFrom(int x, int y) const;
38         char GetDataFrom(int p) const;
39 
40         // the pointer to the Data
GetData()41         const char* GetData() const {return m_data;}
42 
43         // Has Data
HasData()44         bool HasData() const {return ((m_data==0)?(false):(true));}
45 
46 		// all fields null?
47         bool IsEmpty() const;
48 
49         // set all fields 0
50         void Clear();
51 
52         // Data
53 		bool SetDataAt(int x, int y, char data);
54 		bool SetDataAt(int p, char data);
SetDataAt(const wxPoint & punkt,char data)55 		bool SetDataAt(const wxPoint& punkt, char data) {return SetDataAt(punkt.x,punkt.y,data);}
56 		bool SetDatesAt(int x, int y, const MatrixObject &mo);
SetDatesAt(const wxPoint & punkt,const MatrixObject & mo)57 		bool SetDatesAt(const wxPoint& punkt, const MatrixObject &mo) {return SetDatesAt(punkt.x,punkt.y,mo);}
58 
59         // Get as Monochrome image
60         wxImage GetAsImage() const;
61 
62     protected:
63 		// Deinitialisieren
64         void Destroy();
65 
66 		// Die Variablen
67         char* m_data;
68 		int m_width;
69 		int m_height;
70 		int m_length;
71 };
72 
73 #endif // MATRIXOBJECT_H
74