Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #ifndef __HIPPLINE_H__
00022 #define __HIPPLINE_H__
00023
00024 #include <wx/docview.h>
00025 #include "HippShape.h"
00026 #include <xercesc/util/XMLString.hpp>
00027 #include <iostream>
00028
00029 using namespace xercesc;
00030 using namespace std;
00031 namespace hipp {
00032
00048 class HippLine: public HippShape {
00049 public:
00050 HippLine(void);
00051 ~HippLine(void);
00052
00053 void LoadObject(const xercesc::Attributes& attrs, const XMLCh* const localname=XMLString::transcode("line"));
00054 ostream& SaveObject(ostream& stream);
00055
00056 ShapeType getShapeType(){
00057 return Line;
00058 }
00059
00060 const wxRect& getBounds() const;
00061 bool containsPoint(wxPoint p) const;
00062 void OnDraw(Cairo::RefPtr<Cairo::Context> context, bool isHaptic = true) const;
00063 virtual HippLine* clone() const;
00064 void move(int diffX, int diffY);
00065 void zoom(double scaleX, double scaleY);
00066
00067 wxPoint getP1();
00068 wxPoint getP2();
00069 bool isVertical();
00070 bool isHorizontal();
00071
00072 void setP1(int x, int y);
00073 void setP2(int x, int y);
00074
00075 private:
00076 wxPoint * p1;
00077 wxPoint * p2;
00078 void updateBoundingBox();
00079 wxRect boundingBox;
00080 };
00081 }
00082 #endif