00001 00011 class OParallelogram : public OGraphic 00012 { 00013 protected: 00014 OPoint p1,p2,p3,p4; 00015 00016 public: 00017 inline OGraphic* clone() const; 00018 inline OGraphic* create() const; 00019 OParallelogram(); 00020 OParallelogram(OPoint &,OPoint &,OPoint &,OPoint &); 00021 OParallelogram(OLine &,OLine &); 00022 ~OParallelogram(); 00023 00024 bool check(); 00025 OPoint getMiddle(); 00026 00027 void gomo(ostream &); 00028 void gomi(istream &); 00029 void xmlo(ostream &); 00030 void svgo(ostream &); 00031 00032 inline bool isValid(); 00033 inline void clear(); 00034 inline void setPoints(OPoint &,OPoint &,OPoint &,OPoint &); 00035 inline void setPoint1(OPoint &); 00036 inline void setPoint2(OPoint &); 00037 inline void setPoint3(OPoint &); 00038 inline void setPoint4(OPoint &); 00039 inline OLine getPoint1(); 00040 inline OLine getPoint2(); 00041 inline OLine getPoint3(); 00042 inline OLine getPoint4(); 00043 }; 00044 00048 inline OGraphic* OParallelogram::clone() const 00049 { return new OParallelogram(*this); } 00053 inline OGraphic* OParallelogram::create() const 00054 { return new OParallelogram(); } 00055 00060 bool OParallelogram::isValid() 00061 { if(p1.isValid() && p2.isValid() && p3.isValid() && p4.isValid()) return true; return false;} 00065 inline void OParallelogram::clear() 00066 { this->p1.clear(); this->p2.clear(); this->p3.clear(); this->p4.clear();} 00070 inline void OParallelogram::setPoints(OPoint & p1, OPoint & p2, OPoint & p3, OPoint & p4) 00071 {this->p1 = p1; this->p2 = p2; this->p3 = p3; this->p4 = p4;} 00075 inline void OParallelogram::setPoint1(OPoint & p1) 00076 {this->p1 = p1;}