NLToolbox
|
00001 /* 00002 * BallSet.h 00003 * 00004 * Created on: Nov 13, 2012 00005 * Author: romain 00006 */ 00007 00008 #ifndef BALLSET_H_ 00009 #define BALLSET_H_ 00010 #include "utils.h" 00011 #include "Set.h" 00012 00013 namespace nltool { 00014 00015 class Ball: public Set { 00016 public: 00020 Ball(); 00021 00028 Ball(const unsigned dim, const Number rad, const stdVector center); 00029 00035 Ball(const unsigned dim, const Number rad = 0); 00036 00040 virtual ~Ball(); 00041 00049 virtual Number optimize(const Vector & direction, Vector & optPoint, 00050 bool max = true); 00051 00052 /* 00053 * ########################################## 00054 * GETTTERS and SETTERS 00055 * ########################################## 00056 */ 00057 00058 stdVector getCenter() const; 00059 Number getRadius() const; 00060 void setCenter(stdVector center); 00061 void setRadius(Number radius); 00062 private: 00063 stdVector center; 00064 Number radius; 00065 }; 00066 00067 inline std::ostream& operator<<(std::ostream& out, Ball ball) { 00068 out << "Ball radius: " << ball.getRadius() << " ball center: " 00069 << ball.getCenter() << std::endl; 00070 return out; 00071 } 00072 00073 } // namespace nltool 00074 00075 #endif /* BALLSET_H_ */