#ifndef _ASSUMPTION_H #define _ASSUMPTION_H #include #include enum PtypeMask{ TenMask=1<<0, YokoMask=1<<1, TateMask=1<<2, HidariMask=1<<3, TatehaneMask=1<<4, TatehidariMask=1<<5, }; enum JointType{ Start, JointStart, Mid, End, JointEnd, }; class SimpleAssumption{ friend std::ostream& operator<<(std::ostream &os,const SimpleAssumption &sa); protected: PtypeMask pmask; JointType jtype; double x, y; int angle; int hint; public: SimpleAssumption(PtypeMask pm, JointType jt,double xx,double yy, int a,int h); }; class AndAssumption{ friend std::ostream& operator<<(std::ostream &os,const AndAssumption &aa); protected: std::vector saList; public: AndAssumption& add(const SimpleAssumption &sa); }; class Assumption{ friend std::ostream& operator<<(std::ostream &os,const Assumption &as); private: std::vector aaList; public: Assumption& add(const AndAssumption &sa); Assumption& add(const SimpleAssumption &sa); }; std::ostream& operator<<(std::ostream &os,const SimpleAssumption &sa); std::ostream& operator<<(std::ostream &os,const AndAssumption &aa); std::ostream& operator<<(std::ostream &os,const Assumption &a); #endif /* _ASSUMPTION_H */