NLToolbox
src/include/Ball.h
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_ */
 All Classes Namespaces Functions