Flatland

Documentation

SourceForge.net Logo

intersection.hpp

Go to the documentation of this file.
00001 // Summary: Declares Test and Find methods for all shape-shape combinations.
00002 // Copyright: 2007  Philip Rideout.  All rights reserved.
00003 // License: see source/bsd-license.txt
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         // Find methods fill in the contact list for two intersecting geometries.
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         // Test methods return true if the two geometries intersect.
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 }

Generated on Sat Jan 13 17:20:21 2007 for Flatland by doxygen 1.5.1