class potentialField{ public: // diffenet points used struct point{ float x; float y; }; struct attractivePoint{ float x; float y; float weight; }; struct repulsivePoint{ float x; float y; float weight; float maxRange; }; void addPoint(repulsivePoint p); // adds a repulsive point to the potential field void addPoint(attractivePoint p); // adds a attractive point to the potential field std::vector attractiveGrad(point p); std::vector repulsiveGrad(point p); std::vector netGrad(point p); float magnitude(std::vector vect); std::vector normalize(std::vector vect); std::vector netGradNormalized(point p); void printPotentialField(); private: double findDist(point p,repulsivePoint t); double findDist(point p,attractivePoint t); std::vector< attractivePoint > attractiveField; std::vector< repulsivePoint > repulsiveField; };