//#include #include #include #include #include #include #include #include #include #include int compareList(const list& l1,const list& l2); class Obprm: public PRM { public: Obprm(Problem *problem); void Construct(); bool Plan(); private: //vector BinarySearch(const vector &x1, const vector &x2); vector BinarySearch(const vector x1, const vector x2); void ConnectComponents(node_array& compnum, int c); void ExpandSmallComponents(node_array& compnum, int c); void dfs(node v, node_array& compnum, list& l, int count); void Attempt(const list& l1, const list& l2, int k); void SimpleConnect( int K ); list Closest(const node& n, const list& l, const int& k); vector RandomRotate(const vector& c1); bool Rotate_at_S(const double& s, const node& n1, const node& n2, const int& k); //int compareList(list l1, list l2); vector RandomDirection(); vector RandomState(polygon p); list< list > nLL; }; #include