geometry.h
author insilmaril
Thu, 23 Apr 2009 12:15:31 +0000
changeset 755 ed5b407975b3
parent 754 db0ec4bcf416
child 789 d85834ad8c54
permissions -rw-r--r--
more data in Tree, less in Map
insilmaril@650
     1
#ifndef GEOMETRY_H
insilmaril@650
     2
#define GEOMETRY_H
insilmaril@650
     3
insilmaril@656
     4
#include <QPointF>
insilmaril@650
     5
#include <QRectF>
insilmaril@656
     6
#include <QPolygonF>
insilmaril@650
     7
insilmaril@650
     8
QRectF addBBox(QRectF r1, QRectF r2);
insilmaril@754
     9
bool isInBox(const QPointF &p, const QRectF &box);
insilmaril@650
    10
insilmaril@656
    11
QPointF normalize (const QPointF &p);
insilmaril@650
    12
insilmaril@662
    13
insilmaril@662
    14
qreal dotProduct (const QPointF &a, const QPointF &b);
insilmaril@662
    15
insilmaril@662
    16
class PolygonCollisionResult {
insilmaril@662
    17
public:
insilmaril@662
    18
    // Are the polygons going to intersect forward in time?
insilmaril@662
    19
    bool willIntersect;
insilmaril@662
    20
insilmaril@662
    21
    // Are the polygons currently intersecting?
insilmaril@662
    22
    bool intersect;
insilmaril@662
    23
insilmaril@662
    24
    // The translation to apply to the first polygon to push the polygons apart.
insilmaril@662
    25
    QPointF minTranslation;
insilmaril@662
    26
};
insilmaril@662
    27
insilmaril@662
    28
insilmaril@662
    29
void ProjectPolygon(QPointF axis, QPolygonF polygon, qreal &min, qreal &max) ;
insilmaril@662
    30
qreal intervalDistance(qreal minA, qreal maxA, qreal minB, qreal maxB);
insilmaril@662
    31
PolygonCollisionResult PolygonCollision(QPolygonF polygonA, 
insilmaril@662
    32
                              QPolygonF polygonB, QPointF velocity);
insilmaril@662
    33
insilmaril@650
    34
#endif