ELVE  1
ELVE Logic Visualization Explorer
/home/travis/build/stdgregwar/elve/Core/Gravity.h
00001 #ifndef GRAVITY_H
00002 #define GRAVITY_H
00003 
00004 #include "Force.h"
00005 #include "Point.h"
00006 #include "QuadTree.h"
00007 
00008 namespace Elve {
00009 
00010 class Gravity : public Force
00011 {
00012 public:
00013     Gravity(qreal k);
00014     virtual QVector2D force(const Point &m) const override;
00015     QVector2D plainOldGravity(const Point& m) const;
00016     QVector2D quadGravity(const Point& m) const;
00017     void setQuadTreeBounds(const QRectF bounds);
00018     void updateQuadTree();
00019     void addPoint(const Point* m);
00020     void clear();
00021     void debug(QPainter* p) const;
00022     void setK(qreal k);
00023 private:
00024     std::set<const Point*> mGalaxy;
00025     QuadTree mQuadTree;
00026     qreal mK;
00027 };
00028 
00029 }
00030 
00031 #endif // GRAVITY_H
 All Classes Functions