diff -r 78ba80b54bc4 -r d85834ad8c54 geometry.h --- a/geometry.h Tue Aug 18 12:39:07 2009 +0000 +++ b/geometry.h Mon Aug 24 14:39:07 2009 +0000 @@ -1,18 +1,32 @@ -#ifndef GEOMETRY_H -#define GEOMETRY_H +#ifndef GEOMETRY +#define GEOMETRY -#include -#include #include QRectF addBBox(QRectF r1, QRectF r2); bool isInBox(const QPointF &p, const QRectF &box); +class ConvexPolygon:public QPolygonF +{ +public: + ConvexPolygon (); + ConvexPolygon (QPolygonF p); + void calcCentroid() ; + QPointF centroid() const; + qreal weight() const; +private: + QPointF _centroid; + qreal _area; +}; + QPointF normalize (const QPointF &p); qreal dotProduct (const QPointF &a, const QPointF &b); +QPointF scale (const QPointF &v,const qreal &f); +QPointF invert (const QPointF &v); + class PolygonCollisionResult { public: // Are the polygons going to intersect forward in time? @@ -26,9 +40,10 @@ }; -void ProjectPolygon(QPointF axis, QPolygonF polygon, qreal &min, qreal &max) ; +void projectPolygon(QPointF axis, QPolygonF polygon, qreal &min, qreal &max) ; + qreal intervalDistance(qreal minA, qreal maxA, qreal minB, qreal maxB); -PolygonCollisionResult PolygonCollision(QPolygonF polygonA, +PolygonCollisionResult polygonCollision(QPolygonF polygonA, QPolygonF polygonB, QPointF velocity); -#endif +#endif \ No newline at end of file