00001
00002
00003
00004
00005 #pragma once
00006
00007 namespace Flatland
00008 {
00009 class Geometry;
00010 class ContactList;
00011 class Quad;
00012 class Circle;
00013 class Terrain;
00014
00015 namespace Intersection
00016 {
00017
00018 void Find(const Geometry &g1, const Geometry &g2, ContactList &contacts);
00019
00020 void FindQuadQuad(const Geometry &g1, const Geometry &g2, ContactList &contacts);
00021 void FindQuadCircle(const Geometry &g1, const Geometry &g2, ContactList &contacts);
00022 void FindQuadTerrain(const Geometry &g1, const Geometry &g2, ContactList &contacts);
00023 void FindQuadComposite(const Geometry &g1, const Geometry &g2, ContactList &contacts);
00024
00025 void FindCircleQuad(const Geometry &g1, const Geometry &g2, ContactList &contacts);
00026 void FindCircleCircle(const Geometry &g1, const Geometry &g2, ContactList &contacts);
00027 void FindCircleTerrain(const Geometry &g1, const Geometry &g2, ContactList &contacts);
00028 void FindCircleComposite(const Geometry &g1, const Geometry &g2, ContactList &contacts);
00029
00030 void FindTerrainQuad(const Geometry &g1, const Geometry &g2, ContactList &contacts);
00031 void FindTerrainCircle(const Geometry &g1, const Geometry &g2, ContactList &contacts);
00032 void FindTerrainTerrain(const Geometry &g1, const Geometry &g2, ContactList &contacts);
00033 void FindTerrainComposite(const Geometry &g1, const Geometry &g2, ContactList &contacts);
00034
00035 void FindCompositeQuad(const Geometry &g1, const Geometry &g2, ContactList &contacts);
00036 void FindCompositeCircle(const Geometry &g1, const Geometry &g2, ContactList &contacts);
00037 void FindCompositeTerrain(const Geometry &g1, const Geometry &g2, ContactList &contacts);
00038 void FindCompositeComposite(const Geometry &g1, const Geometry &g2, ContactList &contacts);
00039
00040
00041 bool Test(const Geometry &g1, const Geometry &g2);
00042
00043 bool TestQuadQuad(const Geometry &g1, const Geometry &g2);
00044 bool TestQuadCircle(const Geometry &g1, const Geometry &g2);
00045 bool TestQuadTerrain(const Geometry &g1, const Geometry &g2);
00046 bool TestQuadComposite(const Geometry &g1, const Geometry &g2);
00047
00048 bool TestCircleQuad(const Geometry &g1, const Geometry &g2);
00049 bool TestCircleCircle(const Geometry &g1, const Geometry &g2);
00050 bool TestCircleTerrain(const Geometry &g1, const Geometry &g2);
00051 bool TestCircleComposite(const Geometry &g1, const Geometry &g2);
00052
00053 bool TestTerrainQuad(const Geometry &g1, const Geometry &g2);
00054 bool TestTerrainCircle(const Geometry &g1, const Geometry &g2);
00055 bool TestTerrainTerrain(const Geometry &g1, const Geometry &g2);
00056 bool TestTerrainComposite(const Geometry &g1, const Geometry &g2);
00057
00058 bool TestCompositeQuad(const Geometry &g1, const Geometry &g2);
00059 bool TestCompositeCircle(const Geometry &g1, const Geometry &g2);
00060 bool TestCompositeTerrain(const Geometry &g1, const Geometry &g2);
00061 bool TestCompositeComposite(const Geometry &g1, const Geometry &g2);
00062 }
00063 }