00001 00011 class OArc : public OGraphic 00012 { 00013 protected: 00014 OPoint c,b,e; 00015 bool isT; 00016 00017 double getDAngle(); 00018 00019 public: 00020 inline OGraphic* clone() const; 00021 inline OGraphic* create() const; 00022 OArc(); 00023 OArc(OPoint &,OPoint &,OPoint &,bool); 00024 ~OArc(); 00025 00026 double getRadius(); 00027 bool isLarge(); 00028 double getAngle(); 00029 double getLength(); 00030 bool isSweep(); 00031 bool check(); 00032 00033 void gomo(ostream &); 00034 void gomi(istream &); 00035 void xmlo(ostream &); 00036 void svgo(ostream &); 00037 00038 inline bool isValid(); 00039 inline void clear(); 00040 inline void set(OPoint &,OPoint &,OPoint &); 00041 inline void setBegin(OPoint &); 00042 inline void setEnd(OPoint &); 00043 inline void setCenter(OPoint &); 00044 inline OPoint getBegin(); 00045 inline OPoint getEnd(); 00046 inline OPoint getCenter(); 00047 inline void setTrigo(bool); 00048 inline bool isTrigo(); 00049 }; 00050 00054 inline OGraphic* OArc::clone() const 00055 { return new OArc(*this); } 00059 inline OGraphic* OArc::create() const 00060 { return new OArc(); } 00061 00062 inline bool OArc::isValid() 00063 { if(b.isValid() && c.isValid() && e.isValid()) return true; return false; } 00064 inline void OArc::clear() 00065 { b.clear(); c.clear(); e.clear();} 00066 inline void OArc::set(OPoint & b,OPoint & c,OPoint & e) 00067 { this->b = b; this->c = c; this->e = e;} 00068 inline void OArc::setBegin(OPoint & b) 00069 { this->b = b;} 00070 inline void OArc::setEnd(OPoint & e) 00071 { this->e = e;} 00072 inline void OArc::setCenter(OPoint & c) 00073 { this->c = c;} 00074 00075 inline OPoint OArc::getBegin() 00076 {return b;} 00077 inline OPoint OArc::getEnd() 00078 {return e;} 00079 inline OPoint OArc::getCenter() 00080 {return c;} 00081 inline void OArc::setTrigo(bool isT) 00082 {this->isT = isT;} 00083 inline bool OArc::isTrigo() 00084 {return isT;}